The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

I am so disappointed by the article on Language Wars

Obviously I am a fan of Joel on Software.  In general I find his instights excellent.  This article is not.  There is a difference in languages, but it is not about "better" in the best sense of the word.  Languages like Java and C# are excellent genreal purpose languages with a huge ecosystem around them.  This is precisely there reason why they are often not appropriate.  As an example, the last company I worked for was a Java shop.  They have a product for sales automation.  It is a huge product with many configuration points.  It is built use J2EE, many design patterns, etc.  One aspect of the product is feeds from other systems.  A developer was assigned to create a feed reader.  She wrote a well designed peice of software that would handle different customer formats using plugged in Java code.  It would create a set of Java objects that were then passed to the Object Relational Mapping layer to be persisted in the database.  Finally a different process would run to incorporate the information into the appropriate runtime tables.  The only issue was that the process took too long to run.  I was asked to tighten it up.  After reviewing the code with the developer, I got to work fixing inefficiencies, etc.
As I have a background as a Unix System Administrator, I am intimately familiar with Perl.  I thought that it might be useful to write out the process in Perl to help organize my thoughts.  I was able to bang out a solution in Perl in about 4 hours.  It ran in about a tenth the time.
Am I saying Perl is better than Java?  Yes, if you are doing text processing.  Java has many advantages to Perl in other taksks.  They way I like to put it is, would you hire a carpenter that only had a hammer in his tool box?  Why must we keep looking for the "best" language.  How can there be a language that is best for our command line tool that searches for non-internationalized strings in our code, and for our image processing libraries?  The debate continues because we debate the wrong things.
As to the safe choice?  Joel, you started your own company, don't try and convince me you always take the safe path :-).
Pat O'Hara Send private email
Friday, September 01, 2006
 
 
Joel wanted a language war, and he got one. A troll for the history books. I fell for it like a sucker.
greenspun is rolling in his helicopter
Friday, September 01, 2006
 
 
How about a "Language Wars|Hatreds|Flames|Snobberies of Software" forum to draw off the noise & provide entertainment for late afternoons when the concentration is shot & the Zone is but a vague memory?
George Jansen Send private email
Friday, September 01, 2006
 
 
DHH calls it FUD.  http://www.loudthinking.com/arc/000596.html

I'm inclined to agree.
Lou Send private email
Friday, September 01, 2006
 
 
Calm down kids, its only one mans opinion.

Step out of your office's and away from the screens. Grab a bit of fresh air and some mind altering drugs....wow
Talib Kweli
Friday, September 01, 2006
 
 
> DHH calls it FUD

How has calling something FUD, somehow become the biggest insult?

How does merely calling something FUD, magically win an argument without refuting points?

You know, sometimes FUD is a good thing.  If there is Fear, Uncertainty and Doubt about making a stupid a choice, you may not make that choice, and the FUD has actually served a purpose.

I have no idea whether Joel is right or wrong about Ruby, and don't have a personal stake in it anyway.  But if you want to argue with Joel's article, I think it'd be a good idea to address his points, rather than just labelling his article?
Sunil Tanna
Friday, September 01, 2006
 
 
Personally, I've judged Ruby/RoR by those who have moved to it.  Look at who the pioneers and thought-leaders were in Java 2+ years ago.  A huge number of them have moved to Rails.  That goes a *long* way in my book.

While the framework itself might be only a couple years old, the sheer brain power who have contributed to it are stunning.  Now I just need to start learning it.  ;)
KC Send private email
Friday, September 01, 2006
 
 
>Look at who the pioneers and thought-leaders were in Java 2+ years ago.

Such as? I'm not doubting that Rails has some talent, but I really don't see any massive, widescale migration. In fact it seems no different than countless other language-of-the-day trends, and has a considerable risk of dying out when the next silver bullet appears.

And anyways, Joel's article had absolutely -nothing- to do with small shops looking to do innovative new realms. Instead he quite clearly made the point that if you're looking for safe, proven platforms, particular in the enterprise space, you go with what's safe and proven, and for which you can find copious amounts of skilled talent (inhouse, and external). Does anyone have a problem with that entirely accurate, fundamentally pragmatic statement?
Dennis Forbes Send private email
Friday, September 01, 2006
 
 
using the OP example, I recently had to do something very similiar. I agree that Perl is better for file parsing. However, how many people in our group really know Perl? There are 2 of us that have a very little experience with it.

