Slashdot Mirror


Does .NET Sound Like Java?

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."

36 of 469 comments (clear)

  1. A resounding "Duh!".. by Enry · · Score: 3

    was heard from the crowd.

    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 .NET, which noone really knows much about (still) but everyone agrees that it's patterned after Java

    4) MS settles with Sun

    5) MS releases toolkit to move Java coders from Java to .NET.

    I'm not a coder, and it's pretty obvious to me that .NET is MS's response to Java. All .NET is is the framework of Java, but being MS specific.

    1. Re:A resounding "Duh!".. by bmajik · · Score: 3

      How did this get +4 insightful ?

      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 .NET service is irrelevant.

      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 .NET

      --
      My opinions are my own, and do not necessarily represent those of my employer.
  2. Re:As a beta tester.... by yoz · · Score: 3

    In other words, there's nothing here that can't be done with... a computer! Wahey, thank you for pointing that out to us! So, you're saying that all that Microsoft have done is put it all together in one well-designed package and give it massive distribution? Well, good. Because that's what I want.

  3. Re:let's look at the facts by cpt+kangarooski · · Score: 3

    Heh. MS is not as concerned about their OS monopoly as you might think. While they'd be upset to lose it, they have bigger fish to fry. You're generally correct in your assessment though.

    Here's my theory: .net may have indeed started as a project intended to kill off Java. But that has not been the point of the thing for quite a while now.

    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 .net right there.

    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 :) It took both the cold externally induced winter of the long-running Justice Department investegation against them and the cunning little MS mammals to bring them down.

    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 .net strategy hits them.

    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.

    --
    -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
  4. a lot of similarities by The+Mayor · · Score: 3

    .NET consists of a lot of technologies. It is not directly analogous to Java. However, Java consists of a lot of technologies, too.

    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 .NET ~= JSP (and servlets)
    ---------------
    ASP .NET (or whatever they've renamed ASP+) compiles code upon the first viewing. This speeds up ASP code tremendously, giving it equal or better performance than the best servlet containers.

    COM ~= JavaBeans
    I'm not familiar enough with .NET to know of they're modifying COM & remonickering it (sorry). But, basically, COM (or whatever it will be called in .NET) allows each language to call other languages with native speed. It doesn't support Java, although I'm sure some third party will add support. However, Java *requires* any parameters passed between Java & other code to be copied into or out of the JVM (the JVM can move data around without notice--think HotSpot dynamic optimizations). This means there will always be a performance impact when calling between Java and native code (using either .NET or JNI). JNI is Java's answer to calling native code (or having native code call Java).

    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, .NET is very analogous to Java (or, at least, Java & its related technologies). Microsoft is not stupid. They realize Java is becoming a platform for networked & distributed apps, as well as for server-side code. They also see that client-side Java is getting much better, and they suspect (rightfully, I might add) that jdk1.4 will finally get client-side Java "right".

    In other words, .NET is a platform. And Java, when combined with the J2EE technologies, is a platform, as well.

    --
    --Be human.
  5. Java is multilanguage... by lonely · · Score: 3

    Quick Errata.

    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.ht ml

    That said though not many people do this.

  6. .NET has some solid ideas by km790816 · · Score: 3

    Microsoft was pretty much painted in a corner by Sun. Microsoft doesn't want to invest its time in a platform defined by a commpetitor any more than Sun wants to be directed by MS technology.

    If you want to think of C# and .NET as MS-Java. That's fine. Write some code in it (those that are using Windows). I've written the same programs in Java and C# and I can say with just a few hundred lines of C# under my belt, that C# is definately an upgrade.

    Read the Comparitive overview of C# for a fairly objective comparison between C# and Java/C++.

    You might be able to say fairly that .NET provides all of the benefits of Java for the Windows platform. Along with multipule language support.

    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 without the Java comparison. So it might be a shameless copy: good artists copy; great artists steal. I think .NET can stand on its own feet.

  7. .net article at www.perl.com by Teratogen · · Score: 3

    www.perl.com has a nice summary of .net at

    http://www.perl.com/pub/2000/12/net.html

    --
    --- even the safest course is fraught with peril
  8. Blech by technomancerX · · Score: 3
    .NET has some interesting ideas... The general mechanisms are similar to Java on some levels in that everything is compiled down to byte code (whatever Microsoft chooses to call it). The main difference in the angle they take on this is that they are specifically targeting a language-neutral runtime, so you'll have perl.NET and python.NET and VB.NET etc etc whereas (as far as Sun is concerned) the JVM is targeted at Java.

    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

    --
    .technomancer
    1. Re:Blech by dingbat_hp · · 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 !

  9. Re:Sun had an interesting soundbyte... by MikeTheYak · · Score: 3

    The reason there are many languages is that different languages have different strengths. Suppose you have a team of a dozen Java programmers, and you suddenly need to do some hard-core number crunching? Or maybe your platform just doesn't have a very robust JVM? Or what if you find some open source code that does almost (but not quite) exactly what you want, but it's written in Objective C? This isn't intended as an anti-Java rant, just as a reminder that different jobs need different tools. Your group doesn't need to know every language, but that doesn't mean that you should always embrace a single language regardless of how unsuitable it may be.

  10. Could this be MS's downfall? by Ogerman · · Score: 3

    I was just thinking about the whole .NET strategy that MS is adopting and I realized that this could potentially be their downfall. It seems to me they are looking at .NET as an all or nothing attempt to derail the Open Source movement by: 1.) Popularlizing a subscription model of payment for software -- both theirs and 3rd party. This is the ultimate dream of proprietary software companies.. 2.) Requiring their OS'es as a runtime environment for the .NET "solutions" coupled with anti-piracy protections and online-only functionality (this could effectively make it impossible to run Windows applications on an emulator) 3.) Getting developers to learn proprietary languages that are only useful for writing .NET software.

    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. .NET gives thes the impression of a loss of control. And consider also that the public at large is starting to get a taste for information freedom due to free MP3 music and the expansion of the Internet in general. .NET seems to run exactly contrary to this movement. 2.) Developers have already expressed concern over the changes MS is making to their Visual development suites. They may be reluctant to change. 3.) The .NET infrastructure seems to have many potential points of failure--everything to a customer's internet connection to bugs in the OS to problems on the ASP's end. 4.) Users and businesses are already fed up with how much they pay for software and how little control they have over their computers. For those thinking about Linux, this may push them over the edge. 5.) If MS can implement an effective method of piracy-protection in the form of required net access to activate the software, etc, then those who pirate software (and this includes many businesses, surprisingly) will have no choice but to pay up or switch to Linux. This is especially the case outside the US where a very large percentage of software is pirated.

    So it makes me wonder.. is .NET a marketing experiment or is it a total paradigm shift in MS's strategy. Judging by the extent of effort they have put forth, I think it is the latter. If so, this is the perfect time for Open Source to come in and save the day. And I might add that it is a fairly narrow window of opportunity. If .NET gets well entrenched, it will be nearly impossible to offer people Open Source alternatives because they will be entirely incompatible. And there is one significant way that Open Source can fail that we must prevent: we do not have a quality browser and office suite for people to fall back on should they choose to reject .NET. I know that these are not popular projects, but this is a major turning point in the history of software. It's now or never. We need as many programmers as possible to devote their time to developing quality alternatives. I propose essentially a one-time push in these two areas. Once a solid base is created, we can go back to designing stuff we really care about.



    This comment represents solely the opinion of the poster. It does not represent that of any past, present, or future employer.

  11. .NET vs Java by yamla · · Score: 3
    The major differences:

    • Java is multiplatform (.NET will not be unless Microsoft is split up, then it may be ported to Linux)
    • .NET is multilanguage. That is to say, you can write .NET apps in a mixture of VB, C#, C++, etc. whereas Java is just one language.
    • Java is relatively stable now that most of the bugs have been worked out
    • Java is controlled by Sun and is essentially not an open-standard
    • .NET is controlled by Microsoft and is even less likely to be an open-standard
    --

    Oceania has always been at war with Eastasia.
  12. Re:.NET / Java by yamla · · Score: 3

    .NET isn't likely to be any better than Java for people with older computers and/or dial-up access only. In fact, Java apps are often very small, just the JVM is huge. So dial-up users are likely to be worse off in a .NET world.

    --

    Oceania has always been at war with Eastasia.
  13. What Microsoft is Doing Right by commandant · · Score: 3

    Well, let's think about that one.

    • They are hyping the hell out of it.
    • They have a 90% market share in the desktop market, so they can coerce users into the transition.
    • Without themselves as a competitor, there is nobody to Embrace and Extend .NET to death.
    • They aren't releasing it for all platforms, so Sun can't come up with a competing product.
    • They can buy up anyone with big enough balls to try to compete.
    • For the most part, their followers tend to think that whatever Microsoft says is a great idea, so they can release dumb shit like .NET and get enough people to buy into it as the Second Coming.
    • Hrm, well, they're fucking MICROSOFT, for Christ's sake. They've got more money than God, and when they want something to happen, it does.

    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.

  14. Re:As a beta tester.... by rabtech · · Score: 3

    The security systems in .NET are a lot more than just a sandbox.... you really should read up on how it all works. The thing is, there is no sense in just having all or nothing, ala Java's method. Plus, with .NET, unsafe programs can call safe libraries, 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.... for example, if the .NET Active X applet wants to write to disk, and calls a "safe" object to write to C:\WINNT, it will fail, even though the library it called has the authority to do so.

    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 .NET as it always has been for Windows vs theWorld: With Microsoft, you get one cohesive package that flows well and works together giving you everything you need with awesome developer tools. With other solutions, you've got to piece together 20 different packages by 10 different vendors and hope it all works together, not to mention that in general, the development tools suck, or don't work together well. 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.
    -
    The IHA Forums

    --
    Natural != (nontoxic || beneficial)
  15. primary difference: Java is more mature by q000921 · · Score: 3
    Going through the C# language documentation, it really looks like Java with some of the top items of Sun developer's Java wishlist (signup required) added: call-by-value for classes, syntax for looping over sequences, and a few others. Typical MS style: clone the competitors product and add the most visible gimmicks.

    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, including C; there are also semi-automatic translators for C++.

    .NET is about not just C# and the runtime, but also about XML. Of course, that's a big thing with Java as well, with several excellent XML projects in Java, perhaps most notably the Apache efforts.

    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, Intel's Intel's Open Runtime, GNU GCJ (now part of GCC), and GNU Classpath. 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 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.

  16. Amazing! You're wrong about EVERYTHING! by yoz · · Score: 4

    Amazing! You're wrong on practically every point!

    Java software is run client-side, while .NET software is (will be) run server-side.

    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, .NET can be kept so that it is not open sourced.

    I don't know where the hell you got this idea from. Both Java and .NET compile down to bytecodes. Sure, you can decompile Java, but there's nothing to say you can't do that with .NET too. And the .NET spec is more open than Java's.

    Further more, Java is an interpreted language and can run on any platform. .NET is comiled and must be run on platforms that it is compiled for.

    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?

  17. X box by gattaca · · Score: 4

    OK, something that that has been at the back of my mind for a few months now.

    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?

  18. Well, I've used both and... by IPFreely · · Score: 4

    I've used Java on and off for a few years. And I've played with the Visual Studio .NET beta recently.
    The structure of the .NET is very much centered around a Java like architecture. MS has added some useful features, and altered VB and VC a lot to bring them into line with the new runtime environment. It also required W2K (big surprise).
    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 .NET runtime environment along with VB and C#.
    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 .NET world (most VB apps I've seen could care less about the internet/web/online world). All this does is abuse their installed base of VB products and generate more rewrite/headaches for existing apps.
    Yes, .NET is definitely modeled heavily after Java. I think it was a mistake to go so heavily in that direction. Net based applications are still heavily outnumbered by local and client/server applications in most businesses and that isn't going to change soon. They are abusing/abandoning their enterprise customer base to chase the internet application development market. Bad Move. Java is a good design for somethings, but not for everything.
    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".

    --
    There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
  19. All your answers by Hard_Code · · Score: 4
    --

    It's 10 PM. Do you know if you're un-American?
  20. Isn't this obvious? by babbage · · Score: 4
    I really can't see how .NET can be seen any other way, especially considering things like the recent settlement with Sun and, of course, the antitrust case.

    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.



  21. .NET - actually some substance by fegu · · Score: 4

    I've been trying out .NET in two projects for the last couple of months (using beta1).

    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.

    --
    "There is no substitute for thinking" - Bjarne Stroustrup
  22. Obviously, no. by gimbo · · Score: 4

    Does ".net" sound like "java"?

    Obviously not. Try saying them both out loud in quick succession and you should be able to hear the difference.

    Next question...?
    --

  23. Re:Java vs. .NET 2 by malachid69 · · Score: 4

    Ok, I will take your bait. I went to DICE.COM and did searches for Oregon (where I am) unrestricted hire-type. I searched for the words "java", "J++", "C#", "windows", and "unix".... Wonder what I found?

    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.

    --
    http://www.google.com/profiles/malachid
  24. .NET is like Java by ebelisle · · 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#.

  25. .NET WILL CHANGE YOUR LIFE by Anonymous Coward · · Score: 5

    It will make your wife look better (and thinner), the flowers smell more fragrant, your black and white tv will become color and HD TV cable ready.

    Don't really understand Java? The ATL Dispinterface got you down? Don't worry, because .NET brings easy 1-2-3 COM programming to you in the form of the all powerful and easy (as in your first girlfriend) VB Script.

    10 print "I rule d00d"
    20 goto 10

  26. a mail I sent a couple of weeks ago by yoz · · Score: 5

    I wrote this a couple of weeks ago about the .NET CLR (Common Language Runtime), which is the virtual machine thing:

    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

  27. C# is like Java; .NET is XML based services by andrew+cooke · · Score: 5

    IMHO (after going to a MS /NET Developers conference) C# is like Java. .NET (which is not C#) is a general vision of XML based services on the Internet - including support in a wide variety of DB and server products for XML and related protocols (Soap et al).

    --
    http://www.acooke.org
  28. Where Microsoft may beat Java by augustz · · 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.

    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.

  29. Sun had an interesting soundbyte... by dmorin · · Score: 5
    Seen on SolarisCentral:
    "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.

  30. There Can't Be Much Difference... by Carnage4Life · · Score: 5
  31. Clue In by tjpalmer · · Score: 5
    First, let me say that I'm not much a fan of Java these days, even though I used to follow it closely.

    If Microsoft can deliver on a *cross-platform* solution.

    .NET relies on standard Windows APIs. Only a "compact" version is designed to be portable.

    If .NET handles the 30 odd languages they claim to support, with easy extendability for more.

    See Microsoft's use of future tense and this list of JVM languages.

    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 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. 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

    --

    - Tom
    "O, to grace how great a debtor daily I'm constrained to be."

  32. As a beta tester.... by rabtech · · Score: 5

    As a beta tester, I think I have a bit of authority on the subject :)

    They are doing a number of things that will make .NET more successful than JAVA, such as:

    1. Any Language. The .NET platform doesn't limit you in language choice... you can use C#, VB, Perl, or any one of the other 15 or so supported languages. Plus, the architecture is extensible, so support for additional languages can be plugged into Visual Studio with ease. I know the Java bytecode isn't tied to Java the language, but realistically, that's the way Sun as limited it.

    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 .NET ran as an ASP service on a test website for 52 days before the auto-detection kicked in and spawned a new process. Since that time it ran up until beta 1, at which time it was shut down to update it. One such test website is Ibuyspy.com

    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

    --
    Natural != (nontoxic || beneficial)
    1. Re:As a beta tester.... by erayzer · · Score: 5

      To address your points one-by-one: 1. Any Language. Fair point, a valid advantage for .NET. 2. Native execution. Native compilation exists for every platform that I've seen Java on. The on-the-fly compilation is indeed a nice feature, though. 3. Cross-platform. IIRC, Java runs on Win32, AIX, BSD, Solaris, MacOS, Linux, BeOS, OS/400, HP/UX, etc. Now. Not in the future. 4. Security. The Java sandbox and Java security policy files already provide this. Now. 5. ASP Enhancements. One could just as easily argue that a lack of support for non-ASP application servers hobbles .NET. 6. More on ASP. Yawn. 7. Distribution. Zero-impact installers come with every J2EE application server I can think of. DLL hell exists because Microsoft and it's application developers created it to begin with. Java doesn't have this issue. This isn't an automatic blast at MS, in fact my respect for them increased with the release of Win2K -- which is fast and stable, at least on my home machines. However, .NET is Microsoft's revenge fantasy having been denied the right to "embrace, extend and exterminate" Java. The vast majority of Enterprise-class web-enabled systems are now being built to J2EE. I work in that field. Java, while not fully open, is much more open that .NET or the ridiculous C#.

  33. Java is not slow by q000921 · · Score: 5
    1) The fact that it is *slooooow*..

    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.

    (which is sort of to be expected, it attempting to be all things to all people, not an easy task)

    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.