Beyond An Open Source Java
Karma Sucks writes "LinuxToday is featuring a intriguing article on why Sun should open source Java, as a stronger followup to the recent ESR saga that was reported here. The writer notes: 'Sun needs to do some radical things to improve its chances of survival, and all of them involve Open Source in some form or the other.' One thing the article fails to mention is the threat of Mono, which should be of special interest to Sun, with its vested interest in GNOME."
So what exactly is closed-source right now? The language is obviously out in the open. Is that copyrighted? Is it the compiling into binary code itself that is copyrighted?
Incompatibility would run rampant. My java apps barely work for my phone as it is.
Give Away the Recipe, Open a Restaurant
Consensus is good, but informed dictatorship is better
It fails to note that these are the *most expensive* full-suites of these products that have lot of non-J2EE frills (you can get into Weblogic's base J2EE support for $10k). Other commercial J2EE application servers are well under the $10k mark (e.g. $1500 for Orion Server)
This article also fails to note that there are more than a couple very robust OpenSource implementations of J2EE application servers, that are of course free.
It's obvious that if they pointed these facts out that their argument would be weaker...
in previous discussion, those opposed OpenSource Java suggested that with MS's domination today, MS can easily 'improvised' OSJava to become a run-on-windows-only-OS-Java (WOOSJAVA).
it doesn't matter if anyone else is going to benefit from/use/modify this WOOSJAVA, most likely it will just be preinstalled in all Windows shipped.
and regardless of what others may like to think, most consumers of MS will think that this WOOSJAVA is now the standard.
so in the end, maybe even Sun needs to write things to accomodate this WOOSJAVA in order to survive, that'll be ironic.
Given the state of Mono, it's not in a position to give anyone pause.
There's no motivation to "Open Source" Java. It's supported on a myriad of platforms and you can even get access to the source if you want to take on the implementation on a new platform.
I think open sourcing it is ok, but they should do all the work on it internally and not let any 3rd party distribute their own Java.
When you have a cross platform interpreter, you need to make sure there is consistency. For example, Microsoft JVM ruined it for alot of people since developers will forget to debug it on Suns JVM, causing huge incompatibility issues that they blamed on Sun.
This article is talking about J2EE (server side) applications. Which often benchmark faster than natively implemented code.
P.S.> Java desktop applications are fairly speedy if you use UI libraries such as SWT - which work directly on GTK for example.
Mono does ahead-of-time compilation on x86 into native code.
You can also compile Java applications to native code using GCJ, assuming that you're not using anything beyond JRE 1.0 (or something like that).
If you think Java is in the enterprise because it is portable, you are greatly mistaken. There are some stuff in Java that makes it a great tool for the job, and portability is only one of them: Portability, Reflection, RMI, Proxies, J2EE, ... And I did forget a lot in the process.
Qt and GTK are not even languages, what the hell are you talking about? You are comparing an enterprise level language with a GUI library! Java is not Swing!
Write boring code, not shiny code!
I'm not certain this is a move that should be made. All we need are 18 different 'forks' in the java tree like certain other open source projects. I can just see it now "No no, you need BobJavaVM-1.43.2.43 - it won't run with FastJava V 2"
...is that Sun allows Java to wallow in limbo until its development becomes unsustainable and people start using other languages and development environments like .NET, and then make it open source because it became a black hole for them.
.NET as a universal development language. You can bet diamonds to dollars that Microsoft will never open source their version though.
I mean, Sun could still have a vested interest in an open source Java and still derive revenue from custom design services and support while displacing the Beast. It isn't even like the implementation is a trade secret. Heck, the Beast has developed Java bytecode interpreters in the past. But the Beast would love to displace Java with
Hence, Sun has a great opportunity here. Will they see it?
...but the code should still run without an interpreter/virtual machine/emulator.
I'll be impressed if they can make it run without a computer.
What?
Sun has enough fingers in enough pies that will keep it going strong regardless of where it's open source strategy goes. The recent deal with the Chinese standard software company shows that it can leverage open source products without having to open source anything so big as Java to establish their commitment.
Java is cool for uber-OO projects. . .
Nah. Java is cool for run of the mill OO projects where everyone else is using Java too, because everyone else is using Java.
If you want to look at something interesting check out Apple's Squeak, an implimentation of Smalltalk-80 where even the VM is written in open source Smalltalk.
Squeak
KFG
There are some interesting points, but others are nonsense. "needs to position its own (Open Source) NetBeans and rival IBM's Eclipse as mere IDEs that support the Ant way of building applications.". Is publicy know by anyone interested that almost every major IDE supports Ant.
" Sun can lend credibility to Mozilla and XUL.". As much as I like Mozilla (I'm using it right now) I don't know if anyone could do that.
This is just an order of magnitud above ESR lowly comment but it still missing the target.
"I think this line is mostly filler"
Microsoft effectively broke Java by extending it to allow the implimention of native windows widgets that wouldn't run cross platform and since Sun owns Java they were able to sue, and win. I think if Java were open source MS would be free to break it again. It's an old argument and one that we have heard over and over again but it has staying power, I believe, because it is true.
To borrow a phrase from John Stossel: Give me a break!
.Net for that matter. It's a simple matter of resources.
While Mono is cool project and, like many developers, one I've been following since it's inception, I don't see it ever overtaking Java, or
> > Which often benchmark faster than natively implemented code.
>
>You do realize that this is impossible, right?
What makes you say that? In fact, the original poster is quite correct. The JVM *can* generate faster code. You know how? By doing runtime optimizations. Compilers have to optimize for what *might* be the best performance profile at runtime. Also, they can only compile for the lowest common processor. (e.g. A pentium II) The Hotspot Java VM can optimize based on how the code is currently being used, undo an optimization if it starts slowing things down, and use processor specific instructions! Natively compiled code just can't beat that.
Javascript + Nintendo DSi = DSiCade
"Perl and Python are hardly competitors to Java, so warning Sun about Java's impending loss of market share to these two scripting languages is laughable."
How so?
The term "scripting language" doesn't have the name meaning it used to; especially where Perl and Python are concerned. They both get compiled to an intermediate form and executed...just like Java. The only difference (other than the internals of the runtime) is that the Java's development "model" is closely related to it's static typing; i.e., you manually compile your code into a binary before executing. Trying to discount Perl and Python by calling them scripting languages is silly. The real issue is what works as an enterprise development platform, not the "taxonomy" of the language. As far as platforms go, Python has got a pretty good thing in Zope/Plone etc. And both Perl and Python have libraries for damn near everything you'd want to do. J2EE may be more prevalent at the moment, but in terms of bang for buck Python and Perl present some interesting alternatives in the long term.
As soon as Sun GPL'd Java, it would start to diverge from Sun's commercial Java. Sun would not be able to incorporate changes made under the GPL into their corporate version. Sure, they could maintain their own "official" GPL version, but the dual license argument is complete rubbish. Java wouldn't die, but Sun would lose most or all control over it.
[J2EE] has replaced CORBA as the way to go for
.NET is satisfactory in this environment.
large, distributed enterprise apps
Has J2EE replaced CORBA in those scenarios where either the client or server is NOT written in Java?
One of the facts of life in the enterprise is that it is heterogeneous in terms of platforms, operating systems and (maybe) network technologies. Neither J2EE nor
You do realize that this is impossible, right?
No, this is not impossible. Read up on just-in-time (JIT) compliers and you'll see why. In a nutshell, the Java Virtual Machine profiles the code that is being executed, then uses sophisticated algorythms to anylize this information, then compile (while the system is running) native code from the java byte code, that is optimized for the environment, and more importantly for the ways in which the code is being invoked. Subsequent calls are executed by this newly compiled native code.
Thus the JIT compiler is able to (often) do a better job at creating optimized native code than a C++ compiler can do, because the C++ compiler doesn't have run-time analysis to use in its decisions of how to optimize the code. The JVM can continuously re-optimize the same code over and over during the life of the application. JVMs of today (and the last few years) do this as standard practice.
The article does mention that the only visible part of the J2EE iceberg (visible to the decision-makers, not the geeks) is webservers such as Websphere and Weblogic. It doesn't say anything else. It does mention open-source implementations.
What the author is talking about is a lack of the right communication from Sun on this matter. If Sun continue to advertise only WebSphere and WebLogic, they set the visible price very high.
Write boring code, not shiny code!
> Also, they can only compile for the lowest common processor. (e.g. A pentium II)
That may be true for traditional proprietary software, but NOT for F/OS Software. Witness Gentoo; I compile everything for my computer's specific processor. And surely you don't believe that the Hotspot Java VM does its optimizations 'for free'! Every runtime optimization check introduces a performance hit.
The most compelling argument he makes is the complaint about the complexity EJBs:
An Enterprise JavaBean (EJB), which is a component containing business logic, typically requires 5 to 7 supporting files to deploy.
This is the real issue that Sun needs to address. Java is widely used in enterprise apps because it is easier and faster (therefore cheaper) to develop apps. However, EJBs have some fundamental flaws that add unnecessary complexity and network overhead. I have developed apps for some of the busiest sites in the world and the requirements to strip the code down to the essentials are not compatible with EJBs. More times than not, EJBs are ditched in favor of a servlet-based front-end and a proprietary persistence solution.
It's simple: I demand prosecution for torture.
Qt may not be a language, but it does provide some language extensions via the Meta Object Compiler, which brings some nice things to C++. Also, Qt is not just a GUI library, but actually a whole Java-like foundation for C++. It's good stuff.
I'm not necessarily disagreeing with you, I'm just elaborating on what Qt is. It's closer to Java in nature than you might think, and with the upcoming Qt4 I can imagine it becoming quite a competitor.
Hmmm - didn't ESR inspire Netscape to following a similar path to "salvation" back in '98? (Netscape)
Hopefully (for Sun!) history won't fall into its old habit of repeating itself.
IBM is the first example that comes to mind of a company that successfully built a business model around opensource. I'm specifically referring to hardware and how IBM freely licensed the IBM architecture so that any company could manufacture and sell their own, competing, IBM Clone PCs. Perhaps you will remember the early '80's when Apple had all the market share, followed closely by Commodore and the IBM PC was a fledgling no company was worried about. What happened? They 'opensourced' their hardware architecture which Apple and Commodore refused to do. Within a matter of years Apple and Commodore were suddenly competing not just against IBM, but against scores of rival computer manufacturers. What was the end result? IBM-compatible PCs (clones) were far less expensive, parts were plentiful and easy to find, and all the software developers migrated towards DOS because that's where the market was... once that happened, most of the available software was also IBM PC-compatible which just further encouraged people to buy IBM Clones. Had Apple and Commodore been less stingy with their proprietary hardware technology, things could have played out very differently and today everyone might have an Apple and Microsoft might not even be around. But you might ask, "how is the free licensing that IBM implemented, open source?" It was open source because manufacturers were and still are free to propose and develop hardware standards designed to further improve the IBM Clone architecture and they don't need IBM's permission to do it, they need only to get approval from the various standards bodies. If this is not a clear example of how open-source has worked as a successful business model, then I don't know what is. Rather than fight over the market-share that Apple and Commodore owned, IBM just created an entirely new market -- far larger than the one it replaced. So what if IBM had to compete against their own technology they gave away to other Clone manufacturers? Which would you prefer: 10% of 50 million units, or 100% of 1 million units?
-- I'd give my right arm to be ambidextrous
I'm only replying lest the parent might be modded up.
As a professional Java developer who works primarily in Eclipse, Java is not your problem here.
Are you using a legacy app based around AWT? Then your GUI will most likely be annoyingly limited (with a couple of exceptions on MacOS X).
Are you using a GUI app using the Swing toolkit? Okay, yes, that's going to be slow -- I'll give you that. But that's similar to saying "Linux is ugly! Just look at (GTK|Qt|Tk|whatever)!"
Seriously, I'm tired of reading this drech on Slashdot. A properly-implemented Swing is reasonably fast (see MacOS X for an example), but unfortunately the Windows implementation isn't one. Before slamming the language, however, try changing toolkits -- I recommend SWT, as used in Eclipse.
> It is still to damn slow
My god, what sort of equipment are you running Java on, an abacus?
No, Java probably will not be used in the next uber-doom type progam, but for everyday usage type programs on fairly recent computers (built within the last couple of years) it's perfectly fine.
I'm getting the impression that there are a lot of really POOR programmers out who have no idea how to make a program run fast and use C or C++ as a crutch.
I also get the feeling that there are a lot of people out there who really haven't even tried a real Java application and just continually regurgitate the MS line.
This guy must be a MS partner.........Most of the .NET development is taking place primarilly in Windows only shops. Also the great majority of .NET development is VB .NET.
After seeing how Microsft corrupted the JVM and developed J++ it's hard to see how moving Java to pure open source will help.
As for the desktop .NET is only strong because because it has the propietary features to lock people in.
While Java stays Sun's closed-source product, Sun retains control over it. Releasing it open-source would mean relinquishing that control forever. Imagine, if you will, the overthrow of an essentially benevolent dictator followed by a less desirable character seizing power.
The questions Sun needs to ask itself are (1) whether or not Java is ready for that -- or is it more likely that differing implementations would lead to fragmentation, and thus nullify the whole point of Java?; and (2) if Java is ready to go open-source {and I personally believe it is}, what would be the best licence to ensure against fragmentation whilst not putting off purists?
All these things being said, Java is only a programming language -- a means to an end. Programming languages come and go. There is no reason why another contender should not arise to solve the same problems for which Java was invented, and eventually displace Java. Mono may be that, of course. It is just as likely that something totally new could arrive on the scene and change the whole picture.
Je fume. Tu fumes. Nous fûmes!
My roommate just got mono and trust me, you want to avoid it at all costs. You're sick and tired and it lasts for weeks.
Because MySQL AB (the company) retains copyright on the software they can license it however they please. In this case, the company takes advantage of the fact that some people don't like the terms of the GPL (people wanting to build and distribute closed software that is based on MySQL) and lets a company buy a license that allows for use without the so-called "viral" properties of the GPL.
:) of the agreement. This does not preclude turning a profit on the distribution. The GPL doesn't require code to be monetarily free (aka 'as in beer'), only that you furnish, for free (or a nominal media cost), the source code of the application to whomever you distribute it.
You can use and distribute MySQL under the GPL as long as you comply with the letter (and spirit
Please explain how this would be faster than writing the app in native code using an assembler and then I'll believe you.
Ok. My assembly is a little rusty, so bear with me. Let's say we have equivalent Java and C programs. They both have to run on a 386 or higher. (Bear with me. I haven't kept up with the MMX/SSE/SSE2 instructions, so I'll have to fake this a little.) Now, your C compiler will see that you want to store a 32 bit value, but has to generate code for a 386. So, it generates the code:
pop AX
STOSW 0x0005
pop AX
STOSW 0x0005
Even though the code may be running on a Pentium Pro (which is optmized for 32 bit code), it's still going to execute those 4 statements.
Now, the Java Hotspot compiler will start and notice the fact that you're running on a Pentium Pro. So when it converts the bytecode to machine code, it creates the following instructions:
pop EAX
STOD 0x0005
That's twice as fast as the C code!
Real code would tend to be running on modern processors, so this example is a little contrived. However, the JVM can (and will) use SSE instructions to do multiple calculations in one instruction, while the C code will be forced to generate non-SSE instructions to support the old Pentium Is out there.
Hotspot is also capable of analyzing the running code and regenerating even better assembly that would perform poorly in other circumstances. For example, let's say Hotspot notices that the bounds can't be exceeded on an array. Well, Hotspot will then recompile to remove the bounds checking.
Does that explain it better?
Javascript + Nintendo DSi = DSiCade
I don't understand why Sun is, on the one hand, so active in and dedicated to the GNOME desktop, whereas on the other hand, they're not doing a single thing about Mono becoming an important part of the desktop, pushing Java back even further.
Face it: Sun, one of the head developers of GNOME, is losing the fight of Java versus C#, which is the official language from GNOME (Linux)'s biggest enemy Microsoft. Where's the logic? I mean, if Java loses even *this* battle, then how are they ever going to keep any significant marketshare?
So yes, Sun should do something.
This Dutch company produces some interesting stats for those interested in the popularity trends of languages TIOBE Programming Community Index February 2004
However, if you put your ear to the ground, you will discover that Microsoft's .NET framework is finding its way even into such organisations as a "tactical solution" for smaller, departmental level projects. It is dangerous for Sun to ignore this trend. In the early nineties, Sun's workstations were far more capable (and far pricier) than the humble PC powered by a lowly Microsoft OS called DOS. Today, Sun has lost the workstation market to an evolved PC, running an evolved Microsoft OS, in spite of its initial advantages in power and openness.
Java never had a strong presence on the client side. I know of several financial software companies that are going with a java middle/backend and .NET front end. There are several reasons for this: the first one is webservices and the second is proven scalability of java application servers. I won't name the companies, but those in the OMS (Order Management Systems) industry will know this is one trend. Just google for it and you'll see several of the top companies are moving towards J2EE for the serverside. In fact the companies winning in the financial software world is changing as a result of OpenSource software and J2EE.
Rather than see Sun simply OpenSource Java, I would rather Sun do two things. the first is make it a real standard and resubmit it to a standard body. the second is provide a BSD style license of Java. When I say Java, I mean just the JVM/JRE. I work with .NET on my day job. MS has made great strides with .NET, but scalability for large systems still sucks big time. Websites that used to use ASP + MTS will see great improvements in reliability and performance. What they won't see is a great improvement in scalability. That basically means transactional systems that were hard to maintain and difficult to develop previously on windows will be easier to build and maintain.
A professional developer, who is open minded will already know this. The real problem with using .NET is if your business needs to grow to support large scale deployments, it's a dead end. Eventually, the system will have to be replaced with a proven J2EE solution. what do I mean by large? Large might be a transactional system that is message oriented and needs to handle 300-500 transactional messages a second, or requires distributed transactions. Doing these things in .NET still very difficult, but like these types of applications were ever easy. The fact is, .NET makes easy stuff easier to build, but for hard stuff, it basically can't do it well. That's where java shines. Java is harder to learn for simple stuff, but ultimately allows you to scale to massive levels, like handling 2K transactional messages a second.
Most companies don't need that kind of power and probably never will. Microsoft is strongest in small and medium/small firms. Ignoring all the PR BS, that world has remained basically the same.
Not true at all.
Go read Sun's license for use of their Java API docs..Or in english:
You can use this to implement your own Java, as long as it is fully compliant with the Java specification.
No, it doesn't. The second piece of code will not run on a 386 like you said it must.
Of course it won't! That's the point. The Hotspot compiler will generate the second piece of code because it notices you're using a Pentium Pro. If the JVM was running on a 386, it would generate the first bit of code, just like the C compiler.
Also, GNU GCC compiles code for processors like i686 that still executes on i386 by not using the i686-only instructions.
As much as I wish they did, not all OSes use ELF binaries. Besides, generating binaries for multiple processors creates a great deal of bloat in the binaries. Not to mention that the JVM will be able to optimize for future processers (when they come out) while the GCC binaries will only be optimized through the current processor.
Javascript + Nintendo DSi = DSiCade
I completely agree (with everything except SWT/Eclipse).
Everyone was talking about how Java is slow, and how it looks ugly, and we should do our app in VB.
My boss let me write it in Java anyways (with comments that if it did NOT perform well and look good, we might have to redo it in something else).
I passed it off to the guy doing the C++ remote server, and he was completely impressed with the looks and speed (yes, it was even Swing on Windows). I came into work the next morning to everyone congratulating me on a great UI, because evidentally it was shown off to everyone at the Pub the previous night.
The point is, there are a few problems of bad performance/look in Java UI... These are:
1) User is using an old version of Java, usually one that is end-of-lifed.
2) The coder wrote it in AWT
3) The coder wrote it in Swing, but without reading ANY of the documentation on Swing+Threads
4) The UI was patched & patched over and over, without designing it correctly first
5) The coder didn't utilize any look-n-feels
6) Bad threading design (ie: synchronizing when there is no need to, etc)
Is there anything that could be done better? Of course, otherwise there would be no one coding with the JCP. But, can you HONESTLY say any other language is completely perfect as-is?
I don't agree with your point about Eclipse/SWT though. I have a serious problem with needing to install any 3rd-party platform-specific java libraries... just goes against the whole concept of pure-Java, but then again, I am a purist. I also don't like the overall look of the SWT apps (some of the things like the disappearing Xs on the tabs annoy the hell out of me), and don't like the complexity that Eclipse adds to simple projects. I remember feeling the same way about JBuilder years ago, but to a lesser degree. Today, I write all my Java code in JCreator (or pico if I am logged into my BSD box), and use ANT to build with.
I am also tired of all the "Java-should-be-Open-Source" by people who have never bothered to spend 10 minutes looking into the JCP and how Java IS currently Open Source and how Java is NOT run exclusively by Sun anymore. Every couple days/weeks, I log onto Slashdot and someone else is making these presumptious claims without looking into the facts.
Just my 2 cents
http://www.google.com/profiles/malachid
This is the real issue that Sun needs to address. Java is widely used in enterprise apps because it is easier and faster (therefore cheaper) to develop apps. However, EJBs have some fundamental flaws that add unnecessary complexity and network overhead. I have developed apps for some of the busiest sites in the world and the requirements to strip the code down to the essentials are not compatible with EJBs. More times than not, EJBs are ditched in favor of a servlet-based front-end and a proprietary persistence solution.
I don't mean this negatively, but if your problem is simple enough to solve with servlets then use servlets by all means. And yes, Entity Beans suck and should be avoided at all costs. And much of the time EJBs are overkill.
But if you need clusterable objects with failover and seemless transaction support nothing is easier than EJBs. Go try and do some CORBA or DCOM programming and see how complicated is can get. More power=more complexity.
Brian Ellenberger
One interesting thing the article brings up is XUL. Since it seems to do so well provided a pretty platform is written to run it, maybe it would be a good idea to, as they suggest, get it standardised at the W3C.
Actually in general, I feel it would be a good idea for Sun to start pushing towards an architecture which allows for server-side (in the X sense, where the server is the terminal) widgets, whether they use something like SWT (which will never happen due to wars with IBM) or even an improved AWT.
Server-side widgets would make the client even thinner, and if it were all in script you could just use the same code on all platforms and the rendering mechanism would determine how it looks. Maybe if Y-Windows ever takes off you could even have an implementation for that, and things would be lightning fast. :-)
Karma: It's all a bunch of tree-huggin' hippy crap!
Well, you're right, but there tools that do profiling for C/C++. This thread should rather be named "(JIT) Bytecode vs native code"
.NET, but from what I heard, multiple frontends for arbitrary languages are possible.
Java".
The front-end languages C++ or java don't really do much about the perfomance (except that you can manually optimize things you can't do in java because of missing pointers etc.) (*)
IMHO, java bytecode suffers from the following things (and so do the users of java programs) - [they are the reasons,I think, why all java programs I've seen so far (and all the not-for-java-crafted benchmarks) are running considerably slower than C/C++]:
Technical:
- Java bytecode is low level enough to lose certain optimizations (JITs have to apply decompilation techniques) which you can do in C/C++. You can of course compile Java natively (e.g. with gcj), yes. But then, you lose portability.
- Java bytecode is not low-level enough that you can take advantage of the features of the particular hardware. Java's ints are 32 bit. What if you run your numerical java code on 64 bit machines?
Political:
- The java bytecode format is so specific that it is impossible or rather hard (there was once a java backend for egcs, admitted) to get other languages like C/C++ to run on it. Why does one have to chose the platform java with the language java? I don't know
I'd like to have a VM for C++ *and* Java. That would surely rock and end some of the flamewars.
(*)- The often stated security argument (java has no pointers and is therefore inherently more secure than C++) would fall with C++ on a VM.
I read the f***ing article.
.... probably the article has some insights but the start is way off.
... 3? Probably 3. Not sure.
... 10? 15?
... why should SUN "Open Source Java"? What bullshit idea. Probably there are indeed reasons to do so. However, the article completely fails to show them. Heck! Why should Mono be a competition to Java? Why should Mono, Open Source, cool ... Microsoft .Net, not Open Source ... cool either, why should that be a reason to Open Source Java?
... Closed Source, commercial ... discussion just sucks. Mono or .Net are no competition to SUN/Java.
.NET is a platform also, Java is a platform as well, also. But, the heck, where is the relation to Open Source in that regard?
... as Deutsche Bank buys not JAVA, they buy consulting.
After the 5th paragraph I stopped reading. After the 5th paragraph the new headline "Rephrasing Eric Raymond" I stopped reading.
Sorry folks
If I count commercial, non open source, Java implementations I count
If I count open source java implementatinos I count
Why
Man, this Open Source
Why should PERL be a competition to C++? This "are programming languages"!!!!! Sure,
Do you think any german customer, using Java takes a shit if it is Open Source? I would bet that 90% of the german projects done in Java, just download the JDK and code it, and thats it. No SUN, no IBM, no Open Source, no idiology involved.
Why the heck should anyone care if it is Open Source or closed? Especially if tehre are 5 times the Open Source implementations existing than closed ones? Especialy if none of the open ones are used in commercial projects?
Do you really think "Deutsche Bank" would "take" an Open Source java implementation for their next Enterprise Portal?
No, they take the CPL SUN implementation, or the semi open AIBM implementation, or the Apple colsed source implementation or the HP closed source implementation or the BEA JRocket, closed source JVM or any other closed source JVM.
SUN has absolutely no benfit in a contract with Deutsche Bank about a offering an Open Source Java
Using any JDK and Deploying any JDK based application is FREE as in BEER regadless which JDK you use, SUNs, IBMs, HPs, Apples.
The real world does not care if it is free as in SPEECH as long as they dont have to PAY FOR IT.
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Its full of contradictions and silly mistakes.
.Net be a threat when Microsoft is struggling (making a loss!) on the server side? Unless the Mono folks unwisely give Microsoft an escape route, the eventual rise of Linux on the desktop will squash .Net flat. This rise is starting: I develop websites for international use. If I deploy anything that requires Microsoft on the client (as do .Net apps), I soon get enough complaints to convince me otherwise!
J2EE is small and easy, not large and expensive. Anyone can build JSP pages or use Servlets on a free but high-quality App server like Tomcat - this may not involve Enterprise Java Beans (the least used aspect of J2EE), but its still J2EE and it costs nothing.
How can
Why does Java need to be Open Source to ride the Linux revolution? High-quality Java VMs are ready for Linux.
Java is the most widely requested language for development, and its use is still rapidly expanding. Sun has nothing to fear.
"The GPL is also the only Open Source license that can keep Microsoft from "polluting" Java."
If Java is Open Source. MS can change it all they want from the Sun standard. The only stipulation is that they then must release their source code. MS would love this as it puts them in a far better position than they're in now, where they're not allowed to ship non-compliant versions of Java as ordered by the courts.
Vote for Pedro
I say this after watching some very simple, no-GUI programs translated straight from C++ to Java code. No extras added, bare minimum amount of work.
I wont dig for the Slashdot article but a OSS article covered a benchmark showing Java running as fast (and sometimes faster) than C++. One thing poorly done though in Java was trig functions.
Java does come with some baggage you wont find in C++. Mainly thats the garbage collector. But then again, you cant get a memory leak in Java which is very simple to do in C++.
But once it reaches a certain level of complexity, I'd rather save the CPU cycles and go with something better.
I mix the two. Theres two ways of doing this: JNI or CNI. The Java Native Interface is okay for accessing C code from Java. The Cygnus Native Interface (see gcj) treats every java object as a c++ object which makes using the two languages together very easy. Oh, and GCJ allows you to compile to native executable rather than byte code if speeds and issue.
Now, I dont see java becoming a mainstream staple for game development or heavy multimedia. But I could be wrong in the next couple of years.
I have to say you are atleast honest and explained your views. Many Slashdotters give the "its slower than dirt" and generally have no idea what they are talking about. I myself play all sides and just know the strengths and weaknesses of the different languages and dont play favorites. Its the best way to be IMHO.
We just scaled a single server asp.net solution to a 5 server farm without a single code change or recompile.
:p
I did have to change one line in the web.config file though. I guess that 10 minutes of my time isn't a great improvement in scalability?
This was just published an hour ago:
IBM on Wednesday sent an open letter to Sun Microsystems urging Sun to make Java technology open source, CNET News.com has learned.
In a letter sent by Rod Smith, IBM's vice president of emerging technology, IBM offered to work with Sun to create a project that would shepherd development of Java through an open-source development model. If implemented, portions of Sun's most valuable software asset--Java--would be freely available, and contributors ranging from volunteer programmers to large corporations would submit changes to the Java software.
http://news.com.com/2100-1007_3-5165427.html
Take a look at .NET
.NET with all it's propietary extensions to the standard. The standard itself is gonne mean nothing.
IT has open ECMA specification - and Microsoft made a great P on that.
But the real programs will be made upon MS
Projects like www.DotGNU.org understands it well, so they are running behind (and trying to chase) the very MS libraries, not only the standards.
And Microsoft said that it is their strategy - add new technologies so fast, that competitors have no time to invent their own one.
Why? Well remember JVM and how Microsoft corrupted the compatiablity? Java's goal is to be cross platform and to do so means there needs to be a centralized development effort. If suddenly there are 50 versions of J2EE on the market, each with its unquie traits, which do I run? How do I know that the app I program will work on the others? If it doesn't run on everything, hasn't the point of Java been defeated?
I once worked for a company that was looking to port some of its Solaris & AIX Applications to Linux, but 3 months into the project, the question became what distros to support. They tried porting their application with some modifications. Got it to run fine on RedHat 5.x (it was a while ago), but then it took some playing around to work with SuSE and we never did get it to compile on Slackware. When they said they planned to support RedHat default only, meaning if system admins were using a tweaked box or kernal, we would not offer support. Needless to say, potential clients scoffed at the idea and after 6 months they decided that the Linux Market wasn't worth the hassle until some standards had emerged. This is why a lot of developers won't port to linux, especially desktop applications: too many variations.
I see the same potential of Java, to become slpit into so many forks, that it defeats the purpose in the first place.
I like opensource applications, but I don't think that Opensource is always the answer. Another good example is a good friend that is developing a support ticket application for the company he works for. I asked him, "Isn't there several GPL'd apps outhere that could installed within a couple hours?" He responded of course, but he put it this way: "I like to use my own code and not other peoples. Its a lot less messy that way." and I see his point.
IF it wasn't for opensource, I would have never learned how to program in PHP, PERL, and various SQL databases, it was a great learning tool, but like every tool, there is the correct tool for the job. I say this as I switched from Linux to Macintosh almost two years ago now and I am willing to pay for the luxury of having everything work. Just like we now pay for managed instead of self-managed servers for our business. There is only 3 of us and we now have enough business that its costing us more to run our own servers than to pay a little extra for managed services where the keep up with the updates and such.
All I am saying is that projects have goals. Sometimes Opensource meets those goals, but its not a cure all. The beauty is that we have the choice of using Opensource or to use a propritary solution.
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
First of all, I'd dispute that Flash has "taken over for most web apps and games". Much is done using Flash, but Flash script is scarcely an industrial strength general-purpose development language. Many of the major web-apps and games are in Java, see "Yahoo Games" and many others. Many "web-apps" are server-side, in which Java thoroughly dominates.
Whatever advantages Flash has are simply largely related to being endorsed by Mr. Monopoly - Microsoft. Web developers, being able to count on Flash being there bundled with IEEEEEEE (pronounced Aieeeeeee!;) simply went with that rather than risk user disgust with a JRE download and slow Java startup times (due to no pre-load with the browser)s.
Sad, but true.
Sun's recent bundling deals with major PC OEMs, as well as more general broadband availability may help, but Java now has an uphill climb as far as applets go. Fortunately, full-blown Java apps (including those using Java Web Start) are more interesting anyhow... :-)
jFlash is interesting as well...
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
As a .NET developer I'll be up front and say over the long haul I sincerely hope that Sun don't Open Source Java. More specificallymy hope is that Sun keeps Java closed for at least another 3 years.... I fugure it's going to take another 3 years for .NET to mature as a cross-platform prospect.
.NET developer you can't begin to imagine the childish glee I get from saying to Java developers... "my platform's more open than yours."... to which I'm quickly told "but there's 5 Java jobs for every .NET one", and I have to shut up.
.NET... I can't believe the OS community will stand and defend Sun when it's setting them up for such humiliation.
.NET is more open than Java.... the Mono CLR on Linux is more open than the Sun JVM on Linux. You can't dodge that.
IF... and it's an if, it might never happen... Mono matures over the next 3 years it is going to be absolutely excrutiating for the Open Source community to justify a closed Java.
As a MS
And yes it's incredibly childish, but at least half the motivation behind any platform comparison is childish spite that exposes the facet of a developer that has more in common with a cheer-leader than anything else.
More seriosuly Java has 3 years to go open or the Open Source and Free Software community will have it's nose rubbed in
We could argue the detail, we could justify, but
What the Open Software community should be doing is screaming blue murder at Sun, not sticking their fingers in their ears and saying "nah nah nah nah, it's not happening, it's not happening".
Sun has lost control of the Java development space. It does not provide leadership anymore or set the agenda. Open Source does.
There is a wellspring of innovation in Open Source that beats the productivity of Microsoft's friendly tools.
It mentions the JCP but ignores the power of that organisation over the OSS world. Open Source certainly does NOT provide the leadership in the Application Server space, BEA, IBM and SAP do. Open Source does not provide leadership in the IDE space, BEA, Borland, Compuware and IBM do. Open Source does not provide leadership in the J2ME space, Sun, Nokia and Ericsson do.
What annoys me about this article is its assumption that XDoclet and Ant can be compared with a J2EE application server. And that _standards_ are not important. The JCP is the key to all of this. In the same way as Ethernet won because it was a standard the JCP lays down standards for the Java space. ANYONE can take part, it doesn't even cost you money. And you can have a say in the direction of the platform, in a much more direct way that you could have with Linux for instance.
The point this misses is that Java has not succeeded as well as it has by being fragmented, it has succeeded because it is standardised. The JCP enables all of the partners to determine what goes into the platform. Sun propose JSRs, but so do IBM and BEA... and Oracle.... and SAP... etc etc etc.
Open Source could learn much by looking at the JCP.
Consider Wi-Fi, why is 802.11x successful ? Because its all open source ? Or because a regulated standard works well in a commodity marketplace.
Sun with have commoditised the Application Server and Mobile platform spaces. The JCP has for several years been the key to that success.
The trouble with Open Source advocates is sometimes they see everything as a nail.
An Eye for an Eye will make the whole world blind - Gandhi