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."
It is slow, bloated and NOT FREE.
First post?
"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."
Let the flood of "Java is clunky and slow" posts ensue!
If anyone is interested in conversing with James Gosling one-on-one, he (amazingly) hangs out at DevShed.com in the forums, likes to aswer questions, and my guess is he knows what he's talking about when it comes to Java. Even more amazing is that as smart a guy as he is, his social skills leave a lot to be desired (read some of his posts in the Lounge).
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
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.
public class JavaLover extends Pedophile{
private Penis p;
public JavaLover(Child c){
p = new Penis(2);
c.insertIntoButthole(p);
}
}
class Penis{
private int length;
public Penis(int _length){
length = _length;
}
}
Also, why does Sun waste all the effort on NetBeans? I'm sure it's a very capable IDE, but isn't nearly everyone else using Eclipse? Where would Java or Eclipse be if Sun put all the engineering time from NetBeans into a more useful project? I guess here I don't see the value of the competition as much...
Agile Artisans
> (Sun CEO) McNealy: We absolutely underhyped [Java].
Uh, Scott; that's not the way the rest of us remember it.
Yep, it's been 10 years since Java was officially introduced. It should come as no surprise that I was being turned down for jobs 2 years ago because the jobs in question required 10 years of Java experience. (And 5 years of C#/.NET experience as well. And I think at least one required post-doctoral work in Physics, Astrology, and Film.)
1. Kudos to the Groovy authors. They've even garnered James Gosling's attention. If you write Java code and consider yourself even a little bit of a forward thinker, look up Groovy. It's a very important JSR (JSR-241 specifically).
2. He talks about Javascript solely from the point of view of the browser. Yes, I agree that Javascript is predominently implemented in a browser, but it's reach can be felt everywhere. Javascript == ActionScript (Flash scripting language). Javascript == CFScript (ColdFusion scripting language). Javascript object notation == Python object notation.
But what about Javascript and Rhino's inclusion in Java 6? I've been using Rhino as a server side language for a while now because Struts is way too verbose for my taste. I just want a thin glue layer between the web interface and my java components. I'm sick and tired of endless xml configuration (that means you, too, EJB!). A Rhino script on the server (with embedded Request, Response, Application, and Session objects) is the perfect glue that does not need xml configuration. (See also Groovy's Groovlets for a thin glue layer).
3. Javascript has been called Lisp in C's clothing. Javascript (via Rhino) will be included in Java 6. I also read that Java 6 will allow access to the parse trees created by the javac compiler (same link as Java 6 above).
Java is now Lisp? Paul Graham writes about 9 features that made Lisp unique when it debuted in the 50s. Access to the parse trees is one of the most advanced features of Lisp. He argues that when a language has all 9 features (and Java today is at about #5), you've not created a new language but a dialect of Lisp.
I am a Very Big Fan of dynamic languages that can flex like a pretzel to fit my problem domain. Is Java evolving to be that pretzel?
Netbeans is so cool. It has completely shed its molassas past, and is now an example of what can be great about Swing applications.
Java were as light and fluffy as this article. Unfortunately, it's like trying to run C++ programs through an interpreter on a machine at 3/4 of the power of the one you're using instead of actually compiling and tweaking it for maximum speed and efficiency.
I'm glad for them that they've gotten as far as they have, but they've got a long way to go before computing power catches up with being able to run the earliest Java applications at a reasonable speed and with proper reliability. I use Java apps at work and they are often slow and ponderous compared to similar apps written the normal way in C++.
Did I say often? I meant always. Lots of work to go yet.
If my grammar and spelling are off, I am [distracted/tired/careless] (take your pick)
I don't know what this "Gosling" is. But if Josh does it on Java, I hope he has the decency to do it behind closed doors. America's values are dropping low enough as it is.
-- The Church Lady.
See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
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.
He might forget stuff just like anyone else.
His java books are probably being used as doorstops.
Jython has been stable for years now, and is a much better-designed language than groovy appears likely to become. Where'sthe love?
It's been ten years since the official introduction of Java
And the damn thing still hasn't finished loading.
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.)
So you're executing script in a JVM?
Gosling: Yeah. All the Java libraries are available to things written in Groovy. And Java applications can use Groovy. They can incorporate Groovy scriptlets.
Scriptable Java! Why wasn't I informed?!? 0__0
Does anybody have any practical experience/advice using Groovy in a production environment?
If you're a typical corporate CTO, you know that you will have no shortage of either Java or .NET developers for the next 10 years or so, which means those are going to be the most important candidates for just about any project you're considering.
Gosling: "Java is a total bondage language. There is one way and only one way to solve your problem, and I like to make sure it requires 10x the coding of any other modern language. By the way Java is faster than C."
how to make the JVM start up in less than 2 minutes.
More likely driven by competition against MS.
.net "framework", their IDE and tools, their database, their webserver, their OS, etc. etc. and managers say you can't go wrong with that.
.net stuff seems less because something like JEE (J2EE) has a lot of little bits that are highly more configurable than in the MS world.
MS is a one stop shop. You get their
On the other hand, the complexity of some of the
I'm sure that's it because that's the type of feedback they've received from a lot of big companies (including the one I work in) and they are trying to make things easier.
That's why they have been working some much on Netbeans and EJB 3.0.
- sigs are for wimps.
I think the biggest selling point of Java was the cross-platform compatibility. However, 10 years later, I think that it is clear that this promise was largely a fraud. Java was a perhaps a good new platform for writing enterprise applications and applications for certain consumer niches for those developers who didn't want to deal with the unsafe languages like C or C++ or those who were fooled by Sun into believing that Java is the best thing since whatever, but cross-platform compatibility for large applications still remains problematic. For example, most vendors of fairly complex java applications I have seen, not only require you to use a certain version of OS and a web browser (if that's an applet) but also they demand a certain version of the java virtual machine is used and with certain patches on some operating systems. And if you don't meet their requirements, you often run into problems. I bet a python or a perl script would have fared much better in many of those settings as far as portability is concerned.
Why does this poor excuse for an interview get on slashdot, when my submitted story on Java Penis Pumps got rejected?
Maybe its the competetion from C#/ Open java (jcg), or the fact that the java programmers seem to be listening to developers http://www.java.net/ . Or maybe its eclipse which is a great ide. It seems java development is picking up steam of late. More people I know are now doing java than c , and thats a good change (&*&*&**&&*&!!!).
Uh, are you serious?
You're proably stretching the meaning of the word "real time". Components are probably written in Java, but the interrupt control or tight loop governing the "real time" aspects are probably written in another language.
Nice try, though.
Oh, if only 1/16 of the people here got that joke.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
But they seem to have figured out a couple decent uses for Java eventually.
There are other attacks, but most of the "exploits" are due to a buffer overflow (90% of all exploits? 95%?). Heck, if I'm am not mistaken it was a buffer overflow that put an end to the "x years without a hole in the default OpenBSD install" slogan :(
Now how many buffer overflow did happen in the JVM in the last 10 years?
I think the answer is zero. And if it's not zero, it's only some implementation of the JVM that was at fault.
For me it's all about the sandbox. Java, Jython, Groovy, you-name-it... I don't care. As long as it targets the JVM. It's tried, lean, mean, rock solid technology. You just ain't escaping it.
In TFA (yup, I did read it), Gosling says that "The only serious divide is they (C# / .Net) have this unsafe mode which they use a lot. One of the principles I believe in is there shouldn't be an unsafe mode."
That's a good principle to believe in.
How long were /. types calling OpenSolaris vaporware? :P You of all people should know that lack of public release does not equate lack of progress.
At least with Jython you can check the cvs log and see that commits are indeed happening.
Past: was proimising
Present: is confusing
Future: will end up a different animal of wha ti s is now.
Everytime java is discussed on slashdot, I'm amazed at how some junior leaguers try to dismiss it because they can point out one application where java is a poor choice.
There are some applications where it does not make sense to implement in java. However, I say that java is a great choice for the top layer of a web application server stack. There are a lot of web apps that take the form of:
1. Gather data from one or more databases.
2. Perform some consolidation and express the output in html.
In this example, java is a consolidator of data from disparate data sources. It needs to hang on to several network connections and do some simple IO but it does not need to burn the CPU at 100% because it spends most of it's time blocked on IO. Java is a great choice for applications like this because there is a very large and active community working to make java dynamic web serving better and better. Every year your organization can, for free, upgrade to a new version of java and simple app server like Tomcat and reap the rewards of the communities improvements. Also, in my experience with server applications, the promise of portability is real. I've ported from windows to solaris and then to linux without changing the java application.
Java is very important in the research community. I have been a grad student for past 3-4-5 yrs (..have lost count by now :) but I have never used any language other than Java for my projects/experiments . Be it simulation requiring a Knowledgebase of million RDF triples or be it a Medical Imaging Software to be used by Physicians.. it does it all.
Somehow 'application researchers' like me are fascinated by the extent of its use.. (drawing nice GUIs or plotting graph with existing Jars)
With regards to question of scaling..lately companies like IBM have been working towards creating optimized JIT compilers for Java.. I had benchmarked one during my internship at IBM Research.. and it gave nearly similar performance to native C/C++ apps.
As I was searching for some info about JBuilder, I stumbled across this juicy bit that I had not seen before.
a d_id=34246
Borland announces JBuilder Roadmap; future will be Eclipse-based
The jist of the story is that in the first half of 2006, JBuilder will ship a new version, code-named "Peloton", which will be completely Eclipse-based !!!
http://www.theserverside.com/news/thread.tss?thre
below is much of the article text in case it gets swamped.
Borland has announced their technical roadmap for JBuilder. Later this year Borland will ship JBuilder 2006 which will add shared code and shared debugging features. In the first half of 2006, JBuilder will ship a new version, code-named "Peloton", which will be completely Eclipse-based and add better dependency analysis features.
The shared code and debugging will allow developers in different locations to participate in shared coding and debugging, as though they were sitting down together in the same room.
The Eclipse news follows up from their February announcement of joining the Eclipse board and their intention to re-build their entire application life cycle management product suite on top of Eclipse. Borland sees Eclipse as an integration framework upon which they will be building JBuilder as well as their other products. By leveraging Eclipse, they can realize the cost savings of not having to worry about maintaining IDE functionality, and integration with other Borland tools, as well as gaining a larger audiece via Eclipse and benefitting from the large ecosystem of Eclipse tools.
According to Rob Cheng, director of developer solutions at Borland, the major new addition planned for Peloton will be a dependency analysis feature. It will be able to understand the dependencies between different artifacts in the project, such as the link between JSP's and struts controllers, EJB's and the persistence tier, without the user needing to configure these explicitly or switch views. Debugging will be improved - stepping into different tiers will be easier without end users needing to manually set additional breakpoints.
Code-name Peloton comes from a cycling metaphor, which is used to describe a group of cyclists who can ride faster together than they could individually, reflecting Borland's emphasis on team collabortation features in JBuilder.
Borland has not announced any pricing information, but they are looking into offering a separate 'distribution' of JBuilder on Eclipse all integrated to make it easy for corporate clients to deploy.
Borland chose Eclipse over Netbeans after watching industry momentum and listening to customers who think Eclipse will be their next major platform.
When asked about what their differentiators for JBuilder-Eclipse over Websphere Studio will be, Borland responded that WS Studio is focused on Websphere, whereas JBuilder supports multiple application server platforms.
Luis De La Rosa in his 2005 predictions suggested that Eclipse will become the Java community's answer to Visual Studio.NET, as a de facto IDE; this being a good thing for the Java community, as Eclipse will help build a market/ecosystem for development tools much like Visual Basic, which is the real goal that Sun wants to reach: 10 million developers using Java.
Borland's decision to join IBM in basing their IDE on Eclipse is certainly bringing us closer to that prediction! What do you think?
where do you get those numbers?
/ ide_marketshare.html
A quick search I did came up with very different numbers.
Eclipse - 45%
JBuilder - 16%
IDEA IntelliJ - 10%
netbeans was well below, at around 6-8%, hard to tell from the graph.
all others combined (including netbeans) make up less than 30%
In the light of the recent news that JBuilder is merging code with eclipse, I think netbeans is quite doomed !
here is the survey:
http://www.qa-systems.com/products/qstudioforjava
Gosling is one of the world's biggest asses. His ass is so big, it accounts for over 80% of his face. If there was any justice in the world, he would be known as "James Assling". Mainly because he is an ass.
My last name is Goslinga....
They entirely overhyped it in areas where it's relatively useless (the desktop) and entirely underhyped it in areas where it's extremely useful (backend and embedded areas).
Now ten years later you talk about "java" and all anyone remembers are those horrible, sluggish AWT applets, running on netscape 4.0's broken JVM, which they used during the initial Java hype push. But almost nobody these days knows about the success Java met in unglamorous areas after the hype push had died off.
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
Well you have to stop thinking for about one minute and 97 seconds before you fire up the command to start the JVM...
It's a good language. Not a great language, but an good one. Which is good enough.
The Java libraries range from mediocre to terrible, but that's a separate issue.
Thanks for grabbing more accurate numbers, I'm not sure where I got the Netbeans numbers from, I might have mixed them up with another IDE :) Regardless, JBuilder is crap, Eclipse is good but when compared to Netbeans, Eclipse looks like crap. My company was kind of standardized on Eclipse for god knows how long, but they always have let developers choose any IDE they want (just most used to choose Eclipse). In the past 3 or 4 months I've seen a lot of developers switching to NetBeans. I used to be an eclipse fan boy, but NetBeans really made a huge turn around from its old crappy self. It is literally years past Eclipse now. If word spreads enough about it, I can be pretty sure it'll beat any competition. If you've never used NetBeans please go give it a shot. I still use eclipse all the time in a mixed envrionment with NetBeans, simply because our dev environment has some custom eclipse stuff that we wrote that makes certain things easier. Eclipse is crap unless you just want basic editing capabilites with code completion, etc.. I know lots of folks who write java code using vim or jedit, I do myself sometimes. If you like writing java code in tools like vim, then you probably like the grunt work stuff and eclipse will be great for you. However, an IDE can be much more then what Eclipse provides and I didn't really realize that until recently when I started finding out all this great functionality that NetBeans has.
Regards,
Steve
Oh noes! I hates Java games!
Six characters long? It's three in Emacs (sop) with abbrevations.
Code completion, I have found, is slower than knowing what the hell you are typing. And if you DO know what the hell you are typing, then code completion actually sucks quite hard because it interrupts you while you are typing something.
Eclipse is nice for some things, I like the auto-fixes and sometimes load code into Eclipse after I've spent a while actually writing in Emacs. But for actual code creation I still find Emacs to be a lot quicker because of its overall flexibility in a task at hand, between macros and abbreviations and user-defined functions.
As for that cool trick of "show me all the places my constructor is invoked" - well that's what the JDE Cross Referencer is for:
JDE includes a facility for creating and utilizing a cross-referencing database to enable you to quickly locate all the callers of any particular function. This functionality is very useful for quickly figuring how unfamiliar code works, and useful for doing certain tasks such as renaming functions. Be advised that this only finds direct callers, and cannot detect calls via Java's reflection mechanism. The cross-reference database must be kept in sync with the project code, however the database generation is generally quick. The remainder of this section explains how to configure and use the cross-referencer.
(from the JDE Users Guide)
Of course Eclipse has the same liability about not finding callers that are really invoking a constructor dynmically which is why people don't end up using such features all that much.
Eclipse is the way of the future though, it's nice to see a really strong generic IDE platform develop. I have no doubt someday some clever person will embed a fully functional Java version of the Emacs editor (no the keybindings alone are not enough) in Eclipse and then I'll be all set.
People who use IntelliJ seem to like it a lot better though, I have to say.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The technology has faced numerous challenges over the last decade
Yes, like the fact that the original Java language spec was full of bugs. Problems like lack of reflection and errors in the type system (e.g., array), plus numerous security bugs, were just unforgivable.
Another obstacle was that Sun lied about what they were going to do with Java. They promised an ISO/ANSI/ECMA standardization, but instead, they kept it proprietary.
Gosling: The only serious divide is they have this unsafe mode which they use a lot. One of the principles I believe in is there shouldn't be an unsafe mode.
General purpose programming languages need an "unsafe" mode, and Java itself has one: it's called JNI. It's widely used, by Sun, by Eclipse, and by many other projects. How does Java's unsafe mode compare to C#'s "unsafe" mode? Java's unsafe mode sucks: because JNI relies on C or C++, it is not just unsafe, it is highly dangerous, and it requires recompilation between machines. With C#, you can tightly limit unsafe code to just the statements where it is needed, often just a single statement, with everything else in the unsafe module being as safe as pure Java. That is much preferable to having to code the same module entirely in C or C++.
Even in so called "pure" Java, you can screw yourself: write a ".so" file, then load it. You could implement C#'s unsafe that way if you wanted to, with runtime code generation. So, even so-called "pure" Java is as "unsafe" as C# because you can do the same things in it if you are willing to invest the effort.
What Gosling fails to understand is that the purpose of runtime safety is not to keep the programmer from doing something bad at all cost, it is to make it hard to do something bad accidentally. C#, just like Java, keeps the programmer from doing something bad accidentally, and C#, just like Java, gives applications themselves control over the safety of the modules they are willing to load.
I think Gosling should be kept far away from language or systems design. Gosling's major software systems (Gosling's Emacs, NeWS, and Java) all initially had grave design flaws and awful performance. With many of his systems, he demonstrated hostility towards notions of free and/or open source software (NeWS was meant to kill X11, and with Java, Sun misled people). The only reason Java eventually succeeded was because lots of people invested a lot of time and effort to fix up the mess that Gosling had created.
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!
well, to each their own.
:)
my company however, switched from netbeans to jbuilder, because of the vast increase in productivity due to a larger amount of functionality.
Given that netbeans is less than 8% market share (by those numbers) and is DECREASING in market share (from what I read, only Eclipse is increasing in market share) I suspect it is only time before it has such a small audience that IBM considers dropping it. Hopefully they wont but you never know.
Given that eclipse + jbuilder is already over 50%, when JBuilder officially integrates Eclipse code in 2006, I predict they will grow even faster.
Besides... Remember Betamax. Even if netbeans was better, that doesnt mean it will win... marketing is king in business
who the fuck are you?
Just a bunch of silly slashdotters whining about something they don't really know anything about. Like a bunch of old women complaining about things that are no longer relevent or applicable (no longer is about 5 years). Good grief, you morons sound like my mother.
Go back to php loosers!
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).
FYI, the apppalllingly missnamedd 'Plain Old Text' alllows HTML as wellll (alllthough youu ddiddn"tt use anyy here), so youu shouldd probabababbbly use itt for mosstt of yourr possttssttss.
Butttt, mosssstttt importttantttttly: Preview, PREVEIW, PERVEWI!!!!
PSSPSS, ittt"s 'whine' inn the Westttrenn hemosfeer, and 'whinge' in eht Eatstrennn himesphre. Lirn howww too sple, dikcheda.
(The preceding is an example of how annoying posts such as yours are to those of us who are actually literate.)
That survey is almost almost 2 years old. A lot has changed in 2 years.
"The survey was taken over a 5 week period from last week of August to the end of September 2003."
Decent language - a few things could be better. However my company has been shipping production scientific software in JAVA in 21st century and making lots of money. It reduces the cost supporting different computer platfrms and has good GUI tools compared to C++ based products.
JimmyGosling Then I think you are a little confused. I am going camping with this guy in a couple weeks and he is Absolutely not James Gosling. Maybe you mean someone else, but i doubt it. Anyway, good gor a laugh.
I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
1 and 3 are related. I agree that not having a decent integrated JSP editor bundled or available for free is a detriment. Then again, not everyone needs JSP editors.
;) I doubt 90+% of the java devs out there do either.
2. I don't see this as a negative.
5. Eclipse has had this since at least 3.0.
6. I prefer to pick and choose my Tomcat server version, thank you.
So, I see 2 items not freely available for Eclipse, and 1 of those is undesired by a large number of java devs.
The cesspool just got a check and balance.
As for inconvient GC cycles, that is the programmers fault. You have to do your own GC when you think you have time.
Programmers are not supposed to manage garbage collection themselves :- Calling System.gc() explicitly can actually decrease performance and is not recommended.
JVMs even have a -XX:+DisableExplicitGC flag to allow system administrators to workaround code that mistakenly assumes calling System.gc will help performance.
- Setting all references to null after they are not used is also not necessary in many cases. For temporary objects, or local variables, setting unused reference to null won't improve GC at all, because memory is freed when the garbage collector is running, not as soon as the reference is set to null. It is only in long lived objects that it is important to set a reference to null when it is not useful anymore (otherwise it causes a leak)
- For caching data, a cache could manage memory itself, for example by clearing automatically the least recently used entries. Or it could let the garbage collector manage it itself entirely, by storing soft or weak references to the cached data.
A JVM is highly optimized, and therefore it is often better to let it decide when to do garbage collector than to try to manage it in the code. However, if the JVM makes the wrong decisions (for example if it causes unacceptable application freezes), it can be tuned to make better decisions in the future. Several startup flags exist to control the garbage collector's behavior (for example change the frequency of collections, use parallel or concurrent GC algorithms, tune the memory reserved for the different GC generations). These startup options allows the programmers (or system administrator) much more control over performance than optimization they can do in their code.The JVM will only GC when its full...
Not exactly true, the JVM will separate memory in different GC generations and collect each of these generations when it is full. Objects that survive collection in a generation will be moved to the next generation. Objects that survive up to the last generation (old) are likely be permanent objects that are required for the application to run. Therefore, garbage collection on the old generation runs much less frequently than on younger generation, but takes longer to run. If too many objects survive up to this generation, it can also be an indication of a memory leak or a need for optimizing memory usage. The visualgc tool can be used to monitor the different generation's memory usages on Sun JVMs.
Did anyone else that the "ease of configuration" for building applications might be driven by the Ruby on Rails push?
This sentence no verb.
Jython's competition is Groovy. Groovy doesn't even have a stable DESIGN, let alone implementation.
The Java libraries range from mediocre to terrible, but that's a separate issue.
Are you on crack? Slam Java for whatever reason you want, but the libraries are widely agreed to be it's greatest strength. Even the libraries that aren't provided in the standard JDK tend to be standardized and very easy to use, javadoced to the hilt. Java's not my favorite, Smalltalk will always have me there, but just which language do you consider to have better built-in library support? C may have more options, but it's a dependency nightmare and libraries aren't nearly as clean, consistent and forward/backward compatible as the Java ones are. I can find easily find a free, well-implemented libary to do whatever I want in Java.