Does .NET Sound Like Java? 469
zero asks: "Looking over at the MS Web site, a lot of the ideas behind .NET remind me of Java - and so does the hype around it. I remember when it was said that Java would revolutionize the way things work by having applications loaded on-demand off the network (for example)... sound familiar? It would be interesting to hear what the Slashdot community thinks of what MS is doing better (or what they think they're doing better) in their plans for .NET, and how much potential they have."
.NET is mostly FUD (Score:2)
Among other things, it is meant to enable software to move from shrinkwrap distribution to web services. Regardless of the pros and cons of this, the '.NET that looks like Java' argument specifically relates to the development environment and resulting executables.
1) It resembles Java in two ways: the language, and the idea of a hardware-independent virtual machine. This idea in itself is nothing new; the original IBM PC could be ordered with the P-system OS (a Pascal virtual machine). In short, the idea dates back decades.
2) It fits Microsoft's strategy of replacing Visual Basic (a very useful tool within the confines of its target market and make no mistake) with something with a cleaner, easier-to-learn language that is more extensible and open to new concepts (e.g. full OO, threading).
3) It makes a lot of Windows programming dramatically simpler. The traditional Windows program is based on a nasty mess of legacy Windows APIs and huge complexity (let's face it) of COM hidden under amazing hacklibrary ATL to make it at least usable. C# will eliminate huge amounts of the pain of writing advanced Windows apps, especially those involving writing COM objects (which are hugely useful and pretty good design, when used within their target market).
4) By abstracting the APIs from the code with an intermediate layer MS is also free to implement the underlying OS however they like without having to be afraid of deprecating legacy APIs that are still in use, and so on, which results in the huge frightening spaghetti mess that is the current Windows API.
5) The abstractions to support threaded and component programming, at the language level are hugely useful (compared to the pain of programming these against low-level APIs).
Good summary--.Net is pretty ordinary, really (Score:2)
.NET is just bastardized middleware (Score:2)
Re:Sun had an interesting soundbyte... (Score:2)
Isn't that also a form of laziness?
Re:Well, I've used both and... (Score:2)
http://www.mvps.org/vb/index.html?rants/dotnot.
It's not entirely clear to me that they've entirely ripped VB apart. I have to test this theory, but my understanding is they have made it such that VB6 and VB.Net can coexist just fine. I just need to verify the development environments work.
VB was in need of a serious overhaul, anyway. There are a lot of inconsistencies throughout the language, and a lot of cruft basically left over from the very first versions of MS-BASIC from the 1980's.
They had to overhaul it in order for it to fall in line with the other CLR languages. This eases things because they will only have one runtime environment to maintain.
As far as the claim that they've made it impossible to develop desktop apps, I don't believe that's true either. From everything I've played with, C# and VB.Net are still capable of developing two-tier applications.
I'm going to dig into this deeper this week as I'm going to attempt to port a desktop client of mine from Visual C to C#. It has a lot of user-interface stuff and should be entertaining.
Re:.NET vs Java (Score:2)
COM on the other hand is, there are implementations of this for Unix, even Linux.
Microsoft has committed to providing a Reference implementation of C# and the intermediate language runtime for ECMA standardization. This reference implementation will contain the core subset of the language and runtime without any of the Windows specific libraries, etc. But they have said it will compile with gcc on Unix/Linux.
But really it's the web services which is key to all of
Re:Amazing! You're wrong about EVERYTHING! (Score:2)
Actually, Java's VM spec is completely open, in as much as you can go down to your local B&N's and pick up the spec. Further, there have been at least a half dozen independent JVM implementations that I have heard of. You don't need Sun's permission to write or publish a Java-compatible VM, you just need to meet their testing standards (and pay the testing fee, of course) to call it Java.
Sounds reasonably open to me.
Re:.NET vs Java (Score:2)
Actually, I'd argue that Java is monoplatform.. Java *is* the platform, whatever hardware and software underneath is largely invisible and largely inaccessible without creating a specially configured binary package with .dll's or .so's and JNI interfacing.
One advantage I can see to .NET, and one that Microsoft is clearly counting on, is that you could write software that deeply interacts with the hosting platform at the same time that it interacts over the net using SOAP. In this sense, I expect to see a specific piece of .NET code be a lot less portable, but for the .NET framework to integrate more platforms in a native way than Java tends to do.
Re:XML-RPC (Score:2)
SOAP is based on Dave Winer's XML-RPC work, and supersedes it.
Desktops? (Score:2)
Re:As a beta tester.... (Score:2)
Um, you seem to have misunderstood my post somehow, though I'm not really sure how...
Re:Amazing! You're wrong about EVERYTHING! (Score:2)
I have mixed feelings about this; on the one hand, standards submission is already a leap further than Sun went with Java. On the other, where's the IMPP standard that MS promised us over a year ago? [microsoft.com] (note: I'm not saying it isn't out there. But I certainly haven't found it on MS's site, anyway)
Re:Nope (dumb things I did) (Score:2)
I still don't agree on this, but I think we're talking about different bits of
My apologies for making that post innacurate through neglect. I now feel stupid for doing what I critisize so many other for on Slashdot...
Ah, me too... sorry I was so harsh, especially since I screwed up elsewhere in this very thread...
-- Yoz, calling everyone together for a group hug^H^H^H^H^H^H^H^H^Hbeer
Re:a mail I sent a couple of weeks ago (Score:2)
Oh, come on, give it a chance - after all,
Just as importantly, how many non-Windows platforms will support the
As many as run the CLR VM, I suppose. There's no point opening the VM if you're not going to open the API too, and besides, the API definition is going to be far easier to get hold of than the VM definition (since developers need to write to the API, not the VM).
Re:As a beta tester.... (Score:2)
I'm not anti-Java; hell, I work at a company that is currently building an EJB e-commerce backend, and I think Java completely rocks for that. It's taken a long time for Java to get moving and it's only now managed to get a real foothold on the server-side, which is well deserved because server-side Java is wonderful in all kinds of ways. Unfortunately it still sucks on the client side due to poor support and utterly abysmal performance (Swing is just mud). THAT'S why I want
Re:X box (Score:2)
I don't know what their plans are, but it seems like they're trying to avoid at all possible costs appearing to, once again, try to swallow up a whole 'nother industry with their stanards, which they could easily do if the X Box became exactly what you say it would.
I'm not sure where I stand on the X Box yet... If I were a microserf, I'd want the thing to be an NC. It would not only be a kick ass game machine (which it will be) but it would be a pretty sturdy PC. Looking at the specs, it could certainly fit that bill.
Will Microsoft change their view of the X Box as a potential NC? Possibly. My guess is that it will not depend on the market as much as it will politics of Microsoft's monopolistic practices in regards tothe perception of the device in the industry as a competitor.
Time will tell...
.NET is supported by Microsoft (Score:2)
Microsoft still owns the desktop. Including the desktop of many developers/programmers. And Microsoft has a significant market share of the server market, not so overwhelming as the desktop, but it's definitely not NULL either.
Admitted, the company is losing power and is not so influential as they once have been. Especially in the embedded devices they are not doing as well as they'd like. But still, Microsoft has a lot more influence on the market than Sun. If there is any company with the (marketing) power to have .NET succeed, it's Microsoft.
Will .NET change the world? Not really. It's not *that* special actually. Will it have impact? You betcha.
I'm personally hoping that Zend will release the PHP compiler soon and that PHP will allow stricter OOP such as private and protected members in classes. That might actually be a darn good alternative. (same applies to possible Perl projects heading that way, but I do not use Perl enough to know the situation wrt this)
Re:C# is like Java; .NET is XML based services (Score:2)
Microsoft Java, Take II: .NET interested, thanks (Score:2)
As I have said before [osopinion.com], C# is just another Microsoft retake of Java,
Microsoft's method is to publish something crappy (either by buying comething crappy like the SpyGlass browser, or by making a slightly broken variation-on-a-theme like J++), then re-work it and re-announce it as if it were the Second Coming, then do that again, and again, and again until the buying public gives in. It's a war of attrition.
Java may suck in some ways, Java may not be a truly public standard, but compared to
Meanwhile, in allowing a cracker to take them off air for a day, Microsoft have graphically demonstrated that they are not competent to provide the underlying distribution (lock-in) system for the
I say tell them where to stick Microsoft
Re:Not so fast (Score:2)
pfft. wow, they implemented an alias for unconditional jump. when the model supports first-class continuations and activations that do not assume a stack model (e.g. the security monitor being able to track through continuation chains instead of "the stack") then i will believe that they gave more than lip service to functional languages.
mind you the JVM is much much worse.
--
.NET sounds like *nothing* (Score:2)
What really happened... (Score:2)
I just couldn't resist (Score:2)
Heh, I tried to preview my comment by actually running the applet recursively, but the site was too plugged up. I'll try again later, this will be really demented :-)
Now this is a stunt that's only practical with Java. Oh by the way, after you've played with Nautilus you'll see why Microsoft id doomed.
--
Re:net vs java, etc. (Score:2)
No, no, no, you use the .NET to catch the stuff to make the C Hash with.
Gee, whiz, don't they teach you guys elementary cooking theory in those CIS classes? (and if not, how come there's all those "The [insert programming style here] Cookbook" books, huh?)
Sorry, couldn't resist...
---
"They have strategic air commands, nuclear submarines, and John Wayne. We have this"
.NET is the Java franchise co-opted by MicroSoft (Score:2)
Sun didn't help. They made it hard to remedy
the flaws in Java by locking up the standards.
Politics aside, I think C#/NET is the first
interesting development platform from a company
that originated as a languages company (before
OS, apps, and games). COM was really horrible,
dubbed "C--" by my colleagues. C# fixes various
flaws in C, C++, and Java (mostly stealing from
Java). The main hesitation I have is that MS has
no serious plans to port it to non-MS platforms,
instead relying on flighty third parties. If I
was starting a new product, I would do I in C#/NET,
mainly from the power of the system.
It's all out war (Score:2)
Sun decided to define a standard and provide reference implementations, but leave the rest up to everyone else. Because of this there vastly more developers currently working on J2EE and it's supporting technical infrastructure than could possibly work on
Microsoft may be able to market
I think
-josh
Re:not a Java expert *but* (Score:2)
Re:not a Java expert *but* (Score:2)
Re:not a Java expert *but* (Score:2)
I'm sick of people calling Java slow. It was slow when its strictly interpreted, but you can't say that anymore.
As for the API's, they are VERY well thought out. Some utilities are hacked, but the overall structure of data structures is well done and will only get better.
Bad Portents for Domain Name Owners . . . (Score:2)
Yeah, it sounds silly. But then, so does Pillsbury C&Ding a bunch of software developers for use of the term 'bakeoff' [salon.com].
--
Re:As a beta tester.... (Score:2)
Any Language.
There are compilers (and interpreters?) for several languages, which create Bytecode for the JVM. .NET are only of academic interest.
Besides that, most of the non-Microsoft languages for
And, more interesting, they usually lack those features, the MSIL doesnt support, multiple inheritance in Eiffel for example.
Native execution.
I don't think, that performance is a point. The HotSpot technology looks at the execution hot spots and optimizes them at runtime agressively. Dynamic optimization can gather some performance improvements, no (static) compiler can do.
Cross-platform
The examples, which come with the .NET Beta are quite windows centric. And with the knowledge, that Windows NT started as cross-plattform, I doubt .NET will ever run satisfying on another plattform that Microsofts own.
In my eyes, .NOT (no typo) nothing else than Microsofts own version of Java. They started five years later with all advantages and disadvantages.
The main problem with this is the long tradition of copying Microsoft has. MS-DOS was inspired by CP/M (and a little Unix), Windows was inspired by Mac, etc. Copying Java will be a lot more difficult, because it's a little bit more than a single program.
Re:Sun had an interesting soundbyte... (Score:2)
Re:As a beta tester.... (Score:2)
And how is this going to work for GUIs? AWT and Swing have proven remarkably piss-poor at handing platform-native UIs in a cross-platform way. Anyone who has tried to deal with a Java app trying for a Mac look and feel will know what I mean. Things just don't quite work right.
If MS succeeds in doing this, it'll be great news for Mac owners, since any program written to the CLR will run on a Mac. But I have a funny feeling that it's not going to happen.
-jon
Re:As a beta tester.... (Score:2)
I think you missed the point of what I was saying. If you use AWT or Swing to make a Java app and run it on a Mac, it just doesn't look and feel like a Mac app. It feels like a pod person from "Invasion of the Body Snatchers." Something is just off about it.
I spend a large part of my days doing Swing work on Win32. For Win32, Swing comes a lot closer. But it's still not quite right. Theme colors, for just one example, don't quite show through.
Is the CLR going to make EVERYTHING look like a Win32 application? If so, it doesn't matter if it's ported to MacOS X; no one will buy apps that use it. Is it going to make everything look like native Mac/Linux/Solaris/Win32/whatever apps? I'd like to see how they plan to pull this off. The single menu bar/multiple menu bar problem alone will be entertaining, to say the least.
-jon
Re:As a beta tester.... (Score:2)
It's all just a wrapper around a Turing machine.
This makes perfect sense (Score:2)
Look into the "way-back" machine a while, back to the VERY early days of the PC. The biggest-selling, most-popular C compiler of the time was Lattice C. Microsoft bought a license to re-sell Lattice C as their ows, Microsoft C compiler. Lattice had a different way of numbering what they called "major" releases, and Microsoft just upped the numbers when they felt like it. About the time they released MSC 4.0 (competing with Lattice C 2.something), they finally were writing their own C compiler, not using Lattice's
Lattice eventually got bought by a company who wanted a different compiler that they made. The new company dropped everything that Lattice had, except the part they wanted. The company I was with switched to Borland's Turbo C, and eventually we folded too - too much marketing "input", and not enough engineers to keep the ever-expanding code monster in check. *sigh*
So, anyways, does it make some sense, now, what MS is doing here? They seem to be following their own time-honored pattern of luring companies in with what looks like a good deal, then poisoning them from the inside. I really hope that Sun can survive this - I have a friend, GianPaoulo, who recently started work with them. He's brilliant, and I'd hate like asll Hades for him to end up RIFfed over this
Re:Sun had an interesting soundbyte... (Score:2)
As I see it
Not being able to maintain code isn't a problem with
Diverse code is an option, not something that is forced upon you. I'd certainly rather have a whole slew of options than only one choice.
Three words (Score:2)
This is how they plan to win the Java war and it will work for them as it has in the past. Throw millions at marketing your new product.
Similar concept, very different methodology... (Score:2)
The idea of hosted, load-on-demand applications isn't exactly a new idea -- even for Java.
Microsoft's approach is to make things XML/HTML based. JScript, DOM, C#, and SOAP... Much more "fluid" than having this VM bolted onto your browser... Simple apps are simple, small, and quick-loading, complex apps scale accordingly...
It's a very interesting approach actually... Very promising, and in some ways similar to Mozilla -- although somewhat more extensive in its goals...
-JF
Re:Similar concept, very different methodology... (Score:2)
Re:Similar concept, very different methodology... (Score:2)
By "fluid" I mean stuff that loads quickly with no install process and interacts "correctly" with the environment around it. Java does not do this even with standalone Java applications. Indeed, one of the fundamental design goals of Java -- total platform neutrality -- makes this impossible. One cannot, for example, use the mouse wheel in Java without using JNI and coding support yourself.
-JF
Re:Similar concept, very different methodology... (Score:2)
JavaScript/DOM are a good start but lack a great deal of flexibility. XML-RPC/SOAP are *very* useful! Mozilla provides this, as does
Look at the add/remove programs dialog in Windows 2000. This is an HTML-based application written using JavaScript (or rather, JScript). Microsoft Money is in large part an HTML-based application. *This* is what I mean by "HTML-based application".
-JF
Re:Similar concept, very different methodology... (Score:2)
Why? It's fairly simple, but it does what it is meant to do, and it does it well. And for the record, I'm referring to the one in Win2K which bears no resemblance to the one in prior versions of Windows.
<<All you really need is a custom renderer for a JList object to do this in java, no html required.>>
You miss my point. I'm not saying that you can't do sophisticated UIs in Java. I'm saying you can't do DOM-based UIs well in Java. Using the DOM-model for developing applications presents a number of distinct advantages:
1) Applications are very lightweight.
2) Applications immediately inherit a lot of UI functionality (such as mousewheel support, automatic rescaling when the container is resized, etc...) with absolutely no effort on the programmer's part.
3) Applications and components can more easily be integrated into other applications or components where such functionality is useful.
4) Making applications that run partially on a server and partially on a client (essentially distributed computing) is MUCH easier.
<<I still maintain html stuff like what they do in MSMoney could be done in any language.>>
Show me. Show me a DOM-based *calculator* written in Java that can be embedded in another application written in C without having to modify the C program.
<<In java for instance their are HTML components that work quite nicely, the Ice browser for one, and one of lesser quality the JEditorPane even comes included with the JDK.>>
Displaying HTML is not what I'm talking about! That has NOTHING TO DO with what I am talking about!
<<All you really need a is good framework behind your application to do this. Maybe JScript, etc. are a good start but that's not to say there aren't other choices. >>
Under IE there's JScript, C#, VBScript, and if you really want to, PerlScript (but your users have to download and install ActiveState Perl). When the
<<Java isn't as limiting as you make it out to be. I will admit there aren't very many java apps out there right now that do this, publicly available anyway. >>
Show me even *one* DOM-based application in Java. Show me a DOM-based Java application that is embedded in a DOM-based application written in another language and interacts with DOM-based components written in JavaScript.
<<Java is slowly getting better performance on the client too, 1.3 is a vast improvement over 1.2, I just wish it didn't take so long between releases. 1.4 is supposed to have substantial performance and memory requiremnt impovements.>>
And no matter how good it gets, it will still have the following disadvantages:
1) No interoperability with the native platform. (Mousewheel support anyone?)
2) No component-model interoperability on the client-side.
3) It will still be slower and bigger than an equivalent JScript/.net application for most applications -- especially smaller ones.
The very idea of platform independance while quite noble, is the very antithesis of CPU/memory efficiency and interoperability. Merely making your widgets look like the native platform is not enough. They have to *behave* like them too, and your code has to be able to interact in a meaningful fashion with other code on the client.
<<I'm tempted to mock something up in Java to show you how easily an add/remove "like" dialog could be done but I'm sure it would be a complete waste of my time.>>
You need to reread my original messages. I'm not talking about Swing or AWT. I *know* you can make a nice, heavy, client-side GUI with all the trimmings. Making it interact in a sane-manner with the native OS is incredibly complex (JNI anyone?), and making it be lightweight is impossible.
Yes, you could write an add/remove program dialog in Java. Making it behave like the one in Win2K would be very complex and involve a number of custom widgets. Making it be embeddable and controllable by other applications on the system would be nearly impossible.
Yes, a good foundation is the critical component for everything I'm talking about. IE provides a good start,
-JF
Wrong. (Score:2)
1. Java is the most common language used to develop programs for the JVM, but nothing prevents you from writing a compiler which translates the source of any given language into JVM bytecodes; Sun does nothing to prevent this, AFAIK. See www.jython.org [jython.org] for an example of this which exists today.
2. Java already does JIT and native code generation. JIT is more common because it is more flexible.
3. This is the first I've heard of .NET being cross-platform. But I'll accept your assertion and point out that Java already runs quite well on every significant enterprise platform.
4. Java already has a robust security model.
5. Java servlets are already garbage collected.
6. This sounds cool but I'm dubious about it's success. Besides, you can already achieve the same goal by using Java applets or Java WebStart.
7. Java already does this, but I am glad to see Microsoft finally address the "DLL hell" problem that they created themselves.
Keep in mind that Java delivers all these things robustly *today*. It will be years before .NET will be usable for real enterprise systems. I think the point of the original posted question is that .NET is almost a wholesale rip-off of the current Java platform. There is little to nothing proposed for .NET that is not already implemented in the Java platform.
.NET is basically two things: (1) an adminssion by Microsoft that Sun is right regarding the Java platform and its goals, and (2) vaporware to try to slow the "steamrolling" rate of adoption of Java for enterprise computing. Have you noticed MS's recent ads touting their "enterprise computing." They know where the money is going, and they know who currently owns that market...*today*!
As for automatically blasting MS, either you're really clueless about Java, or you are guilty of automatically preferring .NET "just because it's from Microsoft." As a beta tester, I think the latter is more likely.
Re:Sun had an interesting soundbyte... (Score:2)
Once you've picked up a couple of languages, the others come in less that two weeks, if you're a Programmer. That implies a good education and a flexible mind.
Re:C# is like Java; .NET is XML based services (Score:2)
The real bonus that I see is that with their "Web-Forms" package for Visual Studio
It remains to be seen whether the cross-platform capabilities they've been touting will come to pass, and I'm quite skeptical about whether or not it will be possible to code pages that use a decent amount of DHTML inside of the Visual Studio environment. But it nothing else, it's going to be a wonderful upgrade to Visual Studio which is a very power IDE for rapid application development, and here's the kicker... if they can port the
- StaticLimit
Re:X box (Score:2)
I just wonder whether one of the platforms that
A Name, A Name, What is in a Name? (Score:2)
Any other good names?
*note(pun intended): For those not Music literate, I believe C-Sharp and D-Flat are two ways of writing the same note (I don't know why, maybe someone who has more of a musical background can enlighten us).
Re:A Name, A Name, What is in a Name? (Score:2)
Db could also be the notation for DeciBle (ie. the notation for noise... and not much else >:)
thanks for the explanation
Cross-platform, languages (Score:2)
If Microsoft can deliver on a *cross-platform* solution.
Java is cross-platform [geocities.com], there are VMs for about any system you could imagine.
If
You can run tons of languages [tu-berlin.de] on a Java virtual machine.
Number crunching (Score:2)
Java Grande [javagrande.org], Java Numerics [nist.gov]
Re:Why Java "failed" and .NET might (Score:2)
In the meantime, others have developed similar (and arguably, in some cases, superior) capabilities. Also, Sun still has never really built and made widely available at low/no cost the tools to stitch all this stuff together as easily and transparently as Microsoft does. (Sun was *years* late recognizing the importance if real IDE's, a curious stance from the company that built the excellent Sun Workshop IDEs that were without peer for many years.)
I realize all this can be done, but it was too hard for too long, and so the world marched on - had Sun properly delivered on the promise of Java for components, Linux would be primarily a Java delivery vehicle rather than an apps platform in its own right, and projects like Gnome would probably not exist at all. My point was more that the Java backers missed the window of opportunity than that the concept is in some way invalid. Still, it appears to me that most Java developers (egged on by the host of "learn Java in the shower in 15 minutes" books) are indeed trying to use the language in ways that stress its weaknesses rather than its strengths.
And after all these years, there's still no good and standard way to find/locate/execute the local java environment(s) reliably across platforms. Java has enough of a head start that it may prosper on the server side, but it is quickly approaching irrelevancy on the client side - and if that happens, it means Microsoft WILL win in the end.
Why Java "failed" and .NET might (Score:2)
The real reason Java hasn't already won this war, (aside from Microsoft's perfidy) is that people are still trying to use Java to write the same types of monolithic applications that Microsoft knows only too well are doomed to eventually fail under thier own weight.
Java *should* have become the premier way of building "software Legos" that would truly allow code reuse. There are a few bright spots in the enterprise space showing the promise of Java in this regard (IBM's San Francisco comes to mind), but by and large, Java developers and backers have only weakly delivered on Java's promise as a tool for making and using such software Legos.
It is this very failure to create good components in a timely fashion that led to Java's near-irrelevance on the client side. Microsoft will not make that same mistake, and they have a huge market share wave on which to ride thier new surfboard, as
Microsoft is not stupid and realizes this. If they are successful in creating a large and powerful set of such Legos, it's "game over, man!" for Java, and needless to say, the more conventional methodologies favored by the open source community.
As much as people here love to hate Java, this may very well be a case in which "there can be only one". It's shaping up that the final two are Java and
Re:a mail I sent a couple of weeks ago (Score:2)
Yes, it would be counter-intuitive for MS to build a cross-platform system. They have never done anything but protect windows in the past. You use the MS JVM as an example of why MS may be confidant in being able to write a fast JVM. Well, at the same time, MS tried to 'pollute' (internal MS e-mail term) java to destroy the cross-platform capabilites, by producing byte-code that not only would only run on Windows, but also only on MS's JVM. Why would you trust MS now. Warning bells should be going off!!!
Re:Obviously, no. (Score:2)
No, because Microsoft said so, and I believe them.
Re:.NET vs Java (Score:2)
Some of your points were a little inaccurate..
Java is controlled by the Java Community Process, *NOT* Sun and there are lots of companies on the JCP! The process works by voting and is a true democracy. It is organized by Sun, yes, but it's definitely wrong to not recognize this and just say it's "not an open standard".
.NET will be standardized by Microsoft. Well, let me be more accurate.. The common language runtime will be standardized by Microsoft. If I recall correct, they have already submitted it to ECMA.. One of the reasons behind this is to win those people who have a problem with Java *NOT* being 100% open. For a lot of people, including me, this is not a problem at all. I don't mind Sun controlling it because I think they have done a great job so far.. Now with JCP, I have even more faith in the Java platform.
Re:As a beta tester.... (Score:2)
> just a sandbox....
So is Java's.
> you really should read up on how it all works.
So should you about Java.
> there is no sense in just having all or
> nothing, ala Java's method.
Java's security model includes a rich vocabulary of principals, permissions and access controls. Perhaps you're confusing Java with ActiveX?
> because of the way the security system works,
> the runtime will prevent the trusted library
> from doing anything disallowed on behalf of the
> untrusted program....
In other words, it does stack crawling to detect untrusted principals responsible for initiating a request. Guess what, the JVM provides this too.
> That is why Microsoft will win: IT managers want
> to cut a single check and get everything they
> need to make the whole system work in one box.
IT managers are getting sick of watching the size of that check increase every year, and getting a solution that is designed to ensure they will never be able to switch to another vendor.
Re:As a beta tester.... (Score:2)
> language, it's a much stronger coupling than any
> other language, whereas the CLR is designed to be
> language-neutral
Yeah, the CLR is language-neutral as long as your language looks like C#. That's why they had to take multiple inheritance out of Eiffel to make Eiffel#.
Re:As a beta tester.... (Score:2)
> Cross-platform. Let's just say that more than
> Win32, MacOS, and WinCE are on the roadmap for
> the Common Language Runtime. More will be
> revealed with this in time.
A cross-platform implementation of the CLR is irrelevant. What matters is ports of the
> IIS/ASP.NET will monitor all the processes and
> components... if there is a memory or resource
> leak detected (or a timer expires), it will
> spawn a new process and start funneling all new
> sessions to that process... when the last
> session to the old process closes, it will be
> terminated and the resources reclaimed.
Hey, sounds just like Apache! Nice catch-up play there, guys.
> With desktop apps, an x-copy will actually
> suffice as the install routine.
This is exactly the same language I heard a Microsoft manager use in his presentation. Either you are one or you've thoroughly imbibed their view of the world.
Re:.NET / Java (Score:2)
The key issue is non-Windows .NET implementations (Score:2)
The difference here is crucial. The CLR of the late 20th century was x86 machine code, which Microsoft never owned. Microsoft's lock has always been in the APIs, which used to be Windows and will be the
So what's the point of "opening" the CLR definition without "opening" the
The issue is really who will control the evolution of the CLR and the
Assuming they do not, then we'll continue to see the "API of the month club"/"Keep the competition on a treadmill" strategy in action. Microsoft will frequently release new library interfaces, declare them part of
Sounds like... (Score:2)
Community process (was Re:.NET vs Java) (Score:2)
Well, speaking as another Java evangelizer, there is just no way I could possibly sign up to Sun's soi-disant 'Community Process' [sun.com]. There's nothing 'community' about this - you have to, for example, grant Sun (not 'the community') an irrevocable license to use and distribute (under whatever terms they like) everything you do - and Sun (not 'the community') may even assign those rights to anyone they please!
I very much like Java, and I'm betting the future of my company on it - but there's no way you can claim that it is controlled by an open process. It is controlled by Sun, and Sun have not demonstrated they have anything but very narrow selfish commercial interests in their management of it. The 'community process' is a gossamer-thin device to enable Sun to pretend to the market that they are committed to open systems. If it weren't, Sun would set up a not-for-profit trust which would own the IPR licences, and would allow the community to elect the board of that not-for-profit.
Re:As a beta tester.... (Score:2)
Huh? Motif PLAF looks fine on my Windows box. Apple did release a Mac PLAF which did *very very dirty things and was not pure Java*, and would not run on anything but the Mac OS. This was bad of Apple, but certainly not Sun's fault or the fault of Swing. (AWT wasn't even designed for "cross-platform platform-native UIs", whatever that means).
Anyway, Apple has pledged that OS X will have a full 1.3 Java runtime (and beta testers can attest that this is currently working). If I were Apple I'd certainly go the Java route instead of the CLR/Microsoft route...no reason to be even *more* dependent on my #1 competitor.
A resounding "Duh!".. (Score:3)
Let's look at the timeline of events:
1) MS gets sued by Sun over J++ and their Java implementation
2) Sun gets injunction to prevent MS from messing with Java.
3) MS creates
4) MS settles with Sun
5) MS releases toolkit to move Java coders from Java to
I'm not a coder, and it's pretty obvious to me that
Re:As a beta tester.... (Score:3)
Re:let's look at the facts (Score:3)
Here's my theory:
Let's set the wayback machine for 1982. Microsoft has been around for about seven years. They got their start writing BASIC for a lot of different platforms, and Bill's strong abilities to hash out deals favorable to MS served him well. (e.g. having Apple by the balls in the 80's b/c he controlled Applesoft BASIC) One of the few deals at this time that I'm aware of that he screwed up on was IMSAI, but that's okay. They augered in pretty quickly.
Anyway though, a couple of years ago (c. 1980) MS gets a secret deal with IBM. Thanks to Mary Gates being pals at United Way with an IBM bigwig - I forget who. They're going to write an OS (which they have to quickly buy from outside; they've never done this) for a new computer. It all works out well, but IBM makes one critical error that isn't immediately important.
IBM failed to buy MS; buy DOS; or get exclusive, perpetual rights to DOS. If they had, things would've been a lot different.
While Bill may indeed have been smart enough at the time to forsee what was coming, I think that he was just covering his ass. Despite the infamous 'Hobbyist Letter' Bill has little or no sense of ethics IMHO. I've heard that the BASIC for the Altair was developed on educational hardware, that he ported ADVENT w/o permission, etc. so my confidence in Bill is low. OTOH he has the Devil's own luck, and a mean attitude.
Anyway, while it's been easy to copy out the IBM BIOS and stick it in an otherwise all-legal board b/c of their decision to go with all third party off the shelf hardware, that BIOS is illegal. Compaq, however, manages to come out with an RE'd BIOS that's quite legal.
And now Bill is on the road to riches. Because: An OS that is abstracted from the hardware makes hardware makers irrelevant.
More or less. Enough for Joe Blow consumer who has a Dell at work, a Compaq at home, a Gateway laptop and an eMachines for the kiddies. Nowadays you can run Windows on a non-Intel chip, or even a chip emulating an Intel chip.
So on our return trip to the present, there's one quote from the near past that should stand out. "The browser is the operating system." Boy oh boy did MS take this to heart. In fact, that's the key to
DOS (and Windows) succeeded because: An OS that is abstracted from the hardware makes hardware makers irrelevant.
Thus Netscape was threatening to succeed because: Software that is abstracted from the OS makes OS makers irrelevant.
Not just anything will do. The software that could make that come true would have to be very compelling stuff all on it's lonesome. Furthermore, it would have to be cross-platform to protect itself from threats and gain the kind of enormous mindshare necessary for this strategy to work.
Like a web browser - which is really a very pretty but not awfully smart terminal application.
If Netscape ran on the Mac, Windows and Unix, and people _did_ stuff on those browsers, well, that could be done on any OS. And then Windows would be no more special than the Mac. Or frickin' Irix. In fact, people might start using those because, hey, what's the damn difference?
MS did that to IBM in the early 80's. IBM is a dinosaur, sure. I'd say that they're probably a Tyrannasaurus Rex. Big and mean with little tiny forearms
MS doesn't want to think of themselves as a dinosaur. They killed a dinosaur. But if they were, I'd say that they're more of a Raptor. Big enough without losing mobility, even meaner, and perfectly happy to take down anything that moves. Even 'harmless' little mammals. 'Cos you never know.
And to them Netscape was looking like a decidedly threatening mammal.
Bringing out IE (actually arranging a licensing agreement with Spyglass to rebrand and fork Spyglass Mosiac, while simultaneously screwing Spyglass over royally for kicks) was a reflex action. IE wasn't even useful until v3 or so, whereas NS was the bomb since v.9, before it was even called Netscape, and before the stupid throbbing N.
But MS had at that time two strong monopolies. First, their OS monopoly, which had pretty much crystalized by the time of Win95's introduction. Second, their office suite monopoly, which was a little fresher. MS not only managed to kill off the consumer-level 'works' market by making Office (gotta love those generic names - they seriously increase mindshare) readily available, but they also killed off their business application competitors, notably WordPerfect.
(In a curious reversal, they also may have used the office monopoly to ensure the OS monopoly - MS Office 4.2 for the Mac was truly awful. And it took years for Mac Office 98 to rectify it, by which time the damage was done)
But, but, but, they committed a terrible sin against themselves by pursuing the application monopoly. When users are very firmly locked into using Office, and they are thanks to the dirty tricks we all know and love, they no longer care a hell of a lot about the OS. If a Flintstones-type computer with a little bird inside can open usable Word documents that's good enough.
MS made Windows a near-commodity for a huge number of business users. Game consoles were of course competiting with MS (though they didn't know it at the time) for the dollars of home users who might get a console instead for playing games. And until Netscape came along the last compelling thing MS had was MSN. Which prior to Hotmail was an AOL wanna be.
So's anyway, MS goes after threatening NS with a vengence. They bring out IE. They bring out Outlook (which goes after Eudora as well as NS's mail and news capabilities) but then, probably while mulling over the Final Java Solution the
If the OS monopoly has been seriously compromised by both the web and Office, it's time to set up a system that both brings it back into the fold while simultaneously making it unecessary.
.net is, as far as I've been able to tell, a way of preserving the more important office suite monopoly in conjunction with the browser monopoly, by making Office a web site.
They've been doing things for a while that lead up to this. Based on some interviews with senior Microsofties I've been putting the pieces together for a couple of years.
Office is well known for forcing upgrades in order to read new files. It's a bit like a virus that's hostile to non-carriers and benign to them that's got it. One or two 'infections' in a major corporation and all admins can do is delay the inevitable upgrade.
MS is a big proponent of UCITA, and has been more and more active lately in subscription oriented software (e.g. $100/year to use Office, even if you didn't upgrade - though it would likely upgrade for you even if you didn't want to)
And now MS has a big XML 'web application' push.
Put 'em together and you get something like MSOffice.net: $100/year for businesses, constant (though buggy, natch) software upgrades, files stored on centrally located MS servers and intranets (hate to be their competitors), files that can't be read by previous versions, only works on IE and Windows (as long as it's MS Windows) and gives Bill a great deal of power.
Like the PS/2 it wouldn't work if it all happened at once... not easily, but it'll definately come to pass if done incrementally.
I figure that the penultimate step will be a well-entrenched version of Word that has auto-update capabilities. If MS releases one final, very buggy update, it'll be difficult for people to stick with it. Those guys at DirecTV had about the same idea.
Java could have made Windows irrelevant, and had really compelling cross-platform office apps appeared, even made a dent in Office. But it didn't, and half of that fight, the cross-platform part, was well and truly over before it began. Sun cared b/c Sun has their own OS. Most people never cared b/c they already had Windows.
We'll see where this goes. It may be several years yet before MS puts the last piece into place. I hadn't expected the court case to move so fast, and neither did they, so that may be having an impact on their plans.
Anyone care to refute, or comment? It's a fun theory and I enjoy it, but it could just be the CIA satellites talking for all I know.
a lot of similarities (Score:3)
Here's my read:
C# ~= Java (~= means approximately equal to)
----------
C# provides a nice programming language that has built-in garbage collection and takes out a lot of the crap from C++. Java does this, too. C# has multiple inheritence. Java does not (and claims it is not a good thing). Java will soon be extended to allow template-like functionality (without the pain in the ass of templates). I believe C# has something like templates, too.
ASP
---------------
ASP
COM ~= JavaBeans
I'm not familiar enough with
SOAP ~= RMI and/or EJB
-----------
This said, SOAP will play an integral part of Java, too. SOAP is a Good Thing. CORBA is too much of a pain in the ass. RMI is Java-centric. And, for all EJB's promises, it's a pain in the ass to use non-Java code with it (basically it's just CORBA). So Java will have all three (RMI, EJB, & SOAP). By the way, Java's serialization mechanism is being changed to allow the serialization of objects as XML. This will play a big role in the integration of SOAP.
So in essence,
In other words,
Java is multilanguage... (Score:3)
Java is multilanguage, there is a difference between the VM and the language Java. There are many different cross compilers for the Java around including COBOL.
See : http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.h
That said though not many people do this.
.NET has some solid ideas (Score:3)
If you want to think of C# and
Read the Comparitive overview of C# [genamics.com] for a fairly objective comparison between C# and Java/C++.
You might be able to say fairly that
Don't take this feature so seriously. If you are working on one application, Microsoft and anyone else with half-a-brain would want you to use one langauge. It does negate the fact that being able to use components written in other languages and being able to produce compontents that can be used by other languages provides developers a great deal of flexibility. Look into the benifits of
.net article at www.perl.com (Score:3)
http://www.perl.com/pub/2000/12/net.html
Blech (Score:3)
The other major difference is that everything in .NET is available as a distributed object by
default by SOAP. This is kind of cool and has some
interesting possibilities for building kick-ass
distributed applications.
However, IMHO the direction Microsoft wants to go with this is horrible. Distributed pay-per-use applications are just a bad idea. Basically if you loose your network connection, you loose your apps which just sucks.
So they have cool technology with a horrid targeted application of that technology.
Just my 2 cents.
.technomancer
Re:A resounding "Duh!".. (Score:3)
Java is a language. It happenes to be compiled to a VM which has many implementations on many platforms. It also has a huge honkin set of class libraries that make it so you dont have to invent the wheel for each app you write.
.NET is about distributed computing for the masses. The language you choose is irrelevant, the OS providing a
Do you not see the fundamental advantage of being able to make _function calls_ across HTTP ?
When VS.NET ships suddenly (apart from the time it takes to get used to the changes from VB6->VB7) your average VB developer can write distributed reusable services. If shes not so hot at writing some peice, her friend the mighty C++ guru can cook her up a few components, which she can use pretty easily. Infact, she can _inherit_ from them if she likes and extend them in new ways.
So when the majority of future MS products are designed against this distributed computing architecture, "things should be pretty cool".
So, can you do distributed computing with java ? Certainly.
Is it easy ? Not so sure...
Is it designed from the ground up for massively distributed scalable services using the public internet as the connecting infrastructure ?
No.
Enter
Re:Blech (Score:3)
everything in .NET is available as a distributed object by default by SOAP
First off, what is SOAP supposed to be about ?
If SOAP is an rpc mechanism over commonplace Internet-friendly transports, then that's a very valuable tool to have. We can build stuff with that, build it now, and build it between almost any two platforms that are still significant to the net. We want this badly.
In M$oft's "SOAP-on-a-ROPE" world, SOAP has become "Internet DCOM". They've broken it, and especially the SOAP mindset. It's now all about shoving stateful objects from place to place, and objects that are only meaningful in a Windows world. They can FOAD with this whole idea; SOAP is built around being cross-platform, and I'm not having Redmond break it.
If we want to shove objects around the place, CORBA still does it better than .NET. What happened though, was that the world found it didn't really want to do this after all. It's just too difficult to get interoperability between different sites in different companies, when most of the traffic is trivial "Validate this CC for me" stuff. Sure, in the future everything will work, and we'll be able to punt objects around. In the real world, right this minute, I just want a clean and simple interface that lets me talk to an eService provider and buy "5 minutes play time for the latest Metallica album over Napster". I'm certainly not going to start instantiating COM objects (from my Servlets environment) just so that I can talk to a poxy .NET-based service.
M$oft still don't understand the 'Net. They think it's like a big multinational, only bigger, but still responsive to central control. Compare BizTalk and the Semantic Web (if you can do it without laughing). BizTalk is centralist and controlling, SW is about publishing to a widespread lingua franca. The difference commercially between these two is that SW can tolerate BizTalk, but BizTalk dies unless everyone uses it.
It will be a long struggle, comrades, but the inevitable collapse of the Imperialist hegemony is at hand ! To the barricades !
Re:Sun had an interesting soundbyte... (Score:3)
Could this be MS's downfall? (Score:3)
But this could fail. Here's how:
1.) Home users are in general leary of subscription services when it comes to computers. Furthermore, they may be scared off by the notion that they must pay a monthly / yearly fee to use what they perceive as "their software" on the expensive system they bought.
So it makes me wonder.. is
This comment represents solely the opinion of the poster. It does not represent that of any past, present, or future employer.
.NET vs Java (Score:3)
Re:.NET / Java (Score:3)
What Microsoft is Doing Right (Score:3)
Well, let's think about that one.
All these factors point to one sure thing: .NET, no matter how lousy, is going to become the next service standard, and Java is going to flounder. All hail the Microsoft Megalith, they will be setting commonplace computing trends for years to come, and even longer if they control access to your subscription to Office2010.
Jump ship now, while you still have a chance.
A new year calls for a new signature.
Re:As a beta tester.... (Score:3)
This is just a gross oversimplification. I encourage anyone interested to seriously check out the docs.
Also, something I forgot to mention in my first message was web services. This allows you to expose and easily call services over the web as easily as one can take advantag of COM today. A lot of the COM "goo" is gone, making things generally easier on the programmer. But I don't have enough space here to do that subject justice.
The bottom line is the same for
-
The IHA Forums [ihateapple.com]
primary difference: Java is more mature (Score:3)
Microsoft makes a big deal out of the universality of their runtime, but it isn't significantly more universal than the JVM. They claim they compile C++ into their runtime, but it isn't C++, it's a "safe subset" (full C++ is compiled into native code and linked in--useful, but not a feature of their runtime). In fact, more than 100 languages have been implemented on top of the JVM [tu-berlin.de], including C; there are also semi-automatic translators for C++.
I wouldn't actually care much about whether Java or C# ultimately "wins" in the market, if it weren't for the fact that C# is years behind and has the wrong motivations behind it. Java is, by now, fairly mature and it has an excellent set of APIs and libraries behind it, both from Sun and from other sources. There are numerous compilers to the JVM for languages like Python and Smalltalk. And there are several third party implementations. Java's implementation isn't particularly tied to any one platform, and it actually runs better on Windows than on Sun's own Solaris. And it will take a C#/.NET implementation at least as long to mature as the JVMs--building these kinds of runtimes is hard and requires a lot of benchmarking and user feedback to get the bugs and performance bottlenecks out.
If Slashdot readers care about open source and open standards, rather than complaining about Microsoft, there is a much more effective thing you can do: support open source Java efforts like Kaffe [kaffe.org], Intel's Intel's Open Runtime [intel.com], GNU GCJ (now part of GCC), and GNU Classpath [gnu.org]. By "support" I mean: use them, consider them for your next open source project, submit bug reports, and maybe contribute code. GNU GCJ, in particular, should be a good basis for you to write Linux applications: it compiles to executables that start up quickly, it lets you use native code almost as if it were written in Java, and you can even write native Gtk/Gnome [sourceforge.net] applications in it.
But perhaps most importantly, educate yourself about Java rather than complaining about it; Java is really a pretty decent engineering effort. Give it the benefit of the doubt, and wher it needs improvement, help it along. C/C++ will not make it in the long run. It's Java or C# or something else similar to those languages.
Amazing! You're wrong about EVERYTHING! (Score:4)
Java software is run client-side, while
You're thinking of the XML Web Service stuff. We're talking about the Common Language Runtime, which can be used to write client code too.
Other differences include that Java, by its very nature, is open source (that means that you can always read the source - that doesn't mean that it is free though...). OTOH,
I don't know where the hell you got this idea from. Both Java and
Further more, Java is an interpreted language and can run on any platform.
Wrong. See all the other posts in this thread.
And since M$ has its dirty hands all over it, we can presume that it will be some time before compilers are available for non-M$ systems - and even then not 'legal' compilers.
Wrong. It's a fully open standardised spec.
How about even *remotely* checking your facts next time before posting?
X box (Score:4)
1) MS talk about releasing Office on a pay-per-use basis over the net.
2) MS release a fairly powerful computer with a network port on it. They call it a games console, make sure it has a nice graphics card, and then try to get it into as many living rooms as possible.
3) MS come up with something that looks like a JVM.
4) MS make sure it has a security model, bytecode verification etc...
etc..
Is the X box going to be a Network Computer ala Sun's Network Computer that Microsoft said was a bad idea a few years back?
Well, I've used both and... (Score:4)
The structure of the
VC++ now has two modes: Native mode where it generates native machine binaries and uses standard API, and Managed mode, where it generates code and API designed to run in the
C# is Java. What else is there to say. It has a few more bells but that's it.
VB has been really ripped apart. Most of the data types are changed, restricted or gone. No more variants. Arrays are always zero based, always dynamic. Declaration, scope and instantiation all behave exactly like a Java environment now. There's threading now and better Try/Catch exception handeling.
I think it was a BIG MISTAKE to rip VB apart to make it more java like. Sure, you get threading and some other nice things, but at the expense of a lot of things that VB 6 and earlier could do before but can't anymore. Porting old code wil be a nightmare at best, impossible at worst. Most existing VB applications will need to be majorly overhauled to just compile in VB.NET.
They should have left VB mostly the way it was. It was designed for entry to mid level RAD and it worked best that way. They could make C# the Java killer, web development language and maybe keep what they did with VC++. Instead they tried to drag the large base of VB programmers into their
Yes,
MS could at least have redesigned it a bit to clean up some java mistakes. It looks like they copied the Java design so completely, they took it mistakes and all. So much for "Innovation".
All your answers (Score:4)
here [sun.com]
here [google.com]
Isn't this obvious? (Score:4)
When Java was first introduced by Sun, Microsoft understandably saw it as a threat, because it suggested a network architecture where Java servers (most all of them surely running Solaris) would distribute executable content to clients running any platform at all, including but not limited to Windows. Microsoft understood that to allow this would be to allow Sun control over the server realm, while they would have at most a (perhaps considerable) slice of the client realm. They understood that, in a highly networked world, having control only over the client was irrelevant, especially considering that the distribution executables were not limited to their client.
Now, five or ten years later, Microsoft is finally reaching the position that Sun was in back then, in that they finally have a more or less respectable server OS, and can finally begin the move to a more server-centric network architecture. Now, like Sun with Java, they are able to create a scenario in which they can control the servers and thus the rules of the game. Programs running off .NET servers may well be able to run on other platforms (e.g. a Linux version might not be out of the question, and Mac support seems pretty likely to me; the fact that they happen to control the most common client platform is just icing on the cake for them now), but they'll control the market and make their money off the server.
This is why they were willing to settle with Sun on pretty unfavorable terms, and this is why the outcome of the antitrust case may become at least partially irrelevant. Microsoft has adopted the tactics of their enemy, and are using those tactics in an attempt to win the next battle, as they choose for it to be fought.
.NET - actually some substance (Score:4)
There is a lot of stuff here that we've already got with servlets and other non-MS technology, but MS as usual packs it with a quite good IDE and quite some code is generated for you (For the purists among us: this is optional).
A very promising part of it all is ASP.NET (formerly ASP+) which has 'server-based GUI-elements'. This is really just a framework handling programmatic manipulation of forms, listboxes etc so you're finally not having to do Print "$e"; and so on. It gets especially handy handling tables listing data with alternating colors and such.
I just couldn't bring myself to touch the darn VBScript or JScript in ASP so the new language C# (almost like Java - but alas, an all new object model to learn) was really what made ASP.NET attractive to me at all.
Obviously, no. (Score:4)
Obviously not. Try saying them both out loud in quick succession and you should be able to hear the difference.
Next question...?
--
Re:Java vs. .NET 2 (Score:4)
documents that say "J++": 13
of those:
# that say "unix": 7
# that say "windows": 3
documents that say "C#": unknown. Dice not setup to handle that.
documents that say "java": 372
of those:
# that say "windows": 102
# that say "unix": 188
# that say "windows" AND "unix": 77
# that DO NOT say "windows": 270
# that DO NOT say "unix": 184
# that DO NOT say "windows" OR "unix": 159
documents that mention "unix": 480
of those:
# that say "windows": 156
# that DO NOT mention "windows": 324
# that say "java": 188
# that say "windows" AND "java": 77
documents that mention "windows": 365
of those:
# that say "unix": 156
# that DO NOT mention "unix": 209
# that say "java": 102
# that say "unix" AND "java": 77
So, now for all of those who keep going off about M$ implementations, or M$ having 85% of the market share -- trying checking the market sometime instead of believing M$ propaganda.
.NET is like Java (Score:4)
But it's done the Microsoft way. Look at it from Microsoft's perspective to see the differences.
Before, MS controlled the source layer. (C, C++, VB) Source was compiled to an object layer that was defined by the CPU (not MS).
Now, Microsoft inserts MSIL, a meta-object layer. MSIL is owned and controlled by Microsoft. They create momentum by providing 27 languages that all compile to MSIL. (How many of those 27 MSIL shells will be updated a year from now to support .NET 2.0?) Trying to integrate non-MSIL code with MSIL code will be a new hurdle developers will have to face, and in most cases, won't be cost justified. To succeed, third party tools will need to directly support MSIL,
Sun did the same thing by creating a meta-layer of Java .class files, but today there is a Java engine for most platforms. Do you expect the same level of support from Microsoft?
The key for me will be to see how third party vendors are allowed to link with MSIL projects. Watch Microsoft and see what methods they use to lock developers to their platform.
I predict Microsoft will protect their Windows investment by the usual methods. First they will only support their own operating systems. Then they will provide broken support for other platforms where it is easier to migrate to Windows than stay on non-Microsoft platform.
I hope I'm wrong, but just in case I've just finished pulling the last com.ms package out of my J++ project and am ready to migrate back to an open JVM. I'd rather not take advantage of Micorosoft's tools that allow me to easily port my Java code to C#.
.NET WILL CHANGE YOUR LIFE (Score:5)
Don't really understand Java? The ATL Dispinterface got you down? Don't worry, because
10 print "I rule d00d"
20 goto 10
a mail I sent a couple of weeks ago (Score:5)
This is the main bit I'm interested in. It's quite a daring move, since what
they've done is made a virtual machine like Java's, but completely opened
the specs and submitted it for standardisation, which is more than Sun ever
did with Java. It's bizarre, since virtual machines promote
cross-platformness, which is the *last* thing you'd expect MS to be
interested in, especially given their track record. What it looks like is,
firstly a great way to counter the DoJ (and to survive a company split, if
the worst comes to the worst), but secondly it implies that MS have so much
faith in their ability to write fast VMs (which, given the blinding MS Java
VM, is not unfounded) and the Win2K kernel family as a host OS that they're
prepared to take the challenge repeatedly thrown at them: to level the
playing field somewhat. Plus, it makes Win32 coding a hell of a lot easier by abandoning the hell that is the existing Win32 API and MFC for something much cleaner,
and you don't have to abandon whichever language you're coding in already,
since the Common Language Runtime will run all of them, eventually.
Basically, they're going to try and do a Java-like thing better than Java.
And I wouldn't be surprised if they tried to swallow Java whole in the
process (e.g. making the CLR run Java bytecode, or a Java language -> CLR
compiler)
Oh yeah, and there's all the XML stuff and
low-level-services-provided-over-the-net thing, which is quite interesting.
And Microsoft being the ultimate repository of all your personal data, which
is obviously petrifying.
Since then, I've realised a couple of other things:
1) It's a great way for MS to move off Intel-centricity, which isn't so important on the desktop (though it'd help with porting stuff to the Mac) but is one of the main things killing WinCE development, since every time you write an app you have to compile it for every processor that WinCE runs on. And since MS is moving more and more into the embedded market, this is obviously vital.
2) Looks like I was right on the Java-swallowing:
http://www.theregister.co.uk/content/4/16392.html [theregister.co.uk]
C# is like Java; .NET is XML based services (Score:5)
Where Microsoft may beat Java (Score:5)
If .NET handles the 30 odd languages they claim to support, with easy extendability for more.
If they make .NET a standard, allow others to freely innovate on it (with none of the licensing restrictions Sun likes to impose to keep companies like IBM in line).
If they can make sure .NET really is vendor neutral, so shipping the .NET foundation is not like shipping the JVM which is little more than a commercial Sun product.
Then HECK YEAH, I'll take an open, free, extendible, cross-platform platform any day, especially if it ships with millions of Windows machines, has solid development tools, and is available on the platforms I like to use such as the Debian standard install (not a non-free directory).
I think from a technical perspective the .NET platform fulfiles the promise of Java, and with things like SOAP Microsoft may indeed get the benefits of going truly open with their platform. That promise is still as exciting as when Sun made it so long ago. Finally, I can see no reason that .NET won't support Java, and C# offers a reasonable alternative from a techinical perspective.
Sun had an interesting soundbyte... (Score:5)
"In essense, while Microsoft advocates the ability to run diverse code on their platform, Sun advocates writing standard code for all platforms."
The question seems to be how important is that whole "diverse code" thing? I mean, do I want a team of a dozen Java programmers? Or do I want 2 Prolog guys, 4 C++ guys, an APL geek... How do I crosstrain them? When people say "the best language for the task at hand" do they consider the factor of having people crosstrained in that language? Great. You know Smalltalk inside and out. You can make it run 100x faster than C++. So I implement my UI in Smalltalk. Now you go on vacation, and it crashes. I'm screwed. I can't train every programmer in every language.
There Can't Be Much Difference... (Score:5)
Grabel's Law
Clue In (Score:5)
If Microsoft can deliver on a *cross-platform* solution.
If .NET handles the 30 odd languages they claim to support, with easy extendability for more.
See Microsoft's use of future tense [microsoft.com] and this list of JVM languages [tu-berlin.de].
If they make .NET a standard, ...
What motivation does MS have to lose control of their market? I don't have links readily available, but all I have heard is of MS planning to take the C# specification to ISO, which has nothing to do with standardizing their whole platform. Even if they did, any takers on rewriting Win32? Ask the WINE [winehq.org] people how easy it is.
If they can make sure .NET really is vendor neutral, so shipping the .NET foundation is not like shipping the JVM which is little more than a commercial Sun product.
And .NET won't be a commercial MS product. I have not seen MS even try to claim that anything they produce for .NET won't be owned by them. Read carefully.
Then HECK YEAH, I'll take an open, free, extendible, cross-platform platform any day, especially if it ships with millions of Windows machines...
Aha. Windows machines. That's right. .NET is supported on Windows machines. It should make doing Windows network development nicer, with a compact version in various devices acting like embedded Java. MS supports Windows. They make Windows. What motive do they have for changing that? When did they say they were changing that?
I think from a technical perspective the .NET platform...
Try reading the technical documents. Here's one on SOAP. [w3.org] Read it. It's not that exciting. It specifies that you can use normal XML Schemas with a few extra rules and an envelope that mimics HTTP functionality.
You can do little new with SOAP and .NET from a non-Windows computer that you couldn't do with normal HTTP and CGI. SOAP provides almost nothing on top of standard XML. There's nothing new under the sun.
If you want open and exciting, try Linux or FreeBSD. If you want cross-platform software, try something open like C, Perl, Python, PHP, Ruby, or anything else on the list. They also interoperate just fine. Unix had cross-language interoperation working in the 70s. It's called pipes, and it's at least faster than SOAP.
- Tom
As a beta tester.... (Score:5)
They are doing a number of things that will make
1. Any Language. The
2. Native execution. There are two options for compilation. The first, JIT, would be used on servers and such where users upload scripts and similar items. On first run, they are compiled into NATIVE x86 code (assuming you are on an x86 processor). The other option is mostly for desktop apps: when the app is first installed, the built-in MSIL compiler reads the MSIL on the CD and writes native x86 code that is fully optimized for the processor on which you are installing... so years down the road when the Pentium-6 is out, and you install that program, it will be fully optimized for the Pentium-6.
3. Cross-platform. Let's just say that more than Win32, MacOS, and WinCE are on the roadmap for the Common Language Runtime. More will be revealed with this in time.
4. Security. Native x86 code is unverifiable.... you cannot guarantee that the code won't do something stupid and overwrite its own memory or deref an invalid pointer. But the MSIL is verifiable.... the system can cast all the calls it makes against its security context. This allows apps downloaded off the web to be executed, knowing that even though they are compiled down to native code from MSIL, they aren't going to do anything funky behind your back. It also gives admins in a corporation complete control. There is a lot to the security subsystem, so I suggest you read up on it for yourself.
5. ASP Enhancements: First of all, IIS/ASP.NET will monitor all the processes and components... if there is a memory or resource leak detected (or a timer expires), it will spawn a new process and start funneling all new sessions to that process... when the last session to the old process closes, it will be terminated and the resources reclaimed.
6. More on ASP: Secondly, when you write an ASP app from Visual Studio, you design the forms and such in a RAD environment using an event-driven model (think VB). However, the server automatically cast the forms down to the highest HTML that the browser supports.... visit the page with IE 6 and you won't be able to tell the difference between it and a regular app. Visit it with Netscape 3, and you'll see a regular static page. The difference here is that the programmer doesn't have to worry about it.
7. Distribution. With desktop apps, an x-copy will actually suffice as the install routine. All apps install their custom components into their own dirs. The system repository tracks all versions of all DLLS installed, and automatically produces the proper version for the proper app at launch time. No more DLL hell.
These are just some of the improvements. As far as stability goes, the pre-alpha version of
For those who automatically blast it just because it is from Microsoft, get ready to be steamrolled just like everyone else was when MS took over the world with Win3.1/95. For the rest of you, read up on the MS documents. There is a lot of good stuff in there.
-
The IHA Forums [ihateapple.com]
Java is not slow (Score:5)
Java isn't slow at all. In fact, in terms of raw execution speed, it's probably one of the fastest object-oriented languages next to C++.
What is slow about Java is its startup. And that's because you are loading a fresh JVM everytime you start up a Java application. If you did the equivalent with C/C++, you'd have to load many megabytes of libraries before you could start any C/C++ program, something that would make things like starting up any GUI app crawl to a halt. If you use Java the way those kinds of environments are supposed to be used, start up a JVM and do all your work inside that, it is very fast. Compilations fly, windows pop up instantaneously, etc.
But since people aren't going to change their work practices overnight, Sun is working on addressing the startup speed by introducing something equivalent to precompiled, shared libraries for C++. That way, you should be able to start up JVMs very quickly.
Incidentally, if your only experience with Java is through Netscape applets in Netscape 4, the JVM that comes with Netscape 4 is outdated and very slow. Furthermore, it takes forever to start up even compared to the unenhanced modern JVMs. Under Galeon or other browsers, applets start up quite quickly already.
Java's language design is very conservative, and it's a lot easier to compile into efficient code than, say, Perl or Python (when Perl or Python beat Java in benchmarks, it's because of highly optimized library code in those languages, not because the languages themselves are compiled well). In fact, because Java's language design is so conservative, it is actually not all that much easier to write Java programs than, say, C++; Python, Perl, and Smalltalk are certainly a lot more convenient. Java's advantage over C++ isn't convenience, it's safety, simplicity, and runtime support.
What is really big and complex in Java is its GUI and "enterprise" libraries, and other languages should be so lucky. Swing is still by far the best designed object-oriented GUI toolkit I have ever used (and I have used quite a few). Java's database libraries are great, and so are its support for persistence and distributed computing.
Re:As a beta tester.... (Score:5)