Sun’s groundbreaking programming language vaulted to popularity with Web developers. But now it’s losing ground to a raft of upstarts.
Sun’s groundbreaking programming language vaulted to popularity with Web developers. But now it’s losing ground to a raft of upstarts.
i am not sure how much ground it is actualy loosing. especialy with each new release bringing better speed, and stability i find it rather suprising. also 6.0 is going to be a very nice update to java, i dont think java is going ot be loosing ground of any serious mater any time soon.
You mean 1.6, ne?
Actually no. As of “Tiger” Sun switched from the 1.x system to the x system. Hence we’ve had Java 1, Java 1.1, Java 1.2, Java 1.3, Java 1.4, Java 5 and will soon have Java 6.
They’ve adopted the same scheme for J2EE as well, the next release is going to be called J2EE 5.
Apparently spelling isn’t a valid reason for modding your comment down, so I won’t do that. Notice how I wrote “your” comment.
Just to make this more clear, observe the following example:
“Nobody is going to take your comments seriously if you’re too lazy to learn elementary school level spelling.”
Now onto the meat of my post:
Calling Perl, Python and PHP upstarts is ridiculous.
Apparently spelling isn’t a valid reason for modding your comment down
Yeah, strange that. I always thought the one thing OSNews was lacking was a solid community of spelling and grammar Nazis.
For example, I’m incensed that I can’t mod you down for following a colon with a capital letter. Just to make this more clear, observe the following example:
“The meat of my post is this: no-one is going to take your spelling rants seriously if you can’t even manage basic grammar”.
Sheesh….
It’s “losing”, you illiterate moron.
Wasn’t there an article a while back about how LAMP servers were also losing ground?
There’s always a “product/company x is dying” article out there, it’s the kind of fiction that attracts readers who haven’t yet gotten tired of that cliche headline. For some people the headline still induces some form of panic, denial and shock (or hope and glee) until they’ve seen almost identical headlines come up a few more hundred times.
A very miniscule number of these articles are sometimes correct, other’s might present plausible arguments but forget that companies are run by people with brains (whatever the size and capacity) that are capable of changing the company in such a way as to make it profitable again.
I was sold on the grandiosity of Java. I learned a lot about Java in 1.5 years. But then came DotNet and the fight between the two camps made me choose something else. I’m finally at ease.
My impression is that Java owns the enterprise development market. J2EE is used for large 3-tier web solutions and for CRM apps like SAP, PeopleSoft, and Oracle. Novell switched to Java as an embedded language but that’s not a big market, just corporate.
IBM uses tons of Java with its consulting, DB2, etc services.
If there is a trend, upwards or downwards, this article didn’t site any credible evidence of it.
Excatly, corporate IT has lots of fat to burn. They can use the hardest tools.
Ruby on Rails is the one gaining the most momentum… Ruby book sales are up 1500% and have surpassed Python sales…
Java is being killed by Sun overarchitecting Java with its complex APIs. Pragmatism is something Sun has never been good at.
Books sales are UP becaue nobody was buying them before?
Ruby book sales are up 1500% and have surpassed Python sales…
You have got to be kidding… citing book sales is now a measure of a technologies success? WTF??
Citing? The GP Cited no reference to this proclaimed 1500% increase. BTW 80% of statistics are made up on the spot.
Right! I have to concur. If ‘sales’ had anything to do with a technologies success, then Windows would be a truly good product.
I believe book sales are up because of the whole recent “Ruby trend”, and every trendwhore and his brother/sister is wanting a piece of the ‘Ruby brothel’; that’s why the surge in book sales.
–Jed
> Ruby on Rails is the one gaining the most
> momentum… Ruby book sales are up 1500% and
> have surpassed Python sales…
I don’t buy either claim.
Ruby on Rails: All smoke and no fire. Show me one good case study of someone who has build a complex three-tier web app in RoR? I have yet to find one.
Ruby book sales: I don’t buy this one either. Please provide a source for that claim… There are like what, 3 books on the market on Ruby?
http://radar.oreilly.com/archives/2005/12/ruby_book_sales_surpass_p…
I just said Ruby is gaining the most momentum. Java is probably 1000x more widely adopted. Ruby is clearly getting a ton of attention and is growing rapidly though.
You can definitely write code more quickly and more tersely in Ruby than Java. And I think terseness matters. Why write 10 lines of code when the idea can get conveyed clearly in 2? Terseness means easier maintenance and it’s easier to follow/read code as you don’t fill your screen with a bunch of worthless BS like getters/setters.
Also, the APIs in Java are very overarchitected. Try sending an HTML email using the Java Mail API. Struts and Hibernate are complicated diasters. Look at Rails and Active Record for the beautiful Ruby equivalents. No XML files!
All this being said, I personally wouldn’t use Ruby for anything other than a web app. *Yet* It’s biggest weakness IMO is no support for native threads (green threads only).
Ruby may be good for new webapps, but it just wasn’t designed for legacy databases and it lacks features such as support for multiple primary keys and database table remappings. If you mention this to Rails. developers, they’ll mostly agree with you, but state that that’s not the focus of Rails (at least not yet). The focus of Rails is “green database” apps and it wants to be the best out there for these apps.
Java isn’t the best choice for “green database” apps, but it is great for legacy databases which is where it shines.
> Java isn’t the best choice for “green database”
> apps, but it is great for legacy databases which
> is where it shines.
I disagree. Java is great for new Webapps. And virtually no one works directly with SQL anymore in Java. It has some of the most powerful object persistance frameworks available. For example, Hibernate.
When it comes to any kind of database application, Java, with it’s powerful object persistance frameworks, is far more powerful than Ruby.
wait for 2.0 then.
one thing that concerns me is the performance speed of ruby (or ruby on rail).
it doesn’t seem that fast?
> one thing that concerns me is the performance speed
> of ruby (or ruby on rail).
Yep. It’s pretty slow. In fact, it is the slowest of the so called scripting languages. Because it is purely interpreted.
There is some work being done on a bytecode compiler for Ruby. But I have no idea when it will be suitable for production use.
May be slow, but premature optimization, like choosing a language that’s fast, is for young people, who still have lots of time for mistakes in their lives.
“May be slow, but premature optimization, like choosing a language that’s fast, is for young people, who still have lots of time for mistakes in their lives.”
Sorry. You can’t apply the premature optimization argument here. It doesn’t work whem comparing a language like Ruby (which has many other drawbacks besides speed that make it unsuitable for large and complex web apps) and Java.
Besides calling you on your performance disregard for Ruby, maybe you want static typing? Good. Now you have a fast language with static typing. That’s enterprise enough, indeed. That’s Java true calling for existance, because it loses in programability, though it has EJBs which rarely are used, just like Enterprise Messaging. Are you using WebLogic already? Maybe IBM’s or Sun’s Enterprise Servers? You rock.
I don’t want such Enterprise crap which you don’t even use most of the time. You use basic ORM with Tomcat, probably. Maybe JBoss with its shortcuts. Or JoNAS. Right?
That’s “Enterprise”. That’s why Bruce Tate who wrote 3 books on Java chose Ruby for his startup. That’s why the author of Ant chose Ruby for his startup. Those guys don’t need your Enterprise fluffy.
“Besides calling you on your performance disregard for Ruby, maybe you want static typing? Good. Now you have a fast language with static typing.”
Static typing is important for three reasons:
– It catches assignment problems that might otherwise go uncaught and cause subtle logic errors to creep into applications at runtime.
– It makes it clear in a project involving multiple developers, exactly what a method is going to return, or what it accepts as a parameter.
– It guarantees type safety, and guarantees that casts are safe, which is important for reliability in a mission critical app. It ensures an illegal cast cannot be made on an object for example.
This has nothing to do with premature optimization. But it has everything to do with making code self documenting and maintainable. Static typing is important for large and / or multideveloper projects.
“though it has EJBs which rarely are used”
EJB is regarded as overly complex by many developers. And there are better solutions. Like Spring, which is what I typically use. Spring’s IOC and dependancy injection make many things a lot easier. And Spring 2 greatly reduces the amount of configuration that must be done.
“I don’t want such Enterprise crap which you don’t even use most of the time. You use basic ORM with Tomcat, probably. Maybe JBoss with its shortcuts. Or JoNAS. Right?”
No. typically I use Resin combined with Spring. Sometimes I use Struts with Spring, but more recently, have been going all Spring.
And actually, I do use a lot of that “Enterprise crap”. For example, I use Spring’s validation framework. And I use Webflow. And that so called “Enterprise crap” actually could make many people’s lives a lot easier, even outside of the enterprise, if they would just take the time to learn it. How many times have you have written a bunch a boilerplate code to handle session tracking and such between web apps that require multiple pages, and multiple forms? And to validate data and prevent the user from moving to the next page if it is invalid, while at the same time not screwing up the overall flow? That’s the kind of thing that so called “enterprise crap” like Webflow takes care of, and reduces a lot of the boilerplate code that needs to be written.
“That’s why Bruce Tate who wrote 3 books on Java chose Ruby for his startup.”
Bruce Tate changes his opinion about languages faster than the wind changes direction. First he liked Java, than was touting the praises of Python (which was not that long ago) and now it is Ruby. He drifts in whatever direction the most popular FAD currently is. But long after Ruby has failed to gain any kind of marketshare, and still remains a niche player that has failed to break into the Web app market, Java will still be there. And still be going strong. And then Bruce Tate will probably follow the wind direction back to singing the praises of Java again.
Edited 2005-12-15 01:23
“Bruce Tate changes his opinion about languages faster than the wind changes direction. First he liked Java, than was touting the praises of Python (which was not that long ago) and now it is Ruby.”
Are you confusing Bruce Eckel with Bruce Tate? I did that once, too, if you are.
Bruce Eckel: http://www.mindview.net/
Bruce Tate: http://today.java.net/pub/au/186
Tomcat, Ant, and the Servlet API author James Duncan Davidson said once:
“Rails is the most well thought-out web development framework I’ve ever used. And that’s in a decade of doing web applications for a living. I’ve built my own frameworks, helped develop the Servlet API, and have created more than a few web servers from scratch. Nobody has done it like this before. That’s not to say they got it all right. It’s by no means “perfect”. I’ve got more than a few nits and picks about how things are put together. But “perfect” isn’t the point. The point is that it gets you up and going fast and has plenty of depth to keep you going. And Rails does that very well.”
According to:
http://www.onlamp.com/pub/a/onlamp/2005/10/13/what_is_rails.html
To defend your instance you don’t need to defend Java. Just say that you like Java because it’s what you need to get your paycheck.
“Are you confusing Bruce Eckel with Bruce Tate? I did that once, too, if you are.”
Oops. You’re right. I was confusing Bruce Tate with Bruce Eckel.
“The point is that it gets you up and going fast and has plenty of depth to keep you going. And Rails does that very well.”
I agree. It gets you up and going fast if your project is simple, and fits into an assumption mold. But if you move beyond that, many things in Rails become a major pain in the ass to try to work around. The fact that it only plays well with simple inheritance hierarchies for example, and doesn’t handle complex hiearchies well, which large and complex Web apps often have.
“To defend your instance you don’t need to defend Java. Just say that you like Java because it’s what you need to get your paycheck.”
No, that is not the only reason I defend Java. I pointed out other very valid reasons I defend Java, which you didn’t really address in this response. I pointed out why static typing is important when writing large applications. I pointed out how useful that “enterprise crap” is in reducing the amount of boilerplate code that you need to write, etc.
I also don’t like the fact that rails doesn’t seperate business logic from presentation nearly as cleanly as something along the lines of JSP plus a bean does for example.
“No, that is not the only reason I defend Java. I pointed out other very valid reasons I defend Java, which you didn’t really address in this response. I pointed out why static typing is important when writing large applications. I pointed out how useful that “enterprise crap” is in reducing the amount of boilerplate code that you need to write, etc.”
The problem is that “static typing” in a world of strings, Objects, runtime evaluations, bytecode engineering, etc, becomes even more facetious.
“I also don’t like the fact that rails doesn’t seperate business logic from presentation nearly as cleanly as something along the lines of JSP plus a bean does for example.”
You disregard Rails too easily. Bruce Tate said that Rails scales very well if you know what you are doing. He said that someone that doesn’t know what he is doing can write crap in any language. I agree with him. I think you could use Rails successfully, given your experience writing web apps. How can disagree with a man that tried lots of things to “fix” Java? He tried it in the JSP layer, in the EJB layer, in the Java language layer, etc. You could target Rails and in 3 months maybe you would have a good tool to create apps outside of your day-to-day Java coding. The guys over ThoughtWorks, that you once loved so much, like Martin Fowler, are using Rails and Ruby as well.
“The problem is that “static typing” in a world of strings, Objects, runtime evaluations, bytecode engineering, etc, becomes even more facetious.”
I disagree. Take the following two method declarations, one in Java and one in Ruby:
public Person userThinger(User user, int type)
def userThinger(user, type)
What does userThinger return? Is it a void method? And what kind of parameter is user? Is it an object? A string? What about type? Is it a string? boolean? int? object?
In the Java method, it is immediately clear what I will get back from userThinger, and what I need to pass to it as parameters. In the Ruby method, there is no indication at all what I will get back, or whether I will even get anything back at all. There is also no indication at all what user and type are supposed to be.
The type information also allows the Java IDE to provide a popup hint reminding me what kind of data I am going to get back, and what kinds of parameters I need to send. A Ruby IDE can offer no hints along these lines at all because it has no idea what the method returns, if anything, or what kinds of parameters it takes.
“Bruce Tate said that Rails scales very well if you know what you are doing.”
Quite simply, I don’t agree with Bruce Tate. The above example shows one reason why I don’t agree. And this problem only gets worse as applications get bigger, and more and more different types of objects exist within the application. Static typing is critical to large applications that manipulate many different kinds of objects.
“How can disagree with a man that tried lots of things to “fix” Java?”
Because this implies that Java was broken. It wasn’t. Yes, EJB was overly complex. But just because Bruce Tate couldn’t figure out how to “fix” EJB doesn’t mean it wasn’t fixable. And it has been fixed. The guys at Interface 21 have done an incredible job on the Spring framework, which largely is intended to replace EJB, and is much less complex.
And JSP is not the only solution for Web page templating. Yes, some people don’t like JSP. THere are plenty of other solutions. Apache’s Velocity template system for example. JSP is only the most popular. It’s not the only one available for Java.
I have looked at Rails. I don’t like it. It’s all smoke and no fire. Not one decent case study of a complex Web app exists that has been done in Rails. And for a language that is supposed to be gaining momentum, the number of Ruby projects on SourceForge has been mostly stale and has hardly grown at all.
I’m sorry. I don’t see any evidence whatsoever to justify all the hype that Rails is getting. I think it is a fad.
“I’m sorry. I don’t see any evidence whatsoever to justify all the hype that Rails is getting. I think it is a fad.”
http://rubyforge.org/
http://raa.ruby-lang.org/
Maybe you are right. Maybe you will enjoy Spring for 10 years, who knows? If Java is not broken, what does Spring fix exactly? Is is a J2EE standard at least?
I’m not impressed by those numbers. Java has 17,061 projects on SourceForge. And there are several thousand additional ones on java.net
There are also virtually no industry partners that have jumped on the Rails bandwagon. While new industry partners are signing up for Java all the time.
A horrible lack of third party libraries for Ruby also is very problematic. For example, currently the only way to handle complex image manipulation tasks is to call out to ImageMagik. That’s slow, and a gross kludge. It’s also dangerous. Because it means I have to break out of the managed environment and run unmanaged native code that can have no guarantees made about its safety or security. Java2D on the other hand, has a fully featured imaging API in it.
“what does Spring fix exactly? Is is a J2EE standard at least?”
No. Spring is not a J2EE standard. Because a lot of the philosophy behind Spring is that J2EE was too complicated–particiuarily because of EJB. Spring is pretty much intended to be an alternative to J2EE that makes things a lot easier to work with. And Spring is gaining momentum very rapidly. There are now several books on Spring, and the recent Spring developers conference had several hundred attendies and over 40 technical sessions.
Edited 2005-12-15 03:04
By the way, a lot of the problem with the “Rails is the next big thing and will replace Java” fad hype, is that it assumes that Java will be standing still as Rails gains all this momentum… And that will definately not be the case. Yes, Rails does do some things better than current Java frameworks do. But you are kidding yourself if you think the Java framework vendors aren’t watching that, and aren’t figuring out ways to incorporate the best features of Rails into Java frameworks. That basically means that what Rails does better than Java today, Java will do as well as Rails tomorrow, and perhaps even better. And it will retain all of the other featuers that make it a much better language for Web app development then Ruby is.
The bottom line is that most people aren’t going to abandon a very tried and true solution that has tons of industry support, tons of third party library support, and is a very safe bet for the future, just to get a few minor benefits of Rails which the Java frameworks will most likely incorporate soon enough if they are good features–especially not with Ruby third party library support as poor as it currently is.
In fact, if you want a very rails like system in Java, it’s already available. There is a framework called trails built ontop of Tapestry and Hibernate that is very heavily influenced by rails.
Edited 2005-12-15 02:55
Um, bullshit.
Rails works fine with legacy databases. It just doesn’t provide automated model generation, you’ll have to fill in some details to make it work.
It’s surprising how many misconceptions there are about Rails ….
> It’s surprising how many misconceptions there are
> about Rails ….
Not really, given that Rails people have decided that the best way to promote Rails is to make outragious claims for it, throw up a lot of smoke, and make FUD claims about all other Web app languages to try to trash them and make those considering Rails believe it is the only real option they have since all other solutions are seriously flawed. It’s no wonder most of the Rails hype and claims are taken with huge lumps of salt.
Oh please.
Every technology gets a bit overhyped. Rails is no different.
I’d like to see some examples of this FUD and smoke that you’re moaning about.
> I’d like to see some examples of this FUD and
> smoke that you’re moaning about.
Go read the mailing lists and such for Rails.
I have several Java books. I have a couple of Python books. I don’t have any Ruby books.
I’m not likely to buy any more Java books since I’ve got pretty much what I need and I’m comfortable with it. Ditto Python. I might buy a Ruby book or two to learn that language to.
The point is, however, people don’t buy the same book over and over again, and a sale indicates interest, not use (I’ve never actually used Python for anything… yet). Looking at book sales figures is probably a worthless measure (particularly of Java popularity — the market is saturated and mature there).
Yet another bullshit article touting the premature death of Java. (And another sensationalist BS headline from the sinking into tabloidism OSNews).
Please tell me… What is going to replace Java. And don’t give me the Ruby on Rails hype. Ruby has 410 projects on SourceForge, compared to Java’s 17,047–despite having been around almost exactly the same length of time as Java. Even ObjectiveC has more projects on SourceForge than Ruby does.
And while everyone is saying “Java is yesterday and losing ground” the reality says something totally different:
Fact: New Java projects are showing up on Sourceforge every day.
Fact: Java is now the #1 language on SourceForge, and is still gaining momentum at the expense of C++, it’s nearest competitor. The gap is getting wider all the time.
Fact: JavaOne boasted more than 10,000 attendees last year. It is the world’s largest developer’s conference.
Fact: J2ME is now installed on over 2 billion mobile devices. That’s right. 2 billion.
Fact: SavaJe, a mobile OS written entirely in Java, is attracting a great deal of attention, and has already replaced Symbian on many phones from LG Electronics.
Fact: The Apache Harmony project has a great deal of momentum, with tons of industry partners signing on.
Fact: New Java middlewear providers are joining the Eclipse project every few days.
Fact: The race of large corporations to buy up smaller middlewear providers to increase their competitive edge in the highly competitive J2EE market is hotter than ever.
Fact: Sun is signing deals with major corporations all the time to provide full JES systems.
Fact: Ebay recently added hundreds of addional Solaris boxes to Ebay, powered by Java to handle the holiday buying season, which is expected to be huge this year.
Fact: Java is still the most in demand programming skill in the developer job market.
Fact: Java developers are paid more on average than developers in other languages.
Fact: Oracle has said “Oracle’s future is clearly in Java”
Fact: PeopleSoft is being redesiged as a Java application.
Yes… Java is so 90s. And Java is so losing ground. Sorry. But literally every single indicator shows that is not the case. Java is growing, is very healthy, and isn’t going anywhere. Despite your sensationalist headlines and the wishes of the anti-Java crowd.
Edited 2005-12-13 20:56
And WebObjects also went Java a few years ago.
Seriously, Perl, Python, ruby and etc are all great and have their place. But the most important thing is to steer clear of “.net”, because, “mono” notwithstanding, MSFT’s offerings are not cross-platform, and, thus, can only be deployed internally in closed, all-Windows. shops.
“and, thus, can only be deployed internally in closed, all-Windows. shops.”
You’ve apparently never worked in an enterprise level shop then. Windows can talk to non-Windows machines quite easily these days, and any application can communicate w/ other apps via a number of different mechanisms. There is no reason whatsoever to steer clear of .Net; almost all shops have a blend of MS and non-MS machines.
> There is no reason whatsoever to steer clear of .Net;
Sure there is. you lock yourself into deploying on the Windows platform. And don’t tell me mono. Because complex three-tier Web apps written for .NET likely aren’t going to run in mono. Not nearly all of the .NET API has been ported to mono (and most likely, some of it never will be).
With Java, on the other hand, it is *extremely* common to develop and test on Windows, but deploy on Linux for example.
The applications themselves may be confined to Windows, but if designed properly can very easily communicate with applications on other platforms. I won’t even begin to get into Mono, b/c as a serious .Net developer I think it’s rubbish…they are basically attempting to reinvent the wheel with stuff that’s already tried and true (and very mature) on *nix, which can be done with those tools, and again (if designed properly) can communicate with Windows/.Net applications down the line if need be.
The point is, why limit yourself to one platform? There are plenty of things that Windows (and .Net) do well, and vice versa for other platforms. I’ve said it several times in this thread…any decent size IT shop will always have a mixture of languages/platforms/OS’s…they all have their niches, and can all play nice together if need be. There’s no need to limit yourself to one platform anymore. Closed or not, MS has a huge presence in IT…and going in with that sort of attitude (that MS is closed or whatever) isn’t a good mindset to have. In the end, the stakeholders in the project don’t care what platform it was developed on/deployed to…as long as it’s done within budget, and most of all, “just works” when all is said and done.
Edited 2005-12-14 06:36
Well, some of us have probably missed the big news of Javas death. They are just trying to make us see the light, which is C# or Ruby or Python or Perl or something.
The fact that Java applications exist and are being developed even as I write this, is a fact that must not disturb those who know better.
I wonder if I’m heathen for having Eclipse on my machine?
“dying since the 90’s” is a good thing; look at what it did to Apple, they’ve been dying more every day!
Since you already are voted up to 5 points, and I think they ought to change the scale for such a brilliant comment, I just wanna say, I’m happy to see you can read between the lines and analyze the situation.
Java isn’t going anywhere soon… it’s just that this journalist tries to compare enterprise applications which are mission critical, with some obscure community site which can be taken offline for maintenance once a week…
It’s an article from BusinessWeek. What else can you expect from them ?
For all these facts, could you provide some supporting documentation? Even if only for the ones that I call BS on 🙂 :
“Fact: Java is still the most in demand programming skill in the developer job market.”
“Fact: J2ME is now installed on over 2 billion mobile devices. That’s right. 2 billion.”
Etc…
“For all these facts, could you provide some supporting documentation? Even if only for the ones that I call BS on :-)”
Certainly.
Java and job demand:
As of today, these are what the dice.com numbers look like as far as jobs wanting various skills in order from most in demand to least in demand.
Java: 12181
.NET: 10091
C: 9022
C++: 7113
Perl: 4035
PHP: 786
Python: 509
Ruby: 72
Java is the clear leader. And Ruby, the overhyped Java killer, only has a whopping 72 job postings. PHP, which some also like to proclaim will be the Java killer, has only 786.
J2ME and 2 billion mobile devices:
This was a little off. Java is in about 2.5 billion embedded devices. About 708 million of those are mobile phones. Here is an interesting thread on the topic:
http://answers.google.com/answers/threadview?id=571139
For many programmers, that’s the only consideration.
Trendiness is nice for padding your resume/CV, but it’s not always the best reason to choose a particular tool…
Large, Huge, Enterprise = JAVA
Small,simple,quick,departmental = LAMP
Is the above concept rocket science? Seems pretty much common sense to me.
On Linux you have the best tools. On Windows, you have the Java developers –legions of them.
On linux, you don’t have a proper Java implementation.
Are you assuming that you like Windows just like most Java developers? 🙂
I repeat: I don’t care. I only care when you want to say that Java is good. It’s not. Java is bad for server-side and client-side. But as long aas you are getting your paycheck, you won’t have a problem with it. Java employs maybe 50% of the corporate programmers. It’s a pain to watch RedHat adding support for Java. But I understand it. Though I would prefer that Havoc Pennington were working on Gnome and Metacity instead of on Java server technologies for RedHat.
Are you sure? Last time I checked, at least Sun, IBM and BEA have their Java implementations running on Linux at the very same level than their Windows versions…
Amazingly, that’s almost completely the opposite of the truth. All the Java development I have ever done, whether small, medium or enterprise scale, and whether corporate or personal, has ended up running on a unix box.
My pet peeve is with people using Windows for Java development. For example, when they prefer to use Eclipse on Windows rather than on Linux.
My pet peeve is with people using Windows for Java development. For example, when they prefer to use Eclipse on Windows rather than on Linux.
So? What’s wrong with that?
On Linux you have the best tools. On Windows, you have the Java developers
On Windows you have just as good tools — in fact, you have the same tools. I don’t see any reason to drag operating systems into this holy war.
Amazingly, that’s almost completely the opposite of the truth. All the Java development I have ever done, whether small, medium or enterprise scale, and whether corporate or personal, has ended up running on a unix box.
Agreed. I think people interested in Windows and not necessarily other platforms are going to be more into .NET than Java.
Let’s ask then.
How many of you Java programmers like to use Windows? 🙂 Nobody wanting to raise the hand? 🙂 Come on, it’s not such a shame.
Actually, most of the Java developers I know do all of their development on Windows machines, regardless of what platform the binaries will ultimately be deployed to…once they finish their work, it’s up to the operations/deployment teams to figure the rest out (as far as ironing out the plaftorm specific kinks). At least that’s how it’s been on the larger projects I’ve worked on. In reality, most Java guys have nothing against Windows or .Net…they chose to be Java devs, just like I chose .Net. As it relates to corporate IT, the platforms are more complimentary than supplementary, and work great together if done right.
Thanks for sharing it. Now I can relax. I think you are right in using DotNet, BTW. It’s a tool to respect.
That is crap. I develop java on my mac, which has a proper java implementation.
My impressions: Java has done well on the server-side and it’s also established itself in many companies as a language for developing internal custom desktop apps. Where it hasn’t done well is in competing against popular commercial, off-the-shelf software – what’s written in Java is often slow, uninspiring or merely catching up with commercial rivals rather than surpassing them (e.g. ThinkFree Office).
In the sphere of web applets, I think it’s failed – Flash has usurped Java as a tool for creating Rich Media Applications (RIA) that run in the web browser; and now AJAX is gaining momentum. Not that it really matters for Java – they’re doing well enough in other areas, particularly the corporate sphere but they do lose that high-profile visibility of being at the forefront of the latest web developments. And one can’t deny that the buzz surrounding these develpments does attract developers. The Ruby on Rails framework has made a big difference to Ruby’s popularity, whatever you think of the language.
Smaller languages, particularly dynamic scripting languages like Python or Ruby, have a relatively quick (initial) learning curve. They also give the impression of being small, nimble, easy to bend or adapt and quick for prototyping or experimenting. Java probably shares some of these characteristics, but it’s now lumbered with a different image – a powerful and capable language suitable for enterprise-level apps, but also large, complex and difficult (and still slow on the desktop!).
AJAX still needs software on the server to work 🙂
All those PHPs, ASP.NETs MySQLs etc. are based on relic relational data model from 70s. It was quite modern then compared to hierarchical and network databases, but now, with object orientation as dominant programming paradigm it has become a hindrance.
It’s a very inflexible model, in which only fixed format data can be stored. Only basic string/numeric/data types can be accessed natively by queries, there is no operation on complex types in a simple way. Query or SPL language operations are basic, and primitive compared to what you can find in any programming language.
More sophisticated data is to be stored either in object databases or in good old files – wchich are often simply serialized objects. Business world seems to go toward XML which has it’s own XML databases, though still in infancy.
It’s not only about data, but also about speed. Relational model is brain damaged here. It forces data that is a logicaly single entity to be separated with every write, and each read has forces DBMS to join data again. Table joins make RDBMS up to 1500 times slower than object DBMS for the same task! And it’s getting worse.
The main hardware performance problem is LATENCY wall. That is throughput of both disks and memory grows according to Moore law, but latency decreases extremly slowly. RDBMS which spread data over n tables will have n times more latencies to wait than better models that keep data together.
But that is not “Enterprise” stuff. That’s academic stuff.
ORDBMS are great when the life-time of you data is about the same as the life-time of your webapp and that one or two webapps are the key users of the database.
ORDBMS break down when the life-time of your data vastly outlives the life-time of your webapp or when you have several webapps accessing the data with completely different visions on what the object model is (i.e. enterprise software).
This is where RDBMS shine. If you partition your data into 4th or 5th normal form, you can slice and dice your data in every useful combination that each webapp needs and if you have a good RDBMS and properly designed queries you’ll have great performance because you’ll only have to send back exactly the information you want. If you’re having latency issues, then I suggest that you look at your queries and your indecies and see if you’re doing something wrong (like doing an O(N^2) operation when an O(N) operation will do).
Please don’t think that because you have a good hammer that all your problems are nails.
I do not think the relational model is ever going to be a relic, sql is a relic but the relational model is very usefull. I ask you what is so intresting about xml? the relational model has some intesting theoretical results. and relations and sets are also very fundemental to math. for xml or objects that is clearly not the case.
sorry to reply to my self.
but i think i have a nice analogie . relational model is is to a database guy as lineare algebra is to a graphics person or formal languages are to compiler writers
“All those PHPs, ASP.NETs MySQLs etc. are based on relic relational data model from 70s.”
PHP and ASP.NET has nothing to do with the relation data model. They are *programming* languages that can use pretty much any data model.
Please don’t confuse the ‘relational model’ with ‘current database products that use SQL’. While the ignorant or unintelligent may agree with you, those with knowledge will correctly deduce that you are strictly bush league.
If Sun really wants to score big they’ll release some of their Java base classes as open source or let companies port Java to the “little” platforms (that are currently unsupported by Java) at no price.
As it is, Python (and PyPy at http://codespeak.net/pypy/dist/pypy/doc/news.html ) are ported to other platforms in a hurry. Likewise the wxWidgets interface to Python beats Swing quite handily and uses somewhat less memory, I might add. Once PyPy hits version 1.0 with its ability to export to the Low Level Virtual Machine at http://llvm.cs.uiuc.edu/ Java will have no further reason to exist.
As for LAMP being only used by small companies you’ve obviously never heard that Google uses Python extensively.
Edited 2005-12-13 21:57
“or let companies port Java to the “little” platforms (that are currently unsupported by Java) at no price.”
They already do. This is how Java on FreeBSD works. Sun does not make an official FreeBSD port of Java. But they do allow the FreeBSD team to create the port themselves.
“or let companies port Java to the “little” platforms (that are currently unsupported by Java) at no price.”
They already do. This is how Java on FreeBSD works. Sun does not make an official FreeBSD port of Java. But they do allow the FreeBSD team to create the port themselves.
Not at no price[/i]. FreeBSD has to pay through the nose for permission and Sun takes excessively long times to certify it, which means that FreeBSD’s Java binaries lag far behind mainstream. I think they’re still at 1.3.1. Sure, FreeBSD’s patches allow you to compile Java 1.5/5.0 yourself, but neither they nor you can legally distribute the generated binaries.
Supporting non-mainstream platforms yourself is pretty easy: most free runtimes like Kaffe, gcj,SableVM,JamVM or CacaoVM already run on those non-mainstream platforms, or are very easy to port. It took me ~5 minutes to port Kaffe to ia64-hpux, for example.
Send your bug fixes the way of the upstream projects, they appreciate help with non-mainstream ports. I’ll go back looking at some patches for powerpc-netbsd for GNU Classpath now …
cheers,
dalibor topic
What a load of BS! Shouldn’t people do some research first before just yapping on about crap they have no clue about!? I mean, the article keeps going on and on and on…about how companies are using AJAX in place of Java!? Does the author even know what AJAX is or how it works!? I’ve used AJAX in the last 3 web applications I’ve written and guess what language the framework used in those applications is written in …. yes, JAVA!
I think people who write business-related articles should keep writing business-related articles and leave technology for those who understand something about it!
Sheesh!
I work for a huge company and Java is there with C++ as one of the core technologies on which our software is built. And Java is gaining momentum. If anything is it being under used and a lot of people are working on changing that.
It is very expensive to develop, to maintain, it requires high-end to be run (don’t expect to run Java on a low-end server). It’s expensive to develop: requires expensive laborforce and requires more time to have your job done. I can’t explain why Java has survived if there are better, lighter and more affordable solutions such as Python or PHP5 which are perfectly suited for the enterprise, and best of all, are open-source, which Java is definately not.
My personal experience is that Java scales and manages very well for larger projects and PHP5 and Python for smaller ones (in general). Also, each language definitely has areas where it’s considerably more natural to perform certain tasks (anything to do with XML in PHP5, for example).
As for performance, I would say that Java typically takes LESS resources and scales better for anything but a very small application. Presuming you adhere to any sort of best practices. Also, I don’t know that the language really makes much of a difference in the cost of personnel.
You don’t know what you are talking about, do you? You are just spouting rhetoric you have heard other places.
“It is very expensive to develop, to maintain”
No, it isn’t. It’s actually quite easy to maintain. Much easier than PHP.
“it requires high-end to be run (don’t expect to run Java on a low-end server).”
No, it doesn’t. It requires less horsepower than either PHP5 or Python because of Hotspot technology. Put a Java Web app and a PHP5 or Python Web app on the same system, and the Java one will run circles around the PHP5 or Python one. Especially under high loads. Hotspot shines on server side applications, often delivering performance that is as good as C. And sometimes even better.
“I can’t explain why Java has survived if there are better, lighter and more affordable solutions such as Python or PHP5”
Simple. PHP scales like shit to large and complex applications. Large PHP applications are often compared to Perl when it comes to being maintainable. Python scales better (although it’s lack of support for enforcing variable declaration and lack of strong typing cause problems in large projects and projects being developed by teams), and is very maintainable but doesn’t solve the performance problem. And neither one solves the security problem, which means RPC in either PHP or Python is not possible in anything that even resembles safe. That makes both of them entirely unsuited for Web services. And no, neither one is suited for the enterprise. I have also yet to see anybody write a portlet in PHP. I’m not even sure if it is possible to do so. again, making it laregly unsuited to enterprise development.
“and best of all, are open-source, which Java is definately not.”
Ah… Now the truth comes out. You are spreading technical FUD about Java because you are a “It’s not open source so it sucks” militant.
Well, Java is open source. Anyone who wants to can get the source code. And you can modify it for internal use if you want. And there are several open source Java implementations in the works. GNU classpath, Kaffe, and Harmony.
Edited 2005-12-14 19:49
And I will find that great, because of the few people who work with programming, most will be in Java assembly lines doing what they need.
require ‘dr/db’
v = DR::View.new
v.interface = :MySQL
d.db_str = [‘127.0.0.1’, ‘login’, ‘password’, ‘test’]
v.table = ‘customer’
v.open
p v.rows #prints the returned rows.
v2 = v.new_view(‘select * from order where customer_id = ?’)
v2.open(v, :CUSTOMER_ID)
p v2.rows #prints the selected customer’s order
v.go
p v2.rows #prints the next selected customer’s order
p v[:NAME] #prints the selected customer’s name
Can JDBC or an ORM beat the flexibility of the above code? The library above can update the database as well (insert, update, delete).
Note that it’s not ORM, but works in a similar way, though the master-detail relations are by yourself.
Oops. Typo:
d.db_str = [‘127.0.0.1’, ‘login’, ‘password’, ‘test’]
should be:
v.db_str = …
Java has the big problem that it is “sorta” good for everything, there is no real strong point and people are starting to become aware of other languages.
* Ruby and Ruby on Rails is coming out big now but I wouldn’t underestimate the damage that PHP did.
* C# is going to absorb a lot of Java programmers because it has a lot of improvements (IMHO) over Java (exept the damn naming conventions, they bug me).
Once ports of most Java apps are available (Eclipse would be nice) I expect the C# adoption take off. Right now Java has lots and lots of realy cool libs and projects that make it imposible to just abandon Java.
I like Java. I also like C# and Ruby (but not Python). Now, that said, I don’t see Java “dying”. C#/.NET offers marginal improvements over Java, which might make it a better language and .NET a better platform for those who haven’t already invested in Java, but the fact is that Java is already entrenched in the market. Ruby and Python aren’t really direct competitors to Java — while they’ll take away from some part of the market, they won’t hurt Java in its home ground.
Java is the new COBOL. And I mean that in the most complimentary way possible.
Question; why even have a managed environment if the only target for your application is Windows? seems like a bloody waste of time and pointless sacrifice of speed if there is only one platform it can be deployed onto!
Sure, Java may have its faults, and SUN has sat on its ass in the past for a while, but they’ve finally received a few boots up the behind and now their development is back on track – now sure, features aren’t added at the same speed as which Microsoft does – hell, the only have to test for ONE Platform – Java on the other hand has to make sure that features that expand the standard can actually be implemented on more than just a few, it must be possible to make the feature possible on ALL interations of Java, regardless of what the underlying hardware/operating system combo is.
That Java does need is some good, easy to use, drag and drop, VB like IDE’s that allow people to drop widgets onto a form, assign a little code and voila, nice front end made in 5 minutes – an IDE for Java needs to be created to take in the reality of IT in the business world – quickly and dity solutions are the back bone of many businesses and it doesn’t matter how sexy the framework is, or how ‘correct it is’ the management want the application out and up ASAP.
Well,lets take a look around
Enterprise (CMS/Workflow,BPM/Directory,Web,Mail,Jabber servers,Office Suite) = JAVA
Home (Games/Multimedia) = JAVA
open source society (most popular language at sourceforge.org) = JAVA
cell phones = JAVA
and who saids java it’s losing ground?!! – Steve Hamm does!
Wait a min, who is that Steve… ?
and Windows is so the 80’s, Linux is so the 90’s and Unix is so the 70’s…. even the world is so old that we are going to disapear within 2/3 years.
If you need to target a Windows machine, .Net is the clear choice. If you need to target something else, Java is definitely the way to go as Java on Windows can’t compete with .Net.
I’m currently working on a large project for the largest bank in the country (and they standardized on Java years ago for all internal development)…lo and behold I’m a .Net developer though. Most of the backend implementation is being done in Java, with .Net facades being developed to wrap around the backend functionality to pass data to a variety of GUI tiers (mobile, web, desktop, which are all done in .Net as well). In this era of ease of application interoperability via web services/remote object invocation/etc, all large projects stand to gain from a blend of technologies, each one suited to the task at hand for the specific domain that needs to be addressed.
It’s also worth mentioning that my (.Net) group is surrounded by Java guys…never once have any of us argued the merits of one platform over the other…we’re there to get a job done, and bottom line we all love coding regardless of the platform. These religious wars are so pointless and counter-productive.
It slips 4% and he’s worried about it? The biggest software maker in the world has recently gotten behind its own technology and released the second version of it… And they’re surprised that another shipper lost some share?
Geez. In more surprising events: Man aims toy gun at cops in the dark and gets shot.
Tell me when it slips 10%, then I’ll care. Java is just now becoming the CS department fad language; so it’s probably about time for it to die off .
I’ve been looking into c# lately. My honest opinion, without using it yet, is that it looks like the next c++.
I don’t mean that as a compliment: I think c++ is terrible.
C# has so many constructs …. Maybe languages like c and python have spoiled me, because I expect some simplicity? C# almost feels like a language that has been around for decades because it’s got so much added onto it already.
Maybe I’ll have a change of heart upon actually using it. But for now, it just seems complex.
Definitely. Although they’re really not religious wars. What your referring to as a “religious war” has certainly gone on in your head and that’s how you know which platform is suited for what. The obvious difference is that you don’t argue with yourself like you will with other.
There’s religious debates over this stuff, and then reasonable discussion about it which spreads knowledge that some may have not noticed.
I don’t see the former happening in this thread. Yet.
I really don’t care about that discussion too much. The good thing, right now, is that there is a possibility to in almost every situation choose a technology that seems to fit best the problem it is about to solve.
Maybe I’d go for building a web frontend or something the like using Python (which I really enjoy, once in a while), Perl (which I spent years using exclusively for almost everything) or even PHP (which I then and now always hated and in most cases consider to be the least best solution if I have to deal with coding in it. But probably I’ll always get back on building “internal” things, on doing middleware’ish software systems using a more strictly typed language like Java. This is because I simply think that some things are done more cleanly, more concise using Java compared to any of the “scripting” languages mainly used for web sites, and Java probably is the only real solution for that (given that it’s a bad idea using .NET if you’re into using Windows, Linux, *BSD and Solari altogether).
In the end, I guess it’s all about relying upon technologies to connect all the different tools, on using something like CORBA or XML-RPC or SOAP or whatever might come up so you can build applications that indeed _support_ choosing an appropriate tool in most situations. To me this is way more valuable than questionable “trend” discussions about single solutions…
KR
I bet no one could predict the flurry of comments spouting stuff like:
“Scalability”
“N-Tier”
“Enterprise applications”
It’s great that you java people consider your work to be “enterprise” but let’s have a reality check: most of you aren’t working on the next Amazon.com. These “new” lightweight (there’s another buzzword for you) frameworks might not be up to your “enterprise”-level standards (yet) but they’ll get there. Don’t worry.
Both things (Java being strong with companies and Java being so nineties) don’t seem mutually exclusive to me. Maybe it’s just me, of course.
The thing is J2EE is undeniably very strong right now and a clear choice (sometimes the only one they consider) in many situations, web applications, mobile applications, multiplatform applications…
But that it is also true that there are emerging platforms (e.g. Ruby on Rails), or LAMP (which is kind of absurd to say is something new), or even simply ways of doing some things (e.g. AJAX and rich web interfaces) which are much closer to being ‘bleeding edge’ than J2EE can ever be if it goes on with things like EJBs or millions of APIs.
Just take a look at the popularity the Spring framework has gained lately. People may have to work with Java, they may even want to, but they want to keep it simple. They want to go back to Plain Old Java Objects.
And that is something that J2EE, the way it seems to have gone, is not really addressing. Ruby may be some guy’s language with no support from a big company and no consideration in the enterprise, but it seems it’s what developers want. Yes, because in the end it seems that somehow it all boils down to differences between what companies want to have (corporate support, feeling of security) and what developers want to use (better tools, technical merits).
So, anyway, in a sense Java is indeed so nineties, but that doesn’t mean it’s dead at all.
I develop in java both in company were i work and also for all my private (sometimes open source) projects. I dont switch anywhere, those hypes (mono, .net, rails, python…) for other platforms come and go but java stays.
One strong reason why i prefer java is that java has best development tools, these tools are written in java and are cross platform, and i can use best development tools anywhere including Linux and Mac. One might not care about “cross platform thing”, but when you see Intellij IDEA running in Linux then it feels like its killer java advantage over any other platform in the world.
I agree with the comments stated osnews and on the original article’s site. The article writer does make a lot of apples and oranges comparisons. If I had an enterprise wide application to deploy i would go with Java every time, not LAMP, not .Net even though I prefer it.
Java has the strength of being scalable. Where as the technologies mentioned ONLY work well in a certain spectrum,where as java has support for most enterprise-internet development needs
Java does somethings very well and we have all heard and seen similar arguments before. Java is going to die just like C++ , right ?
from the article:
“Java failed to make a dent in Microsoft’s desktop Windows monopoly..”
eh?
shoukd it? what did I miss?
The article is basically saying Java is for suckers because I, the author, say so. He tries to use the comments of a guy who is in the business of selling LAMP, and uses books sales as another “fact. Sigh, what a crock. Java is growing by leaps and bounds, and the author is in total denial. I have seen more coherent spam mails that his writing!
We also shouldn’t forget that Marc Andreessen is the same guy who predicted that browser based desktops running Netscape would replace the standard Windows GUI. He clearly called that one wrong. I suspect his call on this one will flop just as badly.