DEV Community

Discussion on: CS Graduates (and not): A Question

Collapse
 
yokim profile image
Yokim Pillay

Definitely! I love that paraphrase.

You make an interesting point on the diversity of thought in functional programming, do you think those 'thoughts' have changed since being in school to a working environment?

Thanks for your reponse, I really appreciate the insight. :)

Collapse
 
apotheon profile image
Chad Perrin

I see, elsewhere in discussion, that you're apparently not a college-educated developer. If you're interested in some introductory instruction on the subject of functional programming and lambda calculus (as well as turing machines, finite automata, and so on), in a way not much at all like you'd get at college, I'd recommend an O'Reilly book called Understanding Computation. It's very good, and uses Ruby as an implementation language for some interesting stuff, but you don't have to be a Ruby dev to "get it" or use it. The book is very well-written, very approachable, and (in my opinion at least) a lot of fun.

Collapse
 
dmerand profile image
Donald Merand • Edited

Thanks! That's an interesting question - I'm interpreting you as asking whether I think the main approaches to + thinking about programming languages have changed since I was in school.

On the one hand, this stuff's all been around forever. Functional programming since (before computers, and object-oriented programming for decades at least. Imperative models are also pre-computer, and that's pretty much all there is, approach-wise, for what people are using in production.

On the other hand, each new language brings a new approach, and sometimes those approaches shed new light on these same old ideas. For example: Joe Armstrong published his Erlang Thesis while I was still in school, but at the time Erlang's approach to message-passing functional programming using Actors (or, as some would say, the original vision for object-oriented programming was novel. That architecture allows us to write gorgeous, distributed programs that have a previously-unseen level of fault-tolerance and modularity. Nowadays we also have Elixir, which adds a layer of beautiful syntax, and a suite of amazing tools, along with some new ideas, to that Erlang core. Neither Joe Armstrong nor José Valim invented functional or object-oriented programming, but they've pushed the needle for sure. Personally, my exposure to Elixir + Erlang has changed the way I write code in other languages as well.

I hope that answers your question somewhat!