Thursday, May 29, 2008

Friday, May 23, 2008

On languages, life etc - Part #2

This post is actually a comment to the comments at my previous post, but it grew too big so it deserves to be a new post.
So in my previous post, past said:
"Agreed. But that is the wrong question. Very few of our clients ever asked for Java development either. All the client wants is working software that meets his needs. Certainly I, or anyone else that I know for that matter, never asked Facebook to use Erlang for its chat feature."
I 'm glad you agree and you give me the opportunity to explain that my reference to the client 's demand for a specific language had a slightly different meaning. I agree that the client usually does not ask for a particular technology, so if you choose Java or Scala is of little interest to her/him. Do you believe that there exists a language that will do the client 's job 100 times faster or otherwise better? I don't. If my choice of a new language over e.g. Java achieves a performance increase of 0.0001% neither the client will care nor I.

My post was a reaction to the chaos of thousands of programming languages and frameworks that have flooded our professional lives. I agree that the customer usually don't ask for a particular language or framework and it is our responsibility to choose the more suitable solution. Do you believe that in order to achieve that, we should constantly study and improve ourselfs ? I certainly do. Do you believe that ScumbagX#+ is an essential asset for a developer in Greece ? Ok, I again go with you. Do you beleive that we should spend our time deciding between ScumbagX#+, JScumbagX#+ and IronScumbagX#++ because the last one is 0.00001% faster? I certainly don't. What I mean is that every geek in this world dreams of creating his own language that would incorporate all the great concepts that he learned in the "programming languages" course at the university. Am I obliged to learn it ? If I am (and sometimes some new language deserves my time) then I will, but I don't have the illusion that in this life I will manage to learn all of them.

"If you can meet your customers' requirements and be competitive with what you already know, then by all means do so. Working as a developer in most software houses is not that demanding after all."

Everything in this life is a trade off. Our last web app was written in java for jboss. It is an internal application used by 50 users and the type of application that will never go on the public web. If we have written it in Erlang and could manage 50 gazillions requests per millisecond, do you think that the client would have paid us more ? Not in a million years! If we had to write an app that had to deal with 50 gazillions requests per millisecond then ok. Erlang might have been the right choice and the time investment to learn it would be justified.

"However, if you have any aspirations to ever work on a startup like facebook, twitter or friendfeed, or worse, start your own, then you might need to work a wee bit harder than that."

Everything in life is also a bet. If you want to start the new Facebook, you bet on some technologies and invest on them. You cannot do the same for every existing technology. The reason is simple. We won't live for 200 years.

I 'm closing with a clarification for synodinos:

"BTW are you this cautious about all new technologies, because I think you were (somewhat of) an early adopter for JPA?"
JPA was actually one of my early adoptions that caused me absolutely no trouble (I cannot say the same for struts 2 though), so this can be no reason for being cautious about new technologies. Actually, I have to clarify that I am not cautious about new languages. On the contrary, I trust them all. Completely. And I am convinced that each and every one of them was created with good intentions. But you cannot invest on all of them. You have to find a golden rule. I totally agree with those that support the opinion that a developer should know more than one language. On the other hand a developer can go far enough and know TOO many languages but be really good at none of them (I think I read that here :-)).

Thursday, May 22, 2008

On languages, life etc

In a previous post I implied that in Greece it is of no value for a developer to learn Scala. My good friend George commented:

"If your clients are located in Greece, investing in Scala might be totally premature.

(OTOH, this means that I must play with Scala:) )"

George and I and some more of my friends would study Scala just for the fun of it. But that 's all. Fun. I have the extremely strong feeling that no client of ours will ever demand development in Scala. Of course Scala is just an example. The same is true for Erlang, F#, Ruby or Duby or Scuby or any of their variations like JScuby, or Duby# or Scuby++ or DubyScript or Scala on Rails or on a bicycle. Give me a break here, will you ? I just have only one life! Even if I wanted to learn all of them there is not enough time in a person 's life. I don't believe that in this universe there are enough clients that would ask for development in JScubyDuby++##Script that would justify my time investment. Even if I had to leave my company and go to work anywhere else in Greece my knowledge of FRuby#FX wouldn't be much appreciated. But maybe I don't know what I 'm talking about.

What I read and liked on 2008-05-22

Java Architectural Knowledge for Job Interviews. Are we prepared?
If we have studied the principles and not the specific tools or frameworks then we are definitely prepared not only for the interviews but also for learning quickly and easily any tool or framework. Unfortunately, in Greece many types of schools produce developers that know one specific programming language on one specific IDE and then every problem looks like a nail.

What I read and liked on 2008-05-21

Groovy or JRuby?
For a developer in a small company in Greece how valuable may be the knowledge of e.g. Scala? I just wonder ...

JHUG Java Day sponsored by Sun Hellas - 7 Ιουνίου 2008.
I will certainly be there!

Tuesday, May 20, 2008

What I read and liked on 2008-05-19

Java haters, gtfo
I don't dislike scripting languages, however I like his way of presenting things

Friday, May 9, 2008