Does an Open Java Really Matter? 766
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.
Re:(Troll) I hate java, why does /. love it? (Score:5, Interesting)
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.
Submission needs -1 Troll (Score:5, Interesting)
>>
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.
If it weren't for Python, sure (Score:5, Interesting)
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.
Re:Use debian? (Score:5, Interesting)
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.
Re:If you want a job developing stuff (Score:2, Interesting)
Re:Java never really mattered, Taco? Ouch (Score:5, Interesting)
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.
MOD PARENT UP (Score:1, Interesting)
That's where I'm at as well. For the 50/80/90/100% (usually 100%) of a program for which performance is not critical, Python just kills Java with respect to other factors. And for the 50/20/10% of the program for which performance is critical, Java is just too damn slow (even idiomatic C++ is often too slow). Plus, Java doesn't like to be called from other languages--it really wants to be "boss".
I've used Java from one of the first alpha releases, but it just hasn't panned out...
Re:(Troll) I hate java, why does /. love it? (Score:2, Interesting)
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.
java is like an old truck (Score:5, Interesting)
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.
Re:If you want a job developing stuff (Score:3, Interesting)
Thus, you have never needed Java. However, for developers who are new to the industry, it is difficult to avoid Java.
Does an Open Java Really Matter? Just like... (Score:2, Interesting)
Seems to feed me pretty well... (Score:3, Interesting)
Re:(Troll) I hate java, why does /. love it? (Score:4, Interesting)
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.
Re:W(h)ither Programming Languages? (Score:3, Interesting)
I claim that Ada83 is better than C, Ada95 and Eiffel are better than C++ and Ada05 is better than Java or C#. But that's just my opinion.
What is very clear is that the design philosophies of Ada (focusing on 'programming in the large') or Eiffel (focusing on 'correctness by contract conformance') have been lost. Both languages, along with others (dating back to COBOL) is on readability over writeability. (Programs get read much more often than they get written.) Python in some respects is the exception, as a language that doesn't start with C as the font of all syntax, and provides more emphasis on readability.
And many of us work on things that can't rely on high-powered computers connected to high powered networks where everything is a "web service", and the consequence of a software failure is more than "oops..."
dave
Re:(Troll) I hate java, why does /. love it? (Score:5, Interesting)
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?
Re:Java never really mattered, Taco? Ouch (Score:5, Interesting)
It's been nearly 11 YEARS. I think it's time you bury the hatchet.
Amen! (Score:3, Interesting)
Can I get an amen?
It doesn't matter how super-zappo your favorite language is if it doesn't put food on the table. Your likes and dislikes don't figure into it when it comes to a job. See Maslow's hierarchy of needs for further clarification.
Go to Careerbuilder and look up Java jobs. And while you're there look up .NET (which is pretty much Microsoft's Java). The jobs run 60/40 in favor of .NET. But there's dozens of them. High paying, too.
I'm currently studying for my Java certification. Why? Because I love Java?
Nope. Because it's good to have something to fall back on. I'll get a .NET cert too, as icky as that sounds. I have a family and I have to think of them first.
Re:Multiple Inheritance (Score:3, Interesting)
Ignoring the parent troll for a moment, can someone please show an example of where multiple implementation inheritance is superior (not just equivalent) to multiple interfaces and the composition design pattern?
After all, inheritance is just a convenient way of taking functions from some other implementation of an interface and making your own implementation use those same functions. In that regard multiple inheritance makes sense, since you'd be able to pull in code from all over the place easily. But, one might argue that it should be possible (and easy) to do that more explicitly than using inheritance.
Re:Java never really mattered, Taco? Ouch (Score:3, Interesting)
I think VBA is in wider use then Java.
Meh. Cranking out spreadsheet macros for arbs and margin traders doesn't count as programming. And I'm not certain what metric anyone is using here.
I must commend you on defending your biases and prejudices so long and so well in the face of concerted attack from objective reality. Keep up the good work!
obDisclaimer: by temperment, I'm an assembler programmer, so I consider all y'all wimps. I don't waste any emotion on disliking java, C#, or even Haskell or Smalltalk.
Re:Java never really mattered, Taco? Ouch (Score:4, Interesting)
I will say the J-word once again. May the Emperor forgive me.
Try writing this: http://dimiter.dyndns.org/sqema/index.jsp [dyndns.org] in anything *but* Java, and make it faster. Then we'll talk again.
Re:MOD PARENT UP (Score:1, Interesting)
You can run separate instances of Python, and the GIL won't matter. That method scales extremely well on web servers. It all depends on the application. I find the number of applications for which the GIL is really an issue are quite small. The majority of applications don't require multiple threads. Many that do use multiple threads do it for I/O optimization(for which Python does let go of the GIL). Other applications can be split among processes. Frequently if performance is one of the top requirements then you probably don't want to be using a byte compiled language anyway.
Re:Java never really mattered, Taco? Ouch (Score:3, Interesting)
That's due to the culture surrounding the language rather than the language itself. I had an internship at a large Java-using company (not Sun) where we wrote navigation software for use in in-car computing. One of the pieces we needed was a server to provide the data (street segments, basically). We first used a package built by another team in the company that was huge (dozens of MB of Java code) and incredibly slow. We re-wrote it in about a week and it was orders of magnitude faster and smaller, with more features.
When looking for a web framework for my company [adoromusicpub.com], I ended up writing a framework from scratch rather than using anything else out there. Even the best software, such as the Apache projects, suffers from lots of bloat. This isn't the fault of the language - it's the mindset that many people are in.
It can be argued that the standard Java libraries are too large. That's a valid point, though the vast array of functionality provided sure does come in handy. In addition, it means that you likely will have to ship less libraries with your software - the user's JVM will have them all included.
Re:Java never really mattered, Taco? Ouch (Score:5, Interesting)
Re:(Troll) I hate java, why does /. love it? (Score:1, Interesting)
Is Java faster? [debian.org] Yes. But the first dynamic language (AFAICT) in this benchmark is only 18% slower (SBCL). Not exactly compelling evidence that all those obsessive-compulsive type annotations buy you much
And if Lisps make your eyes glaze over, Python (+ Psycho) is only 3.4 times slower than the fastest Java in that benchmark. Hardly an order of magnitude.
And dynamic languages can get much faster. [blogspot.com]
Re:Java never really mattered, Taco? Ouch (Score:3, Interesting)
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 [bytonic.de]
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.