2007 Java Predictions
jg21 writes "Java Developer's Journal has published the results of its end-of-year poll of various Internet technology players, from its own internal editors to industry high-ups like the founder of Apress, Gary Cornell, and including too the thoughts of professor Tony Wasserman of Carnegie Mellon West. Participants were asked to foretell what they saw happening in 2007. Among the predictions — Cornell: 'The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#'; Wasserman: 'The use of the GPL 2 for open-sourcing Java will inhibit the completion and acceptance of the GPL 3 proposal'; and Rails creator David Heinemeier Hansson: 'The stigma of being a Web programmer still using Windows will increase.'"
I read this on a messageboard years ago, it still makes me laugh to this day:
No one uses Java anymore, it's all flash these days.
Summation 2
When the the Boston Globe was asked about the decline of JAVA to dynamic languages their reply was to "stop using JAVA"
David Heinemeier Hansson: 'The stigma of being a Web programmer still using Windows will increase.'
I guess we can say the same about those snobby pre-teen emo kids using the Mac.
Java dead? Tell developers who use Eclipse that.
Open Source Drum Kit, LPLC deve board - mjhdesigns.com
JAVA is dying.
--
BoD
BoD
We can't wait until Java is included in Debian. It'll simplify our maintenance quote a bit, for we have a ton of Java apps, our whole business runs on Java.
As for Ruby... well, Ruby's fine but now we have even less resons to consider it. See, for example, "Ruby's rotting" article.
Attaching a stigma to certain platforms or technologies for certain jobs is just stupid and childish. Are we going to start lambasting publishers that don't use Macs next, or Linux users that do accounting on their machines? Bizarre...
If Java has that kinds of HW requirements then what HW does TiVo have inside? People are talking about buying a PS3 just to get a Cell processor. Forget PS3 I'm getting a TiVo.
Hansson's prediction was that Apple will become the development platform of choice for techies and, consequently, other developers will laugh at any web devs saddled with using a Windows based laptop.
...by Richard Monson-Haefel
...funniest stuff I've read in a very long time.
Award-Winning Author & Senior Analyst, Burton Group
1. Jonathan Schwartz open-sources Sun Microsystems.
In a move that will surprise everyone Sun Microsystems will announce that it will open source its entire company. Sales, marketing, finance, and even operations will be open to the community for anyone to contribute.
2. Apple computer announces the iPod Uno.
The size of a match stick with no screen or controls, the iPod Uno plays one song in a constant loop. Despite its limited capabilities, the tiny device becomes an instant hit and a cultural icon.
3. In what is heralded as the seminal article on the subject, Tim Berners-Lee mentions "IT2"
Overnight the term morphs into "IT 2.0," spawning thousands of blog entries and press articles, a dozen books, five conferences, and millions of dollars in venture capital. It turns out that the original article, incomprehensible to most readers, was actually another attempt to explain the Semantic Web and the IT2 reference was just a typo.
4. Microsoft will create the first CMO (Chief Marketing Officer) position.
The new CMO will immediately change his own title to Chief Command & Control of Packaging Officer (C3PO) and then announce that Vista will be delayed and renamed Microsoft Virtualization Application Program Operating system Reloaded (Microsoft VAPOR).
"Sun did exactly what we wanted with Java. It still sux0r!"
OK, we all know how useful and accurate these predictions tend to be, but since it's that time of year...
The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#.
That depends on what market we are talking about. Open sourcing Java will make a MASSIVE difference in terms of Java's appeal to the open source development community. Whether this translates to more Java software or not I don't know, but there are already some very good programs in Java that are open source (Jedit http://jedit.sourceforge.net/, Jabref http://jabref.sourceforge.net/ and JaxoDraw http://jaxodraw.sourceforge.net/ come readily to mind). Seamless integration with Linux distributions has the potential to make it a much more popular language, and may also result in usability improvements to the environment itself.
Other languages will grow of course, but I would personally be surprised if Java fades too much except perhaps as the "new toy". There is a LOT of Java code out there, and it is doing important work.
The use of the GPL 2 for open-sourcing Java will inhibit the completion and acceptance of the GPL 3 proposal.
I don't understand this. GPL3 will go forward as it is going forward now, with much discussion - I can't imagine any issues Java would raise that aren't already being raised. Anybody with more knowledge of the process and Java know what he's saying here?
Now, just to get into the swing of things, my predictions:
a) Every major Linux distribution will deploy Sun's JRE as a core system component soon after a full open source release is made. Allow six months to replace any pieces that could not be released due to copyright/license issues. The Sun JDK will also see large scale integration.
b) Open source software written in Java that already exists will get a boost in interest and visibility, as it is no longer using a language that is non-free.
c) Graphics performance and native appearance of widgets will be a major focus of interest and effort, possibly resulting in Java applications becoming better integrated visually with the desktop. This may actually cost Java a bit in terms of name recognition, as end users will see less visual evidence of the difference between Java and other languages (I know, I know - that's not what makes Java different, but it's what can be SEEN that counts.)
d) As Linux distributions integrate and include Java by default, it will increase the appeal of both Java and Linux on the server side.
And one that I would like to see proven wrong:
e) No major OEM computer maker will add the Sun JRE as a default part of their desktop, despite it being released as GPL.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
Is is an ivory tower troll. In fact almost no one uses ruby. It may be hot among Nerds and its growing. Java went into the enterprises in the 90th as Cobol did before. C++ was less usable for enterprises. Java looked good and fostered plattform independency, helped to increase interoperability. "Java to go" is as off-topic as the prediction that FreeBSD would take over Linux. Ruby and Python are upcoming languages. Growing but you have to wait for another five years. Open Source Java will mean all Linux systems will ship free Java. Java will get a working GNU compiler native compilation. Java will be the trusted alternative to -- arrrgh patents --- Mono for enterprise applications. SUN knew exactly why they did it. Linux will become a strong Java plattform and with Linux on so many servers that will give Java and Linux a boost.
Sun choosing to use GPL2 before GPL3 exists is irrelevant to GPL3's acceptance or non-acceptance. Linus' attitude, amongst others, to the GPL3 will have at least some affect on its acceptance. Sun's use of GPL 2 will have none.
If Sun choose not to use GPL3 when it exists then that might conceivably have some impact on others' choices, but probably not much. Anyone who desperately cares about Sun's choice of licenses wouldn't have been using GPL before the Java announcement anyway.
In no particular order:
Java as Open Source will help in creating smaller versions - perhaps very lightweight browser-plugins - optimized for particular use (media, number crunching, etc.). These browser plugins will help revive Java as a thin-client/web2.0 (3.0?) player in browser-based apps, possibly even making some small inroads against Flash. The 'apollo' project from Adobe may put the kibosh on this, but the increased-eyeballs angle will likely prevent a complete obliteration from happening to desktop Java.
Java will become even faster. Although this has happened in 2006, with the release of Java 6, the full impact will be a refitting of the niche Java apps out there to work specifically with Java 6 and the speed improvements there. This will give some Java some good PR points and case studies with the 'Java is slow' crowd (which I'm definately a member of).
(As I think one of the panelists in the article said) - there will be a greater acceptance of dynamic languages (ruby/php/python/etc) in Java shops, as Java6's support for dynamic languages (JSR 223 I think) will help increase productivity for Java devs willing to think outside their javaBox.
creation science book
I nearly did stop reading at the words "SYS-CON", since I'd already given them the ad-hit and started reading I carried on. There are a couple of minor insights, some humor and an overwhelming sense that these guys are underestimating the importance of Java going free. GPL Java doesn't need AJAX hype and it's not going to change the world overnight. It is going to be used for new projects in place of C/C++ and yes, even in place of dynamic languages. Saying that Java being placed under GPL will make no difference to it's decline is foolishly short sighted.
Did anyone really expect JAVA to be released as GPL v3? A license that hasn't even been written yet? Or wait until GPL v3 is released (is there a set date for that?)?
Help! I'm a slashdot refugee.
> Rails creator David Heinemeier Hansson: 'The stigma of being a Web programmer still using Windows will increase.'"
The stigma of a well paid job. Ah, how will I ever show my face in civilized society again.
Who doesn't? Even if they're always wrong (the people who can predict that kind of things are the same people who are behind of the $Big $Companies and know what products and strategies are they releasing in the next year) people don't seems to stop reading them.
It's like horoscope. There's always people wanting to hear what's going to happen in the future. It doesn't really matters what they say - we just want to be told what we want to hear. We love being lied. Some people wants to hear that nobody will be using java the next year, others C#, etc.
'The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#'
:)
That's funny, we're moving away from Ruby and going to Java.
(Severe performance problems with anything to do with Ruby and XML)
The problem with Java has only in part been the license; mostly, it has been Sun's stifling control over the platform. As a result, Java has numerous technical problems. Of course, if Java had been an open standard for the past 10 years, there'd be dozens of independent implementations right now. They'd be partially incompatible, and that would be a good thing.
Overall, open sourcing Java was necessary for Sun to remain relevant at all; it will stabilize Java for a little longer, but unless Sun is willing to make some radical changes to the Java platform--including a massive cleanup and pruning of the libraries--Java is past its peak.
Well I don't think it was - the guy said that Windows stigma will continue to increase. There currently is no Windows stigma, so how could it possibly continue to increase? I digress...
.NET on it, but seeing as the PC does all the other stuff a Mac does, why would I want to?
Anyway, I could stick Boot Camp on a Mac and run Visual Studio
If you are looking at web developers specifically, then VS.NET does constitute a massive tool in the arsenal, and Windows will happily run everything else you need; MS SQL Server, Mysql, Apache, IIS, Perl, PHP, Ruby, Rails, Java, JSP, etc. so I see no reason to stop using it just because some chap with a snow white piece of kit is going to sneer at me pointlessly.
AJAX is dying. AJAX will grow. AJAX has no future. AJAX has a future.
JAVA is irrelevent. JAVA will grow.
Apple is irrelevent. Apple is irrelevent...oh, they agreed.
Anyway, anyone who takes these kind of articles seriously are wasting their time. Our shop does IIS, ASP.NET, SQL2005, Ruby-on-Rails, MySQL, VB.NET, C#, C++, Borland, MS, and Linux OSS flavors. In other words, we have the tools and the skills to do what is necessary to get the job done, the way our CUSTOMER needs it to be done. No tech prima-dona BS of telling the customer that we won't give them what they want. If the customer doesn't have implementation requirements, then we determine what they need, suggest and then build on their approval.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
You don't have to buy the all-show no-go over-priced Apple hardware.
Blar.
C# has practically identical typing semantics to Java. Either this is a misquote or Gary Cornell is much, much stupider than his PhD would suggest.
My J2EE applications are running in 5 datacenters on 4 continents and keeping in sync using features built into the container that cost me nothing to implement past some configuration.
:P
So nyah
Blar.
Pundits will continue to confuse "buzz" with reality. Professionals who work in a field will make choices based on getting their work done. Outside observers will base their knowledge on what seems new and trendy.
I don't think TBL would be so buzzwordy. Tim O'Reilly on the other hand...
N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
Out of all the interviews I did this year, only one shop wanted .Net services, and they wanted VB, not C#. Half a dozen shops about the same size were sticking with Java. Half a dozen shops several times the size were also sticking with Java.
I think it's a lot easier to add unsigned types to Java than it is to switch to a new framework.
I do not fail; I succeed at finding out what does not work.
As you say, use the right tool for the job. If you have a Linux, AIX, Windows, Solaris, or other box, the odds are it runs Java and Eclipse.
My own pet project work has moved from platform to platform for a decade or so, shifting from Borland JBuilder to Sun's tools and eventually Eclipse. Java 1.0-1.5 have always been true to the concept of platform neutrality.
GPLv2 is not a detractor. If Oracle can mandate that the web users have to be counted and the number of web sessions limited, then clearly the GPLv2 demands to release source apply to any web-deployed application as well. Only users WITHIN an organization are allowed to access GPLv2 based application enhancements without publishing those changes back to the community.
I do not fail; I succeed at finding out what does not work.
"The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#"
I can certainly understand the appeal of ruby or python to write clear code. But the author then pulls a C# out of nowhere and places it in the same bag! Does he even know C# the language is almost an exact copy of Java the language plus a few Delphi touches?
I don't feel like it...
I read this on a messageboard years ago, it still makes me laugh to this day.
Yup, Gnutella, Azureus and Eclipse users (amongst others) running these programs on Linux, Windows, MacOS X, etc will be scratching their head wondering what voodoo their programs are coded in (it has to be voodoo if Java is dead).
Ah well, people living in their ivory tower will always assume the alteratives are dead.
Jumpstart the tartan drive.
You mean, things like Ruby, Python or PHP running on an open-source JVM ?
Have you ever heard of the Buddha Box?
In reality, Java's got it's place. But if you're trying to push massive volumes of data or need deterministic operation, Java's NOT the choice.
The GC will always cut in at the worst possible times, impacting your ability to respond to data, etc. YOU try collecting 30 Gbytes of uncompressed
data daily with it sometime. We did use Java for front-ends to process the feeds coming from the trading markets at one of my previous jobs, but
the stuff that aggregated it and sent it to the trading engine and preserved it on disk was all PURE C++ code. The Java stuff couldn't cut it.
I certainly wouldn't use it to control anything like a nuclear reactor or a fly-by-wire system, let alone the task I mentioned.
Java's good for normal business apps, user interfaces where performance isn't absolutely critical, and the like. Something
like C/C++, Pascal, Ada, or even Forth would be a better choice in areas like those.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
This
I have been programming in Java since 2000 and it just gets easier and more powerful to develop with. Sure there were some big disasters in Java land like EJB1 and EJB2 but that's all cleared out of the way and the tools now are fantastic. I've been working with Appfuse, JSF, Hibernate, Testng, Spring and the latest versions of Eclipse and almost every day I find myself smiling with glee at how easy web development has become compared to a few years ago. The biggest mistakes for new developers in Java is not using Eclipse and not using either Maven or Appfuse. That's because there's a lot to take advantage of in Java land and getting all the tools and dependencies set up and rolling along can take quite a while. Both Maven and Appfuse make this process go a lot quicker and tend to steer the developer in the right direction. Eclipse makes understanding the whole thing a lot easier as well and the refactoring and debugging are amazing. After the initial setup though things start to become very easy and fun and development goes quickly. This is the opposite situation from programming in a dynamic language. Starting in a dynamic language is easy but as programs grow, the lack of static typing and refactoring support causes more and more bugs to start sprouting up and the system generally get more painful to work with.
I don't know why anyone would want to work with C#. I never run into showstopper bugs in third party libraries with Java because I have the source and can trace into the libraries, find the bugs, report them to the developers and then find an intelligent workaround while a $35 call to MS tech support will tell me to reinstall my whole system and upgrade to the latest versions.
Quoth the parent:
:)
"jEdit offers some really nice features, but until its performance is improved 30 fold, it just won't be a suitable replacement for other graphical text editors."
Java's JRE is big enough that it puts a damper on any program starting up very quickly. So I wouldn't use jedit (or any other Java program) for quick-startup tasks. I'd sooner bring it up once, use it to edit lots of files for a long time, keep it around even if not using it, just so it's there again if I need it.
Sort of like emacs. So jedit is more likely to replace emacs than vi
s/jedit/your favorite Java app/g;
Practice Kind Randomness and Beautiful Acts of Nonsense.
C# is a compiled language, not an interpreted (dynamic) language and is no different than java in this respect.
Do not spread "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0" over the internet, thank you.
I predict Java will still require 2 gigs of RAM and a Quad-Core CPU
Oh, you mean it will catch up with Ruby?
An environment is only as useful as the tools that are available for it. And it only takes a quick glance around the net to realize how HUGE the Java community is.
Still not convinced? Lets take a look at Hotjobs. This is a pure keyword lookup, doing a little tuning to make sure we're not finding jeweler entries for 'ruby' :
And just for giggles, lets throw some more searches:
So, in support of the claim that Java is in 'slow decline', we have... java as the most requested programming language in the job market today.
Event Management Solutions : http://www.stonekeep.com/
Whoever mod'd the parent as a troll is an asshat.
The entire IT reporting industry, and Slashdot. Writes about languages these days as if there is only one task in the world: web apps whereby users insert and retrieve basic data to/from a database. Yeah, for those apps you bet Java is losing ground to modern interpreted languages.
But there are a thousand other types of projects for which other environments might excel.
One of my current projects is a desktop app that does real-time signal processing on a live microphone feed, and produces a full-screen GUI with output of the signal that updates at 30+ FPS. Between the signal processing and graphics, it needs to do some hundreds of megaflops, effective - interpreted languages are a couple of orders of magnitude slower doing raw math. Java is pushing the low end of speed for this app.
At the same time, we want the benefit of a multiplatform release, because the project is for the education and music professional markets - there are an awful lot of macs among our target market, and our competitors are PC-only. Java has actually come through on the write-once-run-anywhere promise for us, straight down to the live audio input. We're just 2 developers - how much longer would it have taken us to have to port C++ between different platforms' APIs? Way too long. And we can't even consider platform-specific environments like C# or ObjectiveC/Cocoa.
Use the right tool for the right job. There are times when Ruby's the right tool - and times when it ain't. There are plenty of niches still where nothing else can remotely fill Java's shoes.
I stole this sig from someone cleverer than me.
Indeed, and guess which language was in slow decline when it was the most requested language in the job market.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Why didn't you throw COBOL into this mix? There's still quite a demand for this, too.
Personally, I just hope that the Java of the future will look and run much less like ass. That would be a great departure from the old Java.
.NET platform. I've written for both. I like java, basically, but I've recommended C#.NET to clients for numerous reasons.
.NET and mono.
.NET have done. A genuine competitor to mono on Linux. Embrace SWT instead of Swing. I won't call it a prediction, but I sure hope I'm right.
Right about now, you are moving your mouse toward the "Mod this fruitcake down" button, but don't misunderstand me. I have high hopes for the language. I have been saying for a number of years that Sun had been letting a hot property fall into disrepair while MS played catch up and eventually lapped Java with it's own
Since all my home computers use Linux exclusively, I'd love to see some real competition to mono as a platform. An open sourced Java could be it.
Oh, for those still looking to mod me down for speaking poorly of "the precious", you should know you are living in a bubble. Talk to the average corporate developer. The vast vast vast majority of them will say the same thing. "Java? Oh that's that ugly gui stuff, right? Yeah, I don't like Java apps." I've fought the battle long enough to know. Without some fresh blood and a new outlook in the Java camp, it will continue to be further marginalized in favor of
Seriously, how many java apps have made it into Gnome core? How many are even discussed in terms of their value to the end user? Now ask that about mono apps? Tomboy. Beagle. F-Spot. Muine. These apps are making waves. Where are the equivalent Java apps? Eclipse? An IDE isn't exactly the sort of thing to get the end user salivating. A couple of more obscure file sharing tools? Nothing that has the publics attention. Hell, even us open source guys have written Java off.
So for 2007 what do I wish for from Java? A fresh perspective. A renewed interest in delivering the sort of platform and apps that mono and
Tom Caudron
http://tom.digitalelite.com/
-Tom
I won't pretend I've done the research to disagree or agree with either statement. But just doing a keyword search doesn't prove anything about what the "velocity" of any of those languages are, nor does it say how they compare. Saying there's 8213 Java openings compared to 180 for Ruby or 671 for Python doesn't really tell me what the numbers were a month or a year ago. I can do a search for the number of people with HIV in the world, but that single value won't indicate anything meaningful other than that it's non-zero. If you were trying to say that there are far more Java job offers than the other mentioned languages, congratulations. But what you're actually claiming is, "So, in support of the claim that Java is in 'slow decline', we have... java as the most requested programming language in the job market today." If the number of Java offers in 2005 were 0.3% higher than the number you just gave, that would indicate that indeed there is a slow decline. If it were 50% lower, there would have been a sharp increase. But there's no way of telling what the change is, so the "research" you've done cannot support any claim either way. In other words it indicates that there are a lot of job offers for Java and not so many for Ruby or PHP or Perl etc., but that doesn't tell me what the rate of change is, what the numbers are like on Monster.com or any other site, whether those Java offers are really for "large scale enterprise applications" or just applets and midlets, etc. I'm willing to take a blind guess that's based on nothing but anecdotal experience with doing job searches last year on the Austrian equivalent of HotJobs, but I'm wagering far more of those 5000 C++ offers are for enterprise apps or demanding software development in scientific and academic fields than the number of the same types of offers for Java programmers. Then again it would be easier to guess how accurate I am if the data listed in the post above mine actually meant anything.
brandelf: invalid ELF type 'KEEBLER'
Cornell: 'The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#';
In 2007, apples still won't be oranges.
The key question here is what did Hansson mean by preferred geek platform? It seems pretty clear that he's not speaking of Apple's web platform, Web Objects, but of Apple hardware. And if he wasn't speaking directly to Web Objects, the only other standard web dev software Apple puts out is Apache and the other OSS that comes bundled with OS X. It doesn't make any sense to single Apple out for that when the same can run on Windows and comes with just about every flavor of Linux.
No, Hansson must have been referring to the fact that techies with Apple kit, regardless of what OS they're running on them, are the cool kids in town.
The GC will always cut in at the worst possible times
Try using the parallel collector on a multi-CPU machine. Much less impact on the running application. You should also spend some time learning how to tune the VM and GC parameters if that's your problem.
YOU try collecting 30 Gbytes of uncompressed data daily with it sometime.
I'm not quite at 30 gigs a day, but the systems I work on will reach that within a year or so. We don't expect that it will be a problem.
"Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
Agreed. I'm a software developer working mostly on ERP systems in medium to large scale projects, and while I work in .NET 2.0 and 3.0, while speaking to people in the industry (mostly consulting firms), Java is actualy in GROWING demand.
.NET, and thats Windows-only (Mono cannot deal with Enterprise level projects), leaving Java with all the Windows projects not using .NET, and all the non-Windows stuff. Thats a lot, and as Windows' monopoly slows down a bit, it increases.
Currently, in my area, Java -junior- programmers get snatched right up. You don't hire junior programmers in a declining industry, you hire senior programmers (because by the time the juniors become senior, the environment will be history). There has been an increasing amount of projects in Java, especialy since Java 1.5, since that was quite the milestone. Same with the last few J2EE versions.
On top of that, now in the latest specs, EJB 3.0 is actualy useful (and doesn't have to be systematicaly replaced by third party frameworks).
Now, on top of all this, more and more schools are using Java as a teaching tool. Which means all these people that come out of school, will be wanting to use their skills. Thus more demand, more support, more projects.
In the hardcore enterprise world, the only thing that can match this is
The one exception to this is the high end R&D stuff, which tends to use Python/C++ or something along that line (I beleive thats what Google use for a lot of things?), but thats a different market altogether.
Agreed. I think that open sourcing Java will make Java on Linux very similar to Java on OS X. In OS X, an end user can hardly recognize that Java apps aren't native because Java ships with the OS and the default swing look-and-feel is Aqua. With Java free to be a core Linux component, a similar end user experience is possible on Linux.
"rails-tards" huh? You should write for commedy.
Jeremy
If there's no stigma, it can't decrease. It can always increase.
My new blog
They said slow decline, your numbers are irrelevant. They only show which is currently more dominant. http://bymyreckoning.com/
This is pretty typical rhetoric from DHH ... if the Rails folks really want to divide the world into opposing camps, let me tell you as someone on the Java side: you can keep him.
The stigma of a well paid job. Ah, how will I ever show my face in civilized society again?
Money spent on software licenses is money that won't go into your pocket. Bill Gates is happy that he's still on your company's payroll, despite the trouble you have getting work done with his junk.
Friends don't help friends install M$ junk.
Thats what kills java for me ... I stick to C++ and c# for that reason alone.
There are C++ multi-platform toolkits: at least Qt and wxWidgets are of professional quality. Audacity is written with wxWidgets and runs in Windows, Linux and Mac.
I don't object about using Java in your project, it's a sensible decision in a team with only two programmers.
However to say that there are no alternatives is very short sighted. It's better to say that there are alternatives but you have choosen the best one for your programming team.
Also keep in mind that creating a C++ object in the stack is 25 times faster than creating a Java object (even with the server VM) according to my benchmarks. So a sightly bigger team using C++ would possibly make software that outperforms yours and uses smaller amounts of memory, if somebody would like to invest in that team.
However, I do agree with your point, Web-only applications are dumbing down this industry.
We are Turing O-Machines. The Oracle is out there.
OK, Java, Ruby, .NET, Linux, BSD, Solaris, Mac and Windows fans - chill!
.NET, but three top notch Windows/MS developers I have known for years have said this about .NET: many of the standard widgets produce non-standard, non-validating (X)HTML and CSS. This is a fairly big deal, which hopefully future versions of .NET will rectify eventually. Other than this major point that they keep drilling down on, they are happy from a productivity perspective of developing on the .NET platform.
I love you all, but you do bicker too much.
I cannot comment much on
As a huge Ruby and Rails fan, I still think Java should remain in the enterprise as opposed to Ruby/Rails. The reason is simple: going enterprise killed Java's productivity gains. I mean this in the nicest way, because until 3 years ago I thought Java was the dog's tuxedo. Couldn't imagine using another language for any type of development.
Ruby isn't perfect, neither is Rails. I make no such assertion. There are areas where using Java as an example might benefit the future development and progress of Ruby and/or Rails. However, I suggest the reverse is also true.
I have two examples: (a) automatic server application deployment; (b) dependency management of external libraries (like RPMs).
(a) In the Ruby/Rails world we have Capistrano, which provides a very nice *start* towards a comprehensive tool to help automate the deployment process (in various environments if necessary) for server application environments. In Java/J[2]EE world there is the JMX API, but you must write your own Java/Beanshell/Groovy, etc deployer based on a fine grained API. Capistrano provides a more intuitive way, easier (less fuss) way to create deployment "recipes" to save time. Again Capistrano is not perfect, but a great start considering Rails has only been around for 2 years and J[2]EE has been around for 6+ years. I continually search sourceforge, java.net, codehaus and similar OSS project websites seeking such a tool that is in active development and has a remotely similar feature set to Capistrano for the Java world utilizing JMX, but it does not seem to exist or has a user base of perhaps 10 maximum. Over the last 10 years of my Java career I have implemented 3 custom/in-house tools to do this, but our focus should have been on solving business problems in our applications NOT writing new deployment tools. There is a big difference between writing a deployment recipe for each environment and writing a reliable deployment tool that does all the things we need it to do AND the configuration files for each environment.
(b) In Ruby (not specific to Rails, but the Ruby language environment) there is a concept of Ruby Gems. Gems are basically JARs on steroids, that can define dependencies and requirements for the gem installer to install prior to that Gem. For example, in Java we have the Xerces and Spring libraries. So if we translated the notion of Gems to the Java world Spring library would have a manifest/descriptor that defines what external libraries that are pre-requisites to installing Spring. We would probably specify Xerces and provide the version number(s). Some versions of Spring may also specify requirements like you must be using JDK 1.4+ or even 1.5+. The Ruby Gem mechanism is extremely similar to the YUM and APT package managers on Linux. This sounds like a stupid thing to worry about, but having worked on large scale enterprise deployments throughout my software consulting practice I have encountered production environments that are unmanageable from a JAR and deployment perspective. Recently I finished a JEE project that had 3 different versions of Xerces in the classpath and the wrong Xerces JAR was first! This took a very long time to determine the cause of the issue because there is no concept similar to a Gem in Java. Having a Java equivalent to a Gem would improve productivity for application deployment without a
Repent now!
Oh, um ... sorry that was for 1883. I have seen the past! Repent earlier!
.. paranoid crackpot leftover from the days of Amiga.
Looking only at language features, both Python and Ruby are much better than Java.
However, the Java VM is probably the best crafted runtime interpreter & JIT compiler in existence.
Java has, in some cases, the performance of C++ or at least half the performance of it, while Ruby is (AFAIR) 18 times slower than C. Python is better, but is not in Java territory.
Lisp is better than Java for big complex apps, and can have very good performance (in some cases better than C), but then, we are lacking a free multiplatform open implementation (that doesn't make all your code GPL), and that kills Lisp in the marketplace (and has for a decade).
All that accounts in part for the results you present.
We are Turing O-Machines. The Oracle is out there.
jedit replace emacs. yeah right... emacs takes about 2 seconds to startup (with a 33K .emacs file) and has TONS more capability than jedit. Say, how does one script jedit... Now how easy is it to script emacs...
Getting away from XML is an admirable goal. It likely will result in massive performance boosts for your applications. However, XML has also become quite entrenched in the Java world.
Tomcat, for instance, heavily relies on XML for its configuration files. When compared to Apache HTTPD config files, the XML ones are lightyears behind. They're far more difficult to read, and they're quite a bit bigger.
Other Java tools, like Ant, rely on XML build scripts. Much like the Tomcat configuration scripts, they're far too verbose and messy. Many of the frameworks require similar configuration files.
Mind you, the overhead of such files is usually minimal. It's not like AJAX, where you have XML being generated on the fly (which is often horribly inefficient). But XML is still often used for many major Java development tools and Web application frameworks, in ways that aren't beneficial.
Give me a break. Even Eclipse doesn't take that long, on my 2GHz laptop.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
Uhm, yeah, I'm sure a Vista Aero 3D compatible laptop with vista ultimate + similair software which cames with iLife will be much cheaper than the Apple branded one...
And I don't think it's over-priced, just compare the performance/money amount ofter a new update of any of their hardware and you'll find the price to be very reasonable. The only thing I have against them is crappy system configuration (all MHz and cores but shitty GFX and in some cases TFTs.)
When I read this, I immediately thought of cool Linux based laptops from the One Laptop Per Child initiaitive. Seriously, I would consider buying one for my children, even at $200. And I hope that they setup some free content web site for it too, like itunes and ipod
I have not seen the same computational speed problems with Java 1.5 that you say you are having. As a matter of fact, the opposite. With the latest Java HotSpot compilers, Java code will equal and actually outpace C/C++ when run over extended periods of time as the JVM continuously optimizes the code.
As a note, most of the problems people have when using computational libraries in Java in conjunction with a GUI is that they improperly put the computational logic inside of paintComponent() method (or equivalent paint/update method). This results in the animation being driven forward by its animation loop and by the JVM repainting the window. This is completely incorrect. You should be using a strategy of Update, Render, and Paint routines with a timer executing to continuously calculate whether you should be invoking more Render routines during each animation loop. Frames Per Second and Updates Per Second are two completely different things. By the sounds of it, I suspect your code may need some serious re-architecture work in its threading and rendering implementations. No offense, but unless you are using some terrible calculation libraries, this would be the only other type of bottleneck to your Java performance problems.
If you cannot find a freely available Java computational library that suits your extremely custom needs, you should either purchase the code, or possibly program it yourself in either Java (re-architecture/re-implement your current code), a computational specific language like Fortran 95 (which Sun supports in Java), or even another library invoked through JNI.
When do you begin testing?
PS - I would also invest serious time in using a Java Profiler to see where you might be having performance problems. Both Eclipse and NetBeans offer excellent profiler functionality and there are multiple excellent profilers available from third parties.
While I agree with you, I just wanted to say that your data doesn't really support your argument.
A slow decline implies time.
For example:
If java had 8240 jobs last month and 8000 jobs this month while ruby had 80 jobs last month and 160 jobs this month, then java would be in a slow decline (roughly -3%) while ruby would be in a steep increase (100%). And of course, you would need to compare year to year. Installed projects, etc.
In my opinion, java is increasing- especially for enterprise level applications. It just runs so well on so many different platforms that many of our software vendors prefer it for products they sell to us. And we like it for our customizations.
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
I'm running something far less substantial than you describe (Windows OS), and JEdit will load, with several files open, in a tad less than 15 seconds.
What makes you think that realising that stands in the way of it becoming more popular?
How about the fact that the few developers that poked at it for a while are now abandoning .Net in droves ? Cornell's opinions are just that, opinions. And except in certain alternate universes data and facts tend to outweigh opinions.
From the link above:
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
So what should you use to control nuclear reactor? C++? In my very limited experience with control code Java probably would be improvement.
...my apps and systems are only used by 250,000 employees over the course of a 24-hour period. But you know, it still impresses me and that's all that matters!
Blar.
I really getting tired and bored of idiots: give the money too and I will say MICROSOFT is the best, or Ruby (just soup up Perl) is best, or vista is the greatest thing since sliced bread. Sorry, but each of those technologies has its own strength and problems. Ajax is not secure and even worst: is JAVASCRIPT '( Java tries to be everywhere, instead of be where it is the most strong. Microsoft still does nothing and collects money for doing so Well just give me the money and I will say anything for you.
Can you post your .emacs somewhere? I'd love to see what you've put in there to make it that large!
Pirate Party UK
Hmm... heard of a game called 'EVE Online'? Their server -- which serves provides an entire 3D universe to over 33000 users simultaneously (without instancing as in WoW or Guild Wars) -- has the game logic implemented almost entirely in Stackless Python, with shared state across tens of thousands of CPUs. Or what about that small and insignificant search engine, Google? They seem to rely quite heavily on Python too.
Oh, I'm sorry. Perhaps those aren't "large scale" enough for you. What sort of "large scale enterprise applications" did you have in mind?
Pirate Party UK
sure. want me to email it?
I just thought of something else: The Linux kernel development team now uses static analysis tools to uncover bugs. AFAIK, this is a recent development for widely-used operating systems, and one that threatens the dominance of C in kernel programming. C is inherently difficult to analyze, yet static analysis uncovers so many bugs that it simply can't be neglected. Anyone planning on writing an operating system from scratch would surely note this trend and choose to write in a language (or dialect) for which excellent static analysis support can be provided.
Sounds like a good idea :)
Pirate Party UK