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.
Some would say the same about Slashdot.
"Since Java itself never mattered except to sell books, I still don't see why opening it matters."
What an ignorant and irresponsible editorial comment. Care to substantiate that claim, or even clarify what it means for a language to "matter?"
I guess OpenOffice.org doesn't matter either then...
-1 Uncomfortable Truth
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.
The problem with the whole C++ is "obsolete, too complicated, and inherently broken" and isn't advocated these days is that it remains the language of choice for real complex scientific and engineering challenges, especially time-critical/real-time systems, which the newer languages typically don't address well.
>>
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?
"Slow JVMs. More syntax than C. Lame." -- CmdrTaco
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
I have written a few applications in Java.
I actually like it. If you want to write a database driven application that is also multi threaded I think it is just great.
If you need to be multi-platform it is the best solution that I have found. QT is close also.
The speed argument is old and should be tossed. Swing isn't slow or nasty anymore and is pretty speedy. SWT is also pretty nice.
Try Jedit, Netbeans, or Eclipse to see what a nice java application can feel like.
If you haven't used the latest version of Java I suggest you try it.
I have even found good uses for java appletts. Yes I know they got a bad name because way to many idiots "Microsoft I am looking right at you" used them for stupid things like hover buttons.
Java is a a good free as in beer and free now free as in GPL RAD system.
As far as it not mattering? Well a lot of people make a living writing Java. I just saw a Story on slashdot about a guy running java on a Cluster to do modeling.
As far as Java being to big for anybody to use it for anything practical...
Well JEdit, Netbeans, Eclipse, OpenOffice, and thousands of cell phone programs all say BALONEY.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
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
What developer has to do everything? We use Java to run our systems without using all the complex frameworks that you seem to be referring to. It does the job. Just because people have developed over-engineered frameworks with a language doesn't detract from the the value of that language.
There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
"Since Java itself never mattered except to sell books..."
Wow...that has to be one of the most idiotic statements I've ever read from one of you guys.
I'm no Java evangelist, but saying Java itself never mattered is like saying C (or even C++) never mattered - it just smacks of total ignorance.
Java has had a HUGE impact on software development, especially in the enterprise. I won't say it's all been great...but it's certainly made a difference in a lot of areas.
If the language really never matter, there would not be such a large community of developers using Java, and Microsoft would not have bothered to change their entire development platform to be so much like it (i.e. C#/CLR/.NET).
I'd thought you Slashdot guys were smarter than this. I guess I was wrong.
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.
I've got two major problems with your post.
1) You list AJAX along with Pearl and Python in a list to be compared against C, C++ and Java. Here's a hint:
Pick the item from the list that doesn't belong:
C
C++
Java
Pearl
Python
AJAX
2) Er, shitty set of current (popular) programming languages? We have NEVER had such a choice in programming languages as we do now. There are a LOT of popular programming languages right now. C, C++, C#, VB, VB.Net, Pearl, Python, Java, Javascript, Ruby, Eiffel, Tcl for starters.
Care to go back 15 years and provide me with the list of better, popular languages at that time?
Don't think you're flaming, but I also don't think you have a clue as to what you're talking about.
No Comment.
I think I know what you're doing - purposely trolling in order to incite a flamewar, driving up hits and thus ad impressions.
It won't work though; surely the vast majority of your readership browses with Firefox and some sort of adblocking system.
I mean it can't be that you genuinely believe that arguably the most often-used language for enterprise and commercial web development work "doesn't matter"; a 30 second search on any popular job website would dissuade you of that infantile notion.
It's official. Most of you are morons.
Java is slow?
Python has the Global Interpreter Lock, which means even though there are threads, they don't execute concurrently. Too bad if your server has several processors / cores.
Pearl. All the other terms are correctly spelled?
I program in Java because both for it's platform independence and for the fact that if you sign a Java applet and embed it in a web page you are pretty much able to do whatever a fully-fledged Java application could do, like access the full file system.
I know of no other platform that allows you to write true "web apps" that can rival the stand-alone ones.
Share Files To Large To E-mail
C++ will always have a place in my heart & I'll use it when ever practical.
Don't you mean &&?
== Jez ==
Do you miss Firefox? Try Pale Moon.
If you find Java's static typing inflexible and restrictive, you're doing it wrong. The great advantage I find with the level of restriction that Java puts on your types is that it enables brilliant development tools. Refactoring support is paramount.
Having recently completed a major refactoring of a Ruby project with tens of thousands of lines of code, I can say from experience that refactoring of an app written in a dynamic language can be a colossal pain in the ass. Just finding everywhere that a particular class is being used can take hours or days. With a decent refactoring IDE and a Java 5/6 (with everything generified) such an operation takes a couple of seconds at most.
No, seriously, you're wrong. Just because you don't see that Java is being used for a web site's back end doesn't mean you haven't been using it. Personally, I like Eclipse, but then I'm a programmer. I used to use Azureus, but since I'm mostly on a Mac, I started using Bits on Wheels. Not a crack against Azureus from a functional or usability standpoint, I just preferred the "wheel" in BoW. Totally arbitrary eye candy.
The problem with Applets was that AWT was a GUI framework built on top of a web browser, which is already a (wait for it...) GUI framework. The only reason Flash succeeded was because web browsers didn't have vector graphic support ten years ago.
As for Sun, they have given far more to the open source community than most give them credit for. NFS anyone? There are more examples, but just for a moment wrap your head around the concept of what if Sun never released the specs to NFS. What would the BSDs and Linux use to map file shares? CIFS/SMB aka Samba?
So let's take a look at Win32 MFC. That was written in C/C++. So did that framework suck so much? Answer: good code can come from any language where the developer is sufficiently skilled. Bad code can come from any language despite any intrinsic qualities in that language.
- I don't need to go outside, my CRT tan'll do me just fine.
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?
I've really tried to find a case, but ultimately fail. I even tend to agree with Gosling that abstract classes were a bad idea. On the other hand, I can name innumerable cases where MI causes more problems than it solves.
- I don't need to go outside, my CRT tan'll do me just fine.
If there were better alternatives to NFS, why didn't people use them or create newer, better ones? With all the faults of NFS, I don't know of alternatives that magically make all of those problems go away. Locking on remote resources that you want to be performant is a hard problem. WebDAV certainly doesn't solve that problem. And speaking of WebDAV, how would that have solved the NFS problem when it hadn't even been invented yet? Nor had HTTP 1.1 for that matter. Nor had HTTP 1.0 for that matter. Nor had XML, which it uses for metadata.
Saying that WebDAV or AFS should have been used back in the heyday of NFS sounds like someone suggesting that DOS shouldn't have been used in 1981 because Linux would be created ten years later. You could certainly give other examples to replace DOS in '81 like CP/M, but the fact that you don't realize that NFS was first leads me to believe you are too young to remember what it was like. To give you an idea, an implementation of AFS was only released as open source in 2000 by IBM. Where were the alternatives before then?
Answer: there weren't any good ones. And speaking of Samba, unlike CIFS/SMB, the NFS docs that Sun released actually matched up well with the protocol unlike what Microsoft released and Samba reverse engineered.
FYI: "NFS v4 (RFC 3010, December 2000; revised in RFC 3530, April 2003), influenced by AFS and CIFS, includes performance improvements, mandates strong security, and introduces a stateful protocol. Version 4 became the first version developed with the Internet Engineering Task Force (IETF) after Sun Microsystems handed over the development of the NFS protocols." - Wikipedia
- I don't need to go outside, my CRT tan'll do me just fine.
Once you have the region marked out, most editors can indent that region for you.
Really! Okay, here's some code:
print "Hello"
print "World"
Now, I want you to insert the statement 'if (true):' at the top of that code, such that the print statements execute within the context of the if statement, and I want you to use the editor to indent the code. Hey, you know what, don't bother, I'll show you what you get:
if (true):
print i
print i + 1
But, of course, that's not what I wanted at all. I wanted this:
if (true):
print i
print i + 1
The problem is, the editor has no idea what I want because, without understanding the semantics of the code, the fact that blocks aren't properly delimited means the editor can only guess as to the correct indentation for a given hunk of code.
Of course, this is a very simple example. But it also doesn't even approach the sheer hell that is refactoring larger bodies of Python code.