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.
Yes. (Score:4, Informative)
How many times have you been screwed over by a vendor who thinks they know best? (Symantec / L0phtcrack anyone?)
Use debian? (Score:5, Informative)
If you've ever wanted to run a Java app on a debian box, you know why this matters.
The strictly FOSS distros have historically refused to include a Java package due to its non-Free license. There's some really good Java software out there, and without a pre-built java package, it was just that much harder to access them.
Re:"Java never mattered"? (Score:5, Informative)
Re:Java never mattered (Score:1, Informative)
Really? I thought that Java had the lead in the TIOBE Index: http://www.tiobe.com/tiobe_index/index.htm
Re:If you want a job developing stuff (Score:3, Informative)
You need to know Java...Corporate IT are basically only interested in hiring Java developers.
That's exactly what I thought 3 years ago when I applied for my current job. I had studied up on my java, bought various books to hone my skills (java is one of my weaker languages), tested my knowledge with free online tests, considered becoming a "Sun Certified Java Developer", etc, etc.
Then I interviewed.
They hired me with a salary that was 27% more than what I had been asking. But not to program in Java. They hired me because I was very strong in C and Perl of which they had a very large code base and fewer developers to maintain (and expand) it. We process credit card transactions and all of our backend code is in C, with the less critical stuff in Perl. Java runs a lot of the web services and a number of front-ends for customers, but it isn't difficult to find a good Java developer. Finding a knowledgeable C developer is becoming harder and harder.
I don't mean to say everyone should rush out and (re)learn C and try to find a job using it, but you can make just as good of a living not programming in Java as you can programming in it. Java is definitely a good tool to have on your belt, but don't confuse it with being the tool.
Re:If you want a job developing stuff (Score:3, Informative)
Why would you aim for 1/3 of the market when you can aim for 2/3?
http://www.google.com/trends?q=java+developers%2C+.Net+developers&ctab=0&geo=all&date=ytd&sort=0 [google.com]
Re:"Java never mattered"? (Score:2, Informative)
Re:Programmers opinions on the language? (Score:2, Informative)
Re:MOD PARENT UP (Score:5, Informative)
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.
This should be obvious, but (Score:5, Informative)
To ask if Java were new we would use it today, while valid as an abstract and absolute measure, is irrelevant in today's software world context.
Java is HUGELY entrenched in today's business software market, probably even more so if one weights by overall company valuation (i.e. Java's market share by company valuation is substantial, perhaps even dominant).
Open sourcing it matters since Java's growth and maintenance matter, as the investment in Java is substantial and unlikely to change any time soon.
Java's never gonna be the hot young thing in programming again (if it ever was), but that's irrelevant to the question of open sourcing it. Java has substantial value, and open sourcing software of value matters. Doing things that alter the growth and maintenance plans of a heavily vested technology matter.
Further, this:
is a tautology. No developer can do everything with C++ either, that doesn't lessen its value or relevance. Neither does Java's complexity or unwieldiness lessen the value gained in being able to learn from and modify how it has implemented things.
I personally don't get this constant desire on some people's part to denigrate Java. Some sort of Comp Sci elitism for the business language?
Claiming open sourcing Java doesn't matter is like claiming open sourcing windows wouldn't matter; the same arguments apply. Windows is unwieldy and complex, and competing software generally does things better than windows.
Re:Programmers opinions on the language? (Score:2, Informative)
I work for hotels.com. The same build script and code is used on Windows, OS X, and Solaris. No changes needed. At all.
Re:Java never mattered (Score:5, Informative)
Python is the only language I'm aware of (certainly the only major language) that uses whitespace to define blocks. Thank God. It's a *serious* dealbreaker for me.
Re:MOD PARENT UP (Score:3, Informative)
Love Python; hate GIL. Trust me, I know exactly what you mean.
That said, there are quite a few [python.org] multi-processing packages for Python (disclaimer: two of the ones under SMP are mine, so I'm kind of biased toward the idea). Also, Python 2.6 will ship with a standard multiprocessing module [python.org] that's very similar to it's multithreading counterpart and should be an easy migration.
Multithreading is cool, but there are other ways to skin that cat.
Re:"Java never mattered"? (Score:5, Informative)
I guess I should know by now to expect most people to not know what they're talking about when they post.
But, back to the issue. I fully agree with many other posters claiming it reduces the possibility of being screwed over by Sun or licensing inside of the various packages (audio is one that comes to mind - the one they're still rewriting).
Open Java and the VB6 Lesson (Score:3, Informative)
The bosses asked me my opinion on what we should do next. We didn't really have a solution to the enormous cost of rewriting everything, but we needed to decide on a new language to adopt. After being so horribly stung by Microsoft on VB I suggested that Java would be a safer direction to go in. C# and
After the VB saga, I am very dubious of using any language which is controlled by a company (particularly when it's Microsoft). Clearly Sun still has a lot of control, but now with Java being Open source, it won't matter so much if Sun dumps Java. We'll have the code after all.
P.S. Trying to upgrade component by component using interop was hell and not really a viable option.
Re:"Java never mattered"? (Score:4, Informative)
Re:Java never really mattered, Taco? Ouch (Score:5, Informative)
You are also missing that the GWT that runs most of the apps on Google (like Gmail) is written in Java. Java's GUI has issues but that does not mean that Java does not have good uses.
Re:Java never mattered (Score:3, Informative)
the joke, really, is that Java is used to power the systems in a lot of eCommerce sites (think eBay or Amazon) and Publishing (if you consider some of the big online media sites to be publishing).
So is it a joke, or is it a serious comment, which is it? Is it true, or is it false? :-)
Arbitrary (Score:3, Informative)
You have limits in any language whether they be the inclusion of a semicolon at the end of a statement, the enclosure of a conditional in parentheses, or curly braces to denote scope.
To say that those constructs built into languages are acceptable but enforced indentation is not is an arbitrary distinction. It has nothing to do with its worth or lack thereof. You have decided what you prefer and are fitting an argument to that conclusion. Philosophy does not enter into it.
A computer doesn't care whether your programming language enforces indentation. All the computer needs is an ordered sequence of bits and bytes in just the right combination to return a desired output. Computer languages were meant to be a human-readable alternative -- their sole reason for existence. If you don't think that the indentation makes the code readable, that's a valid argument though I would disagree with it.
However, I don't believe you have a "philosophical problem" with indentation on the basis of enforcement. Enforcement has nothing to do with readability, and readability is all that really matters with a language. Anything else is personal preference, which is perfectly valid, just don't frame it in the guise of a more noble cause.
Bullshit (Score:1, Informative)
Nonsense. If you're wrapping an if() {...} around a region of code, you still have to know where to insert the curly brackets. Once you have the region marked out, most editors can indent that region for you. Even if the language is Python. For example, in Emacs, you select the region, then type C-x C-i to indent it. Simple.
Java is excellent (Score:3, Informative)
Why does java have to be some complicated, delicate and have 6 millions different ways to do something where as you can get on with developing something in PHP quite easily? Sure to make something great you need to know the html to go with PHP and javascript but you need to know those with java plus decide if you you are using struts, spring, seam, groovy, JSF, etc and, while knowing one may make it easier to transition into another job using something similar, it's still a pain compared to moving between PHP based development jobs.
It is true that if you wanted to know everything about Java it would be impossible. You can't know it all and be excellent at it but there should only be three clear sides to it. The desktop app side, mobile and web.
Re:"Java never mattered"? (Score:2, Informative)
Re:Bullshit (Score:3, Informative)
What editor are you using? It seems to be lacking a bit, feature wise.
In C:
- You cut the block.
- You paste it
- You mark the entire if-block
- You ask the editor to reindent it
In Python:
- You cut the block
- You paste it
- You mark the pasted section (unless your editor has a feature to paste & mark, in which this step is unnecessary)
- You indent/redent the marked block to wanted level.
It's the same amount of equally complicated maneuvers. Unless you have an editor with the feature I spoke of, in which case it is one less in Python.
Seriously, the white space thing annoyed me as well... for roughly two days. Six years of professional Python programming later, I cringe every time I run into code written in a language that wastes half its characters on redundant information (aka visual noise).
Re:Java is excellent (Score:3, Informative)
In Java you can just go and hack it up JSP style if you want, and it will be similar to PHP. The thing is, that way of doing thing sucks. It sucks in Java, it sucks in PERL, it sucks in PHP, it sucks, period. As with any serious application development, you need to structure things a bit. People don't agree on the best way, though in Java, the community is very oriented toward "There's the main way, and then there's other ways in case that doesn't work for you". In general, thats a MVC pattern like strut, a dependency injection/inversion of control container (spring), a persistance framework (hibernate). Then you have t he other stuff when that doesn't work for you (JSF for composite applications, for example).
All languages that matter are like that. Ruby has Rails (package of the stuff I mentionned above), and when that doesn't work, there's a bunch of other frameworks. If you just go in straight PHP and go for it, you're doing it wrong, even from a PHP point of view. PHP has templating frameworks, object relational mappers, containers, etc, too. Lots and lots of them, and for a serious app, you need to pick too.
The only difference, is that PHP is used for "quick and dirty" much more often, while Java is usually used for "enterprise/production scale development", so you'll more rarely see PHP devs using the frameworks, and more rarely see java devs going straight JSP.
Thats it. And if you think developing real world application can be split up with desktop, mobile and web, you're leaving out 2 third of enterprise developments. Not everything ends up in the face of a user, and only a part of what actually does falls in those categories. What about services/deamons? Reporting processes? SOA middlewares? Business workflow processing? Messaging/Reliable systems (I'm not talking about MSN here, I'm talking about message queues). Java and .NET are 2 environments that deal with all of that, but even with everything they provide (much more than a single human can learn), they still don't even provide half of what we need in all situations (especially .NET, until 3.0).
Re:(Troll) I hate java, why does /. love it? (Score:3, Informative)
I saw this higher up in the comments and shrugged it off. But now I have to ask - huh?! Java is a compiled language. (are you confusing it with javascript, which is completely different and only shares the name?). Java's JIT works automatically, profiling bytecode as it executes and when it's ready, translating it into x86 instructions. By doing this it can do the sort of optimisations that C++ is incapable of doing - it can reorder an if condition or do some incredibly aggressive inlining (it'll even inline 3 method calls deep when its profiling indicates there'd be a performance advantage).
Troubleshooting a badly written application is always a nightmare, troubleshooting a large application can be a pain. You can do all sorts of nice things with debuggers, too, to figure out what's going on - and Java's definitely easier to debug than C or Perl
Re:MOD PARENT UP (Score:3, Informative)
To be fair, there's always Jython. Python the language, on the JVM.
There is nothing wrong with Java (Score:3, Informative)
For all the hype of Ruby on Rails, etc., the cold reality is that you would have to be a pretty foolhardy architect to recommend it for anything mission critical. Java might not be sexy but it does exactly what it says on the tin.
Its great news that its been open source, especially for Linux. But what it means in practice remains to be seen. I expect what it will mean is random bug fix submissions but little else but in practice Java is going to get governed the way it's always been governed. People will branch Java of course but just like Firefox, I doubt it means they can still call it Java.