The skill set of our group is .NET. Hence, I did it in C#.
Patrick from an IBank Send private email
Friday, September 01, 2006
 
 
Dennis,

I'll give you two:

James Duncan Davidson - creator of Tomcat
Bruce Tate - author of many Java books
Larry Myers Send private email
Friday, September 01, 2006
 
 
Patrick,

A developer who doesn't know a scripting language is a bad developer
Mike Harris Send private email
Friday, September 01, 2006
 
 
Mike,

>A developer who doesn't know a scripting language is a bad developer.

Perl is a great, powerful language. I spent a weekend reading the O'Reilly bookshelf on it, and then created some wonderfully powerful little utility scripts to help the team. They did their job beautifully.

Then I went back to my normal work, for which Perl wasn't suitable. Several months later I went back to my scripts and it was like I had to learn Perl all over again.
Dennis Forbes Send private email
Friday, September 01, 2006
 
 
Larry,

Are both contributing anything innovative or interesting to RoRs? I just looked at both of their, err, CVs, and it looks more like the Java camp became mature, and less capable of supporting visionaries and cheerleaders, so they moved to the growing RoRs to take advantage of the greenness.
Dennis Forbes Send private email
Friday, September 01, 2006
 
 
Mike - you are really ignorant to make a statement like that. I know a lot of great developers who just know Java or .NET. If anything, they snub there nose at people that know things like Perl.
Patrick from an IBank Send private email
Friday, September 01, 2006
 
 
How can you respect a programmer who prefers ignorance to knowing Perl?

Perl is good to know, even when you're writing code in .NET, Java, PHP or half of Python.

Not knowing it can never be an *advantage*. Anecdotical evidence suggest that people who "snub their noses" at "other" technologies are like a fish on the land whenever their environment changes - because they're not used to learning new stuff (or the same stuff in another wrapper).
FUD
Friday, September 01, 2006
 
 
Chill down please...
Victor Send private email
Friday, September 01, 2006
 
 
you can think what you want and maybe that's the situation in your line of work. when i got this job i was teched on .net, asp.net, a little java script, and database sql. my point is for certain jobs (like mine) it doesn't matter!
Patrick from an IBank Send private email
Friday, September 01, 2006
 
 
>> How can you respect a programmer who prefers ignorance to knowing Perl?

I've worked around career programmers who didn't know much of anything about regular expressions - as in, how even a regexp library could pare down their cookie cutter text parsing code by 90%. I've also worked around developers who didn't ever want to deal with a command line. So their life is going "clicky, clicky" at a UI.

I guess it takes all types.
Bored Bystander Send private email
Friday, September 01, 2006
 
 
Didn't ever want to deal with a command line?

Wow. I met one of those once. He was... not great.

And I gotta say, when I learned regular expressions I had wondered how I ever did this for a living without knowing them. I don't think I ever had that tought about anything else I've picked up over the years.
Bart Park
Friday, September 01, 2006
 
 
">> How can you respect a programmer who prefers ignorance to knowing Perl?

I've worked around career programmers who didn't know much of anything about regular expressions - as in, how even a regexp library could pare down their cookie cutter text parsing code by 90%. I've also worked around developers who didn't ever want to deal with a command line. So their life is going "clicky, clicky" at a UI.

I guess it takes all types."

I may be misinterpreting the above post, but of the two ways to interpret, either way I disagree with the what is being said.

This might be saying:
1) "People who prefer ignorance to knowing Perl are people who don't understand regular expressions or use the command line"

2) "People who prefer ignorance to knowing Perl are just as bad who those people who go "clicky, clicky" at their UI"

If either (or both) of these meanings are intended, I completely disagree.  I *do* agree that a good programmer should know regular expressions and the power of the command line.  But for some reason it seems a lot of Perl programmers equate Perl with regular expressions that you can't RE without Perl.  Not true!  But a good programmer does not have to know Perl.  In fact, most of the best programmers I know avoid Perl as much as is humanly possible.

To paraphrase another previous poster, "A programmer that doesn't know at least one scripting language is not a good programmer."  There are simply things that you cannot do or take too much work using Java, C#, C++, etc.  Relying completely on existing tools and IDEs and not harnessing the power of the command line and automation via some scripting language is an immense hindrance to productivity.

