July 18, 2011

The Last Programming Language (my 5 cents)

This started as comment on Sean's review of Uncle Bob's preso "The Last Programming Language" and outcome had too many characters and convert it to blog. Anyway, I blog quite rarely, it's been about timeto finally make one in year 2011 :)  So, to understand what I am talking about you should go and see Bob's preso first.

My 5 cents

I don't dare to predict which or what kind of language will take the throne.
No matter I am familiar with most mentioned languages, and have working expirience with some, I really it is need much more then that to be able to elaborate on that. However, I see numerous other reasons why we, humans, will settle on one (uber, last, ultimate, call it however suits you the best) programm language. Because, it's in our nature. To illustrate it, I'll use popular analogies.

Safe side
Software development is too important discipline in today's society that this level of freedom is "unacceptable" (sounds hursh I know). These days is very popular to compare software with civil engineering, so I'm going to do it too. CE students are teached to do things in certain way. These ways guarantee acceptable level of quality of their products. Most civil engineers will blindly apply what they've learned and stay on safe side.
Doing better then that means balancing project expense and construction quality, in context of reality (moment).  Simplified, in most cases, it means better quality for less money. Also, knowing when to increase expense in favor of better outcome is quality for itself.
OK. You can always say "This is so rigid because human lives are at stake". True, but is it really that different with software engineering? What controls medical equipment and modern building machines? What civil engineer use for calculations and designs? What will descrease (or increase in rare cases :)) saldo on your banking account?

Common ground
Proponent of freedom and diversity use variety of speaking languages as an example. World "live" and communicate with so many different languages, so why it can't use more than one programming language.
English language is perfect contra argument. No matter do you like it or not, but this is de facto communication standard among professionals (of any kind). See? I am just doing it :) No matter french is more "singy", spanish sexier, italian simpler, chinese more descriptive, we settle (spontaneous or not, nevermind) on english as common ground.

Software development is not just coding
People are afraid of becoming bored, by time (through decades), working with one language.
First of all, language is just a tool. As such, it just helps you, assist you, to reach your goal.
And our goal is well crafted software. Standardizing laguage, gives me more time to focus on architecture and design. From perspective of tools, Eclipse seems as solid example. Common platform that suits the needs of most programmers.

To conclude.
I am quite sure it will happen by time. Is it going to be some mutant of functional PL or not, to me, is not important at all. Our profession is young and mature by time. Why it should mature in much different way then all other (centuries old) professions?