6 ms·
Agreed, there are certainly exceptions to the rule but I don't think anyone would put the level of Java's "hacker acceptance factor" anywhere near Python or Rub
by javanix 16y ago
Agreed, there are certainly exceptions to the rule but I don't think anyone would put the level of Java's "hacker acceptance factor" anywhere near Python or Ruby or the like.
- jbooth 16y agoWhat's the "hacker acceptance factor"? Is that "what do 22yo kids writing webapps and shopping for sailboats to buy after their big idea takes off think about this?" I mean, why should I care about that? Basically for the niche that Java fits in (networked, multi-threaded data-center applications where performance is important), it hits a sweet spot of ease-of-development compared to performance. C++ is a nightmare to code in, comparatively, and the scripting languages are either dog slow, have poor concurrency support or both. YMMV I guess.
- jey 16y agoNo, hacker doesn't mean "web-startup groupie". Hacker is more the opposite of the mindless corporate drone who's coding just for the paycheck. (Note: this doesn't mean hackers never work in the corporate world.) http://www.paulgraham.com/gba.html http://www.paulgraham.com/gba.html
- jbooth 16y agoWell, sorry if I insulted anyone, but I'd think worrying about the "hacker acceptance factor" of a piece of tech is awfully non-hackerish. You can write corporate drone type stuff in any language -- and you can write awesome code in any language. Java with a lot of immutability, closures (anonymous classes) and ExecutorServices is like a syntactically weird multi-threaded lisp. Very elegant. The language itself has something like 15 keywords, total. As the person said upthread, you can look at some horrible 2002 EJB webapps (and I'm sure you can find their equivalents in rails), or you can look at projects like Hadoop, Hbase, Cassandra, etc. In general, static languages are probably a bad idea for webapps or scripting -- that doesn't mean they're the province of drones.
- jey 16y agoNobody is "worrying" about the "hacker acceptance factor". It's just a fact that hackers interested in pleasant expressive coding are pretty unlikely to choose Java for their own projects.
- javanix 16y agoWhat is PG's so-called "hacker radar" if not some analogue to the "hacker acceptance factor" that I tried to allude to? People think that languages like Python and Ruby are "cooler" somehow than Java - that's all I was trying to get at. I don't think that I was making any judgments about the validity of that opinion, but I would say that it is fairly pervasive for better or for worse, and for many of the reasons that PG alluded to.
- EliRivers 16y ago"where performance is important" Really? I'm so out of touch. I always put Java down as something to use when performance wasn't important.
- redthrowaway 16y agoHasn't been that way for a long time. Early versions had problems, but they've almost all been ironed out, now. Its speed is similar to C++ for most tasks, faster at some and slower at others. The only real speed problem left is boot time for programs, but that's largely a non-issue for programs that are never closed.
- steveklabnik 16y ago"Speed" is also too generic a term. Startup speed of the jvm is still abysmal, isn't it? Once HotSpot kicks in, it's a different story.
- beagle3 16y agoI was falling for that rhetoric. then I actually tried to do some high performance computing in Java. After a lot of optimizing (and going to non-idiomatic code), it was only x4 slower than the C code it was replacing. The initial "straightforward, idiomatic" code was x10-x50 slower, and taking x5 more memory (which caused it to be totally unusable, as the C code used 1GB of memory, and the machine only had 2). The computation was really quite simple, but it had to be done a bajillion times. I suspect part of the reason that it was so slow is that the JIT was not inlining something it obviously should have. However, I was unable to find any tools that would help me figure out if that was the case or what the JIT was actually achieving (consulting with Java experts I know didn't give any insight or link to such tools). If you're telling yourself that "java is good for hi-performance computing", you aren't really concerned with speed or memory.
- jbooth 16y agoIt really depends on what you're doing. The quirks of the JVM mean there are a lot of hidden things you can do wrong and tank your performance.. JNI calls that you don't realize you're making, or suboptimal use of objects and creating GC debt. Some of the Java math libraries are randomly slow for certain inputs, as well.