But that being said, as a daily user of regular expressions and the command line, I am highly ignorant of Perl.  I first looked at it 9 years ago.  I went to several workshops, read the Camel book, etc to try to learn the language.  The language offended my sense of aesthetic.  The different contexts and special variables made it extremely hard to understand.  I wrote a thousand or so lines of Perl for a project.  I thought I was writing clean and basic Perl.  I went back 6 months later and I couldn't read it at all.

I think Dave Thomas of Pragmatic Programmer fame said it best in his blog entry "Glue That Doesn't Set" http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Tech/UnsetGlue.html

I am not a Ruby user, but I share his general sentiment.
Travis B. Hartwell Send private email
Friday, September 01, 2006
 
 
When I posted "I guess it takes all types" I meant that I have run into otherwise productive programmers who only comprehend and make use of about 5% of the computing landscape.

As far as Perl goes, it is fabulous for text processing and some fields such as medical research make extensive use of Perl for processing of experimental data sets. It also has deep roots in the web scene; 90% of the CGI around in the late 90s was Perl based.

I also don't know it very well. I flogged myself to pick up Perl a few years ago and gave up. So I say this not even being a big Perl user.

Times change, though. If Perl is not useful today, it's because so few people want to deal with it.

I think a real professional in any industry should know a lot about even dated and seemingly irrelevant technologies and issues, because of utilitarian reasons: once in a while there will come along a legacy system that demands that kind of understanding.

As well as professional breadth reasons: if you've been around the programming field for over 10 years you should bloody well know *something* other than, say, Microsoft's line of script and compiled languages, and you should have an idea of the technologies that preceded today's "wonders".

A real professional should have a degree of curiosity about the predecessors of current tech. I believe that narrowness is for newbies and the mediocre, and indicates either a newbie, or a non professional attitude.

IE: I think someone who works in this field for over 10 years who doesn't know what  a regular expression is, is kind of an idiot, and I find it distasteful working with people like this... I'll be diplomatic to their face, though... personal opinion.
Bored Bystander Send private email
Friday, September 01, 2006
 
 
BB,

You have insulted many people here :)
Rick Tang
Friday, September 01, 2006
 
 
If one is a self-taught programmer who has only work on MS platform, I'll say it's quite likely that the person don't know regular expression.
Rick Tang
Friday, September 01, 2006
 
 
BB

> It also has deep roots in the web scene; 90% of the CGI around in the late 90s was Perl based.
 
The question about Perl is given it had such a tremendous lead, why has it mind-share shrunk so much?  It almost makes you think that there must be something horribly wrong with it, if developers abandoned ship in droves.

