Philip Greenspun says:
A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl.
Jon Udell (in Infoworld) says:
In software development as in science, breakthroughs often occur when insights flow across disciplinary boundaries. The conductors of these flows are typically generalists who belong to several (or many) communities and who form bridges among them.
There were a few others, but I've managed to lose them. Doh!
Posted by jzawodn at September 21, 2003 10:22 AM
Yeah, I saw that entry by Phil. No doubt he's quite a character and entertaining writer, and it was his online info about databases that inspired me to setup some PostgreSQL-backed operations at work some years back that continue to be enhanced and perform just splendidly for me. (And for which a lot of the db access is JDBC. :-) Unfortunately, I do not find his opinions on programming languages any more or less insightful or useful than many people's.
The things that people should never compare ( or should stop comparing) are
- Linux distros
- Programming Languages
- Browsers/Email Clients
- Text editors
Its all about personal preference :)
I disagree. People shouldn't stop comparing & contrasting programming languages -- that's an exceptionally valuable exercise – but, rather, people should stop cargo culting the comparisons.
Each programming language has both it’s strengths & weaknesses. You can look at each languages strengths and weaknesses based upon the language itself, the libraries available, and the environments it runs on. Instead of starting out by saying “I’m going to write a Perl program to…”, you should start of by saying “I’m going to write an application that needs to do X, Y, & Z” and use the language who strengths best line up with what you want.
E.g. if you were building an application that does a tremendous amount of string manipulation, Perl is a terrific match. If you need to deploy a tool with a GUI interface on Linux, Macs, and Windows, Java’s Swing is a good route to go. On the other hand, if you determine building your application in an object oriented fashion would be best, you probably want to stay away from PHP & it’s lack of class members.
I think it’s also the hallmark of a good engineer who can sanely tell you the pros & cons of each language. To them they’re just tools in their toolbox & they are no more partial to one than, say, a carpenter would be to a hammer or a screwdriver. If you do run into some who says things like EVERYTHING MUST BE IN PERL or PERL LOOKS LIKE MODEM NOISE you most likely are dealing with a know it all who either knows only Perl or doesn't know it at all.
Finding that out early is helpful, as it makes it clear to avoid them. ;-)
I'm now on a J2EE project after having done a Perl project, and I have a Python project going on the side. From this perspective, I agree with Phil. J2EE, even if you're not using Enterprise Beans, has a very heavy ritual overhead. The ratio of progress to typing is frustratingly low compared to other alternatives. And the result isn't really any more maintainable just because you're using Java. To be a generalist in the J2EE space, you need have have read about a shelf-foot of material, and be familiar with another shelf-foot or two to know what to reach for when you have a problem. That raises a huge obstacle to successful maintenance.
I'm now on a J2EE project after having done a Perl project, and I have a Python project going on the side. From this perspective, I agree with Phil. J2EE, even if you're not using Enterprise Beans, has a very heavy ritual overhead. The ratio of progress to typing is frustratingly low compared to other alternatives. And the result isn't really any more maintainable just because you're using Java. To be a generalist in the J2EE space, you need have have read about a shelf-foot of material, and be familiar with another shelf-foot or two to know what to reach for when you have a problem. That raises a huge obstacle to successful maintenance.
Paul Graham in Beating the Averages :
The first thing I would do, after checking to see if they had a live online demo, was look at their job listings. After a couple years of this I could tell which companies to worry about and which not to. The more of an IT flavor the job descriptions had, the less dangerous the company was. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers. If they wanted Perl or Python programmers, that would be a bit frightening-- that's starting to sound like a company where the technical side, at least, is run by real hackers.
Wouldn't it all depend on who is doing the coding and what is the purpose, function, platform.. etc.. etc. .etc..
I hate useless generalizations.. it sounds like it says something but in reality it just states "I don't really know what I'm talking about".