Slashdot Mirror


Paul Graham On 'Great Hackers'

dcgrigsby writes "Always interesting, if not unbiased, Paul Graham has published a new article on 'Great Hackers', discussing why Perl and Python are apparently better than Java, on why Microsoft developers get offices, and a host of other sure-to-be-controversial stuff."

6 of 620 comments (clear)

  1. Re:Java by Jerf · · Score: 1, Flamebait

    I'm sorry, but Graham's dismissive attitude towards Java is evidence of extreme arrogance.

    Extreme arrogance is also a characteristic of great hackers.

    Or is it arrogance? Given the demonstrated and scientifically proven (repeatedly) wide variance between the top and the bottom programmers, well, think about what the claim "I'm ten times better than you" looks like to those on the bottom.

    It looks like arrogance.

    The claim is, nevertheless, true.

    Having programmed in Java, Python, Perl, and a motley variety of other languages, I've got to say, if you are happy in Java, especially after having tasted Perl or Python (or Ruby or Ocaml or whatever)... no, you're not one of the great and yes, they will sound arrogant. But their claims, nonetheless, will be true.

    (By "Java" I mean more-or-less straight Java. Load it up with Jython or AOP or Groovy and that's not really Java anymore.)

  2. What staggering arrogance! by Anonymous+Brave+Guy · · Score: 0, Flamebait

    I've heard the name Paul Graham before, but never really read anything by him until this. I don't think I'll bother again.

    A few of his key opinions may have merit. There really is a certain personality type who matches the characteristics he describes, IME, and given certain other character traits (people skills, for example), they really can be the most productive guys to work with. However, a lot of that article is simply stating his own highly prejudiced opinions as if facts. This was the giveaway:

    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.

    Right, because no original and very well designed software ever gets written by Windows hackers. In fact, no self-respecting hacker would even go near Windows, especially if he wanted to get paid so he could afford somewhere to live, or he was offered a job on an interesting, bleeding-edge development project. Go open source, Linux R0x0rz, yada yada, blah blah. After all, cloning a clone of a clone business or network app while accusing Microsoft of never innovating is much more L337. The guy's like a 13-year-old Slashbot wannabe, and you could summarise the content rather more concisely as "Y'know, INTPs often make good hackers."

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  3. Python? by pico303 · · Score: 0, Flamebait

    Could somebody once and for all please explain to me the wonderous appeal of Python? As somebody who's been stung one too many times by the freakin' tabs being out of whack, I just don't understand the appeal of Python. It's like Perl crossed with Java, with a smattering of idiocy. Whoever came up with the idea that hiding block delimiters from you would lead to better programming...sheesh! Guido should be ashamed of himself.

    Perl is messy but powerful. Java is elegant and great to maintain, but a little long-winded. Personally, I love Objective C: what C++ should have been.

  4. Re:I'm going to have to go with "blowhard" by KZigurs · · Score: 0, Flamebait

    you are using CS classes as an argument to show of your skill?

    Spectacular. We obey, o thy wise one!

  5. About Ocaml by master_p · · Score: 1, Flamebait

    I did not know this Ocaml language existed, so I googled it and found very interesting things. Here is the list of features Ocaml has:

    1 First-class functions: functions can be passed to other functions, received as arguments or returned as results.
    2 A powerful type system with parametric polymorphism and type inference: functions may have polymorphic types. It is possible to define a type of collections parameterized by the type of the elements, and functions operating over such collections. For instance, the sorting procedure for arrays is defined for any array, regardless of the type of its elements.
    3 User-definable data-types and pattern matching: the user can define new recursive data-types as a combination of record and variant types. More importantly, functions over such structures can be defined by pattern matching: a generalized case statement that allows the combination of multiple tests and multiple definitions of parts of the argument in a very compact way.
    4 Exceptions for error reporting and non-local control structures.
    5 Automatic memory management.

    Then I looked inside the site and checked out the numerous parameters. Well, guess what I found: not a single feature that C++ does not have!

    Ocaml is a mixture of ML and C++. ML is clean an nice for doing things the functional way, but imagine what a mess it can be when writing large imperative code with ML style! a total mess! unreadable horrible kludge, that after a while is as unreadable as APL...

    So, why should I use Ocaml? if I wanted to do imperative programming, C++ has all the features Ocaml has an even more. And imperative languages can be used for writing functional programs...the quicksort algorithm for example is about ten lines of code using tail recursion, but it is 10 times slower than the non-functional version(due to allocating new objects for left and right parts)!

    The Ocaml site (http://www.ocaml.org/) has the following moto at the top of its page:

    "The programming tool of choice for discriminating hackers"

    After having spent ten minutes with the language, anyone with good experience on C++ and Java can tell why Ocaml has never caught on, and will never will, for serious projects. It may be ok for hacking small things out, but for large projects, stay away.

  6. Re:So wrong it isn't even funny. by kaffiene · · Score: 0, Flamebait
    Garbage collection: Wrong! You can add GC to C and C++ (Google for the "Boehm" garbage collector)

    Gosh, really? I'm quite well aware of GC allocators for C++, but that hardly goes and retrospectively refits all your 3rd party library code to use it, now does it?

    Bounds checking in C/C++: Add a BoundsCheckedArray which supports the same operations as a native array, and you can use them almost interchangably.

    Ditto: the existence of smart ADTs doesn't cause all your third party code to be miraculously recoded to use it, now does it? OTOH, Java has that kind of safety through and through.

    You accepted that static typing is a maintability bonus and you avoided mentioning checked exceptions which I assume means you accept that point too. The existence of half-hearted tack-on imitations for C++ does more to prove that these basic features of Java are desirable features for maintainability

    The thing is, there is quite a difference between being designed from the core outwards for security and safety, and being retrofitted with features bolted on the side over the top of core code which will never share the new enhancements.

    The above leads me to believe that you have absolutely no idea what you're talking about or trolling.

    Yeah, well with 20 years coding experience and the majority of my professional career coding in C++, I'm just going to back that I do know what I'm talking about.

    Take a chill pill dude - C++ is a great language, but if you can't see its security and complexity failings then you've got a serious case of language bigotry going on. All languages have faults, and those are C++'s.