(Nothing in ths post implies that it isn't worth learning Perl)
Sunil Tanna
Friday, September 01, 2006
 
 
I think there are two factor:

1. CGI -- yes, there is mod_perl but people are not well informed.

2. PHP -- It replaces Perl.
Rick Tang
Friday, September 01, 2006
 
 
When you say "A tremendous lead" is that something like being released in 1989 compared to Python in 1991?  So Perl is 17 or so and Python 15 or so (and tcl older than either of them - guess its "tremendous lead" didn't help for some reason).

Entering various keyword into www.jobserve.com gives the following results:

Perl - Results 1-20 of 985 Matching Jobs
Python - Results 1-20 of 181 Matching Jobs
Ruby -  Results 1-20 of 32 Matching Jobs
Tcl -  Results 1-20 of 49 Matching Jobs

Yep, I see Perl is way behind there.  I'd better brush up on my Python or Ruby for the no practical benefit they give me, pronto.

Reminds me of the guy that said C# is going to be the only language around in 10 years...

Friday, September 01, 2006
 
 
>> given it had such a tremendous lead, why has it mind-share shrunk so much?  It almost makes you think that there must be something horribly wrong with it, if developers abandoned ship in droves.

In terms of use as a scripting language, it's much more complex than Unix shell script, BAT files, awk, etc.

For web development, It's a single purpose language and required dual maintenance of code and HTML used in a project. ASP and PHP have eclipsed it.

It's hard to use compared to reasonable mainstream alternatives. 

I think that's as deep as it goes.
Bored Bystander Send private email
Friday, September 01, 2006
 
 
There is mason.

http://www.masonhq.com/?MasonPoweredSites

Perl is still used in a lot of places...

But not as many as PHP, ASP+.NET, JSP/servlet.
Rick Tang
Friday, September 01, 2006
 
 
The reason Perl's mind-share has shrunk is that is has been standing still, as a language.

It needed (needs) a clean modern object model and perhaps some simplification of the code, at least as a by-default option  ("use strict; use warnings; use sanity;" by default, and yes the last one I made up).

It needed basically to look at Ruby, back when it was _really_ a niche language 10 years ago, and copy it almost entirely, preserving compatibility with old libraries to the greatest extent possible.

Instead there was a huge rewrite effort, based on a plan to build a virtual machine that would run all other scripting languages, from tcl to python, and allow library sharing among the languages. Way too ambitious and utterly stalled.

The future of Perl now depends, I sh*t you not, on a skunkworks project to write Perl6 in Haskell.

The ambitious programmers, the sort who write cool Web frameworks, wanted real objects, so they left to write them in python and Ruby. Even though Perl has all the code needed for a really cool framework, none has shown up.

(There have been a few tries to build a Rails, all providing way wayyy too many options to the programmer to be useful, yet another example of Perl's self-defeating culture. TMTOWTDI, dangit.)
a Hack
Friday, September 01, 2006
 
 
Actually, I retract my comment about Perl's culture, which is its strongest suit. The bottom line problem is that Larry & Co. did not handle v6 properly, end of story, not that I am not eternally grateful to them for the many things they *did* do right.
a Hack
Friday, September 01, 2006
 
 
> Entering various keyword into www.jobserve.com gives the following results:  [Then stuff about Ruby, TCL, etc.]


Wrong comparison anonymous Dude!

It's ASP and its .net descendants, and PHP that have eaten Perl's lunch.
Sunil Tanna
Friday, September 01, 2006
 
 
Ruby was meant to be Matz's "more elegant" take on a scripting language.

Perl had been around before that.  Pearls, Rubies, gems ... get it?

My take on Joel's venture into somewhat "trollish" territory:

 http://sablog.com/archives/2006/09/01/respect-for-joel-spolsky-just-dropped-10-points
Shanti Braford Send private email
Friday, September 01, 2006
 
 
So, Sunil, try typing in PHP. When I did, I got 519 entries, about half the hits for Perl. Though, I have no idea whether that board is relevant.
a Hack
Friday, September 01, 2006
 
 
> So, Sunil, try typing in PHP. When I did, I got 519 entries, about half the hits for Perl. Though, I have no idea whether that board is relevant.

If you take jobserve as your ultimate guide to popularity (!!?!? which is a little crazy in itself)...

Try typing ASP.NET  - you get more hits than Perl

In any case, it supports my point

In 1995, you'd probably find web server scripts were 90%+ Perl, and the rest shell scripts or C

In 2006, the ratios of Perl: ASP.NET : PHP : Others are more like

1000: 1200 : 600 : 300

Which means Perl share is 1000 / ( 1000 + 1200 + 600 + 300 ) = 32%

So Perl's gone from over 90% of this market, to under 1/3

The fact: Perl has declined in popularity relative to other web development tools.
Sunil Tanna
Saturday, September 02, 2006
 
 
"So Perl's gone from over 90% of this market, to under 1/3"

Erm, yes... but that is because it isn't the only competitor in this space anymore.  Let me guess, you think C++ and Java are dying and/or there is something fundamentally wrong with them because their share of the enterprise is lower now that C# has been released?

Quick filling numbers in thingy:

1995:

10000 web developers
90% using perl
10% using shell / C / etc.

2006

5000000 web developers
32% using perl
68% using other stuff

Okay, the numbers are way off, but you probably get my point.

Did Perl become more or less popular here?
Anonymous Dude
Saturday, September 02, 2006
 
 
Well, this is one more reason why I don't intend to use Ruby any time soon: the fanatics.  Ruby is a religion.  People talk about "finding Ruby" the way those scary people at airports talk about "finding Jesus".  And when someone like Joel dares - DARES! - to point out that Ruby has problems with Unicode (the Rails wiki says "you use UTF8 at your own risk, and WILL get bugs", so Joel is right to be scared), is slower than any other major language (which it is, by a full order of magnitude), and is relatively immature (to say nothing of its advocates), suddenly out come the flaming torches and the zealots begin to bray for the blood of this blasphemer.

That's, like, exactly the sort of community I want to be associated with.  NOT.
Iago
Saturday, September 02, 2006
 
 
> Let me guess, you think C++ and Java are dying and/or there is something fundamentally wrong with them because their share of the enterprise is lower now that C# has been released

No I use C++. I personally dislike C# and Java, and always have since their inception (although I've program a fair amount of Java), even though I recognize their popularity.

BTW I never said Perl was dying. I just said that it's relative market share had declined.  You apparently agree that it has.  So what was your objection again?
Sunil Tanna
Saturday, September 02, 2006
 
 
Come on. Don't you think the inclkusion of them are cheapshots?

Especially the so called Wasabi is included at the end. There is no way it is better than Ruby.
Rick Tang
Saturday, September 02, 2006
 
 
"Especially the so called Wasabi is included at the end. There is no way it is better than Ruby."

So Ruby compiles to VB Script and PHP5 does it?

An F1 racing car isn't better than an SUV. An SUV isn't better than an F1 racing car. It's about what you want to do with it.

An SUV can go off road, take you to the shops and pick up the kids with very low regular maintenance. So, it's better? Well, not if you're Michael Schumacher. If he gets in an SUV, he's not going to win the race. He needs the hand-crafted, high maintenance car that does nothing but takes one person very fast around a flat racing circuit for 80 laps.
Tim Almond Send private email
Saturday, September 02, 2006
 
 
"It almost makes you think that there must be something horribly wrong with it [Perl], if developers abandoned ship in droves."

"I just said that it's relative market share had declined.  You apparently agree that it has.  So what was your objection again?"

My objection is that your initial quote from above says that developers have abandoned ship in droves which I don't think is the case.  My point was that relative mindshare can decrease while overall usage increases.

I'm not even a web developer any more so the discussion is not particularly relevant to me - I major in C++ with a minor in Perl.  However, Perl is a very useful tool in my toolbox.  I never come across a Unix box with Python pre-installed whereas all of them have Perl and as neither Ruby nor Python have any obvious advantages over Perl and the obvious disadvantage of not being easily available, why would I put the effort into learning either?
Anonymous Dude
Saturday, September 02, 2006
 
 
"So Ruby compiles to VB Script and PHP5 does it?"

Not yet :)

Hard to say ... 10 years old programming language should be better than an in-house language, no?

Joel must know what he wrote would stir up storm and instead of explained why in his case 'Wasabi' was an exception to the rules he ...

My opinion on Joel and people who support him sink to a new low! I'll never respond to his article anymore and I'll warn  everyone before they buy fogbugz to step back and think whether their precious bug database should be relied on Wasabi that no one knows and a company that can disappear anytime soon!

(It's just a joke, ok?)
Rick Tang
Saturday, September 02, 2006
 
 
The Power of the Tangent never ceases to amaze me.  My point originally was that one language does not fit all.  This theme has come up time and again in the responses here.  Still many of the responses seem to be trying to prove the best language.  Perl, for instance, is often a required skill for system administration jobs.  Why is that?  Because the programs they are writing are relativley straight forward text processing utilities.  As was mentioned Perl is already on the box, so lets use it.  On the other end of the spectrum I have worked professionally as a Perl developer maintaining over 100,000 lines of Perl code to pre-compile C code into the appropriate dialect of C for the OS/Database.  The code was quite maintainable, thought it did require a fair amount of discipline to keep it so.  I would not think of writing a screen scraping program in .Net, despite the fact that I am currently employed as a C# programmer.
I guess my final word on this is that the safe path, that Joel exposed on so much, is only safe for a little while.  C was once the only programming language you needed.  Then it was C++, then Java.  Now .Net is the 900 pound gorilla, but eventually that too will be eclipsed.  Microsoft will replace it, if no one else does.  Knowing more than one technology set opens ones mind to possibilities that you may not have seen.  Knowing Perl, means that I look for Regular Expression support in each language I learn, and usually find it.  Knowing Ruby and Rails means that I think about how I can use convention instead of configuration.  I don't always need TMTOWTDI.  If you want to be a really good developer one great way to do it is to learn why a language you dislike works the way it does.  This is not to say that you will be getting a Perl job any time soon, but it might cause you to ask why polymorphism doesn't take return type into account.

<pre>
Tanks for your support
  _      _      _ 
 /*\==  /*\==  /*\==
&lt;ooo&gt;  &lt;ooo&gt;  &lt;ooo&gt;
</pre>
Pat O Send private email
Tuesday, September 05, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz