Stories
Slash Boxes
Comments

News for nerds, stuff that matters

The Python Paradox, by Paul Graham

Posted by CmdrTaco on Thu Aug 12, 2004 02:40 PM
from the something-to-read dept.
GnuVince writes "Paul Graham has posted a new article to his website that he called "The Python Paradox" which refines the statements he made in "Great Hackers" about Python programmers being better hackers than Java programmers. He basically says that since Python is not the kind of language that lands you a job like Java, those who learn it seek more than simply financial benefits, they seek better tools. Very interesting read."
This discussion has been archived. No new comments can be posted.
The Python Paradox, by Paul Graham | Log In/Create an Account | Top | 726 comments (Spill at 50!) | Index Only | Search Discussion
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • nonsense... by mantera (Score:1) Thursday August 12 2004, @02:43PM
  • Shame. (Score:3, Funny)

    by Draconix (653959) on Thursday August 12 2004, @02:43PM (#9951677)
    (http://www.livejournal.com/users/kamdrimar/)
    Python is not the kind of language that lands you a job like Java

    Because otherwise, the business world would be that much less bass-ackwards.
  • I am positive... (Score:5, Funny)

    by That's Unpossible! (722232) on Thursday August 12 2004, @02:44PM (#9951683)
    ...a civil discussion will ensue.
    • Well, sure. What do you expect when we have a guy claiming not only that one language is better than another but also that it is better because the others because the users aren't greedy?I wonder how else we can pad programmer's egos based on completely subjective hypothesis on language choice?
      • Perl users have more dense social lives.
      • Ruby users have big, full beards chicks love to run their hands through.
      • VB users have sensible shoes and drive Toyotas.
      • C++ users enjoy a good mystery now and then.
      • PHP users probably own one or more Dremel multitools.
      • Javascripters are full of little trivia snippets and are great fun at parties.
      • Cold Fusion users are kind of quiet but have very deep thoughts.
      • SQL programmers have annoying laughs but are otherwise okay guys

      Oh, and C# users have bigger dicks. But that can be proven empirically.
      [ Parent ]
    • Re:I am positive... by amightywind (Score:3) Thursday August 12 2004, @04:06PM
    • 2 replies beneath your current threshold.
  • aiiii get them off my back!#@$#! by joeldg (Score:2) Thursday August 12 2004, @02:44PM
  • Yea (Score:5, Insightful)

    by jellomizer (103300) * on Thursday August 12 2004, @02:44PM (#9951690)
    (http://tsfraser.googlepages.com/index.html)
    Right on. I wish employers/customers would take a look at the verity of your programming skills and not the number of years programming in one language. So what if you have 10 years of programming VB. Even if you have to program a VB app if you see a person with 3 years experience in VB and 7 Years in a buch of other languages it shows that this guy know how to program and is flexible to work around problems. Unlike possibly the 10 year VB guy who knows all the prebuilt widgets but something outside those widgets becomes impossible for him. I can't even count the number of times I helped people program on languages that I never used before (and they were soposed to be the experts) (I even helped out the Microsoft Guy in the 2003 Linux world expo in .Net) It is because I know a lot of languages and I can use concepts from the different ones and relate it to different languages. I also hate it when a customer tells you that they need an application written in this language to do this. My view is use the correct language for the job and I hate being forced to use a language that is not well optimized for the job. It is like someone telling someone when they build a house that they have to use this screwdriver and only this screwdriver to build a house. Someone who is truly a professional knows the different tools available and will use them when needed.
    • Re:Yea (Score:5, Insightful)

      Along those same lines, there are usually many different ways to get the same job done. That's part of what I like about programming - finding the best (cheapest? most challenging? quickest? most efficient?) way to get something done. There's a challenge in it. A lot of employers don't look at it like that; they think programmers could be replaced by robots (or monkeys).
      [ Parent ]
      • Re:Yea by Dwonis (Score:2) Thursday August 12 2004, @05:41PM
        • Re:Yea by Tablizer (Score:1) Thursday August 12 2004, @11:34PM
        • Re:Yea by jnana (Score:1) Friday August 13 2004, @11:33AM
    • Re:Yea (Score:5, Insightful)

      by stratjakt (596332) on Thursday August 12 2004, @02:49PM (#9951747)
      (Last Journal: Sunday November 11, @09:31AM)
      Good programmers are good programmers period, and the best programmers dont crusade for their "favorite language". If routine/application X is best accomplished in ASM, C, Java, Snobol, Python, or brainfuck, then so be it.
      [ Parent ]
      • Re:Yea (Score:5, Funny)

        by Anonymous Coward on Thursday August 12 2004, @02:56PM (#9951839)
        I strongly suspect no routine/application exists which is "best" accomplished in brainfuck.
        [ Parent ]
        • Re:Yea by stratjakt (Score:2) Thursday August 12 2004, @03:01PM
          • Re:Yea by Inf0phreak (Score:3) Thursday August 12 2004, @03:35PM
        • Re:Yea (Score:5, Funny)

          by JPelorat (5320) on Thursday August 12 2004, @03:11PM (#9952028)
          Nearly all female subroutines appear to be written in it.
          [ Parent ]
          • Re:Yea - Ah man! by bstarrfield (Score:3) Thursday August 12 2004, @06:55PM
          • Re:Yea by mibus (Score:1) Thursday August 12 2004, @07:56PM
          • Re:Yea by SigmaEpsilonChi (Score:1) Friday August 13 2004, @12:14AM
        • Re:Yea by torpor (Score:1) Thursday August 12 2004, @04:13PM
          • Re:Yea by klmth (Score:2) Friday August 13 2004, @02:25AM
      • Re:Yea (Score:5, Funny)

        by Mateito (746185) on Thursday August 12 2004, @03:03PM (#9951929)
        (http://www.jwz.org/images/omgwtf.jpg)
        Except, when I call you into a "meet the client and wear a suit... okay, a tie then? Ok.. but at least put some shoes on" meeting, please please please don't tell them you've written their application in "brainfuck".

        (No, haven't had the experience, but I'm waiting for it)
        [ Parent ]
        • Re:Yea by RdsArts (Score:1) Thursday August 12 2004, @07:32PM
          • 1 reply beneath your current threshold.
      • I beg to differ by FudgePackinJesus (Score:1) Thursday August 12 2004, @03:52PM
      • 2 replies beneath your current threshold.
    • Re:Yea by JediTrainer (Score:2) Thursday August 12 2004, @02:52PM
      • Re:Yea by jellomizer (Score:2) Thursday August 12 2004, @02:54PM
        • Re:Yea (Score:4, Funny)

          by brunson (91995) * on Thursday August 12 2004, @03:10PM (#9952015)
          (http://www.brunson.com/)
          Perl is the vice grips of the programming world. Sure it'll do the job, but there's usually a better tool for it.
          [ Parent ]
          • Re:Yea by upsidedown_duck (Score:1) Thursday August 12 2004, @05:49PM
            • Re:Yea by Nataku564 (Score:1) Thursday August 12 2004, @08:06PM
          • 1 reply beneath your current threshold.
      • Re:Yea by Dwonis (Score:2) Thursday August 12 2004, @05:44PM
    • Re:Yea by BarryNorton (Score:1) Thursday August 12 2004, @03:13PM
    • My Job by RobPiano (Score:2) Thursday August 12 2004, @03:14PM
      • Re:My Job by morgajel (Score:1) Thursday August 12 2004, @03:29PM
    • Re:Yea by digerata (Score:2) Thursday August 12 2004, @03:15PM
      • Re:Yea by SageMusings (Score:1) Thursday August 12 2004, @07:14PM
    • Overheard on #twisted by xant (Score:2) Thursday August 12 2004, @03:23PM
    • Re:Yea by butane_bob2003 (Score:2) Thursday August 12 2004, @03:31PM
      • Re:Yea by nihilogos (Score:2) Thursday August 12 2004, @09:35PM
    • Re:Yea by anomalous cohort (Score:1) Thursday August 12 2004, @04:15PM
    • Re:Yea by aled (Score:2) Thursday August 12 2004, @05:49PM
    • Re:Yea by Anonymous Coward (Score:1) Thursday August 12 2004, @07:26PM
      • Re:Yea by Progoth (Score:2) Friday August 13 2004, @12:11AM
    • Re:Yea by Piquan (Score:2) Thursday August 12 2004, @09:28PM
    • Re:Yea by tehcyder (Score:1) Friday August 13 2004, @10:30AM
    • wrong analogy by aleax (Score:1) Wednesday August 25 2004, @11:03AM
    • Re:Yea by afd8856 (Score:1) Friday August 13 2004, @02:52AM
    • 2 replies beneath your current threshold.
  • Learning (Score:4, Interesting)

    by Klar (522420) * <curchin AT gmail DOT com> on Thursday August 12 2004, @02:44PM (#9951693)
    (http://www.curchin.org/ | Last Journal: Monday January 17 2005, @10:02PM)
    And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know.
    Well, not 100% true in all cases. For our major programming assignment in 2nd year, we were required to create a library in C, then impliment it and add some more functionality by using Python. This forced us to learn the language on our own. Which was a really good experience, and I really liked the language. I think more people who are java programmers should be trying Python for smaller programs, cause I was able to pump small programs out much faster than with Java..
  • Implementation is important (Score:5, Interesting)

    by gtrubetskoy (734033) * on Thursday August 12 2004, @02:45PM (#9951708)
    (http://www.openhosting.com/)
    I like Python because I can figure out what's going on. If you know C, then it is not hard to trace what happens at the lowest levels since the C-Python is written in a remarkably clean C and very well documented. So it's a simple, powerful, easy to read language where you have some assurance of being able to track down most problems. My experience with Java was quite the opposite - every Java book I read always had mysterious claims about threads, JVM, synchronization, garbage collection that seemed like some sort of "insider knowledge" and I was expected to just believe it. So I think it's not just about the language itself as much as it is about the implementation; for me at least.
    • Re:Implementation is important by Anonymous Coward (Score:1) Thursday August 12 2004, @03:17PM
    • Re:Implementation is important by YetAnotherAnonymousC (Score:3) Thursday August 12 2004, @03:21PM
    • Re:Implementation is important (Score:5, Insightful)

      by crazyphilman (609923) on Thursday August 12 2004, @03:21PM (#9952151)
      (Last Journal: Sunday January 08 2006, @06:08AM)
      Don't rely on Java books when you're judging it. Most (almost all) Java books are completely worthless. Before you think I'm a nut, let me explain.

      There's a mindset in corporate/professional comp sci I like to call "fat book syndrome". It works like this: a developer, usually a consultant, wants to be successful. So he spends time in Borders on a regular basis, buying new books with which he can expand his skills. Does he look at the thin, little books? No. He looks at the fat, weighty books. He reasons, "if I read that whole, big, fat book, I'll know everything and I'll be an alpha geek". Hence the increasing weight/volume of textbooks these days -- authors want their book to be the big, fat book the ambitious developer selects.

      Now, you've got two related effects here.

      First, the developer is adopting protective camoflage in the office, by building up a huge stockpile of big, fat books to match his fellow developer's stockpile of big, fat books. This is very similar to the United States and Russia building up their nuke stockpiles. Periodically, there's a crisis: "OH MY GOD" our hero will cry, "Dave just bought Design Patterns!" and he'll go to Borders after work and buy the latest boat anchor from the Gang of Four.

      The matching effect on the Author's side is, authors want to sell books. Developers are buying fatter and fatter books, so the authors want their latest books to be even fatter than the last set. So, the books are growing, and it's mostly protective camoflage just like the fat book collection on the developer's bookcase. There's a sort of symbiosis going on, if you think about it. Everyone's yelling "FATTER! FATTER!" so that soon, you'll need luggage to bring your newest books to work.

      Having said all that, what makes all this extra funny is, to learn any language, all you really need is a little review book (to master the syntax) and AN INTERNET CONNECTION. Wanna learn Java? Go to Barnes and Noble (those bookstores again) and get a lovely little book called "Java: Practical Guide for Programmers" by Zbigniew Sikora (it's 171 pages long, you can finish it in a couple of nights). Then, go online and read the Java tutorial, and any FAQs you can find on the various tools. Then start doing a project and consult the API reference.

      There's no need for all those big, dumb books. Most of them are crammed with nonsense filler, and the samples are only as good as the author is skilled as a programmer.

      Anyway, sorry to ramble for so long, but don't sell Java short just because all the books suck. The language itself is pretty nice. Get a SMALL book to get up to speed, dig around on the internet, and you'll find things a lot more friendly.

      [ Parent ]
    • Re:Implementation is important by dnoyeb (Score:2) Thursday August 12 2004, @05:22PM
    • Re:Implementation is important by Trinition (Score:2) Thursday August 12 2004, @09:14PM
    • Re:Implementation is important by julesh (Score:2) Friday August 13 2004, @04:50AM
    • 1 reply beneath your current threshold.
  • by wallclimber21 (563789) * on Thursday August 12 2004, @02:47PM (#9951724)
    We used to script most of our processes (digital chip design) with Perl. In reality, only a few people really bothered automating boring tasks. At one point I started writing everything in Python because of all the good reasons (readability, easy to learn and MUCH easier to maintain later on) and gradually spread the gospel. As very nice side effect is that my collegues are much more likely to get their hands dirty themselves and write scripts with it's useful. Anyway, as for the article: I think a language shouldn't only be beautiful in the way it allows one to express intent, but also or even much more so in the way it looks esthetically. This is one of the biggest problems I have with Lisp (after reading Paul Graham's other articles, I bought this ANSI Common Lisp Book and printed out out 'On Lisp'). It's a fascinating language, but it looks to incredibly dense. Sigh.
    • Re:Python made my collegues start writing scripts. by farmer11 (Score:1) Thursday August 12 2004, @03:01PM
    • Hmm, in which CAD system? by PaulBu (Score:2) Thursday August 12 2004, @03:15PM
    • Re:Python made my collegues start writing scripts. by frank_adrian314159 (Score:2) Thursday August 12 2004, @05:14PM
    • Python will go the way of Perl (Score:5, Interesting)

      by ajs (35943) <[moc.sja] [ta] [sja]> on Thursday August 12 2004, @09:59PM (#9955287)
      (http://www.ajs.com/~ajs/)
      First off, let me be clear: I like Python. I think the throw-back to the yesteryear of line-oriented programming with enforced indentation style is quaint, bordering on painful and that the ultra-dynamic typing without dynamic conversion is kind of a strange choice, but I like Python, and I intend to use it quite a bit.

      However, back in the "old days" (late 80s, early 90s), Perl too was a bastion of those who wanted to throw off the shackles of scripting (I hate when that word is mis-used to refer to interpreted languages). Perl was the way to start giving some real structure to all of those tasks like report printing and systems toolsmithing that had traditionally involved totally unmaintainable "scripts" which eventually had to be re-written in a low-level language.

      So what happened? Nothing really. Perl developed some nice features, but ultimately LOTS of bad programmers learned it and in a language that makes it easy for people to write programs, you quickly develop a robust collection of REALLY bad code (along with the really good). Just look at C for confirmation of that.

      Python is where Perl was in the early 90s now. Lots of folks who know bad code from good are using it, and it looks like the next great island to swim to. It's easy to look back at Perl and say "it was the dollar-signs that FORCED people to be bad coders," or to look at Java and say, "the low-level types are what SEDUCED people into writing crappy code."

      In reality it was the popularity and subsequent influx of bad programmers. Python is becoming popular and I guarantee that in about 5 years Python programmers will be listening to, "[Span, Ruby, something else] is so much better than Python... just look at how much cleaner the code is."

      I wonder if we'll ever figure out that joe blow who barely understands what programming is will always produce unmaintainable shlock, no matter what language he writes in and no matter what book on abstract modeling he's just read.
      [ Parent ]
  • That's all well and good... (Score:5, Funny)

    by lobsterGun (415085) on Thursday August 12 2004, @02:47PM (#9951726)

    I''ll be willing to buy his theory that python hackers are better than java hackers... ..so long as he buys my theory that lisp hackers are better than python hackers.

  • Python vs Java (Score:4, Interesting)

    by Dimwit (36756) * on Thursday August 12 2004, @02:47PM (#9951730)
    (http://www.deadpixi.com/)
    I think the main reason I write so much stuff in Python and pretty much nothing in Java is simple: Open source and comprehensive standard library.

    When I did have to write something in Java - well, better hope you have the right API. Oh, and what's the difference between the 3587324 different XML parsing packages? Oh and download Java Super Micro PDA Library! Only available for Solaris and Windows!

    The promise of "write-once-run-anywhere" was pretty much dead. Not that I was even going for portability - I just wanted it to run on Linux. And I wanted to do it without having to download Beans, Java DynamicManagement, Java Metadata, ad nauseum.

    Python, on the other hand, simply works. Sure, it doesn't have a standard GUI toolkit (although wxPython is pretty much the de facto standard now...), but it does everything I need it to do. With a clean, nice syntax, no less.

    Oh, and I still don't get how Java doesn't let you write a freakin routine to get the permissions on a file without resorting to writing a C function. Sure, it's not "portable", but just do what Perl and Python have done - on platforms with no permissions, return a sane default value. Don't just NOT include the function at all...

    Anyway, forgive my rant. Python - good standard library. Java - tons of confusing frameworks and platforms, etc, etc.
    • Re:Python vs Java (Score:5, Insightful)

      by Svennig (665498) on Thursday August 12 2004, @03:01PM (#9951909)
      To me, thats a very strange statement. The standard library of Java is, IMHO, one of the strongest around.

      If you combine the java Collections with the Jakarta Collections library then you have an almost unbeatable combination (beaten perhaps only by Lisp and its treatement of collections, lists etc).

      I admit that there are a myriad of redundant and (mostly) confusing and unnecessary standards. But you shouldn't complain that so many XML parsing toolkits exist, that gives you the freedom to choose the one thats right for a given application.

      And after all, isnt that what this is all about? Categorising one programmer as better than another because of their programming language is like saying that surgeons are better than barbarians. Both use blades, but you dont want to perform heart operations with a longsword!

      [ Parent ]
    • Standard class for file permissions... by SuperKendall (Score:2) Thursday August 12 2004, @03:08PM
    • Re:Python vs Java by tb()ne (Score:1) Thursday August 12 2004, @03:13PM
    • Re:Python vs Java (Score:5, Interesting)

      by abigor (540274) on Thursday August 12 2004, @03:44PM (#9952458)
      Also, take a look at PyQt for very nice Python bindings to the Qt library, and PyKDE for bindings to KDE. The latter is amazing: the excellence of Qt and the KDE libraries together with Python is quite a combination.

      In defence of Java, much of its library support is for use with big systems, like enterprise apps that run under J2EE servers. Python is nowhere near this level.

      Put simply, Java scales up; Python scales down. I think, however, that in the future, Python could pose a serious challenge to Java if an enterprise-level app framework is ever created for it. But Java has such huge momentum I doubt it will be toppled from the enterprise server throne anytime soon.
      [ Parent ]
    • more libaries = bad? by ndunn (Score:1) Thursday August 12 2004, @03:46PM
    • Re:Python vs Java by crazy.tyae (Score:1) Thursday August 12 2004, @03:56PM
    • Re:Python vs Java by mad.frog (Score:3) Thursday August 12 2004, @06:48PM
    • Re:Python vs Java by msevior (Score:2) Thursday August 12 2004, @08:53PM
    • Re:Python vs Java by Trinition (Score:1) Thursday August 12 2004, @09:47PM
    • RE:sig (the stars my destination) by Mycroft_VIII (Score:2) Saturday August 14 2004, @07:42PM
    • 1 reply beneath your current threshold.
  • Paul Graham is a language bigot by doinky (Score:1) Thursday August 12 2004, @02:48PM
  • cover all the bases! by MarkEst1973 (Score:2) Thursday August 12 2004, @02:48PM
    • Or Groovy... by SuperKendall (Score:2) Thursday August 12 2004, @03:13PM
      • Re:Or Groovy... by Monkey-Man2000 (Score:2) Thursday August 12 2004, @03:51PM
        • True... by SuperKendall (Score:2) Thursday August 12 2004, @05:35PM
    • Re:cover all the bases! by furball (Score:2) Thursday August 12 2004, @03:14PM
    • Re:cover all the bases! (Score:4, Insightful)

      by abigor (540274) on Thursday August 12 2004, @03:48PM (#9952507)
      Also, Python has an interactive prompt. This sounds like no big deal, but it is amazingly helpful when writing code to run little bits or even entire methods just to make sure things are correct. This makes the language even more Lisp-like.
      [ Parent ]
  • A nice, short article! by lpangelrob2 (Score:1) Thursday August 12 2004, @02:48PM
  • The way source code looks (Score:5, Interesting)

    by tcopeland (32225) * <tom.infoether@com> on Thursday August 12 2004, @02:49PM (#9951744)
    (http://tomcopeland.blogs.com/)
    Nicely put. Ruby:
    collection.each {|x| do_something(x) }
    or Java?
    for (Iterator i = collection.iterator(); i.hasNext();) {
    do_something((SomeType)i.next());
    }
    Given the choice, I'll go with Ruby [ruby-lang.org]...
  • Python in the workplace (Score:3, Informative)

    by jobeus (639434) <jobe-slash@j o b e u s .net> on Thursday August 12 2004, @02:49PM (#9951751)
    (http://jobe.ca/)
    Interestingly enough, knowing Python did get me a job... My company works a lot with Java too, but my job specifically deals with about 90% Python, and 10% Java... I never thought there was a use for it when I learned it in University...

    Too bad I'm maintaining code with two letter variable names all the time though, and now it's soured the language for me as well... heh.
  • Apples and oranges by mysterious_mark (Score:1) Thursday August 12 2004, @02:50PM
    • Re:Apples and oranges by tcopeland (Score:3) Thursday August 12 2004, @02:57PM
    • Apples and apples (Score:5, Interesting)

      by Dan Ost (415913) on Thursday August 12 2004, @03:08PM (#9951990)
      Hmm...let's see.
      Both languages have a virtual machine.
      Both languages can use JIT compilers for improved efficiency.
      Both languages support OO development.
      Both languages have large standard libraries.
      Both are turing complete.

      Even their performance is similar.

      Please explain how this is an inappropriate comparison.
      [ Parent ]
    • Re:Apples and oranges by pthisis (Score:3) Thursday August 12 2004, @03:30PM
    • Re:Apples and oranges (Score:5, Insightful)

      by dekeji (784080) on Thursday August 12 2004, @03:33PM (#9952331)
      Don't really see how you can compare a scripting language with an OO development language.

      Python clearly is an object-oriented development language; it even has multiple inheritance. Python is pretty close in its semantics to Smalltalk, and there are several native compilers and environments for Python. So, Python really is much more than a "scripting language".

      It's not clear that Java should even be called "object oriented". Alan Kay said "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." Well, Java's object system is even more restrictive than C++'s.

      So, yes, it does make sense to talk about Java and Python and compare them.
      [ Parent ]
    • Re:Apples and oranges by abigor (Score:2) Thursday August 12 2004, @03:55PM
    • Re:Apples and oranges by tb()ne (Score:1) Friday August 13 2004, @07:32AM
    • 1 reply beneath your current threshold.
  • by spookymonster (238226) on Thursday August 12 2004, @02:53PM (#9951795)
    We're both obscure AND poorly-paid!
  • Best tools... nonsense by l4m3z0r (Score:1) Thursday August 12 2004, @02:53PM
  • Python jobs - got resumes? (Score:4, Informative)

    by otisg (92803) on Thursday August 12 2004, @02:53PM (#9951802)
    (http://www.simpy.com/ | Last Journal: Tuesday April 15 2003, @12:58PM)
    Who says Python is not good for getting jobs? I know at least 2 places in New York City where you should send your resume, if you are a good Python hacker: http://www.wirelessgeneration.com/ and http://www.divmod.org/ (also .com).
  • hhhh by farmer11 (Score:2) Thursday August 12 2004, @02:53PM
    • Re:hhhh by CPlusPlusOwnsYou (Score:1) Thursday August 12 2004, @03:05PM
  • Java programmer's viewpoint (Score:4, Interesting)

    by MSBob (307239) on Thursday August 12 2004, @02:54PM (#9951818)
    Well, all I can say to Paul is "you're wrong". Java developers tend to stick with Java not because they are in mad love with Java the language but because they recognize that Java is bigger than the sum of its parts.

    The immense number of system and third party libraries is what keeps most Java developers coding Java. The close second is Java developer's tools. Until there is an IDE for Python that's as extensive, capable and sophisticated as Eclipse I'm going to stay with Java. Most Java development is in the enterprise server side space and the sheer amount of tools that Java offers is just mind boggling.

    Also us, enterprise developers tend to work in environments that are much more conservative from the technology standpoint (banking, insurance, brokerage). As far as I'm concerned it's a big win for us that we got Cobol elbowed out with Java. Trying to push the language of the month at those executives will cause us more harm than good.

    I know that Python has some very nice features (I read the tutorial) but it's hardly the sort of paradigm shift that merits ditching Java and rewriting everything because of some neat syntax flavoring. Besides Java is hardly a frozen language and we have some exciting stuff coming down the pipe here. JDK 1.5 will introduce shared VM model which may make java compeling on the desktop, more elaborate iterators, annotations (my favourie in 1.5), and generics (although without primitive types support they are kinda lame).

    Java is now frequently used in CS research as well. It looks almost certain that the next milestone in CS evolution will come in the form of Aspect Oriented Programming and AspectJ has been the leading implementation.

    Sometimes it feels that Paul G. just has an ax to grind into the collective Java community but I wonder how closely did he actually look at Java before dismissing it?

  • The Java Problem (Score:3, Interesting)

    by Ridgelift (228977) on Thursday August 12 2004, @02:56PM (#9951837)
    I'm a Python programmer. I never learned Java because I heard so many people complain about how many books and reference materials they need just to get things done.

    What I don't understand is why I even need Java? Jython let's me do pretty much everything Java can do, in a language that is a lot simpler that "fits in my head", not fits in a huge bookshelf. Sure I still need to know a bit about Java classes and such, but it's a lot less work than my friends who program in Java have to do. I feel sometimes like I'm watching people hike up to the top of a mountain every day, while I just take a 4x4 and get to the same place, but get there faster and with a lot less sweat and effort.

    Can anyone who codes both in Python and Java educate me?
    • Re:The Java Problem by tuffy (Score:1) Thursday August 12 2004, @03:04PM
    • Re:The Java Problem by SRMoore (Score:1) Thursday August 12 2004, @03:16PM
    • Re:The Java Problem by gl4ss (Score:2) Thursday August 12 2004, @03:21PM
    • Re:The Java Problem (Score:4, Interesting)

      by brunson (91995) * on Thursday August 12 2004, @03:22PM (#9952164)
      (http://www.brunson.com/)
      I'm a Python programmer, and I do know Java and I have developed in a J2EE environment and I have written EJBs and I have also been writing Perl for the last 15 years. And I have been a professional C developer and I know C++, Objective C, Fortran, Cobol, Ruby, Haskell, sed, awk, Korn shell, Bourne shell, DTKsh, C shell. I've written in just about every language you can name.

      And you know what? I think Python is the best.

      I'm more productive, it's more intuitive, it took three months of writing Python for me to dump Perl completely after using it for 12 years.
      [ Parent ]
    • Re:The Java Problem by LnxAddct (Score:1) Thursday August 12 2004, @03:41PM
    • Re:The Java Problem by pjt33 (Score:2) Thursday August 12 2004, @04:40PM
    • Re:The Java Problem by Trinition (Score:2) Thursday August 12 2004, @10:02PM
  • Confused (Score:3, Funny)

    by Ranx (28829) on Thursday August 12 2004, @02:59PM (#9951881)
    (http://www.bitstorm.org/edwin/en/)
    First we hear is't a huge disadvantage when a programmer doesn't know the business-side of software development. And now it's the other way around.

    I'm confused.
  • by Anonymous Coward on Thursday August 12 2004, @03:00PM (#9951897)
    I use Perl, Python, Ruby, Lisp, Scheme...

    Out of those, Python is probably the least Lisp-like, and the worst designed (well, okay, yes, Perl's design is *much* worst, but it can be massaged into doing lots of cool stuff).

    Yet PG brings it up all the time when he talks about Lisp. To me Lisp and Python are like night and day. How do you create anonymous functions and pass them as variables in Python? You can't, only "lambda *expressions*" which is a strange and arbitrary distinction. In Lisp, creating functions on the fly is the norm. Python doesn't have macros, or even blocks like smalltalk or Ruby, which again is one of the best things about Lisp, allowing you abstract and refactor the flow of code itself. In Python, you have arbitrary but fixed structures bolted on, like comprehensions, or tuples. In Lisp, you can create new constructs on the fly, using the same syntax as everything else.

    In my opinion Python is like the Java of the open source world: tons of people use it, they think it's great because it's a lot better than whatever they used last year (C++, Perl, etc), and they don't realize (or care) there are better languages that can help them work faster.

    Maybe Paul should adjust his spiel to simply say: the more obscure a language a person has mastered, the more likely he is a smart self-motivated programmer.

    But even that isn't true all the time...
  • Excellent article (Score:3, Interesting)

    by Chuck Bucket (142633) on Thursday August 12 2004, @03:02PM (#9951924)
    (http://pitchforkmedia.com/ | Last Journal: Tuesday March 23 2004, @09:08PM)
    Paul's Python summation is brilliant. As a Perl programmer who is embracing Python programming (for interest in *learning a better tool*...), I found his article to be the single most useful document on the internet about getting started with Python. Comparing structures to other languages helped greatly.

    By looking at the article I was able to quickly gauge the amount that I need to learn to learn basic Python... needless to say, it will not be a very far stretch. I am sure that I have a lot to learn, but this easily cut weeks of trial and error off of my learning curve. I can't thank him enough. I am excited.

    CVB(Neil P. Davis)
  • Python is great for guys like me.... (Score:5, Interesting)

    by StressGuy (472374) on Thursday August 12 2004, @03:03PM (#9951926)
    I'm not a programmer, I'm just an engineer who can do impressions when he has to. This language is relatively simple and organized and, with the growing number of math and scientific libraries available, it's becoming more and more a regular tool in my arsenal.

    I guess the point I'm making is that this language has a strong appeal to people like myself who are just looking to use it to solve problems and/or make problem solving tools. I don't know anything about Java, but maybe the reason that the author feels that Python has the better hackers is because Python, by virtue of it's simplicity and no-nonsense syntax, tends to attract your more "problem solver" type person.

    Just a thought.

  • by dot niet (629871) <MplsCpl@yahoo.com> on Thursday August 12 2004, @03:05PM (#9951956)
    about why Python hasn't gained acceptance in commercial software development circles. I find these last two articles nothing more than glorified flame bait. If some of the development community's best and brightest think this language is superior, why not drive an effort to help it put food on the table rather than relegate it to a tool that helps you write scripts to rotate witty quotes in your .plan file?

    Pardon me while I go build a better mouse trap, pontificate on how much better it is and what a great mouse catcher I am, and then put it in my hamster's cage to prove it.

  • Paradox? by Svennig (Score:2) Thursday August 12 2004, @03:07PM
    • Re:Paradox? by stratjakt (Score:2) Thursday August 12 2004, @03:13PM
      • Re:Paradox? by Svennig (Score:1) Thursday August 12 2004, @03:19PM
    • Re:Paradox? (Score:4, Insightful)

      by dekeji (784080) on Thursday August 12 2004, @03:37PM (#9952387)
      Thats fine, but maitainability might become an issue simply because it is hard to find the people that code in it.

      Maintainability becomes a problem when you hire the first guy off the street who only knows the fad-du-jour, Java or VB, for example. Using off-beat languages gives you a great deal of inherent quality control: people who interview for Python, Lisp, or ML jobs generally are of higher quality.

      No-ones been hurt by sticking with the mainstream.

      You can't have been on this planet very long: large groups of people behave in stupid and dangerous ways, whether it comes to politics or choice of programming languages.
      [ Parent ]
      • Re:Paradox? by gnovos (Score:2) Thursday August 12 2004, @11:00PM
    • Re:Paradox? by redfiveneo (Score:1) Thursday August 12 2004, @04:14PM
  • not always true by bobblebob (Score:1) Thursday August 12 2004, @03:13PM
  • Total nitpick (Score:5, Insightful)

    by nine-times (778537) <nine.times@gmail.com> on Thursday August 12 2004, @03:14PM (#9952053)
    (http://www.nine-times.org/)
    I'm nitpicking, but it's not a paradox. A paradox is something that must be untrue in order to be true, or something which can neither be true nor untrue at the same time, or must be true and untrue at the same time....

    Anyway, something like that. Here is the closest he comes to a paradox:

    ...the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job.

    First, employers are always looking for people who go above and beyond the bare-minimum, including people who like what they're doing enough to do it even when they aren't paid. That doesn't constitute a paradox. Second, as soon as people widely believe that it is a good standard for hiring programmers (meaning it really is the language to learn to get a job), people will start learning it merely to get a job, so I'm not sure his statement really even makes sense.

    So, while I'm not saying anything about his statement that python programmers are better (since I'm not a very good programmer in any sense, and wouldn't know to argue), describing it as a "paradox" seems like pseudo-intellectual camouflage for a "Python RULES!" article.

  • Why does it have to be a pissing contest? by rrangel (Score:1) Thursday August 12 2004, @03:15PM
  • or poor Paul by linuxislandsucks (Score:1) Thursday August 12 2004, @03:17PM
  • WHat turns me off Python (Score:3, Interesting)

    by SuperKendall (25149) * on Thursday August 12 2004, @03:20PM (#9952127)
    I personally find the main claim, that Python programmers are just naturally the smartest people on earth, to be rather offensive.

    I consider myself a pretty good programmer. I otherwise fit the criteria he lists in that I do a lot of programming for fun, and like to explore new languages...

    but not Python. And you know why? It sounds petty and stupid, but I just hate the whitespace indenting. I have always thought that perfect code readability relied on the felxibility to format certain sections of code differently than others, and the need to have indenting control grouping of statements has always been way too rigid for my tastes.

    So there you go, that's why one Java programmer is not into Python at all (not even Jython).
  • Since when does Java land you a better job? by callipygian-showsyst (Score:2) Thursday August 12 2004, @03:22PM
  • It's not the tools by nuggz (Score:2) Thursday August 12 2004, @03:24PM
  • Dumbest thing I've read in a while (Score:5, Insightful)

    by GreenCrackBaby (203293) on Thursday August 12 2004, @03:26PM (#9952226)
    (http://slashdot.org/)
    A couple years ago a venture capitalist friend told me about a new startup he was involved with. It sounded promising. But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer. When I heard this, I thought, these guys are doomed. One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT.


    Not trolling here, but this opinion piece is stupid. Hell, just look at that quote above. "He couldn't be a first rate hacker since he obviously chose NT voluntarily." According to the author, there's no way to succeed if you choose to build on NT.


    Knowing Python doesn't make you a "first rate hacker". Any decent programmer can pick up a language like python in a day or two. A good hacker (i.e. a programmer that a company would want to hire) is someone who can take their previous experience and apply that to the problem at hand, using the tools available. Saying "...but I know Python" is the same as saying "...but I know Assembly" when you have a bunch of C++ code to write.

    • by mav[LAG] (31387) on Thursday August 12 2004, @05:25PM (#9953476)
      Hell, just look at that quote above. "He couldn't be a first rate hacker since he obviously chose NT voluntarily." According to the author, there's no way to succeed if you choose to build on NT.

      That's not what he said. He said he couldn't be a first rate hacker. He's carefully defined what he thinks makes a first rate hacker leading up to this paragraph and then gives it as a counter-example.

      Knowing Python doesn't make you a "first rate hacker". Any decent programmer can pick up a language like python in a day or two.

      RTOFA. He says:
      And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know.
      Which makes them exactly the kind of programmers companies should want to hire.


      You claim:
      A good hacker (i.e. a programmer that a company would want to hire) is someone who can take their previous experience and apply that to the problem at hand, using the tools available.

      Graham says a first rate hacker would not be satisfied with just any tools and would probably think that their previous experience isn't worth a whole lot - even though in the eyes of other hackers it might be godlike stuff. I agree that what he says is contraversial and pushes a lot of people's buttons but be fair in your criticism.
      [ Parent ]
    • Re: Dumbest thing I've read in a while by akuzi (Score:2) Thursday August 12 2004, @05:40PM
      • 1 reply beneath your current threshold.
    • Re:Dumbest thing I've read in a while by nuonguy (Score:1) Thursday August 12 2004, @07:46PM
    • 2 replies beneath your current threshold.
  • Python & jobs by shadowmatter (Score:2) Thursday August 12 2004, @03:27PM
  • Hm. (Score:3, Funny)

    by cbiffle (211614) on Thursday August 12 2004, @03:29PM (#9952277)
    So, following this hypothesis, the tools for the Brainfuck programming language should be best of all? I've -never- seen a BF job posting.
  • apples to oranges by mrm677 (Score:2) Thursday August 12 2004, @03:35PM
  • It's about innovation, not language by ip (Score:2) Thursday August 12 2004, @03:37PM
  • just topped the ball; states the obvious by zztong (Score:1) Thursday August 12 2004, @03:39PM
  • Now he has pissed off *everybody* by Sloppy (Score:2) Thursday August 12 2004, @03:39PM
  • Horsefeathers! Horsefeathers I say! (Score:4, Insightful)

    by crazyphilman (609923) on Thursday August 12 2004, @03:40PM (#9952427)
    (Last Journal: Sunday January 08 2006, @06:08AM)
    I know religious wars are traditional here on Slashdot, but saying that Python is better than Java, or that Java is better than Python, well, it's like saying Audis are better than BMW's. It's a matter of personal taste, and no more than that.

    Name me ONE TASK that Python (or Java) can do that the other can't. There isn't one. Tell me which one is faster! On modern equipment, you won't notice any difference for most tasks. You'd have to find something massively computationally intensive to get any sort of reasonable comparison, and even then it would be tough.

    In the end, it comes down to this: what is your personal coding style? What sort of syntax are you most comfortable with? If you come from a scripting background, you'll probably like Python better. If you're coming from a C background and love those curly brackets and semicolons, you'll dig Java (that's my personal preference, by the way, I'm uncomfortable with using indentation to manage blocks, for example). Maybe something in one library or the other is attractive to you. Maybe you just want to use Open Source.

    It's all just a matter of taste.

    Having said that, the original article was dead wrong about one other thing. The idea that Python attracts "smarter coders" because they're doing it for the love of it is misguided. The reason is, there are smart coders writing for the love of both languages; Java only gets more idiots because there's money in it. So the author SHOULD have said "If you use Python, you'll get far fewer applicants, so it'll be easier to filter out the hacks".
  • Very poor reasoning by geophile (Score:2) Thursday August 12 2004, @03:48PM
  • by danielrm26 (567852) * on Thursday August 12 2004, @03:52PM (#9952555)
    (http://dmiessler.com/)
    Quite simply, those who do things becasue they love them tend to do them better than those who do them because they have to. So yes, this would seem to imply that those who use Python (a language that's just now gaining ground) tend to be more skilled than those who use Java (a language that can make you money). ...not a rule, per say, but I can see the potential for truth in it.
  • n00b question by Espectr0 (Score:2) Thursday August 12 2004, @04:02PM
  • Best tool for the job by foidulus (Score:2) Thursday August 12 2004, @04:07PM
  • Eh. by ForsakenRegex (Score:1) Thursday August 12 2004, @04:09PM
  • Language troubles by Animats (Score:2) Thursday August 12 2004, @04:16PM
  • Python programmers write better Java by iabervon (Score:2) Thursday August 12 2004, @04:20PM
  • by arhar (773548) on Thursday August 12 2004, @04:26PM (#9952942)
    (http://www.alexanderkharlamov.com/)
    From http://www.paulgraham.com/javacover.html [paulgraham.com] :

    I've never written a Java program, never more than glanced over reference books about it ...

    Do I need to add more?
  • The Reality by kaffiene (Score:2) Thursday August 12 2004, @04:32PM
  • I want my langauges COSHER by goon (Score:2) Thursday August 12 2004, @04:34PM
  • Eric Sink's reply by GeorgeMcBay (Score:2) Thursday August 12 2004, @05:08PM
  • Whatever. Right tool for the job. by roman_mir (Score:2) Thursday August 12 2004, @05:17PM
  • Auto mechanics by avandesande (Score:2) Thursday August 12 2004, @05:22PM
  • Flamebait!!! by adolfojp (Score:1) Thursday August 12 2004, @05:42PM
  • Bigotry (Score:3, Interesting)

    by Anonymous Coward on Thursday August 12 2004, @06:06PM (#9953810)
    The reasons I moved to Java are the very same reasons that Paul Graham describes as reasons that people use HIS favorite languages. I had had an early foray in Smalltalk, was heavily influenced by it and embraced Java as a chance to get away awful C++ (which I had studied heavily and worked with)..

    I embraced Java because I could finally program the OO way in it. C++ was supposedly OO, but didn't work quite right, and Java was an ok (not perfect) mainstream Smalltalk based language. The original team was fairly strict in the sense that it would not allow brain damaged C++ programmers to ruin the language (there was definitely a "purist" language design philosophy involved). Of course, in recent years they seem to have dropped that (see Java 1.5 generics, etc..)

    Now Python comes along... and Ruby too... they are nice, because among other things they bring us the Smalltalk philosophy of simplicity with Java lacked for marketing and acceptability reasons.

    I say.. what about Smalltalk itself??

    The reason I still stick with Java is:
    - Huge huge number of libraries
    - Good acceptability
    - Easier to convince my boss
    - etc..

    Pragmatic reasons.. not purist ones.

    I think a lot of Java programmers are the same.. Python is nice.. hope it catches on, but look we have this very mature platform in the meantime.

    Now P. Graham arguing about Perl as a good design vs. Java is just laughable. Sure, Perl is fast, Perl has regular expressions. But Perl has NO orthogonality, Perl is a write only language... it is not a language for people who like to read code.

    To me it just seems like Paul Graham is used to using Lisp, to running his code on Unix. Paul Graham probably runs emacs and has the Unix culture in him. He shouldn't confuse his Unix culture preference for scripting and languages similar to scripting, his preference for dynamic typing, his preference for the command line, his preference of being with a rebel as a real reason to bash the mainstream. It's just an illusive preference of his own.

    It's laughable for a Perl or C++ programmer to diss a designed language and say theirs is superior.. the only reason we listen to Graham is because of his Lisp background.

  • RTFA before posting a story. OMG. by Wolfier (Score:2) Thursday August 12 2004, @06:58PM
  • If She Weighs the Same as a Duck by Anonymous Coward (Score:1) Thursday August 12 2004, @06:58PM
  • The editors suck. by DynamiteNeon (Score:1) Thursday August 12 2004, @07:37PM
  • By Paul's logic... by cpu_fusion (Score:2) Thursday August 12 2004, @09:58PM
  • Syntactic Whitespace by gnovos (Score:2) Thursday August 12 2004, @10:31PM
  • The dumbest thing I've done... by Anonymous Coward (Score:1) Thursday August 12 2004, @11:27PM
  • Corporate strong-typing preference by Tablizer (Score:2) Thursday August 12 2004, @11:49PM
  • What he says may be true, but ... by chris_sawtell (Score:2) Friday August 13 2004, @02:31AM
  • They're Just Languages by okimsrazor (Score:1) Friday August 13 2004, @07:26AM
  • Language is but one part of the puzzle by Stu Charlton (Score:2) Friday August 13 2004, @08:03AM
  • Python is good because no-one will pay ... by JavaIsCool (Score:1) Saturday August 14 2004, @05:00PM
  • Re:FP by nyssa (Score:2) Thursday August 12 2004, @02:46PM
    • Re:FP by Rob Riggs (Score:1) Thursday August 12 2004, @02:55PM
    • 2 replies beneath your current threshold.
  • haha (repeated less times due to lameness filter) by Uber Banker (Score:1) Thursday August 12 2004, @02:55PM
  • Why I like Python (Score:3, Interesting)

    by brunson (91995) * on Thursday August 12 2004, @02:59PM (#9951875)
    (http://www.brunson.com/)

    I like python because it allows you to modify the behavior of the language constructs. It gives you hooks into what happens when you say 'print myvariable' or what goes on when you retrieve 'mydict[ "something" ]'.

    Much like operator overloading in C++, this allows you to write in the language of the problem, rather than the language of the language. So, if you're dealing with dates you can overload the minus operator to calculate the time between two dates when they are subtracted. Or if you are dealing with complex numbers your operators do the right thing when you add a complex and a real.

    Similarly, in Python you can create a database search object that behaves like an associative array. So, customer_id_search[ 10 ] goes to the database, retrieves the record for customer_id 10 and returns a DAO to be manipulated.

    Iterators and many other constructs help you in writing clear, concise, MAINTAINABLE, extensible and reusable code by allowing you to code clearly in the language of the problem you are trying to solve.

    Python Rules, Perl Sucks. ;-)
    [ Parent ]
  • by brunson (91995) * on Thursday August 12 2004, @03:01PM (#9951914)
    (http://www.brunson.com/)
    "Because it is not as strong a language or development platform as Java"

    Oh, bullshit.
    [ Parent ]
  • Yes by Arbogast_II (Score:2) Thursday August 12 2004, @03:03PM
  • Re: Check out his other essays too by Alwin Henseler (Score:2) Thursday August 12 2004, @03:04PM
  • Re:Who's Paul Graham? by notany (Score:1) Thursday August 12 2004, @03:12PM
  • Re:FP by stevedekorte (Score:1) Thursday August 12 2004, @03:55PM
    • 1 reply beneath your current threshold.
  • 20 replies beneath your current threshold.