| ||
|
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 |
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 :-).
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
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?
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. ;)
>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?
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#.
Dennis, I'll give you two: James Duncan Davidson - creator of Tomcat Bruce Tate - author of many Java books
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.
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.
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.
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
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!
>> 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.
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.
">> 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.
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.
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)
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.
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.
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
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.
"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?
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.
"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 _ _ _ /*\== /*\== /*\== <ooo> <ooo> <ooo> </pre> | |
Powered by FogBugz
