Reading 05: (⌐▨ ▨)
Blog 5:
I came into the reading thinking the choice of programming language is not as important as Graham lets on and is not a “Secret Weapon” by any means. However, after going through what he had to say and thinking about it I really tend to agree with his ideas of relative powers of programming languages. Sure, he just seems like a Lisp fanboy, but he makes a convincing argument for the case of high-level languages and the ease of rapid development. The idea of “programming languages are not just technology, but what programmers think in” resonates with me greatly. I believe that the language you use is what you immediately start to think of how to solve issues. It makes sense to use a more efficient or higher-level programming language as possible to have efficient thoughts and problem solving. There might be a reason why it seems like all the tech big brains like Lisp, and I might have to take some time to rewire my brain this semester to think in Lisp.
To expand on my thoughts of power in programming languages, I think it holds mostly with ease of rapid development and clarity. I don’t think you can argue that a language without recursion is more powerful than one with recursion. Not just thinking about complexity of the language, but this completely hinders the way one can solve solutions. I like to think of languages in their “elegance” in solutions. I do think what we have now as standard in schooling and industry isn’t even the most powerful option for programming we could have. I completely agree with Graham that OOP is really only applicable for certain scenarios (mostly industry), and I personally think it slows development greatly and occasionally creates and obnoxious amount of hierarchies for what should be a 50 line program. I found especially interesting the Power Appendix in Revenge of the Nerds. He talks about not the power of the language, as they are all Turing complete and CAN solve all the same issues, but if you are efficient in how you solve the problem. As an aside, I do think it’s also laughable that most “big” programming languages you have to be tethered to an IDE which auto generates code for you because otherwise it would take too long or tedious. I think this really shows what is generally lacking in our set of tools, this reliance on toolchains to make anything productive. Compare that to what Graham speaks of Lisp and its rapid development and you can start to see some problems.
I think going forward, I do think OOP makes sense for most big companies. However, I think the idea of functional programming will hold most important personally, as it provides an efficient way to structure code and even just think about solutions. I really think that is the main draw of Lisp for Graham, and why he doesn’t like other languages as much (their non-inherit FP). Of course, that being said, C/C++/Java/Python/Javascript/etc. are not going anywhere anytime soon (especially java and c++) as they are so engrained into modern technology and are “too big to fail” at this point.
As someone who is a self-described “wagie” who has barely dabbled with alternative languages, I think this reading has inspired me to take on the beast of Lisp.
~ Sam