I have written much lately, I guess I haven’t felt that I have had anything relevant to post or perhaps micro blogging is just too convenient.
I’ve been learning different programming languages over the past few weeks rather than working on writing C# in my spare time. I’ve spent a couple of weeks with Ruby, then a week with Scala, and now a few days with Clojure. The interactive nature and quick feedback that REPL gives you is just awesome for learning a new programming language.
Each language definitely has it’s niche, but I feel like there’s something I’m missing that allows me to fully grasp the underlying niche that each language provides. I have no trouble picking each language up, but I want to get into the guts of the language and try to understand it from the perspective of the person who wrote it.
For instance, I spent several hours pouring over the Clojure source code and found that it was nothing like I had expected. A programming language written in Java! The nerve. That was laughable only a few years ago (unless you’re a DBA, then you probably find the entire JVM laughable). When did we graduate from writing languages in C to Java? I find it absolutely fascinating.
Not to pick on people smarter than myself, but the source code for Clojure is far messier than I expected. I’m sure at a high level its very well designed, but the low level source code wasn’t as well abstracted as I expected and with commented out code all over the place. It made me wonder how it actually worked without bugs seeping out from every corner of the code base.
But the more I learn about these languages, and how they’re written, the lower down in the stack I want to go. Dragon book lower. Although understanding BNF and other compiler lingo isn’t required for understanding the Clojure compiler, I think it would answer the question of how it works so well without bugs seeping out from every corner.
Powered by: newtelligence dasBlog 2.1.8102.813
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2012, Shawn Neal
E-mail