James Gosling on Java
prostoalex writes "It's been ten years since the official introduction of Java - a programming language combined with virtual machine and a class library. ZDNet published an interview with James Gosling, the creator of Java, who talks about the project's past, present and future."
Why the hell did the interviewer decide to turn it into a "how did/does/will Java work with MS technologies" diatribe?
I mean, theyre so disparate in ideaology, while I can understand some of the relationships, why on earth bring them up with the creator of a language that MS has deliberately shunned when they couldnt get it to work "their way"?
Very puzzling. Poor journalism in my opinion.
...both interiorlly, and exteriorlly.
Even more amazing is that as smart a guy as he is, his social skills leave a lot to be desired
;)
In what way is that amazing? I think that most of us here on Slashdot are in a reasonably high percentile when it comes to intelligence, and probably fewer than 10% of the members here have social skills any better than an 11-year-old girl's.
On a side note, I somehow doubt he's going to hang out at DevShed so much after your soon-to-be +5 comment generates traffic. Imagine the personal e-mail equivalent of a good, old-fashioned Slashdotting.
"I knew it was slow, but I figured computer power would eventually catch-up and run things at a reasonable speed. It appears I was wrong."
On the 10th anniversary of Java - a joke that was out of date 5 years ago. (And, I remember the same thing being said about C++ 20 years ago).
From TFA:
This is nit-picking, I know, but I was under the impression that scripting languages were actually defined by the presence of an actively-running interpreter during execution, making it possible to, e.g., construct and execute statements at runtime with things like PHP's exec() or Lua's do(file|string) functions (see: http://www.lua.org/pil/8.html for discussion on dofile and Lua's status as a scripting language). I wasn't aware that capability for rapid prototyping or language speed had anything to do with it.
Taking that into consideration, then, would Java with JIT qualify as an interpreted or compiled language? I'm not sure, myself---any thoughts?
That aside, a solid interview. Java looks to be pretty interesting; though in its current form it does bug the hell out of me (System.out.println()? Yeah, yeah, OO, but come on, three nested levels of scope just to get to a command line?), its progress has been impressive, and it's an innovative idea.
Furthering the off-topic rant, you're right.
Basically every job requires you to become a salesman. You sell yourself on a piece of paper, then come in to close the deal. News flash, employers: I'M NOT A SALESMAN, nor am I trying to be.
I sit behind a desk in a dark corner of your offices and make stuff work. Human interaction is a very small part of the deal. And there's no salesmanship at all. So... why do job interviews and the whole stupid hiring process treat me like I should be this expert salesman?
All they'll get from this process is some snake oil salesman pretending to be a systems administrator / programmer / IT person / etc that will have no idea what he is doing, but since he's such a MAGNIFICENT "people person", they look the other way!
But when *I* screw up, Mr. Anti-Social, it's not the same.
Complete crap. And yes, I, too, am fucking bitter. Sue me.
This is a sig. Deal with it.
Nobody writes Java with Vim or even Emacs JDE for very long. The productivity increase a real IDE like Eclipse provides is phenomenal. System.out.println is 6 or so characters of typing with code completion. (But the real win is being able to do things like say "show me all the places my constructor is invoked." Text searching isn't good enough when you have a million-line project.)
>>the fact that languages like java allow poor coders to produce code that kind of works rather than total failures probablly doesn't help the languages reputation either.>> As opposed to C++, which really separates the men from the boys when it fails totally transparently due to a pointer error several years after the product has shipped, resulting in 100,000 boxes getting owned. Good thing seg faults have long since chased all of the non-serious developers away from the language, so we have only our l33t hackers creating buffer overruns for our other l33t hackers to patch. >>and who would seriously wan't to release thier software as java bytecode when jad is arround?[sic]>> I'd imagine anyone who is big enough on open software to winge about not having a free-as-in-speech runtime environment (despite having free-as-in-beer ones readily available) wouldn't be too worried about the possibility of someone seeing, gasp, their source code.
Help poke pirates in the eyepatch, arr.
Don't worry. Binary XML will soak up far more compute cycles that CPU developers can possibly invent over the next 10 years.
What I've found is that people who are really, really sharp don't need to be assholes. They're smart, everyone knows they are smart, and they don't have anything to prove. It's the wanna-be's who try to pull off the "I'm a brooding genius" ploy that tend to be assholes.
There is a slight problem with your logic. 20 years ago C++ was barely a toddler. Nobody used it and it was not generally known to the public.
Nonsense. I was using C++ for development in 1985, as were many others. The c-front translator for C to C++ was released in 1983.
Since when has widespread use of a language been any measure of its performance?
Java on the other hand is 14 years old and people are still talking about its slowness.
Yes, because those who object to it not being open-source have a political agenda to rubbish it. Those of us who actually use it realise this talk is meaningless.
C++ was 14 around 1997 and was widely used and known for its high performance.
Doesn't that say something to you?
Yes, it shows that a lot of developers have a reactionary attitude, and it takes them a long time to adopt new technologies.
It took a long time before developers realised that this 'new-fangled' object oriented C++ could match the speed of C. Meanwhile, some of us had been using it for years.
Eclipse has 2,425,709 lines of Java code and runs on any J2SE 1.4 (or newer) compliant JRE from any vendor on many platforms (the essential parts of it will run even on PDAs). I don't think any scripting language would have been up to this task.
My opinion is that Java is the best thing that could have possibly happened in the software development field in the last 20 years. The fact that it is an openly specified object-oriented runtime suitable for a *huge* variety of configurations (desktop, middleware, embedded, etc) is a blessing. Developers have been able to learn one language and develop any kind of applications on any platforms (while reusing many of the skills). Also, vendors can target a much wider market when they do not have to focus on a single platform. Not mentioning that Linux owes a lot of its success to Java.
I can write java software that has a GUI, networking, database connectivity and port it between different OS's with ease. I know this because I have done it with several products.
Your post is FUD.
I agree with you 100%. The problem is that you've just epitomized "poor social skills" quite succinctly.
Not stupid at all. It's just that you lack social skills like the rest of us. As we've shown, the two are mutually exclusive. ;)
This reminds me of a newspaper article I read the other day. You possibly fall into the category of "competent jerk". People prefer a lovable fool, that's just the way the world works.
Fortunately being likable really isn't that difficult. Just a case of saying please and thankyou at the right times, and being patient with people, even if you know they're being morons.
Java should be great, but it isn't. For all the 'writeonce, run anywhere' gumpf that the marketing department came up with it failed in the most important test: usability. I can code pretty well in most languages, but as I work with Java, and was trained in Java at Uni, its the language I think most clearly in... unfortunately.
The fact is I can code a quick app in Java on my Mac, compile and send it my Dad on his Wintel and he won't have a clue what to do with it. I then have to spend 5 minutes on the phone explaining either how to install the JRE, or how to run it from the CLI. Whats worse is that once its running, it looks like I can't code, as Java, by default runs noticably slower as you wait for the JRE to bootstrap and then for the JIT to get all the important bits compiled. Why would I do that to myself?
Java is a great concept. But it has systematically failed on the desktop. What I want is a write once, compile anywhere. Same scenario, I want to have a compiler that I can target a Wintel platform from my mac and just send my dad the executable or installer, so all he has to do is double click - like he would any other app, and it run as well as a VB app (ie a little slower than native is fine). I would keep a few things from Java. I love GC for quick hack apps, fine grained memeory management has its place, but you can often feel like you reinventing the wheel, and its a gapping whole for the script kiddies to drive their payload through. I also love the central API. I can see the purists arguing against exceptions, but they do make debugging very easy, and they're not that expensive really. I also like the ease you can do threads. I don't like the GUI performance or the end user experience.
If MS isn't going to play ball, and support various runtime environments from a fresh install, or if Java continue on insisting on a 20MB JRE download I can't see anyway around the byte code problem except to distribute binaries. Qt is a good start. Mono and C# are good candidates, but to be honest I'd be tempted to take Java, bolt Qt onto it, and use GCC to create targeted binaries. Is that out of the question?
Scared of flying, pointy things snce 1979!
First of all, for some people it's surprisingly difficult to do just that. Social phobiae, anxiety disorders and similar disorders are surprisingly common, especially in the geek-population. For peopl e with one of these conditions, smalltalk is difficult and something rather avoided.
Secondly, The 'skill' is not just being able to have an information-sparse conversation about the weather. Smalltalk is the grease of social conduct. The simple fact that most people do prefer some talking about the weather, the Michael Jackson case or some lame movie before easing into more serious matters makes not wanting or being able to do just that a disadvantage in social conduct.
Unsafe mode was added to C# to allow the grandfathering of massive volumes of ill-behaved code into .NET systems. Microsoft does not like giving up old code bases.
And Sun, instead, creates millions of lines of untested, immature C code and adds it to their Sun Java implementation (just look at the Java2D code). Frankly, I trust even Microsoft's libraries more than that.
Microsoft's claim that sprinkling "unmanaged code" everywhere in your system is superior to linking to external libraries is very strange.
Unsafe statements are explicitly marked in C#, and they are limited to unsafe modules. C# is exactly the same as JNI in that regard, but C# provides you with a much better language to write JNI-like modules in, a language that is far safer than C/C++ even in unsafe mode, and a language that actually works across systems.
What does the phrase "tightly limit unsafe code to just the statements where it is needed, often just a single statement" mean? How can you limit something that can be everywhere?
It means that as a programmer developing a piece of code that needs to do something unsafe, it's better for me if I can compile almost all of my code in safe mode and only have a single line of unsafe code, than being forced to write an entire JNI module in C/C++.
Now they're claiming it's okay to put buffer overflow vulnerabilities in your code because it's convenient for the programmer. They just don't seem to understand security.
You keep confusing safety and security; safety is neither necessary nor sufficient for security. Most Java applications are, in fact, not secure at all.
C# supports runtime safety in a well-designed and time-tested framework, which is helpful for building secure systems. But forcing people to use only safe constructs does not improve security any further, it actually makes it worse.
'Probably' less than 10% of the male population as a whole have social skills any better than an 11-year-old girl's. It's unreasonable to hold men and women to the same standard in this area.
-- Ed Avis ed@membled.com
I never really bought the "social skills" bunk. I think chitchat and small talk is useless and stupid so I usually don't engage in it. Does this mean I don't have "social skills"? As long as you are articulate, and unless you are in public relations, fuck "social skills".
Stereotypical pseudo-rational geek attitude.
The inconsequential "chitchat and small talk" are the manner in which we find out more about the person we're dealing with before things get more serious, allowing us to "feel our way round" when we are unsure. This may apply to both strangers and people we're currently unsure of; don't bring on the heavy stuff first. They're the manner in which we show respect by asking questions about the other person that may not *directly* involve the business we have with them; of course, this may open up opportunities we hadn't considered, possibly leading to friendship and/or greater business involvement.
Not everyone is equally good at this. Not everyone places equal importance on it. That's part of the healthy mix of personalities that push some people to work in public-facing jobs, and others to work in more "human-phobic" areas (such as the more technical aspects of computer hardware). It's okay to not be a "small talk" person, as you are.
On the other hand, to criticise it for being "useless" (because it doesn't serve any obvious purpose) smacks of blinkered short-sightedness and the kind of (phoney) rationalisation of their own behaviour that geeks like to indulge in.
Frankly, the kind of people who come out with this kind of stuff probably consider themselves "rational". Actually, that displays a laughable (and verging-on-the-autistic) lack of self-awareness. Geeks are no more "rational" than a lot of other people; they have their own neuroses and obsessions that are obvious when you take a step back. For example, to use the same surface "rationalisation", what purpose does being fanatical about "Star Trek", an entirely fictitious TV show serve? None. Surely it's more rational or logical (*) to live in the real world.
Of course, the fan will explain how it represents the problems of today's world in a semi-abstract manner, blah blah... the more insightful will mention that it provides an outlet for the geek personality type. Point is; if they are forced to explain it in depth, they'll put the effort into considering their own behaviour that they won't even waste considering anyone else's. (Although they won't explain it as an excuse to escape the real world or dress in fantasy costumes; that would be too close to the bone).
So, to get back to the point, your failure to even recognise the purpose of small talk (whether you like it or not) smacks of the most arrogant and deluded abuse of rationality to justify your own shortcomings and behaviour.
(*) Reminds me of a friend I had in my early teens who was into sci-fi, had a crap geeky sense-of-humour and an obsession with Spock and "logic". He was no more logical than anyone else; in fact, sometimes he was downright weird. In retrospect, I reckon he was (slightly) autistic in some form.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
Yes, it's practical for some applications. Just like Delphi, or Eiffel, or Haskell. It's a decent, somewhat specialised language that's worth knowing and using where appropriate. However, that's not the public perception of it, that's not the PHB perception of it. Java is an enormous triumph of marketing. People think things are better because they're java. People think arbitrary programs would be better if rewritten in java, where it only makes them worse. I will stop dissing java when people stop thinking it's the best thing since sliced bread, the new C++, the basic language everyone should know.
I am trolling
Comparisons to C++ are a red herring, languages have moved on since then. Python is both far faster to write (5-10x) and faster in actual use (since the performance-critical extensions are C/C++, wheras all but the very basics of the Java class library are done in Java.
I am trolling
Pretty worthless consultant. I have ten years of experience with Java, having used it since it was an alpha version, and I wasn't alone in those days.
And most skilled developers with long experience do NOT have CS degrees, as most skilled artists don't have art degrees. Those of us from a physics background tend to bring more math skills to a job than those with CS degrees. Those with degrees in other domains are also frequently more valuable that CS degree holders, since most development tasks are more about the problem to be solved than about the computers.
There are certainly tasks where the computer is the domain--compiler writing or algorithmically challenging problems, for example--but the CS degree is just another domain specialty. Software is used for everything these days: medicine, art, music, genealogy, archaeology, astronomy, etc. It is ridiculous to assume that software development is exclusively a problem in the CS domain.
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."