Sun's (un)official response to .NET
siliconghetto writes "Sun decided that to post a response to .NET on it's Java home page. According to Madhu Siddalingaiah, "Microsoft is spinning [.Net] as innovative new platform but what they're really doing is giving developers an updated set of handcuffs."
"
if MS truly wanted to prove their interest in cross-platform functionality, they would have ported COM to as many platforms as possible AND pushed it hard on all those platforms (I know it was ported to some Unix, but who exactly is using it?). Instead, they used it as a Windows fragmentation tool to bury IE deep into the OS to the point of inextractability. COM as a cross-platform standard could have been a very useful tool. It seems to be considerably more lightweight than CORBA (haven't looked too much at CORBA though), and it's extremely popular on the number one desktop OS. If Linux had COM support, they might not have had to duplicate its functionality with KDE parts (if that's what it's called). It would have also allowed Linux to mesh more seamlessly into Windows networks, maybe as an MTS/Apache host. Of course, that would have boosted Linux popularity, so strike that.
.NET are quite compelling. COM lacks some of the crucial elements of OO (such as inheritance), which .NET addresses in a language-independent way. The idea of taking an off-the-shelf binary component, extending it (in potentially another langue) and creating a new component from it is very appealing. But the compromises this all entails might be too much to swallow for many people for quite some time. I'm still not sure how I feel about it myself yet, I'll let some time go by and see how things work out--not that I have a choice anyway.
The ideas behind
Not true. CORBA has bindings right now for just about as many languages as .NET is planning to support, and these systems can all interoperate. In fact, Java's network and component specifications are going towards a more language neutral format with RMI over IIOP and the next generation CORBA specs and products that allow IIOP access to EJBs and deployment of EJB-like services in any language.
I know this is true because I write Java applications in a three tier system that use C++ components in the middle tier and PL/SQL code in the database tier. We also have Perl code that calls Java components in the middle tier.
There are also many languages that can be compiled into Java bytecode and use Java classes and services.
The real facts are that Java probably gives you more choices and makes it easier to use systems written in other languages and on other platforms than any other language. (C may be slightly more ubiquitous, but much more difficult)
Maybe they already have.
Sun Has Declared They will now be running their own system in response to .NET.
.ORG!!!
> It's not vaporware -- plenty of developers have
> seen it being used at shows.
"Any sufficiently advanced technology is
indistinguishable from a rigged demo."
Chris Mattern
I think we're seeing pretty much eye-to-eye on the general merits of the two languages. I use VB a fair amount when I'm just trying to get something done quickly and I know it doesn't need to run anywhere but on Windows. VB is a great tool for that. I was mainly taking issue with comparing VB to Java because I felt the comparison wasn't fair. They are really two different languages used for at least two different reasons. VB is great for rapid Windows development. Java is great for writing portable software (and happens to be pretty decent for rapid development, though not quite as easy as VB). I think they both do well at what they are designed for.
but Sun the corporation swung from their goal of creating something that would help people to something that would hurt Microsoft.
I don't think I know what you're talking about here.
Sun isn't concerned with whether or not their stuff will actually be useful. They're more concerned with bashing Microsoft.
I don't see it. The way I saw things happening, Microsoft took the initiative in trying to spoil Java. Sun WAS trying to create something useful, and Microsoft was trying to undermine that creation so that it would not undermine their monopoly power. If Sun doesn't protect its creation from that sort of interference, then it could very well end up as another footnote in computing history and nothing more. Microsoft is an extremely powerful competitor with little in the way of scruples to stop it from doing whatever it takes to eliminate what it sees as a threat. I don't think the Linux comparison fits either. Apples and oranges.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
"Sun wants you to wear their handcuffs."
.NET, so my views stand right now. If someone wishes to point out a logical counter to the original article, I will be glad to read it and possibly revise my position.
Really. Java is platform independent. While Sun did not succeed with the initial performance claims for Java (ala same speed/execution times) for the various platforms, you can write Java code that can be easily ported to any platform. I say easily as a friend did manage to write some code that he had to modify so that it would work on a Mac (he later learned what he did wrong there). This latest 'offering' my M$ is for the Windows only environment(s).
Now I don't deny them the right to produce for just their product, but to try and claim that it would become a 'standard' is a little annoying. Now I haven't read a counter-point to the original article on
Eric Gearman
--
Atomic batteries to power! Turbines to speed!
Not to mention that it is very simple to use an RPC over HTTP using XML for interchange model, and in doing so, remove any laguage dependancies. At my last job, we used HTTP RPC to call into a ProvideX system from a J2EE system. If we needed to call into Microsoft, it would have been no problem.
It is very easy to pick an RPC architecture that is friendly to disparate platforms.
-no broken link
I'm sorry, but until I see proof that C# and or .NET is actually up and running...
You may obtain a pre-beta C# compiler andAND someone shows me how superior it really is to everything that has ever been
When new technology is announced, you should assess it for yourself - each project is different. If you program primarily in UNIX, then you will have little need forSorry to sound flamebaitish
Apology accepted.-jerdenn
Here in (large company that makes their own PCs, servers, UNIX varient, RISC processor, and lots of printers) we're playing with .net code and platforms to see what we can do with it. First impressions are "sticky place to work". I'm betting that a good, clean alternative from Sun could win developers rapidly. Of course, our own ideas in this arean are nifty too.
Evan - needs to hit preview before submitting
Microsoft.NYET
Sun is the DOT in .NET
I wonder if MS can enforce a trademark on "dot NET", even if it's in common parlance already. ("Windows" was unenforceable trademark but "Microsoft Windows" is okay.)
[
My company does this, and we do distribute our software as "frozen" executables. This compiles everything needed to bytecodes and produces a single executable that is statically linked with the interpreter.
Not exactly like Java bytecodes + JNI + JVM, but close enough. Unless you know what you're looking for, the end result is indistinguishable from a compiled C/C++ app.
The guy in charge of Software at my company analyzed the bytecodes and concluded that reverse engineering them is nearly as hard as for Java, although there are definitely some ops that are less primitive.
PS: Look for freeze.py in the python distribution.
My case story: I spent six month last year trying to develop a spacecraft telemetry decoder in NT4 using C++ in MFC. I quit after I realized NT4 simply is designed the wrong way, from the GUI downwards to the kernel. After following every instruction I could squeeze out of Microsoft documentation regarding real-time programming, I found that, with the PII-333 I was using, the CPU wasn't fast enough to run the digital signal processing code for FM detection and write the results to disk at the same time. Even after doing the most efficient hand optimization of assembly code in the inner loops of the program, there were gaps in the recording.
Seeing no other alternative, I decided to try Linux, using the Qt toolkit and Kdevelop as the development environment. In ten days I had rewritten the GUI part of the program, which I linked with the C++ FM demodulator I had written first, without the assembly optimization.
Surprise! It worked flawlessly, not a single bit was lost. Running "top", the system usage analyzer, I found that the same program that the Pentium II-333 was unable to run in NT4 used only 12% of the CPU, of which 10% was for updating the screen and 2% was for the digital signal processing. None of the profiler, debugger, and analyzer tools I had tried in NT4 had told me this. I had lost six months trying to optimize 2% of the system, while 98% was being wasted by NT4.
Today in my workplace there are two Linux computers running in the desktop, used by a team of satellite controllers to perform maneuver calibrations on a fleet of five satellites. They have adapted well to it, but they still use the dual boot to Windows 95 for all other tasks. Conditioning is hard to overcome, although, in my case, I use now Linux for everything but "Need For Speed - Porsche Unleashed".
In conclusion, in my experience, nothing beats C++ plus the Qt library and Kdevelop for both rapid development and portability (Qt is available for other platforms, although it's GPL only for Linux).
What no-one seems to be talking about with the Common Language Runtime (CLR) is how M$ can potentially write a CLR engine for other OSes. With that, developers would have many language choices that could run in an OO environment on many platforms.
So with Java you get one language on lots of platforms (and lots of VMs per platform, I might add) and with .NET you have the potential for many languages on many platforms.
I was actually at PDC2000 this year and saw all of this stuff up-close.
I love Java, C# is cool too. Either way the developer has a great tool to work from.
I'm a 2000 man.
But Sun is missing the point. It's possible that they've gotten so miffed with the slow Java adaptation of Java that they view everything as a threat. .net is exactly what they say Microsoft 'claims' it to be, however - an enhancement to bring Visual Basic/C++ up to speed with modern times. It allows whichever language you're writing in to access all _windows_ API calls.
.net is the solution rather than Java. If you're a Netware Guru, for example, compare NWAdmin32 to ConsoleONE. (Win32 vs. Java) They do the same thing, but if all I had to use was ConsoleONE, I'd quickly go insane waiting for my P500 or higher to open a dialog box.
Sun's point, in the article is that Java allows you to access the same API calls, and they'll function on any machine imaginable, which is true. But if you're going to be programming FOR a Windows box (and, last time I checked, developing code to run native in an OS was still the way your program would run the fastest)
Perhaps I should change my login to slashdot to 'Devil's Advocate'. =) Java has it's niche, though. And it does what it was intended to do - make code HIGHLY transportable. But you can't outrun native code, no matter how good your universal language is.
I haven't look at the .NET stuff in awhile so I'm not exactly clear where Microsoft stands at this point.
.NET aren't handcuff...its a shackle.
Sun's point is valid. Its nifty that Microsoft takes it upon themselves to implement a bunch of tools and services for the internet. Unfortunately for Microsoft the Internet is a hardware independent beast. If Microsoft creates a bunch of software that only works on their OS and refuses to be open about their communication protocols then
Microsoft should be open as possible with their Internet products. If they don't, there will be hacking on their protocol to reverse engineer the protocol. If Microsoft refuses to write software to support other platforms and they refuse to keep as much of it as open as possible then it leaves those who want to work in other hardware and software configurations with little alternitive.
The first line - Slow Java^H^H^H^H adaptation of Java.
I type too fast, and think too slow. Maybe I should use the preview button or something.
No surprises for an article written by a sun employee. MS has announced Corel will implement the .NET port for Linux.
As regards java being platform independent,
java ports on platforms other than Windows/Solrais
leave a lot to be desired.
Any moderate+ sized .NET application well need core windows services and APIs to operate. That's like having a jvm without most of the core java language libraries. Just porting (if THIS even happens) the IL code over to other platforms won't allow any real use of .NET ... unless you think microsoft might port it's window's APIs
I sure as hell am. .NET will do nothing more than limit innovation. If you read the MS propaganda, they take away almost all functionality for the sake of security and stability. Obviously because they can't make the memory management work in Win xxx, they're going to take everything away, so you'll never get a BSOD.
.NET with them in mind. I know .NET is suppose to support all languages equally, but they are dumbing it down to a subset of the existing APIs.
.NET will never come to be. If they release it, I'm switching to Linux.
It's nice that they're trying to make this thing stable and secure, but they're taking it to the extreme and don't realize the problems they are creating. They seem to have notion that all developers use VB, and are creating
This all stems from MS attempting to make every product they ship, into a development environment. I don't need my browser to run my system. I need my system to run my browser, which in turn, I only need for loading web pages. They are trying to allow everybody to become a developer, and the truth is, not everybody should.
Cross-Platform compatibility, security and stability. We need these things, but do we need to give everything up for them? I don't want to have code everything in low-level assembler, but I don't want to eliminate my ability to use it if I need to.
I'm really hoping that
...Microsoft is spinning [.Net] as innovative new platform but what they're really doing is giving developers an updated set of handcuffs...
:)
.NET is an effort to help traditional Visual C++ and Visual Basic programmers catch up with the times....
.NET platform as a whole will handed over a standards body, so standardization can only exist at the language level....
.Net. M$ has already given Corel the responsibility for building the Framework for Other OS's including Linux. Obviously it would be benefit them financially, but we are not tied down to one OS ultimately.
.Net framework over to other OS. I would believe it when I see it, but efforts are underway. So if you dont know what you are talking about then SHUT UP..and dont mislead poor tech junkies out there.
.NET platform must run on Windows, and Windows alone....
.NET is to perpetuate platform lock-in. ....
:)
....
Yeah Right.. The same one Java Developers wear
..Essentially,
Tell me whats wrong with that Bozo !!.. Both these languages has still a huge market share than anything else in the world. And most of the existing systems currently being ported and rewritten to other languages are developed in it. What Microsoft is doing is trying not to lose market share, and in turn come up with a Loosely coupled architecture for integrating and deploying heterogenous systems. Yup..Flame Me.
....There are no third party vendors of ASP+. In contrast there many vendors of JSPTM solutions for a variety of platforms...
First off all, JSP was a ripoff from ASP. ASP has a much bigger developer base and ASP developers has been crying for better features and thats where ASP+ comes in. Now ASP+ will use Visual Basic, C#, and possibly other languages for code snippets. All get compiled into native code through the common language runtime (as opposed to being interpreted each time, like ASPs). So you could mix and match languages and not be tied to Java alone.
...Microsoft has not suggested or even hinted that the
First of all, Sun doesnt work well with IBM or anyone else in opening up Java. Now they cry wolf when MS doesnt open up the Framework For
..The Java language, VM, and APIs are all vendor neutral. There is no vendor lock in....
Yeah right..except that you are locked in to one language who still dont deliver in terms of Portability.
.....The key difference is that the Java platform is a mature cross-platform solution with no direct ties to any underlying operating system.....
Where does this guy live ? Antartica ? Corel would work with M$ in porting the
...This means that any nontrivial application built on the
Tsk..tsk.. This guy just dont realise..does he..
...Apparently, the underlying goal of
Pure Unadulterated FUD.. No wonder since SUN sponsors this guy's Chopper Trips
....Sun is not the only vendor of the Java platform. IBM, Symantec, Apple, as well
Well didnt we all hear sometime back that these other vendors were planning to liberate Java from Sun ? tsk..tsk..
...Third parties have inspected the Java platform's publicly-available source code for security holes.....
True.. But Sun should rather worry about closing the holes in Sun Solaris 2.7 before they comment on Windoze.
Ultimately, no Interpreted language would ever handle a candle to something that compiles to native code. M$ is leveraging that to provide integration across heterogenous platforms through the CLR. Like it or not..its going to happen and thats what make sense.
My two cents.. Thanks for reading.
Rapid Nirvana
Nope.
.NET to Linux. If MS opt so, they should hand over the sources to MS .NET, and Corel is entitled to a non-transferable, sitewide source-license. As I remember the text from the agreement (It's not by the letter, but freely from my memmory).
Your memmory don't serve you...
In an agreement (made when MS bought some non-voting shares in Corel), Corel agreed MS may optionally have Corel port MS
--The knowledge that you are an idiot, is what distinguishes you from one.
I dual boot Linux and Windows... but in the programs I've been developing lately, I've been booting more to Linux using PERL than to Windows using VisualBasic. Why, when VB is set up with more of the functions I desire, would I do that? Simple: Microsoft locks the user into inflexible paradigms of "device" metaphors, making it nearly useless in several circumstances.
I went from DirectX to OpenGL back when MS was pushing "vertex buffers" and "callback routines" just to draw a single triangle on the screen. The device metaphor was crippling. In PERL, I can write a generic script whose output can easily be diverted to console, file, or device. In VBA, the object modelling constrains you to cast your functions against specific application objects... bleh.
Microsoft got their start in business licensing MS-BASIC to every home computer they could. Once they started the Windows gig, they said "Empower the user?!? What were we thinking!" Now their VBasic bundle is only found in applications, and empowerment comes at a price.
I cannot fathom their adversarial stance over their own customers. I believe the backlash is coming sooner rather than later.
The early assessment is correct, and Madhu Siddalingaiah agrees: C# and CLR might be portable -- and sure, it's possible to port them to other operating systems -- but that would still be completely useless, because the .NET framework involves a lot of API's that are, and will be, only available on Windows. The core class libraries in Java, on the other hand, are available anywhere the Java runtime is available.
.NET framework is designed for this goal: "Write once (on a Windows machine), run anywhere (as long as it's a Windows machine)."
Make no mistake about it: the
Probably the only useful bit of "portability" the Microsoft CLR will achieve, is that it gives them a migration strategy for upcoming 64-bit Windows. It allows developers to write on Win32 and run on Win64. Oh, how portable!
--
Tired of FB/Google censorship? Visit UNCENSORED!
the statement 'write once, test everywhere' is still much in vogue.
... clean up your own house before you start tearing down someone elses.
Now, I don't write much Java, being a Sun sys admin and all I tend to use Perl more because I need closer access to the OS. And the few I have written have not been GUI oriented and would probably run on all platforms. But it seems that if Sun really wants to get into the 'one language for all platforms' that Madhu Siddalingaiah says, then they still have a lot of work to do for anything but trivial programs.
For example, a current program our developers are working on uses the Sun plugin for IE. The same Java applet performs differently in Windows 98, Windows NT, and Windows 2000. And I don't even want to talk about the problems they had with the Netscape browser....
Come on Sun
Microsoft, can't live with 'em, can't shoot 'em....
I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
Sounds like you've never programmed for rapid development or on a budget before. VB is plenty powerful for what most people need and takes a third the time to code in my experience. As someone who started out gung-ho C++ and who writes at least ten lines of Java a day, I feel pretty safe saying that VB is one of the best things that could have come along for businesses that want an application up quickly that performs acceptably. C++ may have a performance edge, but when combined with the latency of your network or the Internet, it doesn't make a bit of difference. Plus, the increased control you have with C++ or Java doesn't really gain you anything you can't accomplish more easily with VB, just more effort with greatly diminishing returns.
As for platform independence, I think it's highly overrated by slashdot readers. All it really does is force you to leave out advanced features and code for the weakest link in the system. Don't get me wrong, I have to swallow the pill and dumb down a lot of the work I do so it will run correctly on a Mac or Netscape to reach all of the target audience sometimes, but much 'sweeter' applications can be developed in LESS time if you consentrate on a target platform.
Lastly on platform independence, just realize that Java isn't any more platform independent than anything else, it's just got an interpreter that has been written for each platform! If a new platform comes out, it won't run Java at all until someone writes an interpreter for it and when new releases of Java come out Macs and other platforms lag behind on the new releases so you STILL get code that doesn't work everywhere.
Microsoft utilized VB to allow one easy to use, fast language to work across the most popular platform. I think they did more for application development with that move than all the effect Java has had being just another language to learn that still can only be used in certain places.
--- Don't be a player hater: I meta-mod ALL negative mods as Unfair.
Umm... I guess I'm getting somewhat tired of people commenting on .Net without really taking a critical look at it.
.Net they can communicate together.
A core basis for it's existence is Cross-Platform support. Microsoft understands that companies do have multiple systems in their environments which need to work together.
Unlike Sun, Microsoft is not suggesting that you should write all your software using Java. Instead they are saying... write your software with whatever language you want and then using
Microsoft's goal is to have services which run on Win2k servers talking to services running on Mainframes or Unix servers.
This happens today, but you need to devise some custom solution to make them talk with each other. Microsoft is simply providing a generic framework for you, so you can focus instead on the solution details.
The .NET platform is an improvement for Visual C++ and Visual Basic programmers, but it is yet another proprietary Microsoft platform which will tie the developer to Windows, albeit possibly a .NET-ized notion of Windows.
.NET is the exact opposite. It's purpose is to allow developers to actually use COM and the Windows API without being shackled to VB and Visual C++.
.NET to support the following languages APL, CAML, Cobol, Haskell, Mercury, ML, Oberon, Oz, Pascal, Perl, Python, Scheme, and Smalltalk. In fact, Rational is planning to create a Java-language compiler that targets the .NET common language runtime. The details are available on the MSDN site.
I love Java, but this is simply bullshit. The main purpose of
Currently there are plans for
Obviously this scares Sun and that's why they are publishing this propaganda because it begins to show the truth that Java shackles developers by forcing them to use the Java(TM) platform for all development in all three tiers of a client-server application if they plan to use the Java™ language for any aspect development (yes, I know about JNI, but it is currently subpar).
Second Law of Blissful Ignorance
This sucks.. this is one discussion really close to home for me *and* I have moderator points today.
.NET CLR (take a look at ActiveState, they seem to be in bed with MS - there's a Python .NET beta ongoing right now).
.NET too. (Or maybe not, this might be pure FUD, but SOMEONE will do it, even if Rational drags their feet.)
;+)
Post or moderate? Post or moderate?
POST!
Don't like Java's (too low) level of abstraction? Tired of being stuck on Windows because of your employers obsession with VB?
Convert them to Python! They'll be happy how fast you get things done AND they'll love the easy portability to Linux, Solaris, Macs, etc.
It just makes sense. Today, I can even run Python in a JVM. I can run Python in the
If Microsoft never ports the CLR to OSs other than Windows, you STILL win.
Now, here's the kicker: Java will be available for
Now, observant people will point out that regardless of the fact that you would be using Python or Java, the fact that you're using it in a JVM or CLR naturally means you will use the libraries in those environments. And that's true. However, it's nothing a good designer couldn't mitigate to a large extent (not perfectly I know) using the GoF strategy pattern and other abstraction techniques. Furthermore, most of Python's standard libraries are already ported to the JVM. It's just a matter of time before they show up for the CLR too (and for Java too).
Also, learning both sets of libraries and both Java and Python will simply be good for your career. You'll honestly be able to claim multi-architectural proficiencies, from the comfort of a high-level development language (or at least a "higher-level" development language in the case of Java).
Now, anyone who can poke substantial holes in this will be doing me a favor. My general career direction in the near future will be Python/Java heavy because of my assumptions above.
Just to clarify something: I approach this purely as a corporate applications designer and developer. I have no interest in systems-level stuff, embedded systems, real-time systems, etc. Very little of the above even matters for those area (although there are embeddable versions of Python AND Java, as well as a hard real time version of Java).
Thanks in advance for your rabid attacks!
Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
just realize that Java isn't any more platform independent than anything else, it's just got an interpreter that has been written for each platform!
Exactly, which makes it many times more portable than anything made by Microsoft.
If a new platform comes out, it won't run Java at all until someone writes an interpreter for it
So? Do you have a better idea? Interpreters will be written for any platform that needs it. Once the interpreter exists for the platform, then the java compiler will run on that platform and you can use your code there. Again, much more portable than anything Microsoft has done.
and when new releases of Java come out Macs and other platforms lag behind on the new releases so you STILL get code that doesn't work everywhere.
Well, if you decide to update your code to take advantage of new features, and you know you have to support multiple platforms, then you just hold off on releasing changes until updated interpreters are available for those platforms. They will likely be in the works while you are busy updating your code anyway.
I think they did more for application development with that move than all the effect Java has had
Perhaps, but only if you need to support only Windows users and nothing else. Microsoft solutions will always be limited by Microsoft's ambition to be the only game in town.
being just another language to learn that still can only be used in certain places.
Which amounts to a hell of a lot more places than any Microsoft language can be used.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer