Does an Open Java Really Matter?
snydeq writes "Fatal Exception's Neil McAllister questions the relevance of the recent opening of Java given the wealth of options open source developers enjoy today. Sure, as the first full-blooded Java implementation available under a 100 percent Free Software license, RedHat's IcedTea pushes aside open source objections to developing in Java. Yet, McAllister asks, if Java really were released today, brand-new, would it be a tool you'd choose? 'The problem, as I see it, is twofold,' he writes. 'First, as the Java platform has matured, it has become incredibly complex. Today it's possible to do anything with Java, but no one developer can do everything — there simply aren't enough hours in the day to learn it all. Second, and most important, even as Java has stretched outward to embrace more concepts and technologies — adding APIs and language features as it goes — newer, more lightweight tools have appeared that do most of what Java aims to do. And they often do it better.'" Since Java itself never mattered except to sell books, I still don't see why opening it matters.
A "cludgey" app can be written in every language, Java is no exception.
Without getting in to a bunch of holy war things, here are some of the things that Slashdotters may like about Java:
1. You can get paid to write in it. A lot of us (myself included) are software developers who write stuff in primarily in Java. Sure, I know other languages like Ruby, but it's nowhere near as ubiquitous as Java. This makes employers like Java.
2. It's mature. It's been around for a long time, and the libraries are mostly stable and bug free. This is not true for some other languages. Also, the APIs for Java are huge and support everything, and the documentation is good.
3. It's fast(er). Older Java GUI stuff was not fast, and it gave people the impression that all of Java is not fast. Well, Java 1.6 is fast.
4. It's cross platform. This isn't a big deal for me so much, but it might be for some people.
>>
Since Java itself never mattered except to sell books, I still don't see why opening it matters.
>>
The day job could buy an awful lot of books with the $X0 million worth of Big Freaking Enterprise Apps we have written in (mostly) Java. Its like any other tool: there are some places where it makes excellent sense, some where it does not, and I have my own personal tastes for when I would use it or not. (Cards on the table: I do proprietary desktop Java development in my spare time and BFEwebA at the day job, but have been mixing in a bit of Rails programming lately.)
At the end of the day, what matters is "Does Java help us make our customers happy?" It does. Despite how skull-crushingly boring writing CRUD apps can be, for our customers having the things available and working means the difference kissing their kids at 6 PM or being stuck at the office at 2 AM wondering if they will still have a job in 5 hours.
So how does opening Java matter? Well, even in an extraordinarily mature platform, you'll sometimes find weird, off the wall, how the heck did that happen issues with particular combinations of software. Enterprise Computing = combinitorially explosive numbers of possible adverse reactions. We've got at least 150 packages in the system, many of which have to interoperate with code which has not seen the light of day since the mid-90s.
You'd think the odds of actually having to touch stuff deep in the bowels of the infrastructure are pretty low, but believe it or not we have our own little fork of, e.g, Tomcat 4.1 in production use *to this day* to get around a particular classloader issue that got fixed in later releases. (We can't upgrade that particular customer at the moment. Its a long story and if you've ever worked in industry you've heard the basic gist before.) Java being open means there is one less place for issues to be totally inaccessible should we need to work around them.
Help poke pirates in the eyepatch, arr.
We're a Python shop. It does everything Java does that we need it to do, but is actually fun to write. If Python disappeared tomorrow, though, Java would be a no-brainer. It's cross-platform and wouldn't leave us beholden to the good wishes of Redmond.
Dewey, what part of this looks like authorities should be involved?
That is a good point. LAMP became a one-checkbox install because it's FOSS. LAMJ could easily have been. Except it's not a very catchy acronym.
Personally I'd like to see LAPJ: Linux, Apache, Postgres, Java.
Anyway, love it or hate it, Java has reached the critical mass to be around for a long time.
Yeah, that was a really lame comment. Does Rob think the programming world consists of Perl hackers like him? Thousands of programmers make a living writing Java code.
BTW Rob, when is the new browsing system going to handle scores correctly? I just started writing a response to a Score 0 AC post, something I never do intentionally. Maybe if you rewrote Slashdot in Java...
But here's why opening Java matters. When people talk about "opening Java" they really mean "opening Sun's implementation of Java". There have always been open-source implementations of Java, but they've had a hard time keeping up with the latest spec. So if you're distributing open-source software that depends on Java, you really want Sun's Java implementation in the bundle.
Java has its problems, but it's actually a great stable platform. I think people carp about Java's flaws because it is so popular, taking shots at the leader. In reality, Java is a huge and boring but effective ecosystem if you want to deliver a piece of software and have it just work.
It's not sexy, but jeez on linux, windows, and Mac, I've built java code and moved the .jars all all over the place, and darned if it doesn't do what it's supposed to, like an old truck that just works carts around all sorts of work.
With Java being open, we all benefit from its increased spread as an open and reliable platform -- like C. Depending on Java looked a more iffy when it was so tied to Sun. Your source code is such an expensive investment, you don't want to take weird risks (cough .net cough). With Java open ... well now it looks like a very safe, neutral choice.
You can write C code, and since it's open, you know your code would work all over. Java has a future that way too now.
C is still great for its niche, but (flame on) Java delivers 10x more capability in its libraries. C is a creature of the 1970's, so you don't get so much (I *love* C, but get a lot more done in Java). Also, the optimizations in HotSpot are awesome, making languages which run on the JVM look like the future. I hear if you want to see Java with the cruft stripped away, check out Scala.
A lot of the biggest kluges in early Java have fallen out of favor:
1. Struts 1.x is huge, but it isn't being used as much on new projects. Newer frameworks like Tapestry, Wicket, Struts 2/Webwork, and Spring are far easier to setup and use, more flexible, or both.
2. EJB2 was an overengineered mess. EJB3 is viewed as far superior, and many major sites aren't bothering with EJB at all.
3. A lot of Java tools like Hibernate have moved from checked exceptions (which must be caught or declared to be thrown in the method signature) to runtime exceptions (which do not need to be caught).
The language definitely has warts. But the common open source (and for that matter, commercial) tools are learning lessons in ease of setup and configuration from Ruby, Python, Perl, Ruby on Rails, Zope, and so forth. (I used web applications as the example domain because that's what I know a little about. I understand similar enhancements are happening elsewhere.)
On the other hand, the language standard library is big enough and has enough corner cases that the learning curve is enormous.
So you better have to explain yourself what's really wrong with the type handling in Java. Maybe you program in some more obscure language?
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Java has be come the most popular language(http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html). CmdrTaco however has hated Java since the summer of 1997 "My hatred for Java has never died since that moment." (http://meta.slashdot.org/article.pl?sid=07/10/02/1553218). Sun on the other hand is trying to clean up their act(http://slashdot.org/article.pl?sid=08/06/25/0236208).
It's been nearly 11 YEARS. I think it's time you bury the hatchet.
I will say the J-word once again. May the Emperor forgive me.
Try writing this: http://dimiter.dyndns.org/sqema/index.jsp in anything *but* Java, and make it faster. Then we'll talk again.
I know that you're a troll but as a counter point one thing that Java does really well is cross architecture. When you compile ASM,C,C++ etc you normally compile for the lowest common denominator i386 possibly Pentium MMX(2). With Java what ever platform it runs on is how the code is optimized, on the fly. So if I write a program it will take advantage of SSE/2 or Sparc or whatever since the JVM will handle everything for me. You "can" do that with C, C++, ASM(to a lesser degree) but what you end up doing is writing it for all the different platforms but compiling all of them into one executable which any one can tell you is nasty as it gets. If I compile a C program to take advantage of the latest and greatest processor it will only run on those machines that host it, a Java program will run on any and all that there is a JVM for.
A loop, by its nature, continues. If that didn't make sense, start reading this sentence again.
Game programming I'd think would be doable, if they have good DirectX libraries and an SDK that works well.
Java has some pretty good libraries for game development.
Also, check out the pure Java implementation of the Quake 2 engine. Runs on every major platform with near native speed. Jake2
I doubt that Java will ever be used for mainstream games, but for small projects it is a great tool that will allow a game to run on any platform with AAA title graphics and sound.