“ Is Sun going to open up Java? Certainly, Sun is moving in that direction. According to Gingell, Sun realized that it had to figure out a way to let open source organizations like the Apache Software Foundation license Java. Along those lines, Gingell says Sun intends to open-source Java, but that it’s not a simple process because Sun doesn’t own all the intellectual property in all the JSRs. For the same reasons it can’t open source all of Solaris, Sun apparently can’t legally open source all of Java either. The company is working on clearing the legal hurdles cleared.” Read the article at TechUpdate.
At the moment you can already access the source code to J2SE, provided you agree to the terms in the download.
For more info see
http://www.sun.com/981208/scsl/principles.html
According to these terms, I’m paraphrasing here, you can’t release binaries of Java without passing its JCK (compatibility kit). And the JCK requires $$. Further you can’t fork it and any modifications you make must be submitted back to Sun.
So FSF advocates denounce it and create their own GNU version such as Classpath and GCJ (built into gcc) which will always be several generations behind (subject to the resources of volunteers).
Java is an evolving target and while many consider Sun to exert too much control, each iteration of Java is subject to the Java Community Process (JCP).
Essentially the gnu folk are producing a clean room version which seems like a massive duplication of effort given the millions of lines of code involved. Good luck to them!
But my feeling would be that if that if the code was more open then we’d see greater scope for innovation in the core. E.g. there might be KDE/Gnome AWT implementations instead of that relic called Motif. (I only mention that because Sun have drag and drop working on Solaris and assume it works on Linux. But it’s effectively useless because KDE and Gnome use a different DnD protocol)
Few people actually make money out of the standard edition, unlike the enterprise edition (J2EE), which is a cash cow for Weblogic and Websphere. (Which Sun makes in hardware sales)
Just put the effort into Mono? C# and the CLI have ECMA standards; C# is a java-like, but marginally ‘cleaner’ (IMHO) language. AFAIKT the only reason not to like it is that MS invented it, and they get really bad press where Sun inexplicably seem to have a better profile despite being an enormously controlling, unpredictable (and again IMHO) developer unfriendly organization.
And if you want the source code to MS implementation of the C# compiler and SSCLI(on BSD and Windows), free for not-for-profit use (rather like Java), you can get it at and a bunch of other resources at http://research.microsoft.com/programs/europe/rotor/
A preview of a generics implementation is also available at:
http://research.microsoft.com/projects/clrgen/
Why do I point you at these things. Is it because I am a hideous lacky of Bill Gates? Maybe. Or maybe it is because I haven’t been this excited by a technology since I bought my first Amiga many years ago…
“””Just put the effort into Mono? C# and the CLI have ECMA standards; C# is a java-like, but marginally ‘cleaner’ (IMHO) language. AFAIKT the only reason not to like it is that MS invented it…”””
The reasons are that Organizations have already sunk a good bit of time and resources to get their Java developement done. And they are suppose to change for something which is more or less the same? Support for more languages? Not really, the JVM hosts quite a few (remember Jython and jScheme, and the others?). Mono/.NET It’s just (yet) another VM.
“””better profile despite being an enormously controlling, unpredictable (and again IMHO) developer unfriendly organization.”””
What do you mean by that? Java is safeguarded by the java consortium which keeps Sun in check. If you are referring to the Solaris x86 debacle, it was just a matter of cost cutters picking the wrong project to give the axe.
“””AFAIKT the only reason not to like it is that MS invented it…”””
Depending on your language preferences there can be other reasons to not like .NET because of language features which the CLR does not support. Note that VB, C++, Eifel and many other languages cannot be integrated into the .NET framework at all — they have to be “crippled”. Dot NET is not a solution for everything.
“The company is working on clearing the legal hurdles cleared.”
Doesn’t ANYONE proofread anything any more?? If it isn’t acceptable in highschool English papers, it shouldn’t be in a professional publication!
well…perhaps if this annoys you so much…maybe you could make your OWN site that is proofread
god i hate listening to all you people bitch about websites spelling stuff wrong…guess what? most of us don’t give a flying fuck about grammar so long as we can get the gist of the news article
now anyway back to the purpose of this message board…technology discussion…
-bytes256
this will definitely help the BSDs and Linux and all sorts of small minority platforms that don’t have a corporation behind them
and better yet this will give java near certain immortality…further proof that Java is the future
> Note that VB, C++, Eifel and many other languages cannot
> be integrated into the .NET framework at all — they
> have to be “crippled”. Dot NET is not a solution for
> everything.
I do agree with the sentiment that .NET is not the solution for everything, but your argument to justify it is unfortunately full of shit.
How is C++ “crippled” by having the Managed Extensions available? You can still do everything in C++ that you could before. It’s just an interface point to .NET.
VB certainly was not “crippled” when moving to .NET… they made changes to clean up and improve the language. Yes the language did change, but it’s changed with every major release. VB developers have been asking for these changes for a long time (like true OOP with inheritence, parameterized constructors, etc).
As far as Eiffel goes, I attended a presentation by one of the people who helped get Eiffel running on .NET. It did take more work to get it on .NET than a more traditional language, but I think that’s acceptable considering how many developers use Eiffel compared to say VB. Regardless, Eiffel is on .NET. That includes core features of Eiffel that other .NET languages don’t have, such as multiple inheritence, generics, and design by contract. (more info at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dn… )
You can get the sourcecode to Java here:
http://wwws.sun.com/software/java2/index.html
Probably not OpenSource in the sense of http://www.opensource.org, but still,it’s the source.
Um, well technicly, C++ is not crippled since all basic features are available, but you lose multiple inheritence and some over loading. those by themselfs make C++ harder to work with and cause the programmer to write more code which then makes their programs slower and less eligant.
is it realy worth having a language on .Net if you can not use the full potential? mabye in some small cases, but for C++ programmers by and large, it is not worth it. infact, the only language worht useing is C# since it one of the few natural languages on .NET.
The fact that MS invented and controls C# is a good enough reason to stay away from it. I don’t care about the semantic details, MS is a bad company, is unfriendly to the Open Source community, and tries to stifle any innovaton that doesn’t come out of Redmond. Using C#, thus, in an OSS project makes you morally bankrupt. As for Sun being developer unfriendly, you’ll have to qualify that. Sun has been a major supported of OSS projects, and even before they opened up, they’d write incredible technical documentation. For example, the major memory allocator in Linux is the slab allocator. It was written based on the papers published by Sun about the cool new slab allocator in SunOS. The publish in-depth stuff about Solaris that would give MS lawyers would get a heartattack just thinking about doing the same for Windows.
MS creating C# .NET etc. is a good thing since it is forcing SUN to be more responsive to its users. As SUN gets better then MS will have to improve. That’s how it is suppose to work.
Why can’t the open source world innovate??? C# .NET and Java are both corporate creations. Open source world seems to be about making clones when it comes to languages (and many other things).
I feel another Java vs. C# and Java Runtime vs. .NET fight brewing, but here’s my answer to your question.
Just put the effort into Mono?
Because it will be a lost cause (I hope. The alternative is somewhat scary). Mono may work fine with Linux, but if history is any indication, Mono will always be playing catch-up to the Windows version of .NET. Another possibility is that MS will use .NET somehow to kill their Linux competition.
Also, .NET is not supported currently across a wide variety of platforms (Mac, BSD, Linux, PalmOS, etc).
C# and the CLI have ECMA standards; C# is a java-like, but marginally ‘cleaner’ (IMHO) language.
My personal benchmarks show Java to be faster in network programs (which is what I use it for). When C# actually runs on Linux, I may check its value, however, right now it has no value to me since it is a Windows only technology at the moment.
AFAIKT the only reason not to like it is that MS invented it,
Isn’t that reason enough?
and they get really bad press where Sun inexplicably seem to have a better profile despite being an enormously controlling, unpredictable (and again IMHO) developer unfriendly organization.
I think that is because Sun doesn’t have the reputation of illegally using their monopoly to squash competition.
Personally, my reason for liking Java better than C# is because C# doesn’t support anonymous inner classes, checked exceptions, interfaces that contain fields and most importantly, dynamic class loading. C# supports enums (which I don’t find that important) and things like delegates, which are basically function pointers, but I don’t find those to be that important unless you are doing native Windows programming.
Also, .NET doesn’t work on anything but Windows currently (just in case I hadn’t mentioned it a few times already ).
Why do I point you at these things. Is it because I am a hideous lacky of Bill Gates? Maybe. Or maybe it is because I haven’t been this excited by a technology since I bought my first Amiga many years ago…
The truth of the matter is that .NET is basically the Java runtime done Microsoft style.
I think the thing people need to remember in all this (especially the OSS crowd) is why Microsoft was afraid of Java and what relevance that has on .NET today.
Microsoft thought that Java had the potential to crush their Windows monopoly. That is why I think open source developers are misguided in their desires to support .NET. If MS was afraid of Java because it might destroy their monopoly, don’t you think they would say to themselves, “Ah, what if we made a MS controlled technology just like Java and use it to extend our monopoly control over all the platforms out there?” At which, Bill, with almost erotic glee, launched his underwear elastic over the top of building 26.
I like Java and think Sun has been fairly unobtrusive with it. However, if the open source crowd hates Sun and Microsoft, wouldn’t they be better off creating their own .NET and J2EE-like environment instead of helping MS take over their platform (if that is indeed what they intend to do)?
Also (I have to say something related to the article don’t I), now that Sun is working to open source Java (instead of just pieces as MS is doing with .NET) don’t you think it would be better for the open source community to improve Java instead of working on a .NET clone? I do.
> Um, well technicly, C++ is not crippled since all basic
> features are available, but you lose multiple
> inheritence and some over loading.
That’s only true for C++ objects that are exposed as .NET types.
As I said before, the managed extensions are simply an interface point. Most developers using advanced C++ features like multiple inheritence would probably want to abstract the .NET interface stuff to separate classes anyway.
> is it realy worth having a language on .Net if you can
> not use the full potential? mabye in some small cases,
> but for C++ programmers by and large, it is not worth
> it. infact, the only language worht useing is C# since
> it one of the few natural languages on .NET.
I think you’re looking at this the wrong way. A C++ developer who wants to use the full potential of their language still can do so… they just need to abide by the rules of .NET when they are interacting with .NET.
A significant amount of .NET development being done in Microsoft is with C++. DirectX 9 is a prime example… the .NET managed API is written in C++ with Managed Extensions. It provides practically the same performance for Direct3D as the native C++ implementation (and certainly much faster than the current DX7/8 COM API). This means you can write a 3D game in any .NET language and take advantage of DX9’s speed and features.
For someone coding in C++ without interoperability needs or any use for the .NET class libraries or other .NET features, then yes, it isn’t worth it to interface with .NET. (I don’t expect people writing device drivers to start making .NET assemblies any time soon.) But make no mistake, .NET is not just for C#… C++ and other languages can play too.
C++ is actually one of the most compelling languages for the .NET platform. Its ‘It Just Works’ technology for mixing managed and unmanaged code is fabulous – you can make use of all your MI, templates, etc. etc., and still present a CLI-compliant interface for consumption in the managed world. Its only problem at the moment is the slight excess of warts required to use the managed extensions, which is being worked on…
The point about the existing investment in java is interesting. My experience is that it is not really the software investment that is the big deal, but the fact that people have invested big dollars in big iron to run their software. The need to deploy on existing Sun hardware, when MS have no intention of supplying their middleware on Solaris is a big deal, and there is no proven reliability history Wintel, is a huge barrier to .NET deployment. But when Sun starting messing around with their software and hardware roadmaps as they have done, those issues start to become cloudier. This is MS big opportunity in that sector. Nothing to do with ‘monopolistic practices’ or any of that hoo-ha, but everything to do with shifting strategies in the server marketspace.
On the support front, I’m still only speaking from my background. I’ve worked with various companies over the years, and MS have offered me by far the most support, IBM and Intel haven’t been bad (and IBM have been a big OSS supporter these past few years, since they noticed a huge opportunity for them there having loused up their own OS offerings), and Sun and Oracle have been dreadful, arrogant and unsupportive. I want to stress that this is just my anecdotal opinion, based chiefly on experience in the UK and US markets. Away from the business world, MS and IBM have, IMHO, published the most interesting material from their respective research groups, but this does not mean that interesting things haven’t emerged elsewhere.
I guess my overriding point is that I am not going to base my business strategy around ‘MS bad/Sun/OSS good’, because it simply isn’t that clear cut. And my personal technology interests (i.e. the ‘that’s cool factor) is currently being stimulated by .NET, not Java. If you can point me at some interesting innovation around Java recently, I’ll be equally interested!
Apologies for the pathetic lapses in grammar, structure and style in that last post! Maybe I should read this stuff back after editing…
How did a “Sun will open up Java” article turn into a C++ sucks on .NET vs. C++ is cool on .NET discussion?
I like your analysis; I think I’d take issue with the take on Mono; I would say that Mono *was* the OSS effort at a java-like runtime. .NET isn’t just Java MS style; it is Java with a few more years worth of thinking and development before the fundamental design decisions were taken. The security model is better (as has finally been grudgingly admitted by whichever java architect it is hangs out vocally on the DM list), and it *does* support dynamic class loading in several different ways (it doesn’t support late binding in C#, though).
Mono doesn’t have to shadow MS.NET. If it implements the ECMA standard, and then does whatever the developers want/need it to, then it can have a life of its own outside of the MS domain, with the added bonus that guys like me and my team will be familiar with the environment when we come to it.
I use .NET for applications which need rich (imaging) client applications running in a secure (whatever that may mean) distributed environment, with business logic abstracting out heterogenous datastores in a healthcare environment. Java offered a respectable story at the server side, but only .NET offered us an end-to-end solution; but then we’re deploying on Windows, and you aren’t, and your app is probably different, so it is horses for courses.
To try to drag this back on topic, just a tiny little bit, I’m certainly not condemning Sun for releasing source. That benefits everyone. However, I think it does throw up the interesting issue of how a company can make a transition from a closed source (which typically involves the licensing of 3rd party technology) to an open source model? Could it ever work?
Rayiner Hashem: The fact that MS invented and controls C# is a good enough reason to stay away from it.
Microsoft don’t neccesarily need to control it. If Sun wants to contirbute to it, it can. That’s why EMCA is so nice. Your claim is like saying EMCAScript is controled by Netscape/AOL.
Rayiner Hashem: MS is a bad company, is unfriendly to the Open Source community, and tries to stifle any innovaton that doesn’t come out of Redmond.
I’m not getting into the anti trust debate again (whom I always get the last say, BTW). You can check other threads :-).
But Microsoft is not unfriendly to the OSS community. It is unfriendly to the Free Software community. And the Free Software community had been unfriendly to Microsoft before Microsoft even heard of Free Software.
Rayiner Hashem: For example, the major memory allocator in Linux is the slab allocator. It was written based on the papers published by Sun about the cool new slab allocator in SunOS.
And this would eventually contribute to Solaris’ death. No, I don’t been the memory allocator in Linux would kill Solaris, but rather all Solaris’s major features can be implemented into Linux. And since SPARC systems are getting less and less worth it with Intel entering the market, Sun is loosing its competitive strenghts slowly.
Iconoclast: Another possibility is that MS will use .NET somehow to kill their Linux competition.
Another possiblity is that Microsoft is embracing the times when the OS becomes a commodity and it could no longer sell Windows like it used to.
My personal benchmarks show Java to be faster in network programs (which is what I use it for).
Most benchmarks I seen shows .NET better for enterprise-level apps, not at all suprising. Java had more time to mature than .NET (ever seen the performance of Java when it first came out?). But .NET is maturing faster than Java ever did.
Iconoclast: I think that is because Sun doesn’t have the reputation of illegally using their monopoly to squash competition.
How about because it doesn’t have a monopoly? A lot of Sun’s acts may be in questioned at the DOJ if it had a monopoly (which it doesn’t). Heck, Sun is acting in the almost identical manner as IBM’s mainframe monopoly days.
Iconoclast: Also, .NET doesn’t work on anything but Windows currently (just in case I hadn’t mentioned it a few times already ).
IIRC, Corel has an implementation for FreeBSD.
Rajan r: IIRC, Corel has an implementation for FreeBSD.
I think they are still working on it.
Matthew Adams: it is Java with a few more years worth of thinking and development before the fundamental design decisions were taken
Just one thing I’d like to say regarding this section of your post (although it doesn’t really have much to do with your point).
It is very easy to come along six or seven years later and “improve” upon an existing technology. I’m sure if Sun themselves were to write a new Java-like language and runtime today, they would improve upon it too (note I am not implying that .NET has stiffled Java’s usefulness in any way).
Java was a huge leap forward when it was first released, and it introduced abilities that didn’t exist in web programming prior to its release (if you can call what was done back then programming). Now Sun is stiffled a bit by the need to maintain compatibility with prior versions of Java; but it is still a good and very useful technology.
The only reason I bring this up is that often times people compare Java with .NET and act like Microsoft has come out with as significant a technology in .NET as Sun did six or seven years ago with Java. They haven’t. They just made some improvements to an already existing technology.
I think it is important to recognize the major contributions that Sun has made to the internet and the way we see, manipulate, store, and process data. .NET does have some improvements in it (and some things that suck), but it is more a minor update of a technology and not the Earth shattering new technology that Java was when it was first released.
I think Sun is trying to make life a little better for us by open sourcing their code. I wish them luck.
I’ll be quite now.