The other day, a friend and I were having lunch and discussing programming languages and technology. I have been reading a few posts above language advocacy and the problems with any type of advocacy (it turns religous instead of being rational, it leads to the person advocating not being taken seriously, etc.). I have no problem with python (i kind of like the clean syntax), ruby (except the sudden vogue-ness of it), c, java, javascript, etc... I don't mind learning them and using them. But my problem is how to determine what the best tool, language, framework, etc... for the job actually is? Where is this information, CW or ? The experts seem to be in their own camps for their own purposes.
There doesn't seem to be any studies looking at solving the same problem with different tools. And if there were any studies, how would you determine the effectiveness of each one? Would it be lines of code, ability to scale, speed of development, simplicity to maintain, or ? It seems that we (coders, developers, engineers,
How does Perl compare itself with java, python, prolog, etc... ? By language attributes (static typing vs. dynamic) but are these meaningful? By performance? By feature X or Y? Maybe 'compare' isn't the best word here... Maybe we should talk about what Perl is strongest at, or most effective at doing and what Java is most effective at. But what happens when you have three languages at all have the same effectiveness, does it turn to style then?
I would love to hear peoples thoughts about this. Or information about research projects going on. Or is it time to write a grant? (like I have any idea how to do that
Peace
__ (Score:1)
I don't think the "best tool for the job" is a useful question to ask, if the tools you have to pick between are all general purpose tools. It doesn't have an answer. What you really want is of all the adequate tools (of which there are many) the best tool for the programmer.
Most of the typical programming jobs can be done as well in Perl as in Java or in C. However, said job needs to be done by a certain programmer. And for that programmer, Perl may be the best tool. Another programmer, facing the same
Break it into two parts (Score:1)
First is the language itself, some have strengths in different areas. Perl for strings and Java for threads for example.
But then you have the second layer of the language environment, covering libraries, tools, editors, toolchains, compatibility etc etc. Some nice languages have terrible environments (Perl if you ignore CPAN), and some terrible language have amazing environments (Java).
And it's both of these factors in any given area that need to be judged.
Re:Break it into two parts (Score:2)
I'd add a third to this as well: what's your team's expertise? Sure, anyone can learn Java pretty quickly. (It's a simple language.) But it takes time to get to know the environment, the libraries, the differences from what you already know, and then the idioms and patterns that make you a very efficient programmer. We always talk about languages as if you can change from one to the other without cost, but you can't. (And, as much as some managers don't want to hear it, you can't interchange the people who