Paul Graham on great hackers
When you decide what infrastructure to use for a project, you're not just making a technical decision. You're also making a social decision, and this may be the more important of the two. For example, if your company wants to write some software, it might seem a prudent choice to write it in Java. But when you choose a language, you're also choosing a community. The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python. And the quality of your hackers probably matters more than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages."
Posted Jul 29, 2004 15:18 UTC (Thu)
by davidw (guest, #947)
[Link] (6 responses)
I don't think Perl is really that healthy right now... I think it's going out of favor/fashion, but then so again so is everything else that is not part of the Java/.NET juggernaut.
Posted Jul 29, 2004 19:18 UTC (Thu)
by allesfresser (guest, #216)
[Link] (5 responses)
Posted Jul 29, 2004 20:05 UTC (Thu)
by davidw (guest, #947)
[Link] (4 responses)
Of course it's still useful, and I really like Paul's comments, but I think Perl is not really the standard to judge by any more. The most popular language right now is probably Python. But there is a huge amount of pressure to use Java for everything. They have managed to get a brand that open source languages don't have, and they have a ton of installed code at this point. Libs, courses, books, and so on. Of course, Paul's right, it tends to be a language that tries to keep stupid people from making mistakes in a large group, rather than helping out the clever ones. And meanwhile, here I am with Tcl... which I still think is a brilliant concept as far as a language. Don't tell me marketing doesn't matter, because bad marketing has hurt Tcl a lot.
Posted Jul 30, 2004 1:51 UTC (Fri)
by lm (guest, #6402)
[Link] (1 responses)
There are some efforts ongoing to try and fix the tcl/tk problem. Take a We use tcl/tk at BitMover (and we're actively looking for more developers scope { perl style regular expression so you can do if ($var =~ /*.o$/) { $var =~ s/junk/JUNK/ and we're wrestling with some sort of reasonable string/list indexing set elem [list index $list 5] If we can fix the parser to support this I'd love to be able to do set elem $list[5] (we've toyed with $list<5> which would be easier to implement but looks Anyway, tcl/tk isn't dead and we're working hard on making sure that it isn't. If you are interested in this sort of thing send me mail, I'm lm <at> bitmover.com.
Posted Jul 30, 2004 8:30 UTC (Fri)
by davidw (guest, #947)
[Link]
Image problems also matter to those who sell services based on something. It's pretty easy to find work doing Java (even if, as Mr. Graham puts so well, it's crappy work), but much harder to find Tcl jobs, or even sell products based on it. Word on the street is that you too have caught flack from customers who would prefer to see BitKeeper's GUI in Java instead of Tk, even though Java is no more native looking than Tk (as opposed to something like wxWindows).
Posted Jul 30, 2004 7:19 UTC (Fri)
by Cato (guest, #7643)
[Link] (1 responses)
Posted Jul 30, 2004 8:20 UTC (Fri)
by davidw (guest, #947)
[Link]
That said, I was talking about what I feel the trend is, which is away from Perl, towards Python, and in the web world, towards Java and PHP.
Posted Jul 29, 2004 16:02 UTC (Thu)
by lothar (guest, #14052)
[Link]
Posted Jul 29, 2004 16:23 UTC (Thu)
by larryr (guest, #4030)
[Link] (2 responses)
The fact that the author posits good hackers prefer Python to Java should tell you something about the relative merit of the essay.
Larry
Posted Jul 29, 2004 16:30 UTC (Thu)
by allesfresser (guest, #216)
[Link]
Posted Jul 29, 2004 17:07 UTC (Thu)
by ken (subscriber, #625)
[Link]
Posted Jul 29, 2004 16:28 UTC (Thu)
by AnswerGuy (guest, #1256)
[Link] (1 responses)
Overall I like his thinking --- but I do wonder at the audacity. I tend to agree that Java is the new Cobol; a language primarily useful for drone work while Python is a language for hackers --- expressive, powerful and elegant. JimD
Posted Jul 30, 2004 0:49 UTC (Fri)
by smc (guest, #23572)
[Link]
He was not the first to suggest Bayesian methods for spam filtering. In one of his essays, he mentions: "the first papers about Bayesian spam filtering per se seem to have been two given at the same conference in 1998, one by Pantel and Lin, and another by a group from Microsoft Research."
Posted Jul 29, 2004 17:36 UTC (Thu)
by ncm (guest, #165)
[Link]
They do have good coding puzzles, though. Tell them I sent you.
Posted Jul 29, 2004 18:08 UTC (Thu)
by tjc (guest, #137)
[Link] (8 responses)
It's a mistake to use Microsoft as a model, because their whole culture derives from that one lucky break. Microsoft is a bad data point.
Posted Jul 29, 2004 20:36 UTC (Thu)
by mbp (subscriber, #2737)
[Link] (7 responses)
To some extent, in the old days, Microsoft probably did have a strong culture of good hackers, though with a different emphasis. Now they've just got big and clumsy, as most institutions do eventually.
Posted Jul 29, 2004 21:44 UTC (Thu)
by tjc (guest, #137)
[Link] (4 responses)
Bill Gates saw the enormous potential for customer lock-in that proprietary software provides before anyone else did. Or at least he was the first one to exploit it successfully. I really don't think he just walked into it by luck, although he may have found it suprising how far he could take it. Looking back it's very unlikely that anyone will be able to exploit that same opportunity again. There are no more big fortunes to be made in proprietary software.
Posted Jul 29, 2004 21:59 UTC (Thu)
by mbp (subscriber, #2737)
[Link] (1 responses)
One of Microsoft's insights was that since software has no marginal reproduction cost, if you can charge a per-unit price you can make a lot of money. One of Open source's insights is that since the marginal cost is zero, a free market tends to drive the price down to zero, and it's good to look for other models than charging per copy.
Posted Jul 30, 2004 0:50 UTC (Fri)
by JoeBuck (subscriber, #2330)
[Link]
Microsoft's success depended on what is in hindsight a huge error by IBM: IBM did not insist on owning the OS for the IBM PC. If they had so insisted, Microsoft would have collected a one-time payment and consulting fees or else would have lost the business to someone else. Microsoft would then have been just one application developer among many for the PC, with no privileged position. That's what Paul Graham means when he writes: But VCs are mistaken to look for the next Microsoft, because no startup can be the next Microsoft unless some other company is prepared to bend over at just the right moment and be the next IBM.
Posted Jul 29, 2004 23:55 UTC (Thu)
by newren (subscriber, #5160)
[Link]
Microsoft absolutely and definitely came to their fortune by luck. Granted, it wasn't *just* luck--they've proven time and again that they know how to take great advantage of just about any situation--but nonetheless the fact that certain opportunities were even available at all is nothing short of mind-boggling.
Read http://www.vcnet.com/bms/features/serendipities.html for info about just how lucky they were. (Note that I don't see the last five points in that web page as being as big as they make them out to be, even though they still are important. But point one all by itself is enough to understand that Microsoft effectively won perhaps the largest lottery in history.)
Posted Jul 30, 2004 8:07 UTC (Fri)
by piman (guest, #8957)
[Link]
Until someone like Gates shows up and shows people how to do it again. Say, for example, Google...
Posted Jul 30, 2004 9:04 UTC (Fri)
by jeroen (guest, #12372)
[Link] (1 responses)
What great things have they hacked? AFAIK they only bought software. MS-DOS was bought, not created by them, for example. Other than that, I don't consider "the letter to the hobbyist" anything hacker-like. Hackers have certain ethics, Bill Gates doesn't have those.
Posted Jul 30, 2004 11:02 UTC (Fri)
by alland (guest, #23581)
[Link]
Billy boy created a BASIC implementation that ran on CP/M, along with M80/L80 assembler/linker, and F80 FORTRAN. None of these were any better than their latest products wrt bugs and "features". I was able to replace M80/L80 with a product from SLR Systems that was an order of magnitude faster, and did virtual linking to get a program that would fill 62 of the 64K memory space.
Posted Jul 30, 2004 8:51 UTC (Fri)
by lacostej (guest, #2760)
[Link] (10 responses)
Posted Jul 30, 2004 10:16 UTC (Fri)
by dh (subscriber, #153)
[Link] (4 responses)
Posted Jul 30, 2004 14:58 UTC (Fri)
by mikesalib (guest, #17162)
[Link]
> I personally do *not* like python at all. Might be because I think Um, why do you "*not* like python at all"? I don't think its because Python is an "interpreted scripting language" because: 1. There are no Python implementations that are interpreted; they all compile Python code into code for a Virtual Machine, just like the vast majority of Java implementations. The VM code is "interpreted" in a sense, but exactly the same thing is true of Java code. 2. I have never seen an objective definition of the term "scripting language" and would be delighted if you could provide one; the closest I can come up with is that scripting languages have VM implementations that start up quickly enough to make running small programs from the command line feasible. That criteria includes Python and excludes Java, but I doubt its what you had in mind. In any event, having a fast VM hardly seems like a great deficiency. I don't understand the line you're trying to draw between Python and Java at all; perhaps what bothers you is that one has static typing while the other has dynamic typing? To be fair, I don't think one can say that Java's type system is static given that it allows downcasting to Object and back...
Posted Jul 30, 2004 15:33 UTC (Fri)
by NAR (subscriber, #1313)
[Link] (2 responses)
Those syntax checks would be useful if Java would have templates. But it doesn't have (currently) so you have to cast a lot and even though there are static type checks you still end up with lots of ClassCastExceptions during runtime - not much of an improvement over Python or Perl.
faster execution
Really? It takes ages to start the Java VM and it starts with occupying 60MB of RAM - and the program hasn't done anything yet.
Posted Jul 30, 2004 16:03 UTC (Fri)
by lacostej (guest, #2760)
[Link] (1 responses)
You have generic coming with Java 5.0 (aka 1.5).
so you have to cast a lot and even though there are static type checks you still end up with lots of ClassCastExceptions during runtime - not much of an improvement over Python or Perl.
You can dynamically check the type of your class before casting (instanceof).
Those problems are developer errors anyway, and you can always use wrapper objects to enforce use of certain types if you need.
I hardly have ClassCastExceptions during development, because I make sure to adapt my coding to the limitations of the language.
Really? It takes ages to start the Java VM and it starts with occupying 60MB of RAM - and the program hasn't done anything yet.
It depends of the program and its uses. On my machine i start tomcat in less than 5 seconds. I don't consider that to be a problem. Especially as I don't start it often.
I don't mean to preach Java. There are things I don't like with it. It's far from perfect. It's history has been strange: targeted to program appliances (e.g. washing machines, ...) then born on the web (applets), made a (unsuccesful) approach with desktop programs, with now a focus on server side. It's "Learn once, Fit everywhere" is too monopolistic, and it's lack of support with external techno is s*cking big time (COM integration anyone?), and deployment problems (ClassLoader issues) are a pain.
But it's a nice tool, and it solves some problems very well...
Posted Jul 30, 2004 20:44 UTC (Fri)
by davidw (guest, #947)
[Link]
Which is exactly Paul Graham's point.
Posted Jul 30, 2004 10:38 UTC (Fri)
by davidw (guest, #947)
[Link] (3 responses)
I also don't like the fact that it doesn't want to play with anything that's not java.
Posted Jul 30, 2004 11:47 UTC (Fri)
by coriordan (guest, #7544)
[Link] (2 responses)
Greasing the sides of the pit to prevent escape is all part of the java trap. "If you make decisions about software -- or anything -- based solely on short-term cost and benefit, someone with a longer view can easily manoeuver you into a trap from which it is hard to escape." quote by same author, different source.
Posted Aug 5, 2004 9:34 UTC (Thu)
by halla (subscriber, #14185)
[Link]
Posted Aug 7, 2004 18:16 UTC (Sat)
by nix (subscriber, #2304)
[Link]
There is an `Emacs trap' in exactly the same way (except that it's free software, so you could add an FFI to it if you wanted to: the Emacs trap's sides are not greased).
Posted Jul 30, 2004 22:38 UTC (Fri)
by marduk (subscriber, #3831)
[Link]
Posted Aug 5, 2004 14:25 UTC (Thu)
by rwmj (subscriber, #5474)
[Link]
http://software.ericsink.com/entries/No_Great_Hackers.html
What a great article... I don't like Java, and Paul manages in some ways to put his finger on that feeling of "ick" that it gives me.Paul Graham on great hackers
Out of favor/fashion with who? People that believe banner ads? There's plenty of Perl and Python work being done--it just doesn't have a marketing department attached (and therefore probably gets more done with less hassle.)
Paul Graham on great hackers
I don't think Perl is growing as quickly as it used to be. In the late 90'ies, it seems, it was probably *the* open source programming language, after C. Remember when mod_perl was a happening web technology? I think Java and PHP blew it out of the water (the web).Paul Graham on great hackers
> And meanwhile, here I am with Tcl...Paul Graham on great hackers
look at http://tktable.sourceforge.net/tile/ and see if you like that
better. It ought to breath some life into tcl/tk as a toolkit.
who are local to the SF Bay Area, hint, hint) and we're looking at ways of
evolving the tcl language to make it more approachable to the average
programmer. We're looking at adding per object (command) anonymous
arrays (i.e., every object has an $widget array get foo and we'd like to
add a -> operator so you can do $widget->foo to mean $widget array get foo).
Other ideas include C style scoping rules so you can do
proc I_am_a_global proc {
}
private proc I_am_visiable_only_in_this_scope {
}
}
}
that is shorter than
pretty weird).
Tcl is far from dead, but it has an image problem. The technology is very, very solid stuff (large portions of the Tcl core are very nicely written C code) with a great idea behind it (a small repurposeable and extremely flexible scripting language). The problem is that there are negative perceptions about it in the open source world, and as a consequence, it has little "buzz". While this in and of itself doesn't matter, what matters a great deal is attracting new blood and people with innovative ideas to your platform, because of the network effects.Paul Graham on great hackers
Last time I looked, there were a lot more Perl than Python jobs advertised on the newsgroups. I think Perl is still far more popular than Python overall, with Python probably more popular amongst open source developers and perhaps Linux users writing new code.Paul Graham on great hackers
Sure, and there will be Perl jobs out there for a long time, lots of new projects written in Perl, and many happy Perl users in general.Paul Graham on great hackers
I really enjoyed this great artice. Like someone writes about my life - Paul Graham on great hackers
frightening :-)
I certainly will try to get a hand on the book.
Lothar
Re: Paul Graham on great hackers
the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages
Yes, the essay is quite good. :-)
Re: Paul Graham on great hackers
He only wanted a bigger audience than a fraction of the top 1% hackers that use lisp.
Or perhaps you thought he's more of an animal lover than a bean grinder.
Re: Paul Graham on great hackers
This would seem to be the same Paul Graham who wrote "A Plan for Spam" -- the essay which first proposed the use of Bayesian analysis for identifying (probable) spam.Paul Graham on great hackers
I could drone on about the criteria I'm using for each of those terms, but I shan't
> This would seem to be the same Paul Graham who wrote small correction
> "A Plan for Spam" -- the essay which first proposed
> the use of Bayesian analysis for identifying (probable)
> spam.
Probably he mentioned ITA just because it's about the only visible company besides Yahoo Stores that uses Lisp in production. (It's a funny sort of Lisp that goes to great lengths to avoid triggering a GC. ITA also uses a lot of C++ and Python.) Certainly ITA will never issue shares worth $36 billion.
ITA
I found this comment interesting:Paul Graham on great hackers - Microsoft
I like the essay, but that particular sentence smells a bit like "consider the real world as a special case". Paul Graham on great hackers - Microsoft
I think he's probably right -- Microsoft's success is not reproducible.Paul Graham on great hackers - Microsoft
He's right that it's not repeatedly. I humbly submit that he's wrong that it was just a lucky break: it was a pretty good insight, though maybe Gates was just lucky to be the first one to see it and ruthlessly exploit it.Paul Graham on great hackers - Microsoft
Paul Graham on great hackers - Microsoft
Paul Graham on great hackers - Microsoft
> There are no more big fortunes to be made in proprietary software.Paul Graham on great hackers - Microsoft
Paul Graham on great hackers - Microsoft
To some extent, in the old days, Microsoft probably did have a strong culture of good hackers, though with a different emphasis. Now they've just got big and clumsy, as most institutions do eventually.
>What great things have they hacked? AFAIK they only bought software. MS-DOS was bought, not created by them, for example.Paul Graham on great hackers - Microsoft
>
>Other than that, I don't consider "the letter to the hobbyist" anything hacker-like. Hackers have certain ethics, Bill Gates doesn't have those.
I agree with many points of the article, but am I the only one to think that some nice things can be achieved using Java? Or are the other ones afraid to speak, given the consensus in the first comments? :)
Java not that bad...
No, you are not. Java not that bad...
Once I switched a project from Python to Java: Better syntax,
precompilation and therefore syntax check before it is run, faster
execution, generally enhanced "nicelyness". Ok, it was back in 1997, but I
never regretted that step. The Java incarnation of the project is up and
healty until today - and will be for a long time (I hope).
I personally do *not* like python at all. Might be because I think
interpreted scripting languages to be always a bad choice for huge
projects - while they are second to nothing for smaller tasks!
Best regards,
Dirk
You know, Python will catch syntax errors at compilation. There are other errors (like mistyping a variable name) that C compilers do catch statically that Python only catches at runtime, but those aren't syntex errors. Looking back at all the bugs I've introduced in all the code I've ever written, none of the ones that mattered would have been caught by a C compiler. Perhaps your experience has been very different. Of course, much of my code had functional tests associated with it, which makes it a lot easier to quickly shake out the silly errors that C compilers catch but Python doesn't.Java not that bad...
> interpreted scripting languages to be always a bad choice for huge
> projects - while they are second to nothing for smaller tasks!
Once I switched a project from Python to Java: Better syntax,
precompilation and therefore syntax check before it is run
Java not that bad...
Those syntax checks would be useful if Java would have templates. But it doesn't have (currently)
Java not that bad...
"I hardly have ClassCastExceptions during development, because I make sure to adapt my coding to the limitations of the language."Java not that bad...
No, java certainly has its place, but I deeply resent having it shoved down my throat by a billion dollar marketing machine.Java not that bad...
Java not that bad...
I rather like java -- I don't have to worry about peformance hits by Java not that bad...
making things virtual for every method, I have packages, don't have header
files, explicit interfaces, garbage collection, a quite clear syntax and
so on. All nice to have. And native compilation and relatively easy
linking to existing C/C++ code.
On the other hand, I find I don't care all that much, in the end, whether
I do Qt programming in Java or in C++. The C++ annoyances are something to
shrug off and then continue coding. The Java advantages are not compelling
enough to start actually using it in real projects like Krita, even though
gcj, classpath and qtjava are just about mature enough for that.
What RMS doesn't say in there is that this is more a `VM with bad FFI trap' than anything else.
Java not that bad...
I don't think he was criticizing the langauge. I think he was merely contrasting hackers' enthusiasm of it versus others.Java not that bad...
For balance:
Paul Graham on great hackers
