News for hackers. Stuff that matters.
Re:PG on Java - comments from 2001 by javanix on Tuesday December 14, 2010 @11:20AM (#2004612)
Sort of ironic that all of his concerns were proven out, yet Java still managed to prove his prediction wrong.

Though his definition of success seems to be "would really good programmers (wizards) ever use this language for sweet projects? If yes, than this language is a success." By that metric I guess he would be correct.

Re:PG on Java - comments from 2001 by zmitri on Tuesday December 14, 2010 @11:33AM (#2004663)
I have to disagree. What about Hadoop, Solr/Lucene, Mahout, etc? Those are pretty sweet projects made in Java and I'd have to argue are pretty successful. I'll admit that I have listed all Apache projects, so would you then argue that Apache has been successful as opposed to Java?
Re:PG on Java - comments from 2001 by javanix on Tuesday December 14, 2010 @11:42AM (#2004700)
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.
Re:PG on Java - comments from 2001 by jbooth on Tuesday December 14, 2010 @11:47AM (#2004718)
What'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.

Re:PG on Java - comments from 2001 by javanix on Tuesday December 14, 2010 @12:09PM (#2004814)
What 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.

Re:PG on Java - comments from 2001 by EliRivers on Tuesday December 14, 2010 @12:16PM (#2004847)
"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.

Re:PG on Java - comments from 2001 by redthrowaway on Tuesday December 14, 2010 @12:20PM (#2004865)
Hasn'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.
Re:PG on Java - comments from 2001 by beagle3 on Tuesday December 14, 2010 @02:39PM (#2005428)
I 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.

Re:PG on Java - comments from 2001 by jbooth on Tuesday December 14, 2010 @04:14PM (#2005762)
It 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.
Re:PG on Java - comments from 2001 by beagle3 on Wednesday December 15, 2010 @11:59AM (#2008774)
That just puts an emphasis on what I said. If there are a lot of hidden things that can go wrong, then in any non-trivial application some of them do, and Java performance is on the average, horrible.

The bigger problem is that there's no reasonable way of figuring out what the problem might be.

And for the record, said code was a tight loop, created no objects, had the same kind of workload of a sort algorithm; The two nontrivial things about it was that it was accessing multiple simple vectors using the same index (non-idiomatic java), and that one of those vectors was a memory mapped buffer (non-idiomatic java, but essential because of the overuse of memory).

Re:PG on Java - comments from 2001 by steveklabnik on Tuesday December 14, 2010 @12:25PM (#2004891)
"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.

Re:PG on Java - comments from 2001 by jbooth on Tuesday December 14, 2010 @12:40PM (#2004951)
Yeah, funnily enough, over the last 15 years, Java's traversed the full spectrum of hater, from "script kiddie language that's too slow for real men's work like C", to "too much static typing and inflexible for rapid app development like Ruby"
Re:PG on Java - comments from 2001 by jey on Tuesday December 14, 2010 @11:52AM (#2004747)
No, 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

Re:PG on Java - comments from 2001 by jbooth on Tuesday December 14, 2010 @12:04PM (#2004796)
Well, 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.

Re:PG on Java - comments from 2001 by jey on Tuesday December 14, 2010 @01:05PM (#2005045)
Nobody 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.
Re:PG on Java - comments from 2001 by RyanMcGreal on Tuesday December 14, 2010 @11:41AM (#2004698)
I'd say PG's only real error in thinking was to underestimate the premium that enterprise customers place on planned mediocrity.
Re:PG on Java - comments from 2001 by chrisaycock on Tuesday December 14, 2010 @12:02PM (#2004787)
Java: write 10 lines where 1 would do.
Re:PG on Java - comments from 2001 by redthrowaway on Tuesday December 14, 2010 @12:16PM (#2004848)
Only compared to something like Python. It's slightly more verbose than C++, but not overly longer, on a LOC basis.
Re:PG on Java - comments from 2001 by steveklabnik on Tuesday December 14, 2010 @12:23PM (#2004885)
Maybe on a purely syntactical level, but culturally, Java seems to embrace verbosity.

You don't see C++ programmers making thousand-line XML-based build files, or creating FactorySingletonFactoryVisitors.

Re:PG on Java - comments from 2001 by haploid on Tuesday December 14, 2010 @12:47PM (#2004970)
Actually, yes you do. The original GoF was written with C++ in mind. Plenty of enterprise C++ code embraces heavy use of design patterns.
Re:PG on Java - comments from 2001 by quanticle on Tuesday December 14, 2010 @11:29AM (#2004646)
The one criticism that I don't agree with is, "The DoD likes it." The DoD is a huge place. Sure, most of it is extremely bureaucratic and planning oriented, but there are a few hacker friendly corners (DARPA, anyone?) here and there.

I also don't agree with his criticism of Ada. Yeah, Ada isn't a good choice if you're building a web app that needs to be out next week. But Ada wasn't ever intended to be used for that sort of software. Ada was designed to build absolutely reliable software. I'd rather have the Space Shuttle's control software written in Ada than Java.

Re:PG on Java - comments from 2001 by jeff95350 on Tuesday December 14, 2010 @01:05PM (#2005046)
"I'd rather have the Space Shuttle's control software written in Ada than Java."

That's what I was thinking, too. Was Ada really meant for "other people" to use? I wonder how many people involved in the process went on to write Ada afterward?

I don't know the facts, but I would guess that the critical system software writers in the US are a fairly small group, and anyone on that committee knew they would end up writing a lot of Ada afterward.

I doubt it was the same kind of "make a language for the masses" simply because there aren't masses of people capable of writing software for critical systems. I would guess that it had more to do with a mutual pact: programmers have to add extra annotation for interfaces and constraints; but in return they can absolutely rely on those interfaces and constraints because they know that the compiler enforces them.

Re:PG on Java - comments from 2001 by jasonjei on Tuesday December 14, 2010 @11:43AM (#2004702)
The DoD doesn't exactly promote a hacker culture in the civilian roles; however, depending on branch of service (e.g most likely not marines) and role (officers and above), there is latitude for creativity.

Of course, anyone who has worked the civilian side of DoD knows how bureaucratic it is, and I think pg is right to say that if DoD likes it, it's probably not a great sign. For instance, you can't submit invoices (you have to use a convoluted procurement application and enter it through a very 90s looking app). There are paperwork mandated by Congress and administrative agencies (GSA). And let's consider the Goliath that is DFAS. They use Oracle. And Oracle Forms.

Re:PG on Java - comments from 2001 by Zak on Tuesday December 14, 2010 @12:17PM (#2004855)
His other definition of success for languages is "will this language significantly influence languages we will use in several decades". I'm inclined to think Java won't, but it's going to be at least 20 years before we can really test that prediction.
Re:PG on Java - comments from 2001 by bluedevil2k on Tuesday December 14, 2010 @12:31PM (#2004915)
Java's influenced all the languages now built to run on the JVM. Groovy, Scala, Clojure. Not sure if these will be used in several decades, but the fact that there are several already around is a good sign. Not to mention that I can guarantee we will be using Java in several decades.
Re:PG on Java - comments from 2001 by Zak on Tuesday December 14, 2010 @01:25PM (#2005133)
Who's we? I doubt many hackers will be starting new projects in Java in 20 years. Sure, there will be plenty of legacy code around, just as there's plenty of COBOL around now.

I think Java's influence on Clojure is fairly small, and mostly visible around the places where the Clojure has to interoperate with Java libraries. I'm not sure what to call this - incidental influence, maybe?

Re:PG on Java - comments from 2001 by bluedevil2k on Tuesday December 14, 2010 @12:28PM (#2004900)
There are tons of sweet projects out there written in Java, and there are lots of really really good programmers out there in Java. Just cause you don't know them, or look up the projects, doesn't mean they don't exist.