Balancing Pure With The Real World

I started learning Clojure in May of this year. That process went through an acceleration in late May, peaked in July, and this first learning phase finished up in early August with the implementation of a standalone Clojure program to process csv data through our address verification system.

The reasons I chose to learn Clojure were as follows:

  • A strong affinity for Clojure’s language design reasons http://en.wikipedia.org/wiki/Clojure
  • Could more easily defend introducing Clojure into our web/4GL/Perl/Python production environment, because it is a JVM language.
  • Was curious about functional programming and wanted to learn a language that might be considered main stream.

Since May I have read a lot of blog posts about functional programming, various dialects of Lisp, and seen a lot of references to pure versus non-pure. I have come to this conclusion.

While it is not always a good idea to accept what is popular, you often have to work with your shop’s tools. Once a long time ago, before the advent of VPNs, there was a need for corporations to cut down on their land-line telephone bills. Since that time — about fifteen years ago — local POPs are everywhere, and you can get WiFi access back to your intranet very easily. These were the days just before that.

Well, in the  middle of our production cycle, yes about half-way through, a developer did not like the previously agreed upon TkInter approach. That developer switched the UI to Java. I’ve forgotten the reasons why, but I suspect a lot of resume building was going on, rather than TkInter not being able to do the job. By the way, this was  an application that performed a VPN connection, not a spreadsheet. All the application had to do was do its job or report an error.

There is a lot of web development work to be done in our environment over the next few years. That is going to be in Python/Django and Perl/JavaScript. It makes no sense to rip up perfectly good applications and rewrite them in another language, even for a learning experience. In other words, there is work in multiple modalities.

I am happy with my choice to continue to learn Clojure. If I never use it a lot in a production environment, I have already gained from the learning experience so far. My thinking has already started improving.

And while some languages may be the most ideal, pure, able to save the world, or whatever, we continue to use what is in our environment to the best of our abilities.

Advertisements

Leave a comment

Filed under Clojure

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s