Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

At the university where I teach we used to have two year 1 intro to programming courses: Java and OCaml. The weaker students overwhelmingly preferred Java and the stronger students OCaml. I don't think that was a statistical anomaly in a 200+ size class.


With all the due respect, that's apples to oranges.

It's unsurprising that stronger students prefer OCaml, because it's objectively the more interesting (or at least the more intellectually stimulating) language.

When we're talking about programming languages as engineering tools, a whole lot of ancillary issues must be taken into account. Is the language performant enough? Is the tooling good enough? Does it have good library support? What about C integration? Is it easy do build and deploy?

Java vs. OCaml is precisely a great example of this conundrum: OCaml is objectively the better language by a mile, Java has objectively better support by a mile.


I think you both agree, you just guys don't see it.

I don't know if OCaml is better than Java because I don't use OCaml.

But in general, the better you are at development the greater choice you have. And also better developers on average prefer more powerful tools because for them the steep learning curve is not prohibitive and because they can recognize value of using more powerful tool.

Weaker developers are basically happy they can program at all and most weak developers to settle on the first programming language they learn.

Want to filter out poor developers? Don't hire anybody who only knows single programming language well.

Not because knowing two languages makes you better but because you put effort in learning another language which means you had the curiosity, perseverance and ability to do it.

Learning a programming language when you are good developer is no issue -- I do it in passing just to solve some particular problem and move on. If you are poor developer learning a language might be major effort and accomplishment you may not want to pay for again.

I personally know of no good developer who only knows single language.


In our school, everyone knew that Java is for lesser programmers before they ever wrote a line of it. I actually thought that too and being ambitious, I would go for different course.

Then I matured (both as person and as programmer) and now I don't hold the same views.


I don't want to say that "java is for lesser programmers". What I want to say is developers and companies sort themselves by making individual choices.

The end effect being that if you work for a company and you don't have a huge hiring budget you don't go looking for developers in esoteric languages.

Because then availability of developer is much more important than showing they can pass steep learning curve.

On the other hand developers who can't pass steep learning curve will gravitate to a language without one, where they can be hired more easily.

Does steepness of learning curve mean a language is better or worse? Not necessarily.

Does a person getting into Java development mean the person is bad developer? Of course not.


> The end effect being that if you work for a company and you don't have a huge hiring budget you don't go looking for developers in esoteric languages.

The salaries breakdowns I have seen did not worked like this at all. Esoteric languages paid less. I think it was mostly because those companies were in unstable businesses and because people who like those languages accept pay cuts more often. The salaries for boring languages were higher.

And second, the assumption that only difficult thing that can possibly attract people is difficult/esoteric language is odd. If you are in that situation, then you are in fundamentally easy situation. In fact, forums are full of developers for whom frameworks used in jave world are impenetrably complicated to learn. I can't square that with supposed superior willingness to learn. (I can easily square not liking these.)


> The salaries breakdowns I have seen did not worked like this at all. Esoteric languages paid less.

That's because salary is only one part of the cost. You are looking as if it was the only cost, which is not true.

Finding people for the project costs. Finding people with exotic abilities costs a lot and takes a lot of time which may complicate your plans or require you to have extra staff just in case somebody leaves.

It may pay less because in some specific niches people will work for less just to be able to do what they like to do. If I had ability to join a serious Common Lisp project I might do the same.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: