Monday, January 13, 2014

Why Julia? And what do you mean by "Common Developer"?

Since my first days of programming in Fortran and VB for DOS, I've been on the hunt for an elusive quarry. Some might call it the grail. I simply call it a "language that is fun to work with and doesn't make my life a tedious hell."

I want language that allows me to solve problems quickly and without uncalled for verbosity. I don't want a thousand configuration files. I want to choose to declare variable types, or not, as I see fit. I want the ability to easily group data into records/objects. I want responsive I/O and easy database connectivity. I like the idea of macros and dynamic code generation but still code in my comfortable imperative style. Lastly, I want clean and simple syntax.

Oh, one more thing, I need all of those things above, but my programs have to run quickly.

Some might argue that all of those things are available in language abc that has been around since the 1980's or that the latest generation of language xyz gets you almost all of those features plus more. The point of this post is not to kindle the flames of a language war (I mean really, aren't you all tired of that yet?). If you are reading this, I'm assuming that you have an open mind and haven't already decided that there can't possibly be a language that has better features than your current favorite. If that is not a correct assumption, then please do us all a favor and quietly move on.

After years of switching from language to language, I think that I have stumbled onto a winner: Julia. It has all of those features I mentioned. I'm not going to recap the information available on their site. They say it much better than I would. I will simply say that I've coded a couple thousand lines over the last month or so and it was fun. Truth be told there is a bit of a learning curve, but once over a couple hurdles things are working very well for me.

As for the "common developer" comment, it is not meant to be condescending. I'm a business application developer, so I am talking about me. Julia is designed for the scientific computing community. Looking on the forums you'll see the PhD computer scientists and mathematicians. To be honest, most of the time I have no idea what the hell they are talking about. But that's ok, because what I do know is that julia is going to help me become more efficient with my work and eliminate/reduce much of the boring work that I dread.

My goal with this blog is to capture the things I've learned to handle every day common developer tasks. I hope that you find it useful.

Interested in giving julia a shot in a clean, confined environment? Try following the instructions on my next post to install a vm from start to finish. If it turns out that julia is not your cup of tea you can simply delete the vm.

No comments:

Post a Comment