Slashdot Mirror


One Runtime To Bind Them All

Sowbug writes "Here's some interesting Saturday night reading: a critical examination of many of the advertised benefits of .NET's CLR (Common Language Runtime) and the other technologies (MSIL, CLS, CTS) that make it possible. It's written from the perspective of a Java advocate, Osvaldo Pinali Doederlein. "

400 comments

  1. Unbiased Articles? by Scrag · · Score: 4, Insightful

    I have seen several articles on .net in the last week. All of them have been from Java advocates or MS haters. Could we please get some unbiased articles on .net? It is going to be a very important technology in the future, whether you like it or not. It doesn't help anyone to only look at one side of the picture.

    1. Re:Unbiased Articles? by The+Asmodeus · · Score: 1

      I'm afraid you're not going to find too many people in the know who don't believe strongly one way or another.

      There was the article the other day about Mono that was pro-.NET. btw.

    2. Re:Unbiased Articles? by joto · · Score: 5, Interesting
      I believe this article is actually quite unbiased, considering the source it came from. It admits that CLR is probably better than JVM for implementing other languages than C# or Java, but that it's far from the holy grail MS makes it sound like.

      Then it goes on to say that surely the JVM can be extended if this proves to be a selling point for .NET (which is probably true, but it kind of makes you wonder why sun haven't already done it).

    3. Re:Unbiased Articles? by harlows_monkeys · · Score: 3, Interesting

      Try this article by Bertrand Meyer.

    4. Re:Unbiased Articles? by Floydian123 · · Score: 0

      I agree that some of them were Java advocates somewhat and MS haters somewhat, but I think they were mostly focusing on the smaller picture of certain .Net procedures being bad. .Net haters is more like it.

      Also, I remember an article about how Java is too slow, and people agreed, so that's not exactly Java advocating.

      --
      paul
    5. Re:Unbiased Articles? by RedWizzard · · Score: 4, Insightful
      Then it goes on to say that surely the JVM can be extended if this proves to be a selling point for .NET (which is probably true, but it kind of makes you wonder why sun haven't already done it).
      Probably because language neutrality is not really that big an advantage anyway. Java is a good enough language so that if you really need to use something else chances are you don't want the JVM anyway. The most common case where you might want to target something else at the JVM is scripting languages which appear to already be quite well supported.
    6. Re:Unbiased Articles? by coltrane99 · · Score: 2, Interesting

      Seeing that C# is a 90% copy of java, it would be difficult to think of a more qualified base of people to review C# than java experts... This charge of 'bias' sure gets thrown around loosely these days. I seem to recall that an article had to contain untrue or highly misleading statements before it would be called 'biased'. Now, if you have a pre-existing point of view you are 'biased'. Very strange, how the language changes.

    7. Re:Unbiased Articles? by sheldon · · Score: 5, Insightful

      Language neutrality is actually quite a substantial advantage. Perhaps not to you, or Java developers...

      But to the horde of developers that will be migrating from Visual Studio 6.0 to Visual Studio.NET. I've met quite a few VB developers who are unwilling to give up their syntax yet would love to take advantage of .Net.

      It is a very valuable marketing point, and it allows for a very easy transition/upgrade for many developers out there already targetting Windows.

    8. Re:Unbiased Articles? by sheldon · · Score: 2

      I think what he means is that so far the "java experts" who have had their articles posted here have a particular anti-Microsoft bias.

      Quoting Bill Joy or James Gosling isn't going to give you an unbiased view of .Net. I would think that's blatantly obvious to any intelligent person.

    9. Re:Unbiased Articles? by anpe · · Score: 2

      It is a very valuable marketing point

      That's the point. The most important is how your PR dept will present your product : Jim McCarthy (responsible for early MS VC++'s releases) in Dynamics of Software Developement explains how it doesn't really matter what are your product's capabilities. The more important is to make people confident about it.

      The matter in C# vs Java is who offers the easiest language. Users will pick the one they understand ...

    10. Re:Unbiased Articles? by Monkeyman334 · · Score: 1

      Maybe it's not totally bias, but somehow these slipped in there:

      ... or if the new layers of frameworks will have big tradeoffs in performance and other concerns, and I doubt iNet will support unmanaged code ...

      ... I believe the same fifty people will keep hacking in languages like SML ...

      ... I see many people using tools like Jython or Jruby with the JVM ...

      Who is Osvaldo Pinali Doederlein, and why do I care what he thinks?

    11. Re:Unbiased Articles? by coltrane99 · · Score: 1

      Uh, today's article was by Osvaldo Doederlein. It raised a number of minor, interesting points about the differences between the advertised and delivered C# CLR. Did you even read it? Or did you just notice it was on javalobby.org, start screaming 'bias' and stick your fingers in your ears? You can generally find out the strongest arguments against a view from its strongest opponents. Their statements are only 'biased' if they are untrue, at least to my understanding of the meaning of the word.

    12. Re:Unbiased Articles? by sheldon · · Score: 2

      Oh, I read the article.

      The article itself is really quite unimportant. The language neutral ability of the CLR is a marketing point as it's a convenient selling point to Visual BASIC developers looking to upgrade. Nobody disputes that, but it is still a very nice feature to have. I challenge anybody to find a company which has code written in only one language.

      The conclusion the article makes is what most critically damns it as biased. His points are purely political in nature, he admits it. He goes on to try to distance himself from the bias by claiming he is not condemning .Net framework and it's technical capabilities.

      But then he goes on to make an anti-Microsoft statement, condemning this feature as nothing more than marketing, but yet instead implying that Sun is somehow different with their Java hype.

      There are a lot of articles out there about .Net which are positive in nature. Those articles don't make it to slashdot because of the biased nature of the web site. That was the point the original poster was making. Hell, /. didn't even post an announcement when the .Net framework SDK became available for download.

      The first step is to admit when you have a problem. From there you can solve it.

    13. Re:Unbiased Articles? by decathexis · · Score: 1


      People who can't learn a new syntax, probably shouldn't be coding anyway...

    14. Re:Unbiased Articles? by Xavier+Shirin · · Score: 1

      I challenge anybody to find a company which has code written in only one language.

      I bet that almost every company has source in more than one language, but most don't expect that code to be able to talk to each other.

      Those articles don't make it to slashdot because of the biased nature of the web site.

      How do you get news that is not biased? Name one place (besides first hand) to get unbiased news.

      --
      We do not cater to idiots.
    15. Re:Unbiased Articles? by flacco · · Score: 2
      Try this article [eiffel.com] by Bertrand Meyer.

      Unbiased? Maybe he's just coming in his pants over the prospect that someone might actually use his language?

      --
      pr0n - keeping monitor glass spotless since 1981.
    16. Re:Unbiased Articles? by ryanvm · · Score: 2

      I've met quite a few VB developers who are unwilling to give up their syntax yet would love to take advantage of .Net.

      Wow. This is going to sound pretentious - but I can't imagine there are that many VB developers that can actually comprehend the advantages of the .NET framework. Perhaps they are just keen on Microsoft's .NET services?

      I mean, VB is a pretty basic development environment.

    17. Re:Unbiased Articles? by rlowe69 · · Score: 2

      I've met quite a few VB developers who are unwilling to give up their syntax yet would love to take advantage of .Net.

      It should be known that VB syntax in .NET is actually a bit different than VB6, to accomodate support for assemblies, classes, OOP, etc and other things (sorry I'm short on details, but I'm no VB expert). So your friends may have to give up a bit of their syntax after all.

      --
      ----- rL
    18. Re:Unbiased Articles? by Lemmy+Caution · · Score: 2
      Are you willing to work at the bargain-basement prices that a part-time VB coder who actually has another role in the department s/he works in, so that the small little VB app that serves a group of, say, 20 people can get done in budget?

      I didn't think so.

    19. Re:Unbiased Articles? by Phil-14 · · Score: 1
      Quoting Bill Joy or James Gosling
      isn't going to give you an unbiased view of
      .net


      What if .NET doesn't really deserve to
      rule the universe, in spite of the fact that it's
      created by Microsoft, which could literally make
      z80 assembly opcodes the standard programming
      language of the future if they wanted to?


      Whatever happened to the concept that companies
      are supposed to serve the customer, not the customer serve the company by promoting their latest kludge?

      --
      (currently testing something about signatures here)
    20. Re:Unbiased Articles? by Not+The+Real+Me · · Score: 1

      I'm a Java (mostly JSP/servlets) developer for Linux. I'm also a VB developer (apps and IIS) for M$ platforms as well. I get highly annoyed at the M$ "... your application has performed an illegal operation and will be shut down..." system messages. When these are M$ bugs and not mine. That being said, the article amazed me with the most obscure languages I've never heard of. Other that the 1/2 of 1 percent of developers out there, does anyone (outside of the academic community) actually use Smalltalk or Lisp for commercial projects that turn a profit?

    21. Re:Unbiased Articles? by Dyolf+Knip · · Score: 2
      I agree that the number of people using languages that aren't well supported by .NET would be small, but even one half of one percent of all programmers is still a lot of programmers, and there are certainly things in those languages that cannot easily be done by C# or its 'skins', as the article called them.

      It's one thing to make a common runtime that doesn't support them and quite another to do so and then claim that it is "totally language-neutral" when there are languages that cannot be supported at all. M$'s marketing department at work again.

      --
      Dyolf Knip
    22. Re:Unbiased Articles? by Anonymous Coward · · Score: 0

      Smalltalk was actually IBM's annointed solution for a while in the late 80s, so there's still a little commercial work going on there.

    23. Re:Unbiased Articles? by sheldon · · Score: 2

      Sigh.

      To clarify, most of the developers I work with are doing COM middle tier work. Your experience with VB apparently is limited to version 3.0 under Win3.1. :(

    24. Re:Unbiased Articles? by sheldon · · Score: 2

      VB.Net does remove some of the cruft that was left over from interpreted BASIC, and makes some of the syntax more consistent and orthogonal. VB.Net now offers more OOP functionality, as well as the ability to do multi-threaded apps, services, console apps and so on.

      But primitives such as For...Next and so on all operate the same way, which is sort of the point.

    25. Re:Unbiased Articles? by sheldon · · Score: 2

      "I bet that almost every company has source in more than one language, but most don't expect that code to be able to talk to each other. "

      Yes, because it's never worked well in the past. That doesn't mean that it shouldn't work well.

      "How do you get news that is not biased? Name one place (besides first hand) to get unbiased news."

      There are a variety of websites which simply link to interesting articles. Slashdot is very selective in which stories they link to... they have to keep the troll content up somehow.

    26. Re:Unbiased Articles? by blibbleblobble · · Score: 2, Interesting

      This isn't about the difference between VB and VC and VJ++ - note what the writer said about "skinnable languages"

      It's about the difference between Perl and Basic, between AppleScript and Cobol. Between languages which are as different as Arabic is to English. Different not because of some words that are changed, but because the entire mindset of those who use them is different.

      <analogy style="yours">So you understand Java? Well, if you're not an idiot, you'll find it easy to learn Assembler</analogy>

      <analogy style="microsoft's">We are multi-lingual. We support american english, australian english, Queen's english, estuary-english, scottish-english, and CAN-YOU-SPEAK-ENG-ER-LISH english</analogy>

    27. Re:Unbiased Articles? by mestar · · Score: 1
      Wow. This is going to sound pretentious - but I can't imagine there are that many VB developers that can actually comprehend the advantages of the .NET framework.

      Your lack of imagination amazes.

      .NET is a new windows API, a new Win32 if you like. VB developers had a hard time accessing Win32 directly, they had to use wrappers, sometimes by MS, sometimes by a third party. Those wrappers usually came some months after a new functionality was released.

      So, VBers now have two major advantages with .NET: they can access this new API, much richer, much newer and better than Win32, and:

      THEY CAN ACCESS IT DIRECTLY. no wrappers, no time lag.

      if i was a VB developer, i would be very excited.

    28. Re:Unbiased Articles? by segfault_0 · · Score: 1

      Any article that doesnt simple drone out the features of C#/.NET, that shows any opinion positive or negative is biased by definition.If someone knows how to write an article for or against .NET that isn't biased please let me know.


      As articles go, this one appears to use real problems based in software design principles. No where did he say he hated Microsoft, actually he made at least three points to the contrary and only critized the technology as it was described by its creators.


      Overall a poor choice for this post.

      --

      I was crazy back when being crazy really meant something. (Charles Manson)
    29. Re:Unbiased Articles? by xtinct · · Score: 1
      I've met quite a few VB developers who are unwilling to give up their syntax yet would love to take advantage of .Net.

      ummm... maybe you're not aware that microsoft had to change the syntax of VB to make it '.NET compatible'

    30. Re:Unbiased Articles? by SerpentMage · · Score: 2


      Yeah that's it, extend the CLR to allow more languages like C++ and Eiffel. And those instructions would allow more flexibility. Oh wait I forgot that is called assembler and it is called a CPU!!!

      Seriously folks, when we abstract the CPU for the sake of selling technology things have become very sad...

      In that sense I prefer what Transmeta is doing.

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    31. Re:Unbiased Articles? by ryanvm · · Score: 2

      I wasn't trolling, but I knew I was gonna get flamed for my post.

      The point I was trying to make is that if you're sophisticated enough to be making Win32 API calls or able to realize the advantages of the .NET CLR, odds are you won't be using a language so limiting as Visual Basic.

      Doing "intelligent" coding with VB is like a machine shop that only uses Legos.

    32. Re:Unbiased Articles? by LatJoor · · Score: 2

      I seem to recall that an article had to contain untrue or highly misleading statements before it would be called 'biased'. Now, if you have a pre-existing point of view you are 'biased'. Very strange, how the language changes.

      Actually, 'biased' does mean having a pre-existing point of view. If you make highly misleading or untrue statement you are not biased, you are a liar.

    33. Re:Unbiased Articles? by Anonymous Coward · · Score: 0

      Then it goes on to say that surely the JVM can be extended if this proves to be a selling point for .NET

      Why do you assume that SUN would need to extend it? Any of Ada, ICON, NetREXX or PL/I would present significan difficulties for CIL, but three of the four are already available for JVM and two of them have been available for years. The article has a link to a long list of languages for which compilers exist to generate Java bytecode.


      As far as I can tell, it is SUN that has a proven track record of providing a language-independent environment, while Microsoft isn't there yet and may never be there.

    34. Re: Unbiased Articles? by aneil69 · · Score: 1

      There probably aren't too many unbiased ones out there. Here's an article from Microsoft research. Explains MSFT's position on why the CLR is better than the JVM for language integration.

    35. Re:Unbiased Articles? by aneil69 · · Score: 1

      The article contains some (wilfully?) misleading errors by conflating the CLR/CLI with the CLS. The CLS is a subset of the capabilities of the CLR/CLI. Osvaldo Doederlein talks about the CLR/CLI/CLS as though they are identical. This is an error, and leads to invalid conclusions - for example, the CLR is capable of supporting multiple inheritance. The CLS recommends that you shouldn't use multiple inheritance if you want your component to be useable in other languages. Why would a Java advocate present such a misleading view? This is what I'd call bias. There are a number of other omissions in this article, which I've posted elsewhere.

    36. Re:Unbiased Articles? by sheldon · · Score: 2

      How do you write a switch statement in VB? Now how about VB.Net?

      What about a For...Next loop?

      Maybe you aren't aware, but the syntax changes made to VB.Net aren't as substantial as you think. The main differences was the deprication of primitives that are no longer meaningful and haven't been for years. They also improved symmetry and orthogonality, and the syntax for procedure declarations has changed to reflect the new capabilities.

    37. Re:Unbiased Articles? by sheldon · · Score: 2

      VB would be most comparable to using CNC tools in a machine shop... not legos.

      For most development tasks done in house there is simply no need to waste your precious time screwing around with C++.

      It's clear you don't know much about VB... Which is unfortunately pretty typical. :(

      This is not to say that I intend on using VB.Net. I'm a C programmer myself, and find C# to be appealing. But the point is, it is there if someone does want to use it. If Microsoft abandoned the language syntax completely, they'd lose the majority of their development community.

    38. Re:Unbiased Articles? by Anonymous Coward · · Score: 0

      > Other that the 1/2 of 1 percent of developers out there, does anyone (outside of the academic community) actually use Smalltalk or Lisp for commercial projects that turn a profit?

      Smalltalk's been used quite a bit by in-house financial services houses for quick turnaround apps that model various financial instruments. This doesn't qualify as "turn a profit" since these things are used in-house, not sold as a product, but they *do* enhance the bottom line and are valued as such.

    39. Re:Unbiased Articles? by crucini · · Score: 2
      Actually, I think NTRM meant that the languages being proposed as victims of .NET bias are fairly marginal. C has got to be the single most important language, and the compromises, if any, involved in supporting it were not discussed. C is certainly more important than Eiffel.
      I agree that the number of people using languages that aren't well supported by .NET would be small...

      Lots of business apps are coded in Perl and Java. But I guess those are not "not well supported" - they're "not supported".

      I think the whole thing is a marketing tempest in a teapot. Perl already runs on more platforms than .NET ever will. The Parrot VM is already faster than Perl 5.6 and it will support modern, efficient languages like Perl and Python.
    40. Re:Unbiased Articles? by blackwater · · Score: 1

      The unwillingness of your VB friends to give up their syntax actually validates the article's claim.

      VB.Net syntax is substantially different to VB 6. Check out the VB.Net newsgroup for the ongoing debate or take a look here (http://www.mvps.org/vb/index2.html?rants/vfred.ht m) as a starting point.

    41. Re:Unbiased Articles? by craigeyb · · Score: 1

      I don't see the benefit(s) of language dependence in virtual machines. Why can't a VM have a simple instruction set (RISC-like) with a very basic API specification for I/O and other common services that are ultimately carried out by the OS?

      What's the need to link VMs with OO and all the other hot buzzwords? Any popular compiled language and its standard libraries can compile onto nearly any popular (real) platform, and any interpreted language has similarly had its interpreters compiled onto all popular (real) platforms. Why not create a VM with a simple instruction set and API interface such that all the same compilers and interpreters can easily run on it without flaw? What's the point of putting language features into the working of the underlying machine?

      --

      Social Contract? I don't remember signing any Social Contract!

    42. Re:Unbiased Articles? by RedWizzard · · Score: 2

      Two reasons I can immediately think of:
      Efficiency: obvious.
      Some language features require VM support which then imposes requirements on all users of the VM. I'm thinking about reflection etc in this case.

  2. So it binds them all... by Cruciform · · Score: 1, Redundant

    But how do you put it on your finger, does it hide your slashdot surfing from your department head? :)

  3. Topic beat to death already... by heavy · · Score: 3, Interesting

    ...under the this thread...

  4. Well, m$ has to do something. by autopr0n · · Score: 4, Interesting

    I'm personally a java fan myself, and I use JSPs for autopr0n.com. But as much as I would like to see that technology succeed, I don't really think there's anything 'wrong' with .net.

    Java itself is not any kind of 'true' general standard, sun can do whatever they want to with it. There's no real reason that Microsoft should bind itself to sun's implementation. So .net is pretty much just a ripoff of java, there are some 'evolutionary' enhancements like XML serialization and that sort of thing.

    This won't kill java anymore then java would have killed windows. Microsoft's CLR will provide a better way to write windows-only programs. I don't see why everyone needs to be up in arms about it.

    --
    autopr0n is like, down and stuff.
    1. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 3, Interesting

      Java doesn't provide a true cross-platform, high quality application development environment?

      Could have fooled me. I develop Java apps on a Linux machine that are deployed not only to other operating systems but to PDAs and other connection limited devices such as java capable cell phones. All with a true cross platform, high quality development environment that is very productive.

      Geez, some people's kids.

    2. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0
      It is very possible that .NET will suceed where Java failed - true cross platform, high-quality application development environment.

      It is very possible that people of the future will chuckle a little bit at the scolding old textbooks that used phrases like "discipline of portability". When you think about programs for HTML like demoronizer, actually the future is reasonably bright, even given the modus operandi of Microsoft with new technologies, "new technologies", and, well, "NT".

      class Standard : inherits AllPublicDomain {
      private:
      //Everything goes here.
      }

    3. Re:Well, m$ has to do something. by abigor · · Score: 3, Insightful

      "Java is a neat little concept - that has some neat little benefits. But it has caught on for large-scale applications."

      Uh, have you ever heard of the "little concept" called J2EE? It's the app server/services technology that powers a big chunk of the large-scale e-commerce backend. I work with this stuff every day, and it has a lot more than "neat little benefits". Have you ever heard of IBM's Websphere? How about BEA's Weblogic? J2EE is currently the ONLY credible enterprise-level app server standard around.

      Get your head out of your ass. Little Windows applications at your computer super-store aren't what this stuff is about. It's the server side where the big money, and the truly large-scale systems, are. And on the server, Java rules.

    4. Re:Well, m$ has to do something. by DavittJPotter · · Score: 1

      So I'm confused here... are you *against* .NET then, or are you applauding the fact that we'll get a "true cross platform, high-quality application development environment"?

      --
      "If there's hope, it lies in the proles..."
    5. Re:Well, m$ has to do something. by the+eric+conspiracy · · Score: 4, Insightful

      Java itself is not any kind of 'true' general standard, sun can do whatever they want to with it.

      While Sun can do anything it wants with Java, it is just as much a standard as .NET, complete with specifications and third party implementations.

      Now, what makes you think that Microsoft won't do exactly what it wants with .NET? I mean we already have interoperability problems between SOAP implementations. What is going to stop Microsoft from issuing .NET+ or .NET 2002 or whatever? Complete with extensions to the .NET standard (perhaps some even documented) that mean the code that is written for .NET on Windows doesn't run well or at all on .NET for other platforms?

      And of course all those fancy development tools (Visual .NET) will require and make full use of these extensions.

    6. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 1, Interesting

      The MONO project will bring the .net Virtual Machine to Linux and Mac OS X, but, what about all the .net APIs ? These are not in the ECMA standards. The VM is pretty useless to run business Applications without huge APIs.

      Will you end up needing to code a different version of your Sharp# application? One for NT/XP, and one for MONO because they have different proprietary APIs for GUI development or XML processing ?

      It seems to fulfill the cross-platform development promise even less than Sun's VM with its 'standardized' Java classes and APIs.

    7. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      Read the fucking standard before publically demonstrating your stupidity.

      There are some non-standard MS libraries, but you don't have to use them, or Mono could just clone them from their interfaces.

      This is far better than the situation with Java, where no part of the system is standard.

    8. Re:Well, m$ has to do something. by Malcontent · · Score: 2

      " It is very possible that .NET will suceed where Java failed - true cross platform, high-quality application development environment."

      Well there are two things wrong with this sentence.
      1) What makes you think Java failed in being a true cross platform high quality application development environment? What is your definition of fail in the first place? Are you saying there are no applications written in java that are cross platform? This is a nonsensical thing to say considering the millions of java devlopers in the world and the tens of thousands of businesses using it every day in massive scaled applications. You must have some really whacked definition of the word "fail".

      2) GNU will create mono. Mono will run C#. It will not be 100% compatible with the MS implementation. This is because MS holds patents on most of the .NET infrastructure. Also the some of the most important parts of the .NET are not submitted to any standards body and are not published. Mono will have to do without them.

      Mono will not bring cross platfrom capabilities to .NET.

      --

      War is necrophilia.

    9. Re:Well, m$ has to do something. by ndfa · · Score: 2

      Well not from BestBuy but across the street (in RedWood City) from it is Oracle which seems to have quiet a few tools and products in JAVA.

      --
      Non-Deterministic Finite Automata
    10. Re:Well, m$ has to do something. by nhavar · · Score: 2, Insightful

      Wait, say that again, "third party implementations", meaning what exactly? Modifications to the original "standard" or building off of the already existing base? I don't think that I've seen a GPL'd java or a red-hat java. While I've seen plenty of vm's and additional components I don't think I've seen any truly third party implementations. If what you said was true then Microsoft would have had right to continue to fudge their version of java into anything they wanted to.


      On to standards: Standards come in two forms A) Standard by popularity B) Standard by decree. While Java is a standard by popularity (similar to how IE is the standard browser), Sun refuses to give up any control whatsoever of the product in order for it to make a very important step into an actual documented and decreed standard. This would mean giving some measurable control up to a standards board such as ECMA, IETF, etc. What makes you think that Sun won't do exactly what it wants with Java?

      --
      "Do not be swept up in the momentum of mediocrity." - anon
    11. Re:Well, m$ has to do something. by TWR · · Score: 2
      For example: whne was the last time you went to Best Buy and bought any program that was Java based?

      When was the last time you went to Best Buy and bought any program that was written in Visual Basic? How about Perl? Python?

      Shrink-wrap software for consumers is a VERY small part of the software market. Most software is developed for corporate use, not consumers. Java is very viable for corporate development, especially for server-side code. Swing isn't nearly as successful, but it can do the job if you're a good Swng programmer.

      -jon

      --

      Remember Amalek.

    12. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      In your shop it might - but then again, powering the 711 with Java is big shit, let me tell you. We all bow at your greatness, o wise ass. J2EE is a niche player in the greater market. What platform do you run it on? Really - I thought people played with Java on more than Sun boxes. Guess you bought the line completely.

    13. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      Don't get upset. This is not like maths: it is not about pointing at paragraph 321 of the ECMA documents to demonstrate anything (by the way, why didn't they go to ANSI instead of ECMA? But that's a different topic).

      I also have to make clear that I am not *against* Net/Sharp in any way! In fact, it's the opposite: I am extremely glad to know that MS quietly abandons COM/VB/MFC/ActiveX and slowly replaces the whole bunch with modern APIs and VM. We exclusively use MS tools and libs here in my company, so I am -once again- very glad.

      So, you said there are some non-standard MS libraries in Net? Probably some useless libraries that will never be used when building high-quality GUI applications?
      Are you kidding? You believe MS teams code "additional" libraries without a business case for them? Are you sure you understand the strategy?
      When coding a high-quality business application using Vstudio7 under NT, one will just use whatever comes with that implementation. We will not start looking at the ECMA docs to see if we can afford to use such and such class for "portability reasons". We have neither time, nor interest, in browsing any ECMA publication regarding that (unlike you, it seems). And of course, we won't be waiting to know for sure whether M. De Icaza is authorized to clone a specific MS class without being sued.
      However, the opposite will certainly work: open-source developpers using Sharp under linux with a limited set of classes and API, will be able to make their nice stuff instantly run under NT/XP.
      Was that the objective? A one-way feeding for the NT platform from open-source projects?

      As for the Java libraries, I remember that all VM implementations came with a given set of classes and APIs ("1.1", "1.2", "1.3" and soon "1.4"). For each version you were guaranteed to find the set of classes and APIs associated to that level. I have yet to see a professional Java implementation that didn't have them correctly.
      Geez... Even the MS 1.1-level VM had that right.
      But I now have to wonder why MS (and others) cared about complying so much in the first place, since there was no standard of any form there, as you pointed out. Because if it wasn't an ECMA thing, it couldn't work, right?

      (I don't even remember how this thread started, but never mind. These java/sharp discussions are always about the same issues anyway.)

    14. Re:Well, m$ has to do something. by the+eric+conspiracy · · Score: 2

      Wait, say that again, "third party implementations", meaning what exactly?

      I don't think that I've seen a GPL'd java or a red-hat java.


      This page lists several non-Sun Java implementations. Several of them are open source, GPL'ed and are in fact part of the standard Red Hat distributions.

      As far as Sun not giving up control, well, didn't the Microsoft attempt to hijack Java prove that they had some justification in this?

    15. Re:Well, m$ has to do something. by Daimaou · · Score: 1

      I disagree with your explanation of number one. Java is excellent in the server environment, but there are quite a few projects that use Java on the desktop. These run on Windows, Linux, *BSD, and anywhere else the JVM has been implemented (where applicable of course).

      Also, what about Servlet programming and JSP for dynamic web pages and database connectivity? These are desktop applications! They just run in a browser; on the desktop. The trouble is that Java does it's job so well, many people don't have any idea they are using Java applications every day.

    16. Re:Well, m$ has to do something. by abigor · · Score: 1

      Argh, replying to an AC is a bad idea...but here goes...

      We deploy on Linux, mainly.

      It's pretty clear you're confused. J2EE is not "niche". There's a reason MS is specificly targeting J2EE with .NET: big installations use it. Websphere alone has something like 35 000 deployments, and it's not even close to BEA. Something like 90% of the big U.S. banks use it, and 75% of the international banks. Amazon uses J2EE (BEA, I believe). It is huge, and getting huger -- it's shaping up to be the platform of choice for everything from legacy integration to web services. Don't get me wrong, I'm not a total fan -- J2EE 1.1 came up pretty short; 2.0 is a lot better, but not perfect (certain security issues are still a bit fuzzy) -- but the fact remains, it's here to stay, and is currently the dominant app server spec. Like it or not.

      Please read the article before posting next time. It specificly states J2EE is the MS target.

    17. Re:Well, m$ has to do something. by benedict · · Score: 2

      Java was initially targetted for the embedded market.

      --
      Ben "You have your mind on computers, it seems."
    18. Re:Well, m$ has to do something. by JdV!! · · Score: 1

      Wait, say that again, "third party implementations", meaning what exactly?

      IBM has Jikes, an open source java compiler, and also its own JVM, which supposedly is better (faster) then Sun's. Then there's Kaffe, a truly open source (read: community-based) Java environment.


      Whereas it's true that Sun could smother both efforts (and other, not mentioned, projects) before you can say "standardization process", my experience is that this will not happen. Sun has built a faithfull community around Java, based on mutual respect: Sun provides an infrastructure for "us" to provide input in the direction the language takes, through the Java Community Process, and we assume Sun will listen to us and will not abuse their psoition.


      Up to now they have kept their end of the bargain, maybe not always given us immediately what we want, but then again, neither does Linus. I don't think it's in Sun's best interest to betray this common trust, because then they will end up with nothing.


      JdV!!

      --
      <Enter any 12-digit prime to continue>

    19. Re:Well, m$ has to do something. by mike_sucks · · Score: 1

      Yes, just like the vast majority of all desktop software is not {Mac|Linux|Solaris} based, so we can safely assume that {Mac|Linux|Solaris} did not catch on.

      Nicely flawed argument you have there.

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    20. Re:Well, m$ has to do something. by abigor · · Score: 3, Interesting

      OK, first I'm sorry about the crankiness...I'm just so sick of people thinking it's all about the desktop.

      Sure, .NET may succeed on the desktop, who knows. But it's really not the main focus of the overall architecture. The Common Language stuff will work as an application framework, but really, you're basically talking Win32 -- there isn't a compelling reason to switch from the ATL or MFC or whatever. The .NET strategy is server-based. MS knows as well as anyone else that web-based interactions with a remote server (whether it's serving up your word processor or a car-rental/airlane booking service) are where the future is at. I don't deny that the .NET framework will count for something on the desktop, but MS already own that. They want to own the server side as well.

      If you still don't believe me, you'll (kindly) notice that MS marketing literature is mainly directed at J2EE. MS even went so far as to re-implement the Java Pet Store server in .NET to compare benchmarks. Remember, MS is about increasing revenue -- it's not happening on the desktop. Once (if) web services explode, MS wants .NET to be the implementation framework of choice.

    21. Re:Well, m$ has to do something. by mike_sucks · · Score: 1

      Whoa, didn't you say "Java has failed in Sun's primary quest - to bring massive cross-platform applications to the desktop"?

      Given that they have brought these applications to the desktop, then how can they possibly have failed? You seem to be arguing the point that because Java based applications are not the at the top in terms of units shipped or sales generated that Java has failed - which is patently absurd.

      I guess you're also one of these people who judge how successful person is by looking at their salary. You poor bastard.

      8/

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    22. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      Sun is a company that primarily sells servers. They've got about 0.01% desktop marketshare. The conclusion should be that they've never really given a rats ass about the desktop, and instead are focusing on embedded, interactive web (applets) and server infrastructure.

      If Java was meant to be a serious desktop product, why would Sun even suggest slow-ass shit like Swing with a straight face? More platform dependant code is what's necessary (see the J++ stuff and IBM Eclipse) and sun would rather keep their ideological purity than compete.

    23. Re:Well, m$ has to do something. by mlinksva · · Score: 2
      I don't think massive cross-platform applications on the desktop was ever Sun's primary goal for Java. As others have noted, before it was called Java it was aimed at embedded systems, and its initial hype was based on bringing "interactivity" to web pages, which it turned out people didn't care for (and Netscape's implementation was about as bad as it possibly could've been). Several third parties (notably Lotus and Corel) failed with Java desktop development, but AFAIK the only real major desktop Java project Sun attempted was the JavaStation(?) diskless terminal, and that would've failed regardless of the software since it was an overpriced, underpowered and incompatible hardware platform.

      Also, I think you're needlessly conflating desktop and commercial software. There's plenty of non-commerical desktop software, and the non-desktop commercial software market is massive.

      But after all that, I agree that free .NET implementation(s) may succeed on the libre software desktop (I don't care what it does on the unfree desktop), where Java has failed to gain any significant foothold.

      I think C# and .NET are kinda neat despite their source (I could say the same about Java's source, they're both amoral corporations), and I hope that mono does meet all of Miguel de Icaza's expectations in terms of making free software developers more productive. I also think Java still has a chance on the libre desktop if and only if Sun wakes up and makes the JDK open source!

    24. Re:Well, m$ has to do something. by Deluge · · Score: 3, Funny

      "what about Servlet programming and JSP for dynamic web pages and database connectivity? These are desktop applications! They just run in a browser; on the desktop"

      Very true. .jsp pages seem to be by far the most common dynamic pages seen on bank and investment websites. I'd say that seeing such heavy use in such demanding environments speaks quite well to how successful java's been.

    25. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      "However, MOST of ALL software is not written in Java"

      Most of all software is not written in any one language at all. (No language has over 50% total marketshare.)

      Although, if we're holding a popularity contest, COBOL is still the winner, I'm afraid.

    26. Re:Well, m$ has to do something. by mike_sucks · · Score: 1

      When did I say anything about "good feelings" and "making friends"? What crack are you on?

      Look, *no one* is going to out-sell native Windows apps until Windows is not the dominant OS on the desktop. Period.

      So, you have successful Mac apps that don't sell as much as successful Windows apps. You have successful Solaris apps that don't sell as much as successful Windows apps. You have successful UN*X apps that you can get for free!

      Looking at raw sales for a measure of success for a particular application across *all* platforms is misleading, and incorrect. You should be looking at the usage figures on the app's native platform.

      Going off on a tangent here:

      What you (and many others, including MS) seem to be missing is that Java is a platform unto itself. You don't run Java apps on a Windows box, you run them on a JVM, which may happen to be hosted by a Windows box. Java isn't just the language, it is also the JVM and the java.* APIs.

      Feel free to get a clue at any point.

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    27. Re:Well, m$ has to do something. by JamesOfTheDesert · · Score: 2
      Sun has built a faithfull community around Java

      Yeah, sort of like that "Gates of Heaven" group some years ago.

      --

      Java is the blue pill
      Choose the red pill
    28. Re:Well, m$ has to do something. by Visionized · · Score: 1

      I am not sure if you are aware of this but the Mono project plans on Implementing most if not all of the .NET Framework including the GUI Classes. THey will be using GTK+ under the covers for much of the windowing portiong.

      Go to the Mono website to read the latest...

      Cal

      --

      /* Dammit Jim!!!! I'm a Doctor not a miracle worker! */
    29. Re:Well, m$ has to do something. by egeorge · · Score: 1
      if and only if Sun wakes up and makes the JDK open source!

      I hope that Sun sees that huge benefit this will bring them in their coming fight against .Net. I think there are large factions of anti-M$ folks out there that are also against Java partly because it is not truely free software. If Sun opened the JDK, then they would suddenly be huge srides ahead of .Net instead of the few steps that they are now. What Java really needs to beat .Net is folks like GNU and Ximian working for it instead of on projects (like Mono) that reproduce what Java already has.

    30. Re:Well, m$ has to do something. by Malcontent · · Score: 2

      Ok I see where you are coming from here. Your premise is wrong so therefore your conclusion is wrong.

      "Java has failed in Sun's primary quest - to bring massive cross-platform applications to the desktop"

      Sun's original goal with java was to be an embedded platform able to work on a variety of chipsets. Then it tried to position it as a "applet" web enhancer. Somehow it caught on in other areas instead. In fact there a quite a number of java desktop applications running all across the country inside firewalls so some degree of desktop penetration is already present. I have played around a bit with java web start lately and I see some great windows apps too so the desktop presense is growing outside the firewalls too.

      " Mono is completed in a reasonable amount of time"

      According to Miguel they are two years behind MS. With the resources that MS has Mono will never catch up and will always be at least a year behind. Somehow I just don't see mono catching on in the OSS world .NET is just too burdened with patents and nobody wants to face an army of MS lawyers just because they wrote some code.

      --

      War is necrophilia.

    31. Re:Well, m$ has to do something. by JordanH · · Score: 2
      • Java was initially targetted for the embedded market.

      Java, or rather Oak, was initially designed for the embedded market, but it never got any support to "come out of the lab" until someone got the idea of running it in the browser for desktop applications.

    32. Re:Well, m$ has to do something. by Tony-A · · Score: 2

      Who cares about the desktop? The big desktop machines are becoming more and more just overgrown dumb terminals. The network is the computer. We're not there yet, but we're gaining on it. The desktop is just something to run a browser. Which browser? Should make about as much difference as which brand of ElCheapo 4 function calculator you would buy now.

    33. Re:Well, m$ has to do something. by ejungle · · Score: 2, Insightful

      This has been a great thread with some excellent points on both sides. As much as I'd like to see .NET manifest fully capable cross-platform applications, I'm quite certain it isn't going to happen.

      Microsoft doesn't make money by selling individual products. They make money by leveraging products off one another to dominate markets. Sometimes they do it fairly and legally, sometimes not.

      Whatever the case, Microsoft has worked hard to reach the position they are in now, and I'm quite certain (as should be everyone else) they are not going to throw it away by offering full featured cross-platform capability. If they were to do so, it would completely nullify their relevance on both the server and the desktop.

      Microsoft is not that stupid.

      To have access to all the bells and whistles of .NET, you'll have to run it on Microsoft platforms exclusively, again, both on the server and on the desktop. If you don't, I suspect you'll be stuck with something that looks and functions a heck of a lot like Java does now.

      This is a stroke of genius on the part of Microsoft. Let us examine four hypothetical corporations:

      • Microsoft Server, Microsoft Desktop: Lucky them, full .NET capabilities!
      • Microsoft Server, Non-Microsoft Desktop: (Yeah, I think it'd be funny to see an organization like this too, but humor me. =) Too bad for these guys, they can't make full use of their .NET servers since their clients don't support everything.
      • Non-Microsoft Server, Microsoft Desktop: Too bad you can't make use of all the features on the client side because your server doesn't support them!
      • Non-Microsoft Server, Non-Microsoft Desktop: Although you don't have access to all the new fangled .NET features, you can do pretty much everything Java does. Then there's the advantage of being able to use a bunch of different languages, Java included!
      Is everyone starting to see the broader picture yet? .NET is a Java-killer for the purposes of increasing Microsoft's market share in the OS arena (If that's even possible). From which, they will be able to leverage even more products and services.

      It's a vicious little circle called Microsoft, and it's very easy to get sucked in. Open Source and Free Software will never die. It is simply the nature of the beast. However, I do like how the increase in it's popularity in all arenas has improved its quantity and its quality. And I am loathe to go back to the bad-old days of poor hardware support and tediously long development cycles. The question we have to ask ourselves is,

      "By supporting .NET with projects like Mono, are we shooting ourselves in the foot?"

      I don't know the answer quite yet, but I can't help the feeling that we are being given enough rope to tie our own noose, nor shake the image of Bill Gates saying to us,

      "C'mon kids, try it, the first one is free!"

      --
      Remember: umount it before you fsck it.
    34. Re:Well, m$ has to do something. by macom · · Score: 1
      (not saying they don't exisit, just I cant think of any easily).

      The Swing Sightings

      mocom--

    35. Re:Well, m$ has to do something. by flacco · · Score: 2
      "what about Servlet programming and JSP for dynamic web pages and database connectivity? These are desktop applications! They just run in a browser; on the desktop"

      Very true.

      Very untrue, actually. Servlets run on the server. JSP's are compiled and run on the server. The only thing you see in your browser is the standard HTML that is returned to you by the server.

      Java's problem on the desktop is, among other things, that it requires a separate JVM for each Java program running. I use a Java IDE written in Java, a UML modeling tool written in Java, and a freakin' Gnutella client written in Java. Each one of these programs has to lug around its own massive JVM.

      I've always thought it would be most cool if there were a client equivalent to a servlet engine that allows all these desktop apps to share a JVM.

      --
      pr0n - keeping monitor glass spotless since 1981.
    36. Re:Well, m$ has to do something. by Tony-A · · Score: 2

      Somehow I trust Sun's intentions regarding Java a lot more than I trust Microsoft's intentions regarding .NET. For example, in contrast to Microsof's Passport, the Liberty Alliance is structured so that Sun cannot grab control of it.

    37. Re:Well, m$ has to do something. by nhavar · · Score: 2
      I guess it's a simantec issue. You are speaking of implementation in reference to the end implement much like MFC is an implementation of C++ or as GCC is an implement of C. I'm speaking of implementation as in JavaScript1.x/JScript are implementations of ECMAScript or VisualC++ is an implementation of C++. For the latter there is a core language and structure present that defines the language. While you use the core you are allowed to add additional functionality to that core without detracting from it. In this way you make it your own.

      With java you are dissallowed from touching the core language. While you are allowed to create new packages and uses of the existing language you cannot add to it. The core language is controlled by Sun.

      Additionally you are dissallowed from creating a "clean room" version of the language. Also parties that have used third party "implimentations" (PACKAGES/VM/Compilers) may be dissallowed from J2EE certifications or blocked from distributing the app open source or at all, even if said app uses the Java Language exactly and performs to the listed specifications for J2EE compliance. Why? Because it's Sun's ball and if they don't like you not playing by the "rules" then they will take the ball and go home. (See Lutris Enhydra... unable to continue Open Source J2EE app server due to discrepency in licensing schemes).

      So while I can create my own implementation of ECMAScript and add all the functionality I want and it still be considered ECMAScript compliant, I cannot do the same with Java language without fear of reprisal. The licensing does not allow for this, in fact it expressly forbids it.

      Quick and simple: you are talking about using an existing hammer someone gave you to build a door, I'm talking about building a hammer from parts of your hammer and new parts I created, that looks and acts just like yours, and will be usee to build a similar door. Both hammers work the same, both doors get built. Which door gets certified?

      --
      "Do not be swept up in the momentum of mediocrity." - anon
    38. Re:Well, m$ has to do something. by Tony-A · · Score: 2

      Well, Microsoft's .NET and Passport seem to be buying into Sun's silly "network is the computer" crap.
      What control would I be turning over to others? If I know who I'm talking to, what I am saying, and what the other is saying, I have much more control than installing software that puts unknown things in unknown places and hides what is going on from me.
      The desktop won't vanish, just like the automobile hasn't completely eliminated the horse and buggy.

    39. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      Well....if your company runs out of the cash needed to fund operations, then you really are going to be a poor bastard.

      You silly, silly little college boy......

    40. Re:Well, m$ has to do something. by mike_sucks · · Score: 1

      Well, that's a very intelligent, well-thought-out reply, did your daddy help you out with it? Wait, does he even know you're using his computer again?

      Hm?

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    41. Re:Well, m$ has to do something. by Dr.Evil · · Score: 2
      I've always thought it would be most cool if there were a client equivalent to a servlet engine that allows all these desktop apps to share a JVM.

      Actually, as long as there are no namespace conflicts, this would be relatively easy to achieve using the Reflection APIs and dynamic class loading, I believe. Instead of a "java ..." invocation on the command line invoking an entirely new JVM process, it would be more of an access point to the class loader. Determining which version of a particular namespace a newly-loaded class wanted when there are conflicts is a tricky problem, though. I'm kind of surprised there hasn't been more work on this by the HotSpot team, although if I recall correctly, they were targeting some of this for the 1.5 release. Apple has made some progress on this in Mac OS X, as well.

      --
      Right...
    42. Re:Well, m$ has to do something. by Kirruth · · Score: 2

      The semantics issue lies elsewhere. Both Java and .Net call themselves "open standards" but scratch the surface and you find trademarks, patents and restrictive licensing. They are proprietary standards for which reference implementations are given away free: so, free beer rather than free speech.

      This doesn't make them bad, of course. You just have to think what the agenda is for the people issuing them. For Sun, Java came about to sell more Sun hardware. For Microsoft, .Net is how they plan extend their operating systems presence (which they make no money anyway) by moving up a layer, and so support their market for middleware and desktop apps (where they coin it in). There's nothing wrong with commerce, and .Net is probably going to make alot of commercial sense, just as J2EE does now.

      As for open source / free software development, if people want to give their spare time furthering the corporate objectives of Sun and Microsoft, hey, good luck to them. But lets be clear about that this is what they are doing.

      --
      "Well, put a stake in my heart and drag me into sunlight."
    43. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0
      Very true. .jsp pages seem to be by far the most common dynamic pages seen on bank and investment websites. I'd say that seeing such heavy use in such demanding environments speaks quite well to how successful java's been.
      Hate to rain on your parade, but websites - even banking websites - aren't a demanding environment at all. Take a look at what they're running their back-end systems on to see the real success story: COBOL.
    44. Re:Well, m$ has to do something. by Anonymous Coward · · Score: 0

      Err, well, Linux users MIGHT be able to RENT software from M$ if Mono meets its hype. No self-respecting linux/*nix user would pay $$ to M$ to RENT software/apps.


      I am no more interested in paying M$ to use a net-only variant of Office than I am in giving Gates Christmas presents (or money for ANYTHING).


      I have a few M$ oses and their accompanying apps, but I assure you I paid not a dime for ANY of it. Gates NEVER gets money from me.

    45. Re:Well, m$ has to do something. by alext · · Score: 1
      There is no 'either way' - whatever you want to call 'the standard .NET platform that I write my app to', MS has already extended it, as other posters have earlier pointed out but which you have chosen to ignore.

      If you're in need of further examples, look no further than the open SOAP protocol which you proclaim is a 'core tenet' of Dotnet that MS is encouraging Dotnet developers to use. In fact, developers will prefer to use something called Dotnet Remoting, a proprietary protocol, since it does a couple of rather important things that SOAP doesn't - it can pass object references and serialize objects, just like Java's RMI. In fact, my .NET book (Thai and Lam) goes so far as to say that this capability "is the key to distributed computing in .NET" (p84). Clearly, SOAP isn't 'core' enough to support it.

      However, based on what I've seen of recent debates, no matter
      • however many proprietary 'keys' are uncovered in Dotnet,
      • whatever other interesting technologies are out there in the open source world,
      • however mature Java platforms and tools are,

      the Miguel-supporters will find it literally impossible to concieve that it is useful to make something like Dotnet without attempting to clone the whole product. They believe that there's something unique, unified and immaculate called Dotnet Technology which they must accept and implement in its entirety, not to be analysed, questioned or (gasp!) improved in any way.

      Yes, Dotnet in the one and only true way of improving the Linux application development environment, and placing Microsoft in the driving seat is the price we must pay.

    46. Re:Well, m$ has to do something. by alext · · Score: 1

      Unfortunately Echidna seems to have gone quiet, but IBM are doing a lot on the 390s that enables JVMs to share heaps etc. - see references at the bottom of this article - this is probably the best hope for a consolidated desktop VM.

    47. Re:Well, m$ has to do something. by alext · · Score: 1

      SOAP has already been extended in the sense that a proprietary alternative with more features is there (Dotnet Remoting). In fact, all remote objects must using Remoting, since SOAP does not support object references as parameters. SOAP is therefore neither simple [UDDI, WSDL] nor does it provide object access [no objrefs]. Catchy name though.

    48. Re:Well, m$ has to do something. by the+eric+conspiracy · · Score: 2

      You are speaking of implementation in reference to the end implement much like MFC is an implementation of C++ or as GCC is an implement of C. I'm speaking of implementation as in JavaScript1.x/JScript are implementations of ECMAScript or VisualC++ is an implementation of C++.

      With java you are dissallowed from touching the core language. While you are allowed to create new packages and uses of the existing language you cannot add to it. The core language is controlled by Sun.



      That is not correct at all. Some of the implementations that are described in the link I mentioned in fact add significant extensions to Java, like generic types.

      As far as J2EE licensing and Open Source projects, the JBoss people have a very different take on Lutris' decision to discontinue their
      open source product.

      http://www.jboss.org/licensesun.jsp

      Quick and simple: you are talking about using an existing hammer someone gave you to build a door, I'm talking about building a hammer from parts of your hammer and new parts I created, that looks and acts just like yours, and will be usee to build a similar door. Both hammers work the same, both doors get built. Which door gets certified?

      The fact is that EVERY application server on the market includes proprietary extensions to J2EE. Do they get certified? Yes.

    49. Re:Well, m$ has to do something. by ejungle · · Score: 1

      Again, well said. =)

      You may have misinterpretted me, however. I wasn't suggesting that you have to run a homogeneous MS environment for their products to retain core functionality. I was merely pointing out how they use 'features' which will only work with other MS products as leverage.

      I agree, anything to improve and ease development with robust solutions like we hope Mono to be is a good thing. I also agree with your initial statement that .NET may succeed where Java did not, in bringing cross-platform compatability to full-scale applications.

      I respectfully disagree with the contention that MS is prepared to give away what they've worked so hard to achieve (fairly or not =). Yes, Microsoft is the proverbial drum-playing octopus of the software world. But it's only because one tentacle knows what the other is doing that they are so successful. (Okay, enough of that analogy, I know. =) Here are some numbers from a quick search I did on Google. Microsoft market share:

      Both excellent market position by any standard. I think all of us, including Microsoft know that they really don't have anywhere to go in the OS arena. The same cannot be said of the office suite space, however. They may be able to pick up a few points as companies roll-over from legacy Wordperfect and Lotus systems. So, like you say, it is a realistic ideal for them to grow their share in this space.

      However, it is not realistic to believe Microsoft will sacrifice their other markets to gain share with its office suite. The reason is simple; control. The only way a company as large as Microsoft can maintain relevance is with control. If they didn't have it, they'd be quickly overtaken by smaller, more adaptable companies producing higher quality products. They've been able to stiffle such upstarts by buying them outright, or changing the rules of the game. The second Microsoft lets its control of the OS market slip, is the second they jump the shark. Microsoft is a smart company, and they learned this lesson early-on by watching IBM. The chances are mighty slim they would do something so daft.

      I'll finish off by saying that I think we might be arguing different points. I agree with you on many issues. The only one I can't forsee is Microsoft giving anything up. I understand they are trying to change the direction of their company. And you may be right, true cross-platform compatability might be the first step in that direction. Though it is hard to fathom Microsoft shooting out a tire just to change the direction of the car. My (somewhat more pessimistic than your) predictions: Office will remain within the Windows/Mac domain, mostly because of 'enhancements' like those mentioned in the sibling to this post. Failing that MS would have to pull an ace out of it's sleeve to save it's OS business from utter ruin. Mono will become a great development platform, though we won't be able to run the majority of full-scale .NET applications, again because of the larger feature-set and integration abilities offered by MS. Though of course, all the applications we develop will be able to run on Windows (this may or may not be a bad thing).

      Only time will tell, but I don't think .NET is the holy grail of computing. Nor the messiah, nor the devil incarnate. When it comes right down to it, for the developer, .NET is another tool in my belt. For Microsoft, I have no idea what .NET is. Some people say they're betting the whole company on this. I prefer to think they're just dipping their toe in the water before jumping in head-first. =) Kudos to Miguel and the boys, and good luck to us all.

      --
      Remember: umount it before you fsck it.
  5. Articles at Microsoft.com by Metrollica · · Score: 3, Informative

    There are a few articles at Microsoft on this topic here and here.

    --



    --Metrollica
  6. Comment removed by account_deleted · · Score: 3

    Comment removed based on user account deletion

  7. Science of Software where? by 3seas · · Score: 2

    "After half a century of research, computer scientists have yet to agree on a single answer to most issues of programming language design.

    Autocoding - where the language doesn't much matter, so long as the programming concepts are accessible

  8. Comment removed by account_deleted · · Score: 0, Offtopic

    Comment removed based on user account deletion

  9. apply the razor please by Erris · · Score: 2, Insightful
    I have seen several articles on .net in the last week. All of them have been from Java advocates or MS haters.

    If the only thing the authors have in common is your readership, they might be right and you might be wrong.

    --
    DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
    1. Re:apply the razor please by Anonymous Coward · · Score: 1, Interesting

      This isn't that hard people. Go download the .NET STANDARD, and go find the documents that Sun publishs about their technology.

      Now look at the VM. Clearly Microsoft wins this one. The design goal of the JVM bytecode was obviously "design the easiest to implement VM that we can compile Java to."

      As for the libraries; they both suck.

      C# vs Java the language; C# is Java, just with most of the lessons painfully learned from Java applied, and a few of the more ridiculous design mistakes hidden slightly better (automatic boxing).

      The question isn't "Is C#/.NET better than Java" because everyone who isn't a MS hater or a one-language-programmer J2EE hack can see the answer. The real question is: "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."

    2. Re:apply the razor please by Erris · · Score: 2, Flamebait
      "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."

      A tool that claims to do all things for all people never does anything well. C pound is one of those tools. The article does a good job showing how each of the implimented launguages applies its flaws to C pound rather than it's strengths. The result is a crippled java without multiple inheritences and most of the rest of java's strengths.

      The reason people write that they don't like the new M$ toy is not because they don't like M$, it's because they don't like the new toy.

      C pound has all the stench of the M$ fortran effort. Before they were the Empire of the Dumb, it was interesting to see a nice little DOS fortran compiler. Next they extended it to include support for their Win3.1 GUI with the user kernel. That was replaced with a 32 bit DOS extended compiler, which was in turn replaced with a module for their Developer, which promised to unite VB, C++ fortran and Java(? I can't remember if java made it in there). After all that jerk around, each transition breaking the previous extentions, the finally dropped it alltogether. They never seriously focused on the isssues that needed to be solved to make it more than a toy, ie be able to compile the tremendous body of legacy code, and in the end trashed it on their platform all together. These days real fortran work is a pain in the ass on M$, with each OS shift breaking the kludge that got around the last limitations. It's much easier to pick up comercial Linux compilers of G77, as everyone else focused on the strengths of fortran and made comilers that do useful work. M$'s effort to extinguish fortran on their platform has simply shifted physisists and others to other platforms.

      Go download the .NET STANDARD, and go find the documents that Sun publishs about their technology.

      Do you know what a standard is? The above shows not.

      --
      DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
    3. Re:apply the razor please by JamesOfTheDesert · · Score: 1
      Do you know what a standard is? The above shows not.

      I'm pretty sure he uses the word the way, say, Sun refers to the Java(tm) "standard", or the J2EE(tm) "standard".

      --

      Java is the blue pill
      Choose the red pill
    4. Re:apply the razor please by GrayArea · · Score: 2
      Go download the .NET STANDARD

      What standard? Read my previous post on this, and see for yourself how that standard is horribly crippled from the start.

      The design goal of the JVM bytecode was obviously "design the easiest to implement VM that we can compile Java to."

      So what? It's a decent VM design and does the job. If there is future need, it can extended; the whole platform is designed to let this kind of thing happen (class file format versions are the first thing that comes to mind).

      As for the libraries; they both suck.

      Have you actually done any development in Java? The core class libraries are probably the best thing that happened to me in the last five years, apart from Linux. Their design is for the most part very sound. Can't say anything about .Net, but their libraries probably have a way to go before they grow as stable and functional as Java's.

      C# is Java, just with most of the lessons painfully learned from Java applied, and a few of the more ridiculous design mistakes hidden slightly better (automatic boxing).

      And more than a few brand-new mistakes along the way. Hierarchical namespaces a la C++ (gack! - flame away if you want), nothing similar to inner classes (very powerful feature in Java but easily misused), no classloaders (and no, assembly loading is not the equivalent), event handling integrated into language (gack! twice), metadata attributes inside source code (gack! three times). It shows all signs of the kitchen sink language syndrom, but then read the spec for yourself and don't take my word for it.

      The question isn't "Is C#/.NET better than Java" because everyone who isn't a MS hater or a one-language-programmer J2EE hack can see the answer. The real question is: "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."

      You know, sometimes strong convictions of mind are a sign of shallow and simplistic thinking. Before categorically claiming that "it's so easy to see the answer", make sure you have the experience and knowledge to add weight to those words. It's abundantly clear to me that by any measure, you don't.

      Eh, now, I spent way too much of my time answering an AC, so I'll go now.

      --
      "The deluded are always filled with absolutes. The rest of us have to live with ambiguity." - Aristoi, Walter Jon Willia
    5. Re:apply the razor please by Anonymous Coward · · Score: 0

      intel will announce next week the P "4.5", which includes a .NET coprocessor on board. That's right, the virtual machine becomes a real machine. Compare that to Java's pinnacle, a slow and barely functional browser.

    6. Re:apply the razor please by borgboy · · Score: 1

      Have you actually done any development in Java? The core class libraries are probably the best thing that happened to me in the last five years, apart from Linux. Their design is for the most part very sound. Can't say anything about .Net, but their libraries probably have a way to go before they grow as stable and functional as Java's.

      I have done development in both. I can definitively say that the .Net class libraries are in fact stable and full featured.

      And more than a few brand-new mistakes along the way. Hierarchical namespaces a la C++ (gack! - flame away if you want)
      I'll bite. how is this more evil than the filesystem hierarchy imposed by java?

      nothing similar to inner classes (very powerful feature in Java but easily misused)
      yet i could say the same for operator overloading.

      no classloaders (and no, assembly loading is not the equivalent)
      How is it not the equivalent?

      event handling integrated into language (gack! twice)
      why gack?

      metadata attributes inside source code (gack! three times).
      Do you know how elegant metadata would make JUnit?

      --
      meh.
    7. Re:apply the razor please by Drake42 · · Score: 2

      Now look at the VM. The design goal of the JVM bytecode was obviously "design the easiest to implement VM that we can compile Java to."
      What are you talking about?!?! The JVM is designed to be a minimal set of what is needed so you can get about your job without a huge pile of baggage loaded on top of you.

      As for the libraries; they both suck.
      Which shows that you don't know how to code in either of them. The Java API is much easier to use than the old MFC api I used to work with, JDBC is much more friendly than ODBC and the core java API's much much easier than the C++ api's for the MS, unix and AS/400 systems that I had to work with.

      C# is Java
      Except that it isn't mature, is OS dependent, seems very open to security holes which are imposible under Java, has no community review process, has no officially sanctioned competing implementations, has no choice of developement environment, cannot be used for free, and requires you to be an all MS shop. If you don't mind any of those things then they're just about the same!

      "Is C#/.NET better than Java" because everyone who isn't a MS hater or a one-language-programmer J2EE hack can see the answer. The real question is: "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."
      You being a troll.

    8. Re:apply the razor please by mestar · · Score: 2, Interesting
      JDBC is much more friendly than ODBC

      java just copied ODBC, even the name is almost the same. however, even at that time, microsoft had several easier to use APIs for accessing data (DAO, etc), not to mention APIs that come later, like ADO, and now ADO.NET. Compared to ADO and ADO.NET (and even DAO), JDBC is very low level and much harder to use.


      also, J2EE (2000) is a directy copy of MTS (1998), and JSP is a direct copy of ASP. java almosy literaly copied existing Windows technologies.


      now with .NET, it's microsoft's turn.

    9. Re:apply the razor please by mestar · · Score: 3, Interesting
      C# is Java
      Except that it isn't mature,

      it is more mature than you think.


      it is not the language, it is the libraries that you code against. for example, Windows Forms could easily be called WFC 2.0, same for many other classes.


      ADO.NET is a successor to ADO, it is not 'imature' as you say. also, it is two generations ahead of anything that java has to offer to access databases.


      ASP.NET is again the next version of ASP, it improved od ASP, it is not a '1.0' version. again, much richer that JSP.


      take web services, and then look at sun's pathetic response (oh, yeah, we have web services too). i would call java web services api much more imature that microsofts.

    10. Re:apply the razor please by Anonymous Coward · · Score: 0
      The result is a crippled java without multiple inheritences and most of the rest of java's strengths.
      Sooooo...you're saying that the fact that Java has multiple inheritance is one of its strengths.

      I think that tells me all I need to know about your technical competence. Go back to your toy number-crunching systems, dweeb.

      Do you know what a standard is? The above shows not.
      Well, given that you're busy trying to use templates in Java or possibly operator overloading, it's not surprising you haven't heard of ECMA, the standards body.
    11. Re:apply the razor please by mestar · · Score: 1

      seems very open to security holes which are imposible under Java

      what opennes to security holes are you talking about?

    12. Re:apply the razor please by Anonymous Coward · · Score: 0
      event handling integrated into language (gack! twice)
      why gack?
      I'd say that he's so used to Java's bondage-and-discipline, tacked on way of doing it (inner classes, brrrrrrrrr) that he's become a bit of a masochist and can't enjoy the sweet sweet syntactic sugar that is delegate and event.

      no classloaders (and no, assembly loading is not the equivalent)
      How is it not the equivalent?
      Not so granular. More of a pain (at the moment) to dick about with (pop quiz, hotshot: write me some code that will detect when an object of a particular class is instantiated, or a particular method is called, or lists the current heap contents. There are the hooks to do it, but you have to go down-and-dirty with C++).
    13. Re:apply the razor please by GrayArea · · Score: 2

      Oh, goody! The chance to duke it out in front of an audience! ;-)

      I have done development in both. I can definitively say that the .Net class libraries are in fact stable and full featured.

      You'll excuse me if I have my doubts based on the previous track record.

      I'll bite. how is this more evil than the file system hierarchy imposed by Java?

      First things first. There is no file system hierarchy imposed by Java. The usual package naming convention you see is just that, a convention, and doesn't signify that the packages are in a parent-child relationship. As for the folders, I guess it was just a convenient way of representing the existing convention in a file system. A repository/database based system like Visual Age for Java is free to use whatever it wants. You can just as easily put your classes in a flat list of directories corresponding to packages as long as you have a compiler that understands it (easy to do in a day by driving JDK compiler). The point is, you don't violate the language or API specification by doing so.

      nothing similar to inner classes (very powerful feature in Java but easily misused)
      yet i could say the same for operator overloading.

      I wouldn't say inner classes and operator overloading are at the same level of utility. One is (useful) syntactic sugar, the other is a way to create fine grained objects not easily represented otherwise. See this for an example of their use. This is not to say that operator overloading isn't useful, it's a great way to write seamless data structures. In fact, I wish I had them in Java, but with names and interfaces and without the C++ syntax.

      no classloaders (and no, assembly loading is not the equivalent) How is it not the equivalent?

      It's not fine grained. AppDomain's and Assembly's are okay when all you want is to isolate unrelated components from each other (like web apps in a servlet engine), but they fail when those components need to interact with each other. In effect, this precludes a whole class of software that use aggressively component based architectures, like JBoss, HP's Core Services Framework, Apache Jakarta Avalon or the Eclipse IDE Framework, for that matter. The basic problem is that isolation and resolution are lumped together in .NET, and you won't be able to isolate components and resolve references from one component to another at the same time. See the Developer's Guide on MSDN for details. I'd love to be proved wrong on this because I like some of AppDomain's details and similar stuff with more advanced functionality is in JSR 121 for application isolation, so let me know if this line of reasoning is not correct.

      event handling integrated into language (gack! twice)
      why gack?

      Because it's a big mechanism with lots of artifacts hard coded into the language itself. Funny, because you pointed out the difficulty of using operator overloading correctly when I see the cryptic application of operators for managing event listeners in C#. See this article on why delegates are not a good idea, it covers the basics even though it's not about C#'s version of them (I like Objective-C's delegates though, but they are different).

      metadata attributes inside source code (gack! three times). Do you know how elegant metadata would make JUnit?

      Reflection works just as well, thankyouverymuch. I find it fundamentally wrong to stuff code with metadata when you can have it separate. I like the descriptor stuff in J2EE, I wouldn't want bits of it in my source code. Yes, sometimes it's more work, but it gives you the flexibility to change mappings (it's always a mapping to something else, be it EJB's, WebMethods in .NET, or whatever) on the fly. Of course there are exceptions, it becomes tedious when there is a 1-to-1 mapping from the code to target domain with no properties on the mapping itself. A canonical example is the @deprecated Javadoc tag in Java. In the end, I think it makes a big difference to have discipline to not abuse such a system, and all previous experience says that MS doesn't have that.

      But that's just me, and objects in the mirror may seem further than they really are to you...

      --
      "The deluded are always filled with absolutes. The rest of us have to live with ambiguity." - Aristoi, Walter Jon Willia
    14. Re:apply the razor please by blackwater · · Score: 1

      All the technologies you mention are reasonably good but they *are* immature in the sense that the implementations are all v1.0.

  10. maybe a bit offtopic... by InsaneCreator · · Score: 1

    Will it be possible to decompile CLR/MSIL like it is possible to decompile JAVA applets? Applets you find online don't really contain any top-secret code, but being able to decompile something like a complete commercial applicatin is something different...

    1. Re:maybe a bit offtopic... by Anonymous Coward · · Score: 0

      Well, there are plenty of complete commercial applications in Java, so there are tools out there to stop you decompiling them. Here. Several MSIL decompilers have already been written (use google), but there's no reason why you shouldn't be able to obfuscate your MSIL. Also, you can "pre-JIT", ie compile, MSIL to machine code if you're desperate to keep it secret.

  11. CLR is the way to go by kentsin · · Score: 0

    I think that CLR is the way to go.

    Observ! even through there exist many languague environment and school, there is only few types of physical machines that run them!!!!

    Moreover, that programs and systems were built by people, and they were very adaptave.

    All the problem will be sovled when the time is right. But CLR gives what we need: FREE!

    1. Re:CLR is the way to go by Anonymous Coward · · Score: 0

      I would like to point out that even GPL do not give us that freedom.

  12. punch cards? by hex1848 · · Score: 0, Offtopic

    i wonder if the CLR can handle punch cards?

  13. What I don't get.... by rseuhs · · Score: 2

    ... why would anybody want to use multiple languages for the same project anyway? If you start a project you are pretty happy if you(r people) can deal with one language (or as few as possible) there is simply no need for this. The way I see it, it's a nice-to-have feature, but no killer-feature. Platform-independence, on the other hand, *IS* a killer feature because you can be sure that your customers can use it and can also switch platforms. Java is not only implemented, but also tested and proven on many, many platforms. It's established in many ways - .NET just doesn't offer enough for people to switch over to it. It may be the successor of Visual Basic (= the users that use anything from MS anyway), but IMO not much more. I think .NET is a solution without a problem.

    1. Re:What I don't get.... by HamNRye · · Score: 3, Insightful

      Why use different languages??

      This is a simple one. I write perl, you write C#. You write a routine in C#, and a front-end in C#. I don't like your front-end so I rewrite mine in perl, and it all works.

      However, I have a biggol' feeling that this will wind up as Java's platform independance. Half-Working.

      .NET is there so that they can lump everything into it, say they Innovated it at the .NET inception date, and look like there is cohesive plan.

      So far, NET involves a way to log into Hotmail, a planned Java rewrite, and..., and ..., um..., and...

    2. Re:What I don't get.... by Malcontent · · Score: 2

      Sounds like a recipe for disaster to me. Imagine trying to maintain an application where 50 developers used 20 languages. Yikes! Any program manager that allowed that to happen ought to be shot.

      Besides you will not be able use perl anyways. It will be "managed" perl. Which to you will mean a mutant bastard stepchild of perl much like VB.NET is a mutant bastard stepchild of VB.

      Might as well use C#

      --

      War is necrophilia.

    3. Re:What I don't get.... by Anonymous Coward · · Score: 0

      Because component vendors make different language choices from me. I like C#, they write in VB, or Managed C++ (or C#, of course) or whatever. All components are first-class from any language.

    4. Re:What I don't get.... by Anonymous Coward · · Score: 0

      I was in a Multi-language Project once. The Origal Project was writen on a VAX in Fortran 77 and they needed to add additional options. Students hours are cheap so we were assigned to add those function. The hardest part was figureing out the kuldge to call Fortran Calls from C. And no we couldn't write the changes in Fortran 77 we had to either use asseble or C we chose C.

    5. Re:What I don't get.... by Anonymous Coward · · Score: 0

      You are very uninformed. Please research before you post.

    6. Re:What I don't get.... by Roy+Ward · · Score: 2

      > why would anybody want to use multiple languages for the same project anyway?

      Possibly because different languages have different strengths. At my work, most of the system for the project we are working on is written in Java, but I am writing one module in Mercury because that particular module does a lot of symbol manipuation and has a large 'logical' component, so a logical language is far more suitable than Java, but only for that component.

      However, in these cases, it is good to have to go through some middleware (I'm using CORBA) or API to keep the modules apart. rather than sharing of structures pushing everything down to a lowest common denominator. So in that way, I agree with you ... .NET is a solution looking for a problem.

    7. Re:What I don't get.... by Anonymous Coward · · Score: 1, Insightful

      "VB.NET is a mutant bastard stepchild of VB"

      VB.NET might be bastardized, but it solves the huge real-world problem of Fear Of Curly Braces And Semicolons.

      Yes, it's completely stupid, but apparently BASIC syntax is easier to grasp for some people than C-like syntax.

      In fact, the biggest marketing fukup that Sun made was not shipping a supported VB.NET-like language for the JVM before Microsoft finished theirs. Unlike esoteric functional languages, the JVM implementation wouldn't have hurt ObjectBASIC one bit. Sun just missed the boat on the selling to the largest group of corporate programmers - VB users.

      (And before anyone goes gonzo on how unelite VB is -- my Indian Java monkey friend informs me that the contractor rates are currently higher for VB6 than they are for Java in the Bay Area....)

    8. Re:What I don't get.... by rseuhs · · Score: 2
      In fact, the biggest marketing fukup that Sun made was not shipping a supported VB.NET-like language for the JVM before Microsoft finished theirs. Unlike esoteric functional languages, the JVM implementation wouldn't have hurt ObjectBASIC one bit. Sun just missed the boat on the selling to the largest group of corporate programmers - VB users.

      It's terrible how everybody simply assumes that every MS-product is used by the "largest group" of users and everyone takes it for granted.

      Sorry, but *Java* is the most used language today, followed by C++, followed by C.

      I don't say VB isn't important, but it doesn't even come near of being the "largest".

    9. Re:What I don't get.... by MisterBlister · · Score: 2
      It's terrible how everybody simply assumes that every MS-product is used by the "largest group" of users and everyone takes it for granted.

      Sorry, but *Java* is the most used language today, followed by C++, followed by C.

      I don't say VB isn't important, but it doesn't even come near of being the "largest".

      It's terrible how everybody assumes that every non-MS-product is used by the "largest group" of users and everyone takes it for granted!

      My point? The original poster should have cited sources to back up his claim -- but you should also have posted sources to back up your counter-claim. So you're both fools who can't be trusted.

  14. Correct by SimonK · · Score: 4, Informative
    You were dead on when you said:

    Exactly. Never. Java is a neat little concept - that has some neat little benefits. But it has caught on for large-scale applications.

    Though I suspect that was a typo. Java has caught on for large-scale applications. The reason you can't buy Java apps in Best Buy is because they don't sell large scale applications. They sell boxed programs for PCs and Macs that are almost exclusively written in C++. Java's principle use is for the server side of various business systems.

    This is the field MS are aiming for with .NET, too. Indeed, that seems to be its principle purpose: to displace Java from back-end server systems. Microsoft already owns the desktop, and Java is no particular threat there for reasons that don't need to be rehearsed again. For the device market, they have other plans.

    1. Re:Correct by The+Famous+Brett+Wat · · Score: 1

      What are the chances that MS will maintain compatibility with something that actually allows their applications to run on any OS platform? That's what they call "commoditization", and history shows that they are more interested in its opposite.

      --
      proof, n. A demonstration that a conclusion is implied by certain premises and axioms.
  15. Thats *more* biased by SimonK · · Score: 4, Funny

    Meyer brought into .NET from an early stage, as did several other academics with pet languages noone ever uses. He doesn't tackle the (huge) issues with actually implementing Eiffel on the CLR, probably because he's starting to lose touch with reality due to spending too much time being a pundit.

    1. Re:Thats *more* biased by Anonymous Coward · · Score: 0
      What did Meyer leave out? He explained that the only issue with implementing Eiffel# is multiple inheritance. He goes on to say that the reason for this is that dynamic class loading is difficult to do properly on VM's that support multiple languages.

      For a very good article on multiple inheritance please look at here. This is an excellent paper and a historic paper, too.

      To the other critics of .net, Meyer explains that Eiffel# itself implements generics and design-by-contract. In other words, programmers of compilers will still have to implement features. VM's (at least for the time being) can't do everything. This is an issue which is brought up in the javalobby.org article.

      I don't think .net is good but everyone here should take a very close look at nonsense that is surrounding it. The javalobby.org article was brought up by several people in the threads about Joy's take on C# two days ago. And while the javalobby.org article is well researched, the reviewer (Osvaldo Pinali Doederlein) has not shown (yet) to be on the same level technically as Meyer. Meyer is a great researcher. Eiffel is an important language, even though very few people who read /. have ever programmed in it.

      Meyer is a credit to computer science and I doubt he will become a Tony Hoare. Tony Hoare did lose touch with modern language development when he wrote his famous ACM Turing Award acceptance lecture, "The emperor's old clothes." (Communication of the ACM, Feb. 1981) This was a biased opinion, just read it.

      Meyer doesn't use history to predict the future, instead he uses insight and technical ability. The Meyer article is very well done, everyone should read it...twice!

    2. Re:Thats *more* biased by Anonymous Coward · · Score: 0

      Eiffel was not really that great of a language, its multiple inheritance model was more complicated than C++ (both Eiffel and C++ have given MI a really bad reputation), and the language has covariance problems with its implementation of generics. Of course, they really screwed up Eiffel's introduction and got trounced by C++.

      Eiffel is an important language to learn if you want to know how not to design a language. Design by contract is really only of limited use in ensuring quality, as contracts can only talk about a finite portion of the universe (they can state what gets modified but not what doesn't get modified).

      Meyers HAS lost credebility. If you want proof that Meyers is off his rocker now, just read some of his Beyond Object articles in Software Development. His opinions are biased and not grounded in reason.

    3. Re:Thats *more* biased by Anonymous Coward · · Score: 0

      Yes multiple inheritance has a bad name. It has a bad name because most programmers don't use it properly.

      The covariance problem was solved about 2 years ago.

      Yes C++ beat everything.

      I'll agree to disagree about the design of Eiffel. Design by contract follows Fred Brooks' theory that there's no silver bullet. But to say that from this Eiffel is designed badly is silly. You might have other reasons for stating that but I'll hope it isn't because Eiffel != silver bullet to quality control.

      I don't read Software Development, could you list an article or two where Meyer is loopy? Thanks in advance.

  16. But you can't do that ... by SimonK · · Score: 2

    ... for a single project of any size. Its very important that everyone can read and modify everyone else's code (not that they DO, just that they CAN). Using libraries written in another language: maybe. Using many languages on one project: insane.

    There are also two errors in the rest of your post: Java's platform independence works just fine, and C# and the CLR have been released, they're not "planned".

  17. How could it be unbiased? by sterno · · Score: 3, Insightful

    Anybody who is qualified to write about the plusses and minusses of .Net is automatically biased. A microsoft rep or VB programmer will likely right about how wonderful it is. A C programmer will say how poor the performance of VM's are and how limited they are.

    Personally I think that those strongly familiar with Java are probably the most qualified to write on the subject of .Net. The CLR is very clearly a similar concept to the Java Virtual Machine, and thus an awareness of the benefits and weaknesses of that model provide useful insights into the capabilities of Microsoft's product.

    Really, the only unbiased source in this debate is an uninformed source, and that's really of no help. Take what the author has said, check his facts, and judge his opinions on your own. In the end, you'll probably find that, as it has always been, certain languages and architectures are well suited to certain tasks. You aren't going to write device drivers in C# and you probably aren't going to write a cross platform GUI application in assembler.

    --
    This sig has been temporarily disconnected or is no longer in service
    1. Re:How could it be unbiased? by Anonymous Coward · · Score: 0
      A C programmer will say how poor the performance of VM's are and how limited they are.
      And, most of the time, they would be wrong. Most of the time, a generational mark-and-compact garbage collector is a much more efficient way of managing memory than whatever you've hacked together. Why spend all your time worrying about memory management when the GC can do it better?

      This is all very much like the move from assembly to C: all the asm hackers clung on to the old way of doing things, convinced that there would always be a special case where they could write better code than a compiler. Well, 99.99% of the time they're wrong. Optimising compilers are awesomely clever. For the tiny few times they were write, do some inlining - sheesh! Equally, for the tiny amount of times the GC isn't the best way of doing things, write some unmanaged (AKA "unsafe") code and do your own damn memory management.

      Of course, as we all learnt the other day, a lot of people might not want you running your unsafe code on their box. They might force you to do it in managed code, and hang the performance benefit. This is where you learn that to your customers, security is more important than a performance hit - and the customer is right.
    2. Re:How could it be unbiased? by Obadusni · · Score: 1

      Your argument is unrelated. Automatic vs. manual memory management is an entirely different issue than virtual machines vs. native compiled code. It is possible to write a compiler for a language with manual memory management that compiles to a virtual machine just as it is possible to write a compiler that supports an implementation of garbage collection while creating native code. Garbage collection may provide minimal overhead for many software systems, but a virtual machine will always incur a significant performance penalty. This is just the nature of having to run interpreting code underneath the byte code of your program. In fairness, I can see the benefit in some cases of having a cross-platform "compiled" version of your software, but this comes with a price.

    3. Re:How could it be unbiased? by Anonymous Coward · · Score: 0

      Im a VB and VC++ developer and I have to say, Im not impressed one bit with .NET and the CLR. There simply is no good reason for me to want to run code on a slower "platform", as if Windows isnt slow enough at times. And the CLR (or even the JVM for that matter) is too limited in its abilities to seriously consider it for enterprise development. Java is already a has-been when it comes to serious development, and frankly, Im surprised that Microsoft would try to emulate that.

      What is with the "write and run anywhere" concept anyway? It fails every single time. I really wish they would give up on this. Someone ultimately bastardizes the language, and then its not pure anymore. Any perceived advantage is gone. Forget common runtime languages, stick with C or C++ - they aren't going away any time soon. C# will be around, but as now with Java, only 22-year old college grad students will care.

    4. Re:How could it be unbiased? by Tony-A · · Score: 2

      asm hackers ... convinced that there would always be a special case where they could write better code than a compiler
      Asm is not better than a compiler at doing things a compiler is good at. Asm is better than a compiler at doing things that a compiler cannot do. Try doing recursive coroutines in C. The compiler is a one-size-fits-all in a lot of respects. For memory management, try cases where allocated memory can move, grow or shrink dynamically and pointers stay pointing to what they are supposed to.

    5. Re:How could it be unbiased? by mestar · · Score: 2, Insightful

      A C programmer will say how poor the performance of VM's are and how limited they are.

      this might be true for other VM's. .NET classes are compiled to native code at installation time, or at the moment of first use (and saved as compiled).

      they are never interpreted.

    6. Re:How could it be unbiased? by Anonymous Coward · · Score: 0
      Garbage collection may provide minimal overhead for many software systems, but a virtual machine will always incur a significant performance penalty. This is just the nature of having to run interpreting code underneath the byte code of your program.
      NO. The CLR does NOT interpret code. It compiles it the first time it runs it, or you can precompile it. JIT compilation can produce better compiled code than precompiling, because the JITter can optimise code for the particular machine it's being run on.
    7. Re:How could it be unbiased? by Anonymous Coward · · Score: 0
      Asm is not better than a compiler at doing things a compiler is good at. Try doing recursive coroutines in C. The compiler is a one-size-fits-all in a lot of respects.
      Well done, you seem to have grasped my argument. Now read the bit where I point out that most of the time, you don't do these sort of fireworks, so you don't need asm. Occasionally you do, so you inline it. Easy. Compilers aren't the devil. Try telling that to people 30 years ago...now look at the "arguments" being presented against VMs. Unmanaged code is not better than a garbage-collected runtime at doing the things a garbage-collected runtime is good at doing, eg 99.99% of all memory management.

      For memory management, try cases where allocated memory can move, grow or shrink dynamically and pointers stay pointing to what they are supposed to.
      You mean, like what a mark-and-compact garbage collector does? ;-) Like I say, just mark this stuff as unsafe and fire away. Peasy.
    8. Re:How could it be unbiased? by Obadusni · · Score: 1
      JIT compilation can produce better compiled code than precompiling, because the JITter can optimise code for the particular machine it's being run on.

      Surely you don't mean to suggest that a compiler can't optimize code for the system for which you are compiling it?

    9. Re:How could it be unbiased? by AndersDahlberg · · Score: 1

      blah, blah interpreteded, blah blah blah You should really try to investigate *what* makes a program fast - no, native compiling everything doesn't make something faster often quiet the opposite actually. And the .NET vm is actually more interpreted than most people know (for example do a google groups search on what eric gunnarson has to say about the subjet at comp.lang.java.advocasy - he wrote a c# book and is working on .NET project...)

  18. The thing the author forgets....... by MrBandersnatch · · Score: 1

    is that .Net's component languages are primarily BUSINESS languages for putting together BUSINESS applications...and for their primary purpose they are going to have HUGE benefits. VB programmers WILL be able to deal with C# and vice-versa, the languages are so simplified that their should be fewer bugs and productivity should be increased. Does ANYONE REALLY like multiple inheritance or use it frequently? (yes I know!!)

    I pray that universities/ colleges etc DON'T teach C# as their language of choice though - it is totally inappropriate for many projects and that is part of the skill that we acquire as developers - right tool right job. A broad view is very important.

    1. Re:The thing the author forgets....... by wadetemp · · Score: 2

      A broad view is very important.

      All languages are totally inappropriate for many projects. Your point should not be that C# is an inappropriate language of choice, but that any language is. A broad view would teach many languages, and since business applications ARE what most developers end up doing, there is no reason that C# shouldn't be one (if not the) language to be taught as that part of the broad view.

    2. Re:The thing the author forgets....... by Anonymous Coward · · Score: 0

      I happen to like microsofts componentized model better than I like the sometimes rediculously deep (and rediculously complicated) multiple inheritance trees folks like to claim they need. The fact is multi-inheritance means that when you pass away and someone else has to handle your project they might as well shoot themselves.

    3. Re:The thing the author forgets....... by the+eric+conspiracy · · Score: 2

      Does ANYONE REALLY like multiple inheritance or use it frequently?

      Inheritance has been shown to be troublesome if overused.

      But if you are going to have OOP, it is hard to avoid, and any OOP language that doesn't support it is limited because of a decison the language designer, not the programmer is making.

    4. Re:The thing the author forgets....... by Ybrog · · Score: 1
      I disagree. I like the fact that most places still use C++ in some of their courses. Programming in C or C++ has more pitfalls, in my opinion than Java, or .NET if I understand correctly.

      What I'm saying is I like potential future programmers to learn off something that isn't simplified down to a level that the E*trade chimp should be able to understand.

      That being said, teach it if you think it's worthwhile, just make sure you show there are alternative languages.

      --

      bleh

    5. Re:The thing the author forgets....... by Anonymous Coward · · Score: 0

      MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance. MULTIPLE inheritance.

      Read the question before you answer it - didn't they teach you exam technique at school? Multiple inheritance is a bag of weasels: tricky, painful and unnecessary in software development (before you say that's not true, name one software system that has to use a bag of weasels). Any OOP language that supports multiple inheritance forces its developers to spend all their time chasing horrendous bugs down because of a decision the language designer, not the programmer, is making.

  19. Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 5, Insightful

    This point has been made before, but it bears repeating. C# and the CLI (Common Language Infrastructure) are ECMA standards! As such Microsoft no longer truly controls them. There is nothing to keep Microsoft from 'embracing and extending' these standards if they do not like the direction they are going. Just as they can with any open standard. Just as you can with any open standard.

    MS tried the embrace and extend strategy with Java, remember? And they ran into a huge roadblock. Namely Java is not an open standard. Despite what Sun says in the press releases the standard is not open in the same sense. Sun controls it and Sun can shut down any attempt to create a non-conforming version.

    From some points of view this is a good thing. But, although I appreciate any argument that starts with 'We need to avoid incompatible versions.' I also know that Sun has not proven any better than Microsoft as a steward when it comes to keeping the commons clean and competitive. To put it simply; I just don't trust them. And I think there is an equally persuasive argument that competing products evolve faster while products without competition tend towards stagnation. This eco-system analogy appeals to me.

    From this point of view let us return to 'embrace and extend'. In a closed standard a single organization controls all progress for that standard, with limited participation from the outside. In an open standard the process is, at least titually, open to outside input and you are more likely to see third-party enhancements absorbed into the standard itself. Furthermore no corporation is going to sue you if you create your own implementation of the standard. Even if it is tweaked to work best on a competing platform. (Can we all say 'Mono'?)

    So, the way I look at it, C# and the CLI will drive Sun to improve Java. Third-party implementors will drive the C# and CLI specifications faster than MS would alone. In the end we get better technology. I like better technology. So I win either way.

    Besides, I like the design of the CLI a lot. And C# looks like an arguably better language than Java.

    Finally, many arguments in the 'One Runtime' article seem a bit weak to me. For example, "... Design-by-Contract, a fundamental strength of Eiffel that .NET does not support." Since when does 'Design By Contract' have to be baked into the underlying runtime to make it work? What is keeping you from implementing any kind of runtime you want on top of the CLS?

    Jack William Bell, who likes the idea of coding with mix-n-match programming languages.

    --
    - -
    Are you an SF Fan? Are you a Tru-Fan?
    1. Re:Closed standard? Open Standard? I pick door #2 by JordanH · · Score: 2
      • There is nothing to keep Microsoft from 'embracing and extending' these standards if they do not like the direction they are going. Just as they can with any open standard. Just as you can with any open standard.

      Yes, but from a practical standpoint, if Microsoft decides to take the products in a direction away from the Open Standard version, then the Open Standard version will immediately become irrelevant.

      Which, come to think of it, was exactly what they intended to do with Java. Make the Sun version irrelevant.

    2. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0

      Yes, people keep forgetting that sun (despite press releases) likes to ignore the fact that Java is not a true standard open standard. And Sun has not been that honest with their promises in the past either. And their hardware costs so much money it is only thanks to a competitive market that some of us have escaped their shackles.

      To the folks crying about embrace and extend tactics on Microsofts part, these tactics would have to be huge to make it so folks who code C# on windows couldn't code on Linux. I mean, do these fools think Microsoft is going to throw out an entire language they just created so folks can't cross program? What's more likely is that they'll add little windows specific features, but Linux still has a win with the programmers who can easily come over to the linux side of things.

      Microsoft deserves props on this one, especially the ECMA submission. We can condem them later if they blow it, but it's like the cops throwing you in jail because they think you'll commit a crime. The BS I hear from java zealots is rediculous.

    3. Re:Closed standard? Open Standard? I pick door #2 by nagora · · Score: 2, Interesting
      This point has been made before, but it bears repeating. only tiny parts of C# and the CLI (Common Language Infrastructure) are ECMA standards. Those standards are of no relevence in the real world due to their high level of incompletness and the very high degree of power that MS has amongst developers on the dominant platform.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    4. Re:Closed standard? Open Standard? I pick door #2 by the+eric+conspiracy · · Score: 2, Redundant

      MS tried the embrace and extend strategy with Java, remember? And they ran into a huge roadblock. Namely Java is not an open standard . Despite what Sun says in the press releases the standard is not open in the same sense. Sun controls it and Sun can shut down any attempt to create a non-conforming version.

      Java is controlled through the trademark, not the language standard. Microsoft is free to embrace and extend Java all they want (and the have in fact with C# and J#). What Microsoft cannot do is call their variant Java.

      Jack William Bell, who likes the idea of coding with mix-n-match programming languages.

      As somewone who has to maintain code from time to time, the idea horrifies me.

    5. Re:Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 2

      Yes, but from a practical standpoint, if Microsoft decides to take the products in a direction away from the Open Standard version, then the Open Standard version will immediately become irrelevant.

      Which, come to think of it, was exactly what they intended to do with Java. Make the Sun version irrelevant.

      Why? Apply that same question to Unix. Is Unix irrelevant because AT&T created a closed version of it? Or, for that matter, any number of other closed versions from any number of vendors? Or, even, an Open Source version? There is a common thread through all of those versions of Unix: Posix -- which is an open standard. Non-Posix implementations did not succeed in the long run no matter who created them.

      Look, I don't trust MS either. And yes, they did try to hijack the Java standard. They did it by providing enhancements to the Java standard that were compelling enough that people used them. Sun had two choices; absorb the enhancements into the standard or take their ball and go home. They chose the latter.

      So who was the winner in that little spat? MS? Sun? We programmers? I would call it losers all around.

      With an open standard at least you know there is a chance some third-party enhancement that survives in the marketplace because people want to use it will get into the standard. And MS can only extend the standard with their own proprietary enhancements. They have limited control the standard as it exists now and (with the exception of patented stuff) cannot keep us from adding the enhancements to the standard if we like them.

      Jack William Bell

      --
      - -
      Are you an SF Fan? Are you a Tru-Fan?
    6. Re:Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 2
      This point has been made before, but it bears repeating. only tiny parts of C# and the CLI (Common Language Infrastructure) are ECMA standards. Those standards are of no relevence in the real world due to their high level of incompletness and the very high degree of power that MS has amongst developers on the dominant platform.

      Can you back that up with details? So far as I know all of the C# standard is open, all of the CLI standard is open and the all (or at least the most significant) non-platfrom specific libraries of the CLS are open.

      Jack William Bell

      --
      - -
      Are you an SF Fan? Are you a Tru-Fan?
    7. Re:Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 2
      Java is controlled through the trademark, not the language standard. Microsoft is free to embrace and extend Java all they want (and the have in fact with C# and J#). What Microsoft cannot do is call their variant Java.

      Valid point, but doesn't it cut both ways?


      Jack William Bell, who likes the idea of coding with mix-n-match programming languages.


      As somewone who has to maintain code from time to time, the idea horrifies me.

      As do I. And I already have to deal with multiple languges, backends, frontends, extension libraries, coding styles, naming standards and everything else under the sun. At least with the CLI I know that I have a better chance of things interoperating. Besides some languages do map to a particular problem space better than another. And I can split work up between expert coders (with C#) and less skilled coders (with VB or Python).


      Jack William Bell, who notes that the only responses posted so far supporting his stance come from Anonymous Cowards...

      --
      - -
      Are you an SF Fan? Are you a Tru-Fan?
    8. Re:Closed standard? Open Standard? I pick door #2 by kaisyain · · Score: 2

      Just because they are ECMA standards doesn't mean MS can't "embrace and extend" them should they choose to. It just means that their extended version won't be the "ECMA" version. Microsoft doesn't control the IETF Kerberos specification but that didn't keep them from embracing and extending it.

    9. Re:Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 2
      Just because they are ECMA standards doesn't mean MS can't "embrace and extend" them should they choose to. It just means that their extended version won't be the "ECMA" version. Microsoft doesn't control the IETF Kerberos specification but that didn't keep them from embracing and extending it.

      Actually that was exactly my point! MS can do exactly that. But if they do there is nothing (except patents) to keep ECMA from adding those enhancements to the standard if the enhancements really do provide something worthwhile.

      Patents are a problem here, no way around that. But they are a problem everywhere! ECMA can always argue that an enhancement that cannot be reproduced is enough to keep the implementation from being called 'C#' or whatever. I don't think this is likely though. I am sure MS is a major financial contributor to ECMA for one thing.

      In any case I consider this ability of MS (or anyone else) to embrace and extend a good thing. At least so long as we can pick and choose, in the marketplace of ideas, those enhancements we think add value then we will continually improve the standard. As has been pointed out you can do this with Java too -- but you cannot call it Java. In the case of an open standard like C# you can still call it C# and make some claim of being part of the C# idea-space. That is vital to the evoloution of an open standard. If the MS extensions to Kerebos are something people like you and me want to use then they should be added to Kerebos. Simple as that (patents aside).

      Jack William Bell, who thinks that (generally) software patents are evil.

      --
      - -
      Are you an SF Fan? Are you a Tru-Fan?
    10. Re:Closed standard? Open Standard? I pick door #2 by TheAJofOZ · · Score: 2
      At least so long as we can pick and choose, in the marketplace of ideas....

      Nice to know that with a convicted monopolist inventing the technology you will always be able to pick and choose between competitors isn't it...... Oh wait, there are no reasonable competitors to MS as ruled by a court of law.

      Finally, you're arguments for embrace and extend apply just as much to Java as they do to C# - you can embrace and extend but if the owner of the trademark doesn't approve you have to rename it. Java is an open standard, go to http://java.sun.com and grab a copy of the *full* specification if you desire as well as specifications for new additions that are under review. If you think that standards only work when they come from non-profit standards organisations then perhaps you should look at the mess that is HTML these days and rethink how well international standards work.

      If your only argument for C# is that it's open I think you a) have no clue about how to decide upon an appropriate programming language and b) are sorely mistaken about what is open and how useful it works.

    11. Re:Closed standard? Open Standard? I pick door #2 by Bodrius · · Score: 2

      Look, I don't trust MS either. And yes, they did try to hijack the Java standard. They did it by providing enhancements to the Java standard that were compelling enough that people used them. Sun had two choices; absorb the enhancements into the standard or take their ball and go home. They chose the latter.

      They also did it by providing a buggy implementation of the Java 1.0/1.1 classes that made it impossible to run, say, an applet in their JVM just like it would run in the standard implementations.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
    12. Re:Closed standard? Open Standard? I pick door #2 by Deluge · · Score: 2

      "With an open standard at least you know there is a chance some third-party enhancement that survives in the marketplace because people want to use it will get into the standard. And MS can only extend the standard with their own proprietary enhancements. They have limited control the standard as it exists now and (with the exception of patented stuff) cannot keep us from adding the enhancements to the standard if we like them."

      Perhaps this is MS learning from Sun's mistakes. Even though Java is successful in certain applications, it would most likely be used for a wider range of applications if Sun hadn't been so harsh in keeping absolute control of their standard.

      Microsoft must know by now that good things come from the programming community, therefore having the community suggest (and even implement) useful enhancements to their standard only helps them gain popularity.

    13. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0

      Third-party implementors will drive the C# and CLI specifications faster than MS would alone.

      I disagree strongly.

      Look at what happened with OpenGL and DirectX. MS kept DirectX inhouse and has released 8 versions so far, keeping the API on the cutting edge of support for all the new graphics cards. OpenGL has languished with no updates because it's an open standard, and designed by committee.

      In addition, look at Visual Studio. It's one of MS' best products, and has evolved really nicely. A big reason is that it's used inhouse to do development at MS, so they get lots of feedback and incorporate it fast. A language used inhouse will go through the same cycle.

      You have to give MS credit for one thing, and that's getting things done quickly.

      My mother tells a story about religious orders in the turmoil of the '60s. The orders that were truly democratic in design had lots of committees, and while it was progressive in itself, it took a long time for changes to be ratified. Orders that were far more hierarchical in design, while appearing to be old-fashioned and non-democratic, ended up changing much quicker. One order from the top, and everyone was put into action!

      I'm just a little cynical about people who still think that MS are somehow slower than the rest of the world. I think they're still amazingly fast. .NET is only just coming out now, but it has been in internal development for quite a while. Don't forget that!

    14. Re:Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 2
      Finally, you're arguments for embrace and extend apply just as much to Java as they do to C# - you can embrace and extend but if the owner of the trademark doesn't approve you have to rename it. Java is an open standard, go to http://java.sun.com and grab a copy of the *full* specification if you desire as well as specifications for new additions that are under review. If you think that standards only work when they come from non-profit standards organisations then perhaps you should look at the mess that is HTML these days and rethink how well international standards work.

      Given time I can come up with several examples, but lets go with one here: Basic is an open standard with lots of (varied) implementations. PICK is a language (among other things) that ended up looking rather like Basic after several evolutionary changes. Why did PICK evolve towards Basic? PICK was arguably better on several levels. But it was a closed, proprietary standard.

      If you created your own version of PICK you couldn't call it PICK and you could not participate in the mind-share generated by PICK. But anyone (including Bill Gates) could create a version of Basic and call it 'Basic'. As a result everyone knew what it was. It was part of the idea space for Basic, even if it wasn't exactly a kosher 'Basic'. So Basic, despite being technically less powerful, ended up owning the most mind-share. In the marketplace of ideas it became something that was traded at a higher level. PICK could only keep up by following, because its mind-share was smaller.

      Make no mistake; mind-share is important. Sun knows this. Microsoft knows this. There is no way Microsoft would be playing the game the way they are if they were not playing catch-up. In this case the real winners are the programmers of five years from now when idea convergence and the natural workings of the marketplace of ideas create a better technology.

      If your only argument for C# is that it's open I think you a) have no clue about how to decide upon an appropriate programming language and b) are sorely mistaken about what is open and how useful it works.

      First rule of civil debate: Attack the message, not the messenger. Personally I believe that I am fully capable of making such distinctions by using a rich and approprite set of heuristic comparisons which I need not detail here. Can you accept that and choose to disagree with me solely on the basis of my ideas and opinions? If so then you are trading in that 'marketplace of ideas' I keep blathering about. Otherwise you are only trading in insult and antipathy. I have nothing to offer in exchange there.

      Jack William Bell

      --
      - -
      Are you an SF Fan? Are you a Tru-Fan?
    15. Re:Closed standard? Open Standard? I pick door #2 by Jack+William+Bell · · Score: 2
      Microsoft must know by now that good things come from the programming community, therefore having the community suggest (and even implement) useful enhancements to their standard only helps them gain popularity.

      Hurray! Someone that understands my point and can make it more clear and concise than I can!

      Jack William Bell, who thinks that we need to keep a gimlet eye on Microsoft anyway.

      --
      - -
      Are you an SF Fan? Are you a Tru-Fan?
    16. Re:Closed standard? Open Standard? I pick door #2 by JordanH · · Score: 1
      • Yes, but from a practical standpoint, if Microsoft decides to take the products in a direction away from the Open Standard version, then the Open Standard version will immediately become irrelevant.
      • Which, come to think of it, was exactly what they intended to do with Java. Make the Sun version irrelevant.

        • Why? Apply that same question to Unix. Is Unix irrelevant because AT&T created a closed version of it? Or, for that matter, any number of other closed versions from any number of vendors? Or, even, an Open Source version? There is a common thread through all of those versions of Unix: Posix -- which is an open standard.

      A completely ridiculous comparison. First off, when AT&T created the closed version of it, POSIX didn't exist at all. So, the comparison kinda falls flat. AT&T never tried to "embrace and extend" Unix away from competitors who were sticking to strict POSIX compliance.

      In any case, AFAICT, POSIX is mostly irrelevant as a unifying standard. It's mostly a marketing buzzword. Most serious software, and all the commercial software I've ever been involved with, has not been written to strict POSIX compliance. Sure, lots of software may use POSIX standard interfaces, but that's only because those interfaces were actually drawn from existing interfaces in Unix software.

      I do think that it's probably a good idea to stick to POSIX compliance, but that's just not the real world. In the real world, people use whatever API that makes sense to get a version out the door with the most features and that often means ditching POSIX for some vendor-supplied API.

      The whole point of Java and what MS would have you believe is one of the points of C# and related standards is write once, run anywhere. This has never existed in any serious way with Unix APIs.

      Now, back to the point I was trying to make. If MS saw that they had serious competition from Mono or other .NET implementations, then they'd just make their own V2 incompatible and immediately make those other implementations irrelevant.

      Which, as I said above, is exactly what they wanted to do with their own incompatible version of Java.

    17. Re:Closed standard? Open Standard? I pick door #2 by TheAJofOZ · · Score: 2
      Given time I can come up with several examples, but lets go with one here: Basic is an open standard with lots of (varied) implementations. PICK is a language (among other things) that ended up looking rather like Basic after several evolutionary changes. Why did PICK evolve towards Basic? PICK was arguably better on several levels. But it was a closed, proprietary standard.

      BASIC never tried to provide cross-platform compatibility (in some cases it achieved it at the source level, but it was not the intention). Java and C# attempt to provide cross-platform compatibility so having a coherent standard instead of a great array of similar but different implentations is very important. Take the example I gave earlier of HTML - try to create a web site that looks the same in every browser and you will not be able to use anything but very basic HTML and this is with the benefit of an international standard.

      By supporting embrace and extend you are supporting not following standards and yet your argument centres around the fact that C# is a standard. What is not included in a standard is just as important as what is in it - again look at HTML, Explorer started supporting invalid HTML and it has lead to an absolute mess. Same thing with BASIC in fact. Try programming in BASIC on a Commodore 64 and on a BBC Microcomputer and you will find that they are in fact quite different languages.

      In this case the real winners are the programmers of five years from now when idea convergence and the natural workings of the marketplace of ideas create a better technology.

      But will it actually create better technology or will it just fragment better technology between many different incompatible standards? What benefit is a cross-platform language that works differently in every implementation?

      First rule of civil debate: Attack the message, not the messenger. Personally I believe that I am fully capable of making such distinctions by using a rich and approprite set of heuristic comparisons which I need not detail here. Can you accept that and choose to disagree with me solely on the basis of my ideas and opinions? If so then you are trading in that 'marketplace of ideas' I keep blathering about. Otherwise you are only trading in insult and antipathy. I have nothing to offer in exchange there

      Second rule of civil debate: look for meaning not just words. Read this carefully: if your only argument for C# is that it's open and you believe that it is a better option than Java then you are obviously not capable of making an informed decision as to the merit of the programming language because if I were to create an open language that wasn't even Turing complete, your argument would show that it was better than Java when this is clearly not the case. In other words, you message is flawed - C# is not better than Java because it is open - it may or may not be better depending on what features it provides and what you are aiming to achieve.

      Also (referring to part b), if you feel that Java is less open than C# then you are also mistaken as both C# and Java have publicly available specifications (Java definitely for the entire system and I will assume so for C# but note other messages stating that it is not the full spec) then I will challenge you to produce a programming language which is incompatible with C#, publicise it widely and see how long before you have a trademark infringement case (or some other legal argument) brought against you. Java is just as open as C# only that in once case the specification is reviewed by a community based organisation and the other by the EMCA. You were aware that Java is controlled by a board of people who include community members as well as Sun (and Sun does not have a controlling stake in the board) right? You were aware that you can licence the Java HotSpot engine (an actual implementation not just a specification) on the condition that you agree to some NDA agreements and that you will fold improvements back into Sun's version right?

      If you want to see embrace and extend working in Java, check out what Apple is doing with Java and then take note of the fact that those improvements are being folded back into the main distribution to keep everything compatible. With C# there is no obligation that improvements be folded back into the original so you wind up with a bunch of incompatible versions and that definitely does not benefit developers or end users.

    18. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0

      "We can condem them later if they blow it, but it's like the cops throwing you in jail because they think you'll commit a crime."

      MS HAS BEEN CONVICTED OF A CRIME.

      This is more like the cops calling for someone to be locked up IMMEDIATELY as opposed to years from now because they're continuing to do something that they're in the process of being convicted of.

    19. Re:Closed standard? Open Standard? I pick door #2 by GrayArea · · Score: 2

      See my previous post on this. Basically, the standard was crippled from the start.

      This is not only because the ECMA standard libraries are incomplete; they are incomplete in nasty ways, like implemented interfaces, methods and properties missing from classes. The libraries are incomplete in a Swiss cheese sort of way, instead of being cleanly separated into a standardized core and extensions. Add to this the fact that there is no way to know what you write is ECMA standard compatible (API docs have absolutely no reference to the standard), and it's clear to me that Sun and Java have done a better job than most people give them credit for as far as standards compliance goes, even when those standards do not have the approval stamp of an international standards organization.

      --
      "The deluded are always filled with absolutes. The rest of us have to live with ambiguity." - Aristoi, Walter Jon Willia
    20. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0
      Second rule of civil debate: look for meaning not just words. Read this carefully: if your only argument for C# is that it's open...

      He never said any such thing. You were acting like an ass and he called you on it. Shut the fuck up now.

    21. Re:Closed standard? Open Standard? I pick door #2 by 10am-bedtime · · Score: 1

      nothing stops coders from coding,
      or microsoft craftily boding.
      its one bizmodel, like mushrooms and fungus,
      is bad (godawful) -- keeps the code from among us.
      resyntax recomp,
      redebug rewhomp,
      sounds of industry grinding the soylent green.
      sounds of a bigger badder stupider machine.

      half my life gone now, at least now i eat less.

      [as told to me by a little bird]

    22. Re:Closed standard? Open Standard? I pick door #2 by Tony-A · · Score: 2

      So far as I know
      That's the problem. What you know of it is that part that is open. It would be bucking historical precedent if the open standard were what Microsoft would actually use for themselves. Unless it can be demonstrated that all of Microsoft uses only what is in the open standard, then it has to be assumed that Microsoft is hiding stuff.

    23. Re:Closed standard? Open Standard? I pick door #2 by ClosedSource · · Score: 1

      "Which, come to think of it, was exactly what they intended to do with Java. Make the Sun version irrelevant."

      Actually, I think MS's intentions for Java were simpler and more practical. They thought they could make money by offering a Java tool that was more attractive to Windows programmers than the existing tools. They also figured out that with some changes Java would be a great language to use with COM.

      I don't buy the argument that they tried to trick Windows programmers into using J++ extentions only to find out later that the application wouldn't run on multiple platforms. First, I don't think most Windows programmers are very interested in platform-independent code given Windows large share of the market. Second, most programmers would run some tests early in the development process to verify platform-independence if that were a goal.

      The real choice for most Windows programmers was between using MS's extended Java or no Java at all. Sun took away the first option, so now it's no Java at all. .Net fills the void left by Sun.

    24. Re:Closed standard? Open Standard? I pick door #2 by markj02 · · Score: 2

      C#/.NET is not an open standard either. Microsoft only standardized a small part of C#/.NET, and their actual implementation will be that small, standard core with a vast number of extensions. That means that Microsoft's implementation is the de-facto, proprietary standard, with ECMA being nothing more than a fig leaf.

    25. Re:Closed standard? Open Standard? I pick door #2 by Pengo · · Score: 2

      I disagree. I think that if MS moves the target, the greatest common denominator will become more relevant.

      Ie. When programming in Python, on OSX I can use all the spiffy Carbon libs that are there and make my experience on the mac better, but if I write in TCL/TK .. I know that I will reach a broader audiance.

      Besides.. if these 'magick' enhancements are necessary, they will be adapted.. it's not overly complicated to write most system functionality yourself (ie. a group)... My first MAJOR java project I found myself doing a lot of that anyway, just not knowing that what I needed was already written and in the libs.

      Cheers

    26. Re:Closed standard? Open Standard? I pick door #2 by morissm · · Score: 1
      While, in theory, you concerns about Sun's control of the different Java standards seem justified, in practice, Sun has proved to be very decent about how they handle their standards. In fact, as I will exlpain later, Java's success is now more and more tied to open source implementations.

      Firstly, Sun is serious about cross-platform compatibility. They helped IBM, SGI and many others in developing a VM for their architecture and they did not cripple their competitors by providing fuzzy standards or by ignoring them as partners. They didn't even require VM implementors to fork off huge amounts of cash for a chance to look at Sun's implementation (case in point: Blackdown's Linux VM). Now, I will admit that Sun's licensing is in no way as open as it could be but it seems to me that Sun's attitude is more open than Microsoft's and that they deserve a little more credit than you give them (Isn't Sun's JDK now open source?).

      Secondly, the problem with Microsoft's standard is not the CLR but the libraries. Let's face the facts here: what prevents people from writing their own implementation of a Java VM or a VB interpreter is not the core language. It is duplicating the library specification. It is much easier to write a new Java VM than to recreate all the standard Java libraries with all their idiosyncracies from a fuzzy standard and an inability to look at the source. The same argument applies to every Microsoft API.

      However, in Java's case these are only a few libraries. What makes Java such a strong language is its HUGE enterprise API. It is JNDI, JDBC, EJB, Servlets, JSP, DOM, SAX, etc. However, unlike Swing and the other base APIs, these enterprise APIs have open reference implementations! These standards are actually standards, not just a description of the de facto implentation because there is not de facto implementation. This means that Sun cannot lock you in their implementation and so you have a real choice.

      With .NET, if you want to do XML, you have to use the Microsoft implementation. With Sun, you choose a SAX or DOM provider (open source, closed source, whatever implementation suits you). With Microsoft, if you want to develop a web application, you have to use Microsoft's implementation of ASP. With Java, you can choose Tomcat, Jetty, Weblogic. The ability to make that choice is very important because it gives you the ability to choose you implentation based on criterias such as free (as in beer or speech), scalable, business supported, etc.

      This essentially means that the most important part of Java (its libraries) can be and mostly is open source. Sun already relies a lot on open source projects for Java (Ant, Tomcat, Crimson, Xalan, to name a few). This is good news for the open source community because it means that Java's success is more and more tied to open source implementations.

      So, to summarize, I believe Java is in fact a much more open language than .NET. I would even go so far as to say that for an Enterprise developer (what .NET is all about), Java is almost open source. To me, this, combined with TRUE cross-platform compatibility (you will forgive me if I doubt Mono's chances) makes Java a much more attractive alternative.

    27. Re:Closed standard? Open Standard? I pick door #2 by rseuhs · · Score: 2
      This point has been made before, but it bears repeating. C# [www.ecma.ch] and the CLI (Common Language Infrastructure) [www.ecma.ch] are ECMA [www.ecma.ch] standards! As such Microsoft no longer truly controls them.

      Oh yeah, sure. Committing less than 10% of the base classes to ECMA means "it's a standard" and out of control of Microsoft.

      Sometimes I ask myself if people like you really believe Microsoft marketing or spread it on purpose just to hype their stock.

      Anyway:

      There is nothing to keep Microsoft from 'embracing and extending' these standards if they do not like the direction they are going.

      They don't have to do that. Since only a tiny part of .NET and C# is standardized, IT'S ALREADY DONE.

      For all practical purposes, .NET is just the next Win32-API, not much more, not much less.

    28. Re:Closed standard? Open Standard? I pick door #2 by nagora · · Score: 1
      By the time I had hunted down the details GrayArea had posted a very full reply, so read that instead!

      Even if the material was all "open" the position MS has in the market place means that they have little to worry about if the standard is messed with by another organisation (they just ignore it) or by themselves (their customers/MSDN programmers simply have to take it and ask for more, please, sir) so the reality of such a standard is that it is only binding on everyone else.

      This is just a fact of life, and is not in itself sinister. What makes it sinister is MS's track record, which speaks for itself. IE6 still can't display .png or CSS level 2, for example, dispite claims to the contrary, while supporting, and pushing, various non-standard extensions to both HTML and CSS.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    29. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0

      >>> IE6 still can't display ... CSS level 2, for example, dispite claims to the contrary

      So what? Neither can, say, Mozilla - does that prove that Open Source is bad because it doesn't support standards?

    30. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0
      Jack William Bell, who notes that the only responses posted so far supporting his stance come from Anonymous Cowards...
      Of course! I'm far more interested in being technically correct than having to modify what I'm going to say to fit in with the political beliefs of the moderators. AC is the only way I can do this while still having my posts semi-visible (default 0 score, as opposed to the -1 I'd pick up while correcting some of the more ... interesting ... orthodoxies here)
    31. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0
      Java is an open standard, go to http://java.sun.com and grab a copy of the *full* specification if you desire as well as specifications for new additions that are under review.
      Hahahahahahahahahahahahaha hahahahaha hahahahaha hahahahahahahaha hahahahahahaha

      ... draw breath ...

      Hahahahahahahahahahahahaha!! Hahahahaha!!!! Hahahahaha!!!!!! Hahahahahahahaha..hahahahahahaha...hahaha...ha

      Thanks for the shits & giggles, bucko. I just *love* those open standards that are entirely controlled by a monopolistic and predatory company (e.g. Java). Dont you just hate it when a company perceived in the popular imagination as monopolistic and predatory comes along and submits its technology to a truly open and independant standards body and points up quite how bad your overlords and masters at Sun are?
    32. Re:Closed standard? Open Standard? I pick door #2 by nagora · · Score: 1
      So what? Neither can, say, Mozilla - does that prove that Open Source is bad because it doesn't support standards?

      Mozilla is bad because it's a load of shite, open source or not, and the point is what do they claim?

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    33. Re:Closed standard? Open Standard? I pick door #2 by Anonymous Coward · · Score: 0
      Mozilla is bad because it's a load of shite, open source or not, and the point is what do they claim?
      They claim that it's a web browser. Pretty awful marketing BS there, I'd say.
    34. Re:Closed standard? Open Standard? I pick door #2 by nagora · · Score: 1
      They claim that it's a web browser. Pretty awful marketing BS there, I'd say.

      Oh ha, ha. W3M is a web browser and so is Lynx but neither claims to support CSS.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    35. Re:Closed standard? Open Standard? I pick door #2 by tricorn · · Score: 1

      But anyone (including Bill Gates) could create a version of Basic and call it 'Basic'. As a result everyone knew what it was. It was part of the idea space for Basic, even if it wasn't exactly a kosher 'Basic'. So Basic, despite being technically less powerful, ended up owning the most mind-share.

      Excellent idea! Sun should just rename Java to Basic (maybe call it J-Basic), and all those VB programmers will start using it. After all, VB is no more BASIC than Java is (everyone knows that BASIC has line numbers; truly advanced BASIC lets you RENumber your program, too bad Applesoft never did, I'm sure that's why it isn't a mainstream version of BASIC these days).

  20. Very nice article. by DaveWood · · Score: 5, Interesting

    What a pleasure to see such a balanced, well-written and thorough analysis of the situation. I didn't see any great evidence of Java "advocacy" - this person appears extremely well-versed in langauge design and familiar with a good variety of languages, as well as more than willing to point out Java's flaws.

    The author is saying pretty much what I figured, which is that .NET is much better than what MS has been doing in the past, however it's still just a sugared-up clone of J2EE, whose "cross-langauge" benefits are ultimately dubious and primarily a marketing invention.

    I would also make the case that "unsafe" mode/pointer arithmetic is a flaw, but that's not the matter at hand. The high point of the article were these two paragraphs in the conclusion:

    "Playing with the .NET SDK, the cross-language support looks impressive, but the illusion holds true only until realizing that all languages in the mix are virtually identical. Microsoft has actually invented the concept of skinnable language: changing a language's most superficial aspects, and claiming the result to be a new language. There is only One True Language that is C#, and "skins" offered by Microsoft and third parties. Just like in GUIs, these skins will alter the system's look and feel, add a few features, but never compete with a fully new toolkit."

    For those quick to make an ignorant response, he's not saying more radical structural departures are impossible, though many are - but more often that diverging "client languages" suffer in performance and, in many cases, have been "embraced and extended" in order to become compatible. He goes on:

    "There are, actually, many successful "common language runtimes", with names like Pentium, SPARC and others. Mainstream CPUs are equally fitted to very different languages as they only do the most fundamental, low-level operations, so they cannot be biased towards particular languages. There aren't many different ways to perform a conditional branch. However, there are radically different ways to support methods and functions, or most constructs found in high-level languages. The consequence is that every language needs different compilers and runtimes to implement their features, and different libraries to support their vision of software development."

    1. Re:Very nice article. by wadetemp · · Score: 4, Insightful

      The second paragraph from the article you posted states that "mainstream CPUs are equally fitted to very different languages as they only do the most fundamental, low-level operations, so they cannot be biased towards particular languages." If you agree with that statement, and think it's a crux in the arguement, I'm not sure how you can say you don't agree with the inclusion of "unsafe" modes in the .NET framework. They're part of what makes the framework flexible enough to even come close to supporting "non skinned" languages, and in a speedy method at that.

    2. Re:Very nice article. by DaveWood · · Score: 2

      It's a question of role. "Unsafe" code, lagnauges, and systems are necessary at a variety of levels in general purpose computing. That doesn't mean they're a good idea for .NET, which I take to be "high-level," "distributed" and "enterprise" computing platform, and one with pretensions to a modern, practical and durable security model...

    3. Re:Very nice article. by wadetemp · · Score: 2

      It's important to note that VB.NET does not support pointers and the "unsafe" modes of operation that were discussed in the Slashdot article yesterday. The model that protects business programmers from themselves and ensures the security of *that particular aspect* of the seciruty model is not in the framework itself but this so-called "skinning." The icing on the cake is that the framework itself (which has nothing to do with that aspect of security, but rather code-locale and permission-based security) allows these things for more advanced languages than VB (like C#.)

    4. Re:Very nice article. by DaveWood · · Score: 2

      Yeah, I was aware of that.

      I hope I'm not beating this to death, but you're touching on exactly what I would say the flaw is. Pointer arithmetic has a number of potential uses, but its primary advantage is speed, and you shouldn't be writing hot code in the CLR any more than you should be doing it in the JVM.

      The problem as I see it, in case I didn't make it clear, is that the guarantees you get from shutting out pointer-level code are important - both to the developer and to the system as a whole - and the gains are negligble. I await a conclusive judgement on this, but as far as I can tell, unsafe code renders useless the higher-level and "java-like" security mechanisms of the system.

      Since it's possible to be unsafe, people will, and then "safety fatigue" will effectively remove this protection altogether. The more easily the pieces fit together, the more rapidly it will happen, and the bigger the false sense of security.

    5. Re:Very nice article. by Tony-A · · Score: 2

      There are two fundamentally different ways to perform a conditional branch. A and B are 7FFF and 8000 respectively. If A and B are unsigned, B is 1 larger than A. If A and B are signed, then B is much smaller than A. The conditional branch is done with two instructions, a compare and branch-on-condition. The difference is whether the compare or the branch instruction is the one that knows about unsigned. Since these two instructions can be in different modules, the abstract languages supportable are different. Also only one form allows for raising an exception on overflow.
      The constructs in "high-level" languages are much more complicated. Most can't do coroutines or return functions.

    6. Re:Very nice article. by Anonymous Coward · · Score: 0

      >>> Since it's possible to be unsafe, people will, and then "safety fatigue" will effectively remove this protection altogether.

      Pure BS. No admin in any company will ever allow third party unsafe code to run on his machines. If you turn up with a system to sell that's nice, but you've got to turn off security, you'll be shown the door. For example, most corporates will open outgoing ports 80 and 443, and about jack squat else. Your app need port 8063? Oops, go away and rewrite it to tunnel over HTTP. Can't do that? No sale. This happens now, every day. Why is it going to magically stop happening? It isn't.

    7. Re:Very nice article. by DaveWood · · Score: 2

      I don't think so. Not if something essential requires unsafe privileges to run. Or if a hundred things do.

      Of course, maybe nothing will - but then the feature would be effectively ignored - because it's a bad feature, yes?

      So which is it? Are you wrong? or are you wrong?

  21. You don't get it by spasmatik · · Score: 1

    the point is not use multi languages on one project but across many different projects. i know where i work there are many different programming groups who use different languages. they write a library in vb that we, a C# team, can use no problem.

  22. Let's Play Devil's Advocate by Eric+Damron · · Score: 2, Interesting

    I'm no Microsoft fan but .NET is not as bad as the author makes it out to be.
    He lists numerous limitations of the CLR/CTS/CLS. Lets remember that .NET is in its infancy. How great was Java when it first came out?

    If Microsoft fails to deliver, we'll all have a great laugh. However, if Microsoft does deliver and MONO succeeds, we'll have an explostion of desperately needed applications that will run on Linux.

    The worst thing that I can say about .NET is that it is controlled by the Evil Empire and the worst thing I can say about MONO is the name makes me think of a horrible illness that takes a long time to get over.

    --
    The race isn't always to the swift... but that's the way to bet!
    1. Re:Let's Play Devil's Advocate by Herr_Nightingale · · Score: 1

      If Microsoft fails to deliver, we'll all have a great laugh. However, if Microsoft does deliver and MONO succeeds, we'll have an explostion of desperately needed applications that will run on Linux.

      Pardon?? Desperately needed applications? I wonder which industry you work in, that you would need vaporware and/or more poorly coded trash. Show me a useful .NET app and I'll guarantee it's been better done in Java. Java? Personally, I despise Java, but it is clear from reading the CLR specs that nothing new is introduced, and Java's quite a bit more mature ..
      from a web developer's perspective things would look quite different, no doubt, as the cloud of Microsoft assimilation approaches to darken sight; however, I fail to see why we need another superficially language-neutral virtual machine to run bloated, poorly written apps on. What ever happened to artfully coded, small and efficient programs?
      Platform neutrality is not worth the cost in bloat. I hope that Java and .NET kill each other off, and Brutalware (http://hysteria.sk/brutalware) makes a comeback.

    2. Re:Let's Play Devil's Advocate by Anonymous Coward · · Score: 0
      What ever happened to artfully coded, small and efficient programs?
      Netscape.
  23. I like this quote... by sheldon · · Score: 3, Insightful

    "...but unfortunately still bound to Microsoft's usual way of doing (and marketing) things: proprietary technology presented as the apex of openness, and a strongly biased system presented as language-neutral"

    Sounds like Sun selling Java. Proprietary openness, and strongly biased systems presented as platform-neutral. :-)

    1. Re:I like this quote... by Anonymous Coward · · Score: 0

      I'll say. Sun has been trying to pretend Java is open as long as the java lobby has been around to agree with them. Their PAS bull was incredible.

      I think it takes one to know one, and this guy has Java down cold.

    2. Re:I like this quote... by jfonseca · · Score: 1

      Exactly, and well said.

      It actually impresses me that some open source leaders actually go for this kind of marketing plot.

      See de Icaza's intentions to make .NET the framework for Gnome....Stallman was more than mad when he heard about it here in Brasil past week. Icaza actually believed that there was openness to the Microsoft framework, and that it could be safely used for the Gnome.

      Them same situation we got here, you could adopt the JVM for any project actually, but it is closed technology nonetheless and very well masked as open and platform-neutral.

      For true open source, platform independence see Perl. Be careful though, Perl is extremely biased towards non-commercial, non-arrogant, non-crashin, non-biased open-source UNICES :)!!!!

      --
      Broken Hearts are for Assholes. - Frank Zappa
    3. Re:I like this quote... by elflord · · Score: 2
      Icaza actually believed that there was openness to the Microsoft framework, and that it could be safely used for the Gnome.

      Well, he believes correctly. The core components are an ECMA standard.

      Them same situation we got here, you could adopt the JVM for any project actually, but it is closed technology nonetheless and very well masked as open and platform-neutral.

      Java is controlled by Sun. It has not been submitted to any standards body. When it does, it will be on equal footing to C#. For now, it is not.

      For true open source, platform independence see Perl [perl.com].

      It's not really "platform independent" at all, actually. It has a lot of UNIX-isms in the core language. For something more genuinely cross-platform, that properly separates core and platform functionality, try Python.

    4. Re:I like this quote... by jfonseca · · Score: 1


      Well, he believes correctly. The core components are an ECMA standard.


      This is not, and has never been proof of openness and that it should be adopted by open source developers. It is still controlled by Microsoft, which defeats your second argument that starts with "Java is controlled by Sun."

      For something more genuinely cross-platform, that properly separates core and platform functionality, try Python.

      Well we can either start a language war or simply use the best tool for the best job. And I do believe I mentioned that Perl IS BIASED towards UNICES, though IT WILL WORK on about twice the platforms Python will...but I like Python as well, and do agree with you that it is less unixish. To me though being UNIXish is a feature.

      --
      Broken Hearts are for Assholes. - Frank Zappa
    5. Re:I like this quote... by elflord · · Score: 2
      This is not, and has never been proof of openness and that it should be adopted by open source developers. It is still controlled by Microsoft,

      Since when do Microsoft own ECMA ? Microsofts implementation is controlled by Microsoft, but the standard itself isn't. Why don't Sun submit to a standards body ? It's primarily because they want to retain control.

      To me though being UNIXish is a feature.

      I'd agree, if it didn't imply that platform-specific features were properly modularised, and not glued onto the language.

    6. Re:I like this quote... by jfonseca · · Score: 1

      Since when do Microsoft own ECMA ? Microsofts implementation is controlled by Microsoft, but the standard itself isn't. Why don't Sun submit to a standards body ? It's primarily because they want to retain control.

      "IT" in "it is still controlled by Microsoft" referred to .NET not ECMA. I have no clue why Java isn't submitted to standard bodies, but I've read something from Jim Gosling mentioning this don't remember what he had to say about it though. And yeah if I invested billions into something, I'd indeed like to keep control of it....the main thing is Java is not being pushed at us through the force of a monopoly.

      I'd agree, if it didn't imply that platform-specific features were properly modularised, and not glued onto the language

      When you use forward slashes in Perl running on Win32 you get perfect results while navigating directories/folders, while if you used backlashes you'd need two each time to avoid being escaped out of the string. When you use fork on windows a new process is spawned even though processes on Win32 are passive lumps of memory that need active threads and on UNIX they are sufficient for program execution, no threads....but both fork perfectly....and they're both called fork.

      fork is UNIX, CreateThread/Process is Windows, both are called fork in Perl and it runs a dandy.

      Sorry but I have to disagree again with you, there is absolutely nothing wrong in glueing the functions which originated from UNIX on to the multiplatform language. It is fine to have the new process function be called fork, either on Windows where you CreateProcess() or on VMS where you BATCHTHETHINGY() or UNIX where you clone or fork() and wait().

      But then again I understand your point, you are a purist and want the language as neat and tied as Python. I agree, and think Python is fine.

      As for myself I like the occasional magic that makes Perl work, I don't like everything nice, shiny and orthodox, and I think Linux, Perl, emacs, the Intel CPUs and lots of other hacker craft are built this way including UNIX itself. They've got magic in them to make it work with the new stuff and the old and not break.

      So you can run a brand new State and go by shiny new rules or obey an old and patched Constitution that works. I am a bit dated in my options I admit, but I go for the oldtime patched Perl.

      Sorry if this became offtopic, this is an old discussion anyway, but it is just nice exchanging ideas.

      --
      Broken Hearts are for Assholes. - Frank Zappa
    7. Re:I like this quote... by elflord · · Score: 1
      "IT" in "it is still controlled by Microsoft" referred to .NET not ECMA

      Yes, right. I wanted to make the distinction clear. FYI, I'm not a great fan of cloning all of .Net, except as a way to pre-empt probable additions to the standard. In particular, I don't think turning it into some kind of WINE is a worthwhile goal. But then, it's not Miguels goal either.

      [ snip: examples ]
      At least three examples of perl functions that don't make much sense under Windows are chmod() and symlink(), and ioctl(), in fact the problem here is that the file functions are modelled around the UNIX filesystem.

      As for myself I like the occasional magic that makes Perl work,

      I actually like perl for some things, I just don't see it as an exemplar of a standard, cross-platform language. The two best aspects of Perl are CPAN and the fact that it's very easy to use if you already know how to write bourne shell scripts.

      Sorry if this became offtopic, this is an old discussion anyway, but it is just nice exchanging ideas.

      Yes, to all the above. Time to check "no score +1 bonus". Cheers,

    8. Re:I like this quote... by tricorn · · Score: 1

      Since when do Microsoft own ECMA ? Microsofts implementation is controlled by Microsoft, but the standard itself isn't. Why don't Sun submit to a standards body ? It's primarily because they want to retain control,

      So let me get this straight - ECMA controls the standard and will let anyone change and extend it however they want, including Microsoft, and when Microsoft does change it, that doesn't matter because everyone else will continue to use the ECMA-standardized version (or not use it the same way they've been not using it), right? But with big bad Java, since it hasn't been submitted to an independent standards body, no one can change it or implement their own version of it, but Sun can change it however they want and that's terrible, because then everyone will be forced to adopt their changes to the language. So, .NET will be so much better, because everyone will be platform independent, in so many different ways, and we can finally break that monopoly that Microsoft has been holding over the world and get on with our non-interoperable lives!

      Ignoring, of course, the points that a) if you produce something that is incompatible with the ECMA standard, you won't be able to call it C# (just like Java); b) if Microsoft changes the definition, ECMA can either tag along or be stuck with an irrelevant standard; c) Microsoft has already extended the CLR well past the standard; and d) Sun doesn't have a lock on Java, either the definition or the implementation; that they wouldn't allow Microsoft to use the Java trademark on something that violated the definition of Java (instead of properly extending it, which they could have done if their motive wasn't to try to hijack it as well) does not show that Sun has either the inclination or the legal right to prevent, say, gjc or kaffe from being written, either to the standard, to a changed standard, or extending the standard.

  24. Nag nag nag by Anonymous Coward · · Score: 0

    I guess the reason why all these Java advocates are complaining so much about the CLR and C# etc. is that it's so similar to JVM/Java, and actually quite useful for any programmer that has to write stuff for the windows platform. Remember: Sun == Microsoft wannabe.

  25. Block Innovation??? by jfonseca · · Score: 1

    Quoting the article: "This scenario will severely block innovation in the programming language field because a whole generation of programmers may be educated by CLR-compatible languages, and what they will learn is that all languages are identical. They will know only one model for inheritance, typing, frameworks, etc. They will be much less likely to experiment with truly different alternatives."

    If anyone lets a single framework be their programming language education then they deserve so!

    I can't believe he even brought that up. It is like saying oh now that they've invented the mouse innovation in the user interface field will be crippled since a whole generation of UI architects will be using the mouse for input and double-left click for yes, right click for options, etc....

    This is very common, a good technical article drawing the wrong social conclusions. Actually technicians are very bad at drawing human or social conclusions, see Oppenheimer and Einstein.....

    (Being only a programmer perhaps I'm drawing the wrong conclusion myself.....)

    --
    Broken Hearts are for Assholes. - Frank Zappa
    1. Re:Block Innovation??? by wadetemp · · Score: 2

      I disagree with the quote as well, but for a different reason. A whole generation of programmers are already educated in address/pointer compatible languages. Complaining about a particular platform or model stifling innovation seems like a post-mortem to me... it's been stifled since the modern processor was introduced.

  26. Java folks getting itchy by Anonymous Coward · · Score: 1, Insightful

    Java folks have gotten quite prickly lately over .Net. Hard to blame them - Sun is telling open source programmers to go screw themselves, and Microsoft is delivering a technically superior alternative (while SUNW heads into the dumpster). Since 1995 this is the first time that Java has been on the defensive. Its amusing.

  27. Thanks for reminding me! by Anonymous Coward · · Score: 0

    I almost forgot to watch the olympics as I was trolling!

  28. Seems to be running by augustz · · Score: 2

    Seems the site is down. Netcraft reports it running.

    The site www.javalobby.org is running Orion/1.5.2 on Windows 2000

  29. keep in mind by cr@ckwhore · · Score: 2

    Keep in mind that Microsoft did not invent the technology behind "CLR". Raise your hand if you know what an "executable file" is? When was that invented... late 60's perhaps?

    --
    Skiers and Riders -- http://www.snowjournal.com
  30. My experience with the Java VM by Greyfox · · Score: 2
    I've been doing a lot of Java programming for my current job and I tend to find that the VM limits my options when I might want to use the power that UNIX provides me. Checking my program's process ID, for example, to see if it's already running. I've also been finding that the concept of having a VM to run your programs in breaks down pretty quickly, largely because various applications will require a different VM. So you end up with several VMs on your hard drive and several VMs in memory (at 40MB a whack) and none of the applications ever seems to check to see if there's a compatable VM already on your hard drive.

    The whole thing ends up being awkward, and it is my impression that running code in a VM limits me as a programmer to the power of an inferior operating system. I DO like JSPs though.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:My experience with the Java VM by enjo13 · · Score: 1

      Java is not a language meant to be run in a single environment. The platform you are running on is Java (the platform).. not Linux, Windows, or any other operating system. If you are needing to check the process ID then you are stepping outside of the platform and probably should not be utilizing Java in the first place.

      I find that Java provides me with precisely everything I need to effectively program in most domains. Of course I have never tried to step outside of the platform which I am developing for.

      --
      Turn s60 photos into awesome videos with mScrapbook for all S60 3rd edition phones!
  31. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  32. and One Bug To Crash Them All by questionlp · · Score: 0, Redundant

    I think the subject says it all ;-)

  33. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  34. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  35. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  36. CLR same as IBM's SOM (System Object Model)?? by Amigan · · Score: 2, Interesting

    Been reading and talking to some friends who worked on IBM's SOM product/project in the early 1990s. Seems that CLR is pretty much the same concept. SOM allowed for you to access objects (and their associated methods) from any programming language. Of course it never made it much past OS/2 - though PM Shell used it (I believe). Anyone used SOM think CLR is the same thing - yet again??

    SOM 3.0 Readme

    --
    "Software is the difference between hardware and reality"
    1. Re:CLR same as IBM's SOM (System Object Model)?? by nathana · · Score: 1

      Yes, the same thing (comparison between CLR and SOM) hit me as I was reading the article. PM (Presentation Manager) did not use it, but the WPS (Workplace Shell) that ran on top of PM *did*. I dabbled a little bit with writing a few simple SOM classes in C a few years back. 'twas fun. A well-thought-out system IMO.

    2. Re:CLR same as IBM's SOM (System Object Model)?? by Anonymous Coward · · Score: 0

      Actually SOM is more accurately compared to COM.

    3. Re:CLR same as IBM's SOM (System Object Model)?? by Anonymous Coward · · Score: 0

      "SOM allowed for you to access objects (and their associated methods) from any programming language."

      IBM SOM was similar to MS COM in that way. From the names and the timeframe, I'd guess it was originally something they were brewing up together in the olden days when they were in bed.

      CLR only really it takes to the next logical step by moving to a distributed, safe, dynamic runtime. Did IBM ever ship SOM glue for Java? (J/2?)

    4. Re:CLR same as IBM's SOM (System Object Model)?? by Ian+Bicking · · Score: 2
      Like other people have said, SOM is like COM or CORBA, not a CLR. I think this is fairly different -- CORBA provides an interface to access foreign objects. A CLR does not involve any interface -- there are no foreign objects.

      Any useful language has ways to access foreign code -- sometimes easy, usually hard, and usually targetting only C. CORBA or COM are just a common intermediaries for those foreign function calls. A CLR means all calls are native, even when in different languages. This means you get prettier code, but also that you don't get the speed penalty. People don't do intimate subclassing of COM objects as far as I know. That is, they don't treat the objects in an OO way.

  37. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  38. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  39. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  40. Your tracking number is ID:10T by Anonymous Coward · · Score: 0

    You stupid idiot, any program can be decompiled.

    Duhhhhhhhh

  41. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  42. let sun make java 100% free and by Anonymous Coward · · Score: 0

    then we'll see.
    all "popular" languages suck.
    and so do the guys who wave the flags.

  43. CLR shares assemblies through a cache (GAC) by Anonymous Coward · · Score: 0

    One nice thing MS got right.

  44. One thing I don't recall hearing about by Daimaou · · Score: 2, Interesting

    With all the talk of .NET and C# killing Java, I decided to take a look at Visual Studio .NET for myself.

    One question that I have not seen raised is this: It is easier to write programs for Linux and *BSD than it is to write programs for Windows. Many open-source programmers use this as an excuse for charging for the Windows versions of their products.

    That said, why would anyone but a Windows programmer want to program for .NET when it is as messy to program for as Windows is?

    Mono may support .NET programs, but do Linux, etc. developers really want to go to all the trouble of writing to .NET when Sun's JVM provides the same functionality and a much cleaner API?

    I think if Sun's JVM supported other languages like Perl, Python, C, C++, etc. .NET would have absolutely nothing to offer to the developer community.

    I think the languages support in CLR are impressive, but still, if you have to write to a Windows-like API, what good does it do you?

    Although there are a lot of things I like about .NET and the dev tools that go along with it, I still think Java and the JVM are better for cross-platform development.

    1. Re:One thing I don't recall hearing about by r3dshft · · Score: 1

      linux developers will have to if they want their jewels to work in gnome. read my thread, it tells the story. peace.

      --
      unfortunatly, there IS a spoon.
    2. Re:One thing I don't recall hearing about by elflord · · Score: 2
      One question that I have not seen raised is this: It is easier to write programs for Linux and *BSD than it is to write programs for Windows. Many open-source programmers use this as an excuse for charging for the Windows versions of their products.

      Your premise appears questionable at best. Your conclusion could also be explained by the fact that Windows products tend to make better cash cows than Linux products.

      That said, why would anyone but a Windows programmer want to program for .NET when it is as messy to program for as Windows is?

      What do you mean by "as messy as Windows is" ? Programming for .Net is not going to resemble programming Win32 code, any more than programming Qt is like programming raw Xlib.

      Mono may support .NET programs, but do Linux, etc. developers really want to go to all the trouble of writing to .NET when Sun's JVM provides the same functionality and a much cleaner API?

      For starters, the technology that Mono is based on is standardised, while java is not. Why boost Suns proprietary language ? You might respond by asking "why boost Microsofts proprietary language", but the fact is that .Net is a proprietary implementation of an open standard, so Mono isn't necessarily boosting Visual Studio .Net any more than g++ is boosting Visual C++

      I think the languages support in CLR are impressive, but still, if you have to write to a Windows-like API, what good does it do you?

      Please, offer some sound technical arguments instead of this anti-MS-jihad hot air. You don't "have to write to a Windows API", you can write to whatever APIs are implemented on Mono.

    3. Re:One thing I don't recall hearing about by Anonymous Coward · · Score: 0

      For starters, the technology that Mono is based on is standardised, while java is not. Why boost Suns proprietary language ? You might respond by asking "why boost Microsofts proprietary language", but the fact is that .Net is a proprietary implementation of an open standard, so Mono isn't necessarily boosting Visual Studio .Net any more than g++ is boosting Visual C++

      Bullshit. CLR was not developed in the open, and as it evolves if the "spec" deviates from Microsoft's implementation, the "spec" will be wrong. It's that simple. CLR is Microsoft's or it is stagnate. Why? Beacuse they don't have a Stroustrup doing evolution in the public.

    4. Re:One thing I don't recall hearing about by elflord · · Score: 2
      Bullshit. CLR was not developed in the open, and as it evolves if the "spec" deviates from Microsoft's implementation, the "spec" will be wrong.

      Not true. Under such circumstances, Microsofts implementation will be wrong. Given that there will probably be a number of vendors who will implement the standard, it's not in Microsofts interests to be incompatibile. What is more likely to happen is that they will "embrace and extend" their own standard. However, this is not a problem unique to C#-- they can do the same with anything else.

    5. Re:One thing I don't recall hearing about by alext · · Score: 1

      a) They have extended this standard already

      b) Incompatibilities with the standard are generally fixed by changing the standard or referring to the 'reference implementation' (DCE, Kerberos, C++...).

    6. Re:One thing I don't recall hearing about by elflord · · Score: 2
      a) They have extended this standard already

      I don't quite agree with this. I agree more with your later comment -- standards tend to codify existing practice.

      b) Incompatibilities with the standard are generally fixed by changing the standard or referring to the 'reference implementation' (DCE, Kerberos, C++...).

      I'd think that if something is defined by a "reference implementation", it isn't much of a standard. Standards codify existing practice, so if an idea is widely adopted, or there is a consensus that the idea is a good one, there is a good chance it will end up in the standard. For example, variable length arrays, and C++ comments were vendor extensions. However, since the standards body is non-partisan, extensions that are blatantly vendor-dependent do not get added. That is why we don't have POSIX, COM or Win32 or even MFC in ISO/ANSI C/C++.

    7. Re:One thing I don't recall hearing about by Daimaou · · Score: 1

      You probably will never read this. I didn't have time to look at this post until today. Who cares?

      Anyway, have you even looked at the API? .NET is not the Windows API, I know that. What I said is that .NET is as messy as the Windows API, which it is. Next time, why don't you actually look at what you're talking about before you turn all professor snot talk on us?

      My point and question was why anyone would want to code to .NET when creating a Linux or *BSD open-source projects. Who mentioned programming cash cows and Windows? I didn't. Just because you can't read doesn't mean my premise is questionable.

      Java is standardized. No matter what Java compiler (Sun, IBM, etc.) I use, it works the same. It also runs the same across all JVMs. What is your definition of the word standardized?

      To answer you second question, I would like to boost Sun's "proprietary" language because it has a clean API, which equals more money through quicker times to market.

      Nice use of the word jihad. Especially in today's political climate, this was an excellent way to downplay my statement by first of all not even reading it and second of all calling me names.

      I make a living programming for Windows. No I don't like Microsoft's technologies as much as I do Sun's and everything available in the open source world. However, I didn't make this into an anti-microsoft bash, why did you?

  45. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  46. high-quality? by Erris · · Score: 2
    It is very possible that .NET will suceed where Java failed - true cross platform, high-quality application development environment.

    Who told you that? Steve Baller?

    Let's summarize the article as, "A tool that claims to do all things for all people in all places, generally does nothing well." Hey, its good for my writing skills =:> As the authors point out:

    Programming languages exist in wide variety, not only because different tasks (from systems programming to artificial intelligence) require different tools, but also because there is no One True Way to serve even one domain.

    Yup, it's true and he goes on to show us how C Pound is gimped by the limits of each of the languages it wishes to extend and extinguish.

    The CLS only supports single, static inheritance.

    Languages such as C++ and Eiffel need multiple inheritance of implementation. Cross-language support for MI may not be possible, as MI creates some hard problems (like repeated inheritance and name clashes) that different languages solve in different, incompatible ways.

    Yup!

    There is currently zero support for generic programming in the CLS.

    Compile-time mechanisms like C++ templates are supported, but they are not cross-language: no way to instantiate your stack.

    He goes on with a few more damming examples including how incompatible different (VB buzzord!) Methods are. His conclusion is both damning and accurate:

    For the CLR, we can certainly rely that everything is optimized to favor C#. The result will be inferior performance for any language which behavior is significantly different from C#.

    Someone asked what people are "up in arms about." I suppose the Java people, who have made a fine and stable standard, are upset because the MicroTurds are going to spend lots of money saying this new C# is better than their work when it is not. They will back it up with the usual spred specturm attack of poor performance for all other languages under their platofrm. I feel their pain. Me? I'm not up in arms because I could care less, M$ is irrelavant. Even if they built the best freaking comiler in the world, their underlying OS is still so buggy and screwed up applications will never work right. People have noticed. The other folks up in arms are M$ dependents who are consistently let down. Their demise is the demise of my coworkers and it brings me no joy.

    --
    DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
    1. Re:high-quality? by Anonymous Coward · · Score: 0
      M$ is irrelavant. Even if they built the best freaking comiler in the world, their underlying OS is still so buggy and screwed up applications will never work right.

      LOL!!! Irrelevant eh? Well, I've sure seen a hell of a lot more (as in at least 10 times) Microsoft software running at every client I have. How can they be irrelevant? How can these companies run their entire IT infrastructure on a platform so buggy that applications will never work???

      aaaaahhahahaahahahaaaa

      No shortage of silly childrens on slashdot these days!!!

    2. Re:high-quality? by aneil69 · · Score: 2, Interesting

      The article misses some important points: "The CLS only supports single, static inheritance. " Please distinguish the CLS (Common language specification) from the CLI (Common language infrastructure). The CLI is the ECMA specification for the Microsoft "Virtual Machine". The CLS is a proper subset of the capabilities of the CLI (Which DOES support multiple inheritance, by the way). The CLS is a recommendation for programmers who want to develop components which can interoperate with a wide variety of languages. "There is currently zero support for generic programming in the CLS." Again, understand the difference between CLS and CLI/CLR. The current version of the CLI/CLR does not support generics, either, though Microsoft has stated that the next version does have support for generics. "For the CLR, we can certainly rely that everything is optimized to favor C#. The result will be inferior performance for any language which behavior is significantly different from C#." True, but 1. The goal is language interoperability and 2. Microsoft admits this quite explicitly. So the one of the central claims of the article that Microsoft claims that this is a tool which does all things for all people, is quite false. Microsoft very clearly acknowledges the limitations of the CLR. Also, take a look at work at Microsoft Research, which explains how MSIL can be extended to include a number of features for functional languages (one of the complaints of the article). All I can say, is that the Microsoft bashers need to take a closer more honest look at the CLI/CLR, understand it, and the huge benefits its going to bring before they bash it.

    3. Re:high-quality? by Erris · · Score: 2
      How can these companies run their entire IT infrastructure on a platform so buggy that applications will never work???

      Painfully, and by selling new "upgrades" to replace the broken functionality of "obsolete" tools. I know, I work in one of those places with a M$ IT infrastructure.

      --
      DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
    4. Re:high-quality? by Erris · · Score: 2

      Oh yeah, the ususal bull. "You don't understand all the bullshit terms we've invented and all the things we promise you it will do." Sure.... You have to look at what works now, not what M$ says will work in the future.

      --
      DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
  47. Developers... Developers... Developers.. by coltrane99 · · Score: 1

    I'm sorry, every time I think of C# I can't help but think of that infamous video clip of Steve Ballmer flopping around onstage in front of thousands of halfheartedly applauding employees, screaming.. 'Developers Developers Developers..'

    1. Re:Developers... Developers... Developers.. by Anonymous Coward · · Score: 0

      Nice contribution to the discussion, assclown.

    2. Re:Developers... Developers... Developers.. by r3dshft · · Score: 1

      haha, assclown, thats pretty funny, comming from an anonymous coward.

      --
      unfortunatly, there IS a spoon.
    3. Re:Developers... Developers... Developers.. by Anonymous Coward · · Score: 0

      That's pretty funny from someone with a 2 week old UID.

    4. Re:Developers... Developers... Developers.. by r3dshft · · Score: 1

      its new, because truth be known, i dont like slashdot. i signed up just because i was bored. "assclown"

      --
      unfortunatly, there IS a spoon.
  48. .net by r3dshft · · Score: 1

    i didnt read anyone else's replies or articles, but i searched the html for "gnome" and it didnt have it. from what ive read, Miguel de Icaza says that genome will have .net integration. so now microsoft will have integrated into linux. i cant wait for microsoft to own all your bank info, grocery stores, and souls. when you die, you will be standing at the gates of hell, and it will say, "to enter hell, please enter your .net username and password"

    --
    unfortunatly, there IS a spoon.
  49. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  50. Comment removed by account_deleted · · Score: 3, Interesting

    Comment removed based on user account deletion

  51. Inscription on the PE header... by Anonymous Coward · · Score: 0

    (with apologies to Tolkien)

    One runtime to rule them all,
    one runtime to find them,
    One runtime to@#$@($*#($!#(&%@#$&%

    The application POST.EXE has performed an illegal operation...

  52. Homo Faber Strikes Again by nickynicky9doors · · Score: 1

    "Whata mak'n?"
    "A mouse trap"
    "But we already got a buncha mouse traps"
    "Ya but this is a better mousetrap. It can catch all mice or any mice anywhere with no need for any other kinda mouse trap"
    "Wow, uh why do ya wanna catch mice for anyway?"

    What a pleasure to read :-). Balanced, informed, with just enough detail for those conversant with the issues. Thnx muchly, it's why I incesstantly check in with Slashdot. Bill Gates who is now Chief Software Architect with MS has said the .NET initiative is a make or break deal for MS. Although I think this is a good part hyperbole. With no experience with C# and still deep in the learning curve of C/C++ from a MS DOS, VB background I'm decidedly not qualified to post in this thread so of course I will ;-). My critcism goes to software development in general and the paradigm of the desktop specifically. The idea of "skins" and write once run anywhere development tools are great ideas but they still leave endusers with the same old GUI which both Windows and Linux use because, well uhm, we always have. But the daily complaints of many users suggest the 2D desktop model may not be as intuitively friendly as might be possible. I think users would like the benefits of OOP and 'skins'. Just throw an object up on the screen and name it an X file then right click to throw in a pie chart from Y database. I'm suggesting the same Mr. Potato Head approach for end users as developers seek in terms of Java and C#. My reborn interest in programming is geared toward developing just such a "Mr. Potato Head" approach to the GUI. If any one can guide me to a 3D widget conglomeration to file development I'd be appreciative of any guidance. If it's just to tell me I'm hopelessly lost and Quixotic and to go to hell. I know and as far as hell goes. I've been there, know some short cuts, have fiends there I can stay with and speak the language fleuntly.

    --

    heuristic algorithm seeks stochastic relationship
    1. Re:Homo Faber Strikes Again by Anonymous Coward · · Score: 0

      What in the hell are you talking about?

    2. Re:Homo Faber Strikes Again by r3dshft · · Score: 1

      dont you love it how the anonymous cowards always have the FUNNIEST damn comments. heh.

      --
      unfortunatly, there IS a spoon.
    3. Re:Homo Faber Strikes Again by Daniel · · Score: 2

      Your subject line is puzzling me. I'm trying to figure out what relevance, if any, this has to the book "Homo Faber". Could you elucidate?

      Daniel

      --
      Hurry up and jump on the individualist bandwagon!
    4. Re:Homo Faber Strikes Again by nickynicky9doors · · Score: 1

      Hello Daniel
      My latin isn't what it once was and what it once was wasn't much. I pulled the following definition: faber -bra -brum [ingenious , skillful]. M. as subst. faber -bri, [a worker, craftsman]; 'faber tignarius', [a carpenter]; 'ferrarius', [a blacksmith]; milit., 'fabri', [the engineers]; also [a fish], perhaps [dory]. Adv. fabre, [skillfully]. My understanding of the phrase "Homo Faber" goes to our species as tool maker. The subject line was a flippant reference to the making of a better mouse trap.

      Cheers

      --

      heuristic algorithm seeks stochastic relationship
  53. Low vs. high level virtual machines/runtimes by mlinksva · · Score: 1
    The author has many valid criticisms, though I don't know how important they'll be in the long run. Certain language features may need to be implemented inefficiently, but programmer time is far more important than execution efficiency anyway. Beyond the criticism, the author notes that
    There are, actually, many successful "common language runtimes", with names like Pentium, SPARC and others. Mainstream CPUs are equally fitted to very different languages as they only do the most fundamental, low-level operations, so they cannot be biased towards particular languages. There aren't many different ways to perform a conditional branch. However, there are radically different ways to support methods and functions, or most constructs found in high-level languages. The consequence is that every language needs different compilers and runtimes to implement their features, and different libraries to support their vision of software development.
    So, anyone have a good explanation for why both Microsoft and Sun chose relatively high-level and language-specific primitives for their runtimes?
    1. Re:Low vs. high level virtual machines/runtimes by Anonymous Coward · · Score: 0

      So, anyone have a good explanation for why both Microsoft and Sun chose relatively high-level and language-specific primitives for their runtimes?

      Yes. Easier to implement and more efficient. Why? Beacuse you know more about the structure of the program. Otherwise one should just use x86, no?

  54. Yawn . . . by Pituritus+Ani · · Score: 4, Insightful

    1977 - UCSD Pascal P-Code was going to unify computing under one language.

    1990 - Visual Basic revolutionized programming by interpreting to P-code and requiring a run-time.

    1991 - Java was going to rock our worlds and promised "write once, run anywhere" using an intermediate byte code that looks a lot like P-code.

    2002 - Microsoft promises one runtime to which many languages will compile in the megarevolutionary (and some say Orwellian) dot net architecture.

    Like it was said in Ecclesiastes, there is nothing new under the sun.

    --

    Another proud carrier of the $rtbl flag

    1. Re:Yawn . . . by Kirruth · · Score: 2

      The truth is that computing languages are far from unified. This is partly because the best of breed languages are often very good at what they specialise in. It's hard to beat Perl for scripting, or C for imperative programming or Haskell for functional programming.

      For object orientation, there are loads of choices, with C++, Java and Visual Basic duking it out at the popular end, with Smalltalk apparently alive and well in its niche.

      Meanwhile languages which really could change the world, like Python or LISP or Objective Caml, are generally under-appreciated, as they are never going to be as "good" or as "fast" as Perl or C.

      It's a shame, but hey, its kind of democratic.

      --
      "Well, put a stake in my heart and drag me into sunlight."
  55. Fermi's principle by Anonymous Coward · · Score: 0

    Your argument is that if Java is so successful, how come something like WinAmp, Corel Draw, Turbo Tax isn't written in it.

    The physicist Enrico Fermi asked if ET's are out there, and since our civilization is just at the threshold of space and nuclear power, and while there may be cave man ET's, there should be an equal number of ET's who are at least 10's of millions of years beyond us, we should have been contacted by now if we are not alone.

    So if Java is so good, why are there no major shrink-wrap packages using it, especially because it would simplify making something run on both PC and Mac? I think the answer is that Corel tried to reimplement Word Perfect in Java, and the result was such a performance pig that it never saw the light of day.

    I do know that Star Office uses at least some Java because it needed to do a Java install. It does not seem particularly pokey except when using the Help system and there are some excruciating delays typing in letters to an index word in that dialog that tries to complete your word for you in suggesting index entries. Do you know how much Java is in Star Office (I'd like some cherry tart without so much rat in it), and what is your take on its performance?

    1. Re:Fermi's principle by mike_sucks · · Score: 1

      "Your argument is that if Java is so successful, how come something like WinAmp, Corel Draw, Turbo Tax isn't written in it."

      Because they're all targetted at Windows machines. There's no point in writing the apps using Java. Running a Java app on different host platforms varies greatly, as is the difference in platform UIs, and so on, so the support costs for deploying Java apps accross multiple platforms is greater than the support costs for deploying any {native|Java} app on one platform. If they're not going to bother supporting non-Windows platforms, then there's no point using Java.

      "Corel tried to reimplement Word Perfect in Java, and the result was such a performance pig that it never saw the light of day."

      Yep, because they were using, what, v1.0? v1.1? Both of course, sucked, sucked very badly. v1.2, which included Swing, was much better, but still sucked. v1.3 is much better still, and is finally getting usable. I'm looking forward to seeing how well 1.4 works. It should be good.

      "Do you know how much Java is in Star Office (I'd like some cherry tart without so much rat in it), and what is your take on its performance?"

      To be honest; no. I don't use it, and so I couldn't comment on its performance, either. Anecedotally, a few guys on my team at work do, and they don't seem to complain about it.

      To date, the big acceptance issue for Java on the desktop has been it's performance. Early version did suck, but latter verisons are much better, and desktop machines are more powerful, so it's all becoming moot. Many large, complex applications arew written in Java. Forte, a Java IDE is written in Java. Most desktop applications coming out of IBM's Alpha Works seem to be Java based. ThinkFree is an office suite written in Java. But AFAICT, most Java apps are written by developer's tools. Developers get the most out of Java's portability because they can use their tools on whatever platform they need to be developing/testing/running their software on. It makes a developer's life much easier.

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
  56. Summary of the article by Anonymous Coward · · Score: 0

    I agree. From neutral perspective here is a summary of the article:

    blah blah blah ... .Net doesn't behave exactly as I would like it and I am sure MS has no good reason for choosing the design they did ... blah blah blah

  57. And behind #2 is... Java! by SuperKendall · · Score: 5, Insightful

    Looks like you picked the right door! Not only do you win a platform supported by a whole industry, but the only truly open standard around! Now THAT bears repeating.

    Of course, I'm talking about the Java language. Where else do you get something where the language and VM are controlled by a standards body composed of many companies across many industries, that have to approve all changes made (Sun only controls licencing of the Java trademark)? How about a standard where real everyday people like you and I can propose changes and make comments on proposed standards?

    Wait, you were thinking you might get .NET? Odd, I thought they didn't have the full standard submitted to the standards body. And I'm not clear on how I can comment on progressing ECMA standards.

    Lastly, what's stopping you from writing everything on top of a raw turning machine? After all, everything you want to do is technically supported...

    Check out calling conventions from Eiffel# to C# and then perhaps you'll rethink the usability of cross-language prgramming.

    .

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  58. Well $un has to do something by JamesOfTheDesert · · Score: 2
    Sun is a hardware company. Java was developed as an embedded application language. It lucked out with the growth of the web and the development of applets. Sun realized that if all applications were written in applets, then all a worker needed was dumb PC running a browser, with the heavy lifting done by (ta da!) a Sun server. You know, "the network is the computer(tm)." Remember?

    This is what lit a fire under Mr. Gates' ass. Navigator + Java = badNews. However, applets turned out to be craplets (even while MS wrote the best JVM); stand-alone Java was too slow for the desktop; Java failed to score any significant headway.

    But, Java could still be marketed for *server* development, so Sun decided to retrofit the embedded-language-that-could into a full-blown enterprise development lanaguge. (Hence the evil that is J2EE.)

    Of course, using Java on the server means buying big iron, which, by coincidence, Sun happens to sell. It was always about the server.

    Wow; you would almost swear they planned it this way.

    --

    Java is the blue pill
    Choose the red pill
    1. Re:Well $un has to do something by mike_sucks · · Score: 1

      "Wow; you would almost swear they planned it this way."

      It is pretty convenient. Still, your history is a bit revisionist; The embedded devices Java was designed for, way back when it was called Green, was set-top boxes, or smart TVs, or some such.

      Also, the language hasn't seen much retrofits at all, it is the JVM that has been continually revamped and API's that have bourgeoned.

      As for J2EE being evil: [shrug]. Servlets work great, as fo a few other bits and pieces, but EJB's seem to be, ah, interesting. Don't confuse EJB's with the rest of J2EE, though.

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
  59. Oh.. Microsoft's "dot net"?? by Anonymous Coward · · Score: 0

    Nobody really gives a flying fuck :\ Poor Microsoft. Their hopeful "shot heard round the world" will be a dud. Goliath my friends is about to fall. ;)

  60. If you have nothing to add, just be quiet by dsfox · · Score: 1

    The whole point of Science is to be an instrument that will always overcome bias. Because there is always bias, you create a dialog which employs the scientific method. Microsoft has hypothisized that their system is programming language neutral, the author of this article disagrees.

    To reject either viewpoint as biased is pure laziness. You are unable to analyze the arguments yourself, so you are asking someone to do your thinking for you. I suppose if they are smart enough they can hoodwink you into thinking they are unbiased!

    1. Re:If you have nothing to add, just be quiet by Tony-A · · Score: 2

      Microsoft has hypothisized that their system is programming language neutral
      Rubbish.
      The rules of the virtual machine itself are expressable as a language. It must of necessity favor languages "closer" to itself.

  61. Re:LOL by Anonymous Coward · · Score: 0

    How long you think it'll be before everyone figures out we're the same pathetic geek in his mom's basement?

  62. Re:LOL by Anonymous Coward · · Score: 0
    With slashdolts? Probably about a bojillion years. Tee hee. I just love trolling. How do they make those link thingies?

    ~~~

  63. Re:Linus hates you by Anonymous Coward · · Score: 0
    At least my clients have something I can reach around for, unlike you, whose large waist inhibits successfully reaching around for your micron-sized member.

    ~~~

  64. Re:Linus hates you by Anonymous Coward · · Score: 0

    Now here comes the fun part. Where the grand-pappy post gets modded up "+1, Interesting." Watch and learn, dumbass.

  65. Intentional Language? by mlinksva · · Score: 2
    Anyone know/have any suspicions about whether Microsoft's "intentional language" language or similar has/will have any impact? See It's been couple years since I looked at these papers, and I'm probably didn't fully grok them then, but if I recall they could point to an alternative direction from the java bytecodes or .NET IL. From the first paper's abstract:
    This paper presents the idea of the intention as an abstraction mechanism, and an integrated development system which may be used to develop systems using intentions. Software encoded intentionally can be said to be immortal, in that its meaning can be sustained independently of the long term progress in programming notation and implementation techniques. The independence and self-sufficiency of intentions might well create first a market in abstractions or "language features", followed by the long sought-after dream of a software componentry market. Legacy code can be integrated into the new paradigm with minimal or no loss of information and there are considerable prospects for "hot" re-engineering or continuous improvement, which can be performed while the legacy system is kept in operating condition.
  66. And your point is what? by Anonymous Coward · · Score: 0

    Exactly who gives a shit? You think you little weenies here on slashdot know about real world programming and such because you recompile your kernel? hehehe.

    Gosh, it's no wonder the open source communitiy is such a huge joke.

  67. Re:Cool by Anonymous Coward · · Score: 0

    Right-o. Don't forget the poppers and KY (oh, gawd, especially the KY)!

  68. Mistake by mlinksva · · Score: 1

    '"intentional language" language' in the parent should be '"intentional programming" research'. Excuse me.

  69. Java is going bye bye by Anonymous Coward · · Score: 0

    .Net is going to be the final nail in Java's coffin. Bye bye Java. Scott McNealy, it's time for you to grease up.

    Microsoft has 90% of the Desktop market. Most good developers are Windows Programmers, without question. C# will entice most, if not all of the Windows programmers who went the java route back over to Microsoft tools. It will likely take 2 years or more for the .Net technology to become the most widely used development environment for programmers, but it will happen. .Net is going to make not so good Windows programmers into adequate programmers and so on. It will happen.

    This is the death knell for linux and java.

    Meanwhile, linus is still trying to convince himself a monolithic OS is a good thing.

    Cheers.

    1. Re:Java is going bye bye by Anonymous Coward · · Score: 0

      80% of Java coding right now doesn't take place on Windows platforms.

      .Net only runs on Windows platforms.

      Thus, .Net is not in any way, shape, or form going to hurt Java.

      Java runs on Linux, Solaris, AIX, HP-UX, Macs, and Windows. In many cases, you can write once, and just run on all the others.

      .Net only runs on Windows platforms. You pay the cost of the VM, but you don't get any portability from it. At all. Zip. Want to run your stuff on a unix platform? Sorry, you throw everything out and rewrite it in something else.

      Microsoft may have a lion's share (and then some) of the desktop market, but it has no such strangle-hold on the server market. By any stretch of the imagination. And that's where 80% of Java developers are coding these days: J2EE server environments.

      Java has nothing to worry about from .Net, while .Net has everything to worry about from Java. Java is not only more mature (having come to the table YEARS before .Net), but is also cross-platform, and has TONS of industry support (BEA, IBM, Sun, Oracle, etc, etc). These are major wins over what .Net can offer.

    2. Re:Java is going bye bye by Anonymous Coward · · Score: 0

      You idiot....

      First of all, can you really prove that 20% of java coding takes place on windows? ....sounds like you made it up on the spot....esp with the fact that it is such a simple number

      Also, .net will not only run on windows! WTF have you been smoking?! Ever hear of mono?

      Although Java has been dominating, there is a lot to worry about with .net, as you would know if you had at least read the article

    3. Re:Java is going bye bye by dstone · · Score: 2

      1. 80% of Java coding right now doesn't take place on Windows platforms.
      2. .Net only runs on Windows platforms.
      3. Thus, .Net is not in any way, shape, or form going to hurt Java.


      Check your rules of deduction there, friend. Assertion 2 is true now, but we've already seen signs of .Net running on non-windows platforms. So I'd assert:

      2a. .Net may run on non-Windows platforms in the future.

      Of course, I'd then suggest that you change your conclusion to:

      3. Thus, .Net may affect Java in the future.

  70. LET'S GET IT STRAIGHT PEOPLE by Anonymous Coward · · Score: 2, Insightful

    C# open standards? That's bullshit.

    Anyone who thinks so has already been screwed over by MS's PR machine.

    Think about it: do we talk about C# or .NET? And which has been standardized? Our use of language is very revealing.

    I admire C#/CLR immensely. I would love to start using it. It's great tech. Beautiful.

    But I'm scared as hell precisely because it's not standards based.

    True, PART of the C#/CLI specs are standardized and were submitted to ECMA. But not all of them.

    This is EXTREMELY important to point out. That's the problem. MS gets you thinking it's standardized, gets you developing in it, and then pulls one over: "Oh, you can't implement X on that system because we've got patent #384722348239847 on that."

    What the hell do we do then? When we're all using C# and the CLR and then MS points out that something or other is proprietary technology that can't be used on OS X, Y or Z? It's a sticky situation that NO ONE has figured out yet.

    Don't get me wrong: C#/CLR is an impressive feat. But please don't start claiming we should use it because it's not proprietary. That's exactly what MS wants everyone to think. When people talk about "embrace and extend" what do you think they mean?

    True, Java is proprietary. But the Java process is much more open than C# at this point, and probably ever. And Sun isn't a convicted illegal monopoly (a point that some people gloss over as being irrelevant, but is all too relevant).

    So far, I just don't see C#/CLR being talked about as anything independent of MS in the way Java has. When I see texts that treat C#/CLR without making reference to .NET or Windows, or making as much reference to Mono, Linux, and OS X, I'll be satisfied.

    I agree with you that potentially, third parties could drive C# into directions much better than MS could dream up. Mono is a good move in this direction. So far, though, Mono is the best example, and all Mono has been doing--and more importantly, talking--is chasing MS's tail.

    So far, C#/CLR is just not (a) that much different from Java, and (b) not OS independent.
    All great languages are OS independent, and C# just isn't yet.

    C#/CLR is not open. That's the problem. It's been submitted to a standards body, but isn't standardized. Please, get it straight. This kind of screwing around with the standardization process to make something ostensibly appear standardized, all the while maintaining proprietary control for all intents and purposes is exactly how MS pulls this crap off.

    C# is worse than proprietary in this regard. If it were blatantly proprietary, fine. If it were blatantly open, fine. But this in-between crap is a no-man's land that benefits no one.

  71. What? by autopr0n · · Score: 2

    Are you trying to say desktop software written in java dosn't run on Linux?

    --
    autopr0n is like, down and stuff.
  72. Why M$ doesn't get unbiased reviews by A+nonymous+Coward · · Score: 1, Redundant

    Suppose I know someone, better off than most, who is always being caught up in one lie or another. Maybe not an outright lie, maybe just a little exageration. He claims to have given me a birthday present, when it actually came from someone else -- and everyone knows that. His proof that he owns a Ferrari is an obviously doctored picture. He takes advantage of others bad luck by loaning a small amount of money for lots of collateral, then finds excuses for not redeeming the loan later. He's always got some new investment scheme, takes people's money, then always has excuses for why the scheme failed and you don't get your money back.

    I'm sure most of us know people like that.

    Now this acquaintance comes along with yet another great investment scheme. Do you believe him?

    Once burned, twice shy.

    Burn me once, shame on you. Burn me twice, shame on me.

    And if you can't read between the lines, well, you will some day.

  73. Damn it! I'm just going to use ocaml. by Anonymous Coward · · Score: 0

    Ocaml is as fast as c, object-oriented, has garbage collection, and isn't proprietary by anyone's standards.

    I'll just have to convince everyone else and get used to those damn floating-point operators:

    +.
    -.

    etc.

  74. C++ != dinosaur by abdulla · · Score: 1

    Everyone keeps talking about C++ as if it is halfway to extinction, I think the commitee should do some pseudo advertising of what is going in behind the closed doors, to inform us of the future of the C++ specification and to give light to the fact that C++ is mature. There's a long road yet before its frozen in ice. Someone support C++, I know I will!

    1. Re:C++ != dinosaur by Anonymous Coward · · Score: 0

      Shhh! Don't tell others about C++ - I make a nice living doing C++ contract work rewriting failed java projects.

    2. Re:C++ != dinosaur by Anonymous Coward · · Score: 0

      And I make a nice living doing contract work rewriting failed C++ projects in Java. It's so cool to see the same functionality compile in ten minutes instead of two hours :-)

    3. Re:C++ != dinosaur by Anonymous Coward · · Score: 0

      But, I don't think how fast it's compliled is even important than how fast it was executed.

      I would prefer something to run faster even it must be compiled slower.

    4. Re:C++ != dinosaur by Anonymous Coward · · Score: 0

      It's nice to see your C++ stuff run fast. Pity that it takes you 18 months to write what the Java boys can do in 2, so by the time your "fast" code is out, the problem's changed and your code is useless...

    5. Re:C++ != dinosaur by Anonymous Coward · · Score: 0

      If you need a language to do RAD(don't tell me you're not talking about doing RAD in Java, what's 18 months VS 2 months), why not use VB? Okay, you wanna cross-platform, then why not Perl or Python? Perl can run on more platform than Java as I know. And in my experience a Perl is much easier to write than Java and it is run faster than Java(moreover, no compile time is needed).

      I won't consider C++ or Java is something for RAD, and I don't think the development time of them will have so great different.

      Please, don't be a Java addict. For the language alone, Java is great. But for the implementation and other aspects(like, API specification and control), there's lot of space for Java to improve itself.

  75. Multi-language means C# & VB.NET by SuperKendall · · Score: 2

    The multi-language features of .NET really serve one goal - provide a way to move thousands of current VB programmers forward as well as current C++ programmers addicted to Visual Studio.

    Both types of programmers will be coerced to moving into C# - the VB prgrammers enticed by the power of C# and the abilty to call into older VB libraries, C++ prgrammers by weaning them away from C++ specfic features (like templates), and both by the ease of C# calling into the built in libraries.

    When I first read the article on Eiffel# linked to in the article and realized how unpleasant it will be calling into the base libaries, I came to realize that the main effect of .NET's cross-language features would be to migrate other programmers to .NET. For any of you that have used Java (as that has the most comprehensive set of built in libraries of any language I can think of), imagine every call to the util or io or net packages involving some sort of name mangling... since your favorite features of your language of choice aren't allowed anyway, why not just use C#?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  76. C++ RULES by Anonymous Coward · · Score: 0

    C++ is the best programming language ever!

    1. Re:C++ RULES by Anonymous Coward · · Score: 0

      It's a bloated dinosaur, too complicated for many to ever learn fully, too unwieldy for very large projects with large development teams, too slow to compile, too easy to shoot yourself in the foot, and wastes too much development time and debugging time trying to get everything to work.

      Languages like C# and Java remove tons of development time and effort with large, robust, and standard class libraries out of the box (sorry, but the STL came way too late in the game -- everyone already has their own damn string class, thanks -- and is too arcane for many people to figure out and use). These languages compile faster, don't need separate "header" files that need to be maintained, remove all worries about memory leaks and memory management, and just plain make developers of all skill levels far, far more productive.

  77. missing the point of cross PLATFORM by wagadog · · Score: 1

    Cross-language programming is nothing new, and M$ is pulling the same stupid trick of re-inventing yet another wheel with .NET.

    I was writing mixed-language C and Fortran programmes as early as 1985, since you had a common object format for fortran and C on most unix systems.

    On the Mac, people were writing mixed language C, Pascal and Fortran programs around the same time with the MPW. And no performance hit from a VM either, since it was all linked at the object level. Today I write cross-platform programmes, Python and C with SWIG wrappers, and Python/C++ with Boost.Python. So who gives a flying toss about M$ reinventing mixed-language programming? Same crap, different bucket.

    And the fact that they're getting it with a VM is even more laughable.

    The point of having a VM and bytecode is cross-PLATFORM compatibility (which dates back WAY before Java -- take a look at UCSD Pascal), so comparing JVM to .Net is completely missing the point

  78. Is there an Open project to create a better one? by iabervon · · Score: 2

    It seems like there is a need for a common VM and runtime system. CLR evidently fails to be a suitable target for many languages. It's certainly possible to create such a thing: actual machine languages are such. The idea would be a VM that is easy to implement on just about any platform, along with common calling conventions for the various kinds of calls supported by different languages.

    It seems to me like the gcc CNI design is a good start, although gcc doesn't target a virtual machine.

    It seems to me like the right sort of VM would be a stack-based RISC architecture with bounds-checked pointer arithmatic, and probably some sort of GC. Code would be pointer-referenced blocks. The important part would be that it wouldn't have language-specific and CISC opcodes which would deal with objects and classes; at most it would make sense to have essentially installable microcode for a language's dynamic dispatch mechanism and such.

  79. Java has not yet failed on the desktop... by SuperKendall · · Score: 3, Informative

    I've written a rather large custom application before using Java and Swing - that was back around when the JDK 1.2 had just come out. The base target machine was a P166 with 32MB of ram rinng Win95.

    After some work, we had an MDI all-swing application taht worked pretty well and had some a number of nice custom controls. While a little slow on a P166 with 32MB of RAM, it was quite usable and needless to say on anything even a bit more powerful (like the developers screamin' fast P450's) you'd think it was a native app.

    So, speed is not really Java's problem on the desktop.

    The swing framework I found great and very nice for devloping powerful custom controls with minimal code. I would not say that a good GUI library is what Java lacks either (and there are others to choose from for those that hate Swing as some do).

    What I think Java has sufferd from is the large footprint and somehwhat long startup times (though those have been reduced). OS X has helped a lot be really integrating Java into the UI a bit, and doing things like sharing some Java resources for running programs.

    So, Java needs some way to help share Java resources to make many desktop Java apps practical.

    What Java also needs though is desktop Java programming tools. Some are already there - both Installshield and InstallAnywhere make GREAT Java installers that work well across many platforms. But I would say IDE's have not really helped the Desktop standalone developer. Sure there are a lot of GUI tools, but I think desktop app development needs more than just GUI builders to help you build a good desktop app. While I'm not exactly sure what that might consist of, I think that's an area that needs work.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  80. .NET cross platform by Tony-A · · Score: 2

    worms.

    I don't think there is anything about Java that is "neat" or "little".

  81. End user perspective - JAVA vs .NET promise by fferreres · · Score: 1

    Java runs SLOW for me. I don't know if it's because of the GUI implementations of what, but every medium sized Java app i have ever tried, ran slow and ugly.

    .NET will probably use MFC for Windows so everything will look just display fast, integrated to the OS and similar to every other app. already installed.

    I don't think it's a design problem, but JAVA failed on the desktop because of the OS integration at the GUI level. Nobody wants to use an ugly app that looks different from every other app in their GUI and that doesn't integrate well.

    And that is why it didn't fail so horribly in the server market (disclaimer: some people will argue it is a success).

    --
    unfinished: (adj.)
    1. Re:End user perspective - JAVA vs .NET promise by SpryGuy · · Score: 1

      Java is lightening fast as long as you stay away from the GUI stuff. And more and more of the GUI stuff is fast enough. Check out the IDEA integrated development environment from IntelliJ. It's all Java, and it's damn fast for what it does (at least on my machine).

      And the .Net stuff does not use "MFC" at all. MFC is gone. Toast. It's a C++ class library only, and simply doesn't play or have any relevence in the .Net world. They have a brand new class library which is, imho, superior to what has come before. But of course, any app you create in .Net will run ONLY on Windows, on Intel boxes.

      The Java world has a more difficult task of trying to run across platforms.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    2. Re:End user perspective - JAVA vs .NET promise by Anonymous Coward · · Score: 0

      IDEA is slow as molasses. Yuk.

    3. Re:End user perspective - JAVA vs .NET promise by Anonymous Coward · · Score: 0

      Not on my system (but then I have a fast system). I notice no speed problems at all, and in fact find it remarkably fast given all it's doing. Never mind the added benefit of built in support for refactoring, and color coded error highlighting as I type. This is one IDE that just plain rocks. But your'e right, you can't run it very well on your old Pentium 133. But then, you can't run much of anything on that platform any more. Hell, I have games that are slow as molassas on a Pentium III 800.

  82. It's wierd that .NET is from Microsoft by Animats · · Score: 2
    It's wierd that Microsoft, which controls the OS, should propose an interpretive common runtime platform. Sun did the interpreter thing for Java because Microsoft could change the execution environment on them. Thus, Sun pushed the download of executable Java bytecode, and Microsoft pushed the download of executable Windows code (as "Active-X plugins").

    If Microsoft wants to move executable objects around the network, they need a meaningful security model for executable code. But they can do that. They control the OS. The security-hopeless OSs, (Win 3x, Win95, Win98, WinME) are being phased out. Win2K and WinXP use the NT kernel, which can be made secure. (WinCE and the XBox OS remain security-hopeless, though.) If Microsoft wanted to provide for the execution of potentially hostile code in a safe way, they could do so.

    So why bolt on an interpretive layer and slow things down?

    1. Re:It's wierd that .NET is from Microsoft by mestar · · Score: 1
      You are wrong.


      IL bytecodes are compiled to native code during installation, or on first execution in scenarios where no installation is needed.


      so it does not slow things down in the way you say. for debugging purposes you can run it without final compilation.

    2. Re:It's wierd that .NET is from Microsoft by Animats · · Score: 2
      so it does not slow things down

      Similar claims were made for Java just-in-time compilers. In practice, though, they have a speed penalty. JIT compilers give up some opportunities for global optimization, and it shows.

    3. Re:It's wierd that .NET is from Microsoft by alext · · Score: 1

      Probably true. Conversely, standalone compilers give up opportunities for dynamic (runtime) and cross-module optimization.

      My impression is that as programming gets more abstract (EJBs, transparent RPCs etc.) the runtime optimizations become more significant as they're in a position to cut through a lot of code layering that, say, a C++ CORBA system would exhibit.

  83. practical experience by Anonymous Coward · · Score: 0
    I've been using Java seriously as the primary programming language since 2000. Alot of people complain java gui is slow, but think about the statement for a second. How in the world is a language which uses a VM going to be fast for GUI apps? Is programming swing/awt easier than learning win32, Xfree, gnome and a couple other GUI API's to write a cross platform GUI app? If you absolutely need speed and feel waiting 30-90 seconds is too much, then use something else.

    The area where Java wins isn't going to be GUI apps. Just because Sun tries to sell it as all purpose tool, it doesn't mean it is appropriate for all cases. There are other more light weight Java gui API's, but it's still going to be slower than something native. Having direct access to the graphics API isn't going to be beaten by pure Java or C#. Is it possible to use a mix of native and some VM language? Sure, but again you loose the flexibility of cross platform support. People who bitch about Java being slow and that is sucks are right and wrong.

    Does GUI speed matter for a server app which manages stateful financial transactions. Anyone that has developed serious server applications knows that speed is not the most important thing. Reliability, consistency, solid design and flexibility are far more important to a server app than running GUI API's fast. Your typical enterprise transactional application is memory and I/O intensive. Large companies usually have a mix of platforms and databases. Doing things like inserts, and updates across a variety of databases with varying data models is what application servers do best. Does an stateful transaction server need to access native API for graphics? What would be the biggest concerns building a real time trading application which goes out to other systems and places orders for trades? Sure speed is important, but not at the cost of loosing a transaction. Alot of systems still use batch jobs to process buy orders. Moving money around takes time, because it goes through several layers of validation and authentication. If running 100ms faster isn't going to affect the reliability or stability, then great. The only way to make sure transactions are handled properly and persisted are not rapid fire processes. Would you want to risk loosing a 3million dollar buy order because some piece of code has a memory bug?

    GUI applications are completely different than enterprise back-end applications. C# is microsoft's effort to move into the enterprise application field. The biggest annoyance is Microsoft tries to paint a picture that development will magically become so much easier with C#. Since managers will buy into marketing, microsoft's PR will create unnecessary grief in the early stages of C# for developers, until managers realize it's just like every other language and has no magic. The magic is that people actually work together to build a product.

  84. should have been a comparison chart by scrytch · · Score: 4, Interesting

    "CLR lacks continuations" ... so does JVM
    "CLR requires static single inheritance" ... so does JVM
    "CLR lacks multiple dispatch" ... etc

    I certainly think that the CLR could stand the criticism and have its hype deflated, but I'm not finding a lot to recommend the JVM. Sun doesn't even acknowledge, much less support languages other than Java on the JVM, with the exception of GJ, which it would rather absorb than support.

    I might also note that there are languages very much not like C# available for .NET, including haskell and scheme.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
    1. Re:should have been a comparison chart by SpryGuy · · Score: 1

      I think the point was that the CLR makes the claim of being "language independent", while the JVM makes no such claim at all. Thus the CLR should conform to a higher standard than the JVM, not be merely equivalent to it.

      One of the big things to recommend the JVM over the CLR is very simple: while the CLR tries to run multiple languages (and fails unless the language is simply a syntax-variant of C#), the JVM tries to run on multiple platforms (and does a fairly reasonable job of it if you stay away from GUI apps). I've taken JAR files for large and complicated server-side Java and J2EE programs, and just ftp'd them over to a Solaris box, and they just worked. Try that with CLR. Frankly, I think this aspect of the JVM is simply more important than trying to create a virtual machine where a VB programmer can extend a class written in C#. But that's just me.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    2. Re:should have been a comparison chart by Phil-14 · · Score: 2, Insightful
      "CLR lacks continuations" ... so does JVM
      "CLR requires static inheritence" ... so does JVM
      "CLR lacks multiple dispatch..." etc
      I certainly think that the CLR could stand the criticism and have its hype deflated, but I'm not finding a lot to recommend the JVM... Sun doesn't even acknowledge, much less support, other languages on the JVM. [...] I also note that there are languages very not like C# available for .NET, like haskell and scheme.


      Actually, you're wrong. Sun doesn't support other languages on the JVM because it wasn't designed to support other languages. It was merely meant to support Java. But the flip side is that they don't pretend to support other languages. No matter what Microsoft tells you, the CLR was meant to run C#; IF they had wanted to support (for example) scheme in it, it would look much differently. Now there are, I suppose, scheme implementations for .NET, but based on what I'm reading so far, they lack core scheme features.



      Basically, scheme and haskell AREN'T available for the CLR; the intersection of C# and haskell, or scheme, are available, with haskell or scheme style syntax, but it isn't the same as real scheme. There's more to a language than syntax; that's the whole point of scheme and lisp. But the marketing literature for the CLR defines another language by its syntax. A clustermessup like this, with the marketing power of Microsoft behind it, trying to make it the new binary programming standard, scares me.



      --
      (currently testing something about signatures here)
    3. Re:should have been a comparison chart by scrytch · · Score: 2

      Basically, scheme and haskell AREN'T available for the CLR; the intersection of C# and haskell, or scheme, are available, with haskell or scheme style syntax, but it isn't the same as real scheme.

      I was about to post a reply here, and to my chagrin, a fairly flameful one ... something I'm noticing myself do too often, but that's another story.

      Anyway, I'll stand by my assertion that MS is putting real effort, and not just marketing, into making MSIL a target for other languages other than C#. The tailcall instruction for example, very useful for functional languages. In any case, C#, MSIL, the JVM, and every native CPU instruction set are turing-complete, so their intersection is "that which can be computed" (with varying degrees of efficiency, no doubt). Scheme and Haskell for .NET are perhaps in an embryonic phase (I discovered to my horror that Mondrian doesn't perform compile-time type-checking, the fundamental strength of Haskell!) but they are ultimately no less constrained by the VM than they are by a real CPU (other than the fact that the simple stack-based VM is a poor match for CPU architectures that stress usage of registers instead) ... And at least MS is acknowledging that other paradigms (functional, logic) exist and aren't beating the OOP drum to the exclusion of everything else.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    4. Re:should have been a comparison chart by k4m3 · · Score: 1

      Not the point of the article. If you want a comparison chart, claim you are doing it. If you write an article where the point is "beware of advertisment", address the flaws in the ad. That's what is done.

  85. the name ".net" by Anonymous Coward · · Score: 0

    to name anything ".net" is a punch in the eye to anyone who enjoys the ease of grep, search engines, and even for the windows people, ctrl+f.

    naming something ".net" is like naming a male child "boy"

  86. Parrot? by ClarkEvans · · Score: 2, Interesting

    I'm curious to hear what others have to say about Parrot? This VM seems to be optimized for Perl, but will probably be able to handle Python/Ruby rather well. I would be interesting to know why Miguel's Mono chose to back Microsoft's C# instead of our core open-source langauge's Python, Perl, Ruby, etc.

    1. Re:Parrot? by alext · · Score: 2, Insightful

      Well, we have had quite a lot to say about this but
      unfortunately, for Miguel-ites Dotnet is the one true way and by definition it cannot be modified or (gasp!) improved. Luckily, it has already addressed all Open Source / Linux application development requirements and so further debate on this subject is pointless, as you can see from the number of replies to the above posts.

  87. Re:Is there an Open project to create a better one by Anonymous Coward · · Score: 0

    Yes. parrot.

  88. .NET securitry by r3dshft · · Score: 1

    .NET plans to have a reversal of roles in the security scheme. Since data that is on your harddrive is more trusted then data anywhere else, virii, worms, and other "anomolies" can occour (duh). So .NET plans on having everything on the server scanned, to look for the aforementioned anomolies.

    "With code access security, this scenario is reversed, executing the code as remote code provides significantly more security using default security policy." (http://microsoft.com)

    Won't this put a new strain on the server? What about mail servers and news servers with almost ever-shifting information.

    Moreover, this takes responsability off the user. What if a company configures the security wrong, and a virus is then sent to thousands of users, with no virus scanner because they were told the servers took care of that.

    Finally, do you REALLY want .NET sifting and picking through all YOUR information, and code?

    Just some thoughts.



    --
    unfortunatly, there IS a spoon.
    1. Re:.NET securitry by Anonymous Coward · · Score: 1, Interesting
      Moreover, this takes responsability off the user. What if a company configures the security wrong, and a virus is then sent to thousands of users, with no virus scanner because they were told the servers took care of that.
      Ignorant, ignorant, ignorant. The CLR on your machine provides the security framework. If I put up a virus that you download off the network, your CLR will refuse to run it. All the server has done is serve the file up.

      Finally, do you REALLY want .NET sifting and picking through all YOUR information, and code?
      Yes. Just like I want Java's sandbox picking through my applet data and code, to stop it doing bad things.

      Are you 15?
    2. Re:.NET securitry by Anonymous Coward · · Score: 0

      Ignorant, ignorant, ignorant. The CLR on your machine provides the security framework. If I put up a virus that you download off the network, your CLR will refuse to run it. All the server has done is serve the file up.

      trust in the all mighty CLR? ha. you make me laugh, are you an orphan?

  89. Generic Types by Oink.NET · · Score: 5, Informative
    Generic Types. There is currently zero support for generic programming in the CLS.

    Nobody has mentioned this yet, so I will. A research version of the CLR implements true generics, but because they only have limited resources, they decided not to include it in the first release. The following is quoted from this interview with Chief C# Language Architect Anders Hejlsberg:

    Hejlsberg:
    But with respect to the generics that you asked about, I definitely think generics are a very useful concept and you can certainly tell that from all the generics research that's taking place in academia and industry. Templates are one solution to the problem. In our internal discussions, we concluded that we wanted to do it right for this new platform. But what we would really like is to have generics understood by the underlying runtime. This is different from how some of the generic prototypes have been built. Take Java's notions of "erasure" where there's really no knowledge of generics in the system. By having the common language runtime understand the concept of generics, multiple languages can share the functionality. You can write a generic class in C# over in one place and someone else using a different language can use it. But making generics part of the runtime also enables you to do certain things much more efficiently. Instantiation of generics should ideally happen at runtime. With C++, instantiation of templates happens at compile time, and then you have two options: you can either let your code bloat or you can try, in the linker, to get rid of some of the bloat. But, if you have multiple applications, you can forget about it. You're just going to get bloated code.

    If you push the knowledge of generics into the common language runtime, then the runtime can understand that when an application or a component asks for a list of "Foo's," it should first ask: "Do I already have an instantiation of a list of "Foo?" If so, use that one. Indeed, if Foo is a reference type, and if we do the design right, we can share the instantiation for all reference types. For value types, such as ints and floats, and we can create one instantiation per value type. But only when an application asks for it. We've done a lot of the design work and groundwork necessary to add generics to the runtime.

    It's interesting you asked earlier about the IL because deciding to add generics impacts the design of the IL. If the instructions in the IL embed type information -- if, for example, an Add instruction is not an Add, but is an Add int or an Add float or an Add double -- then you've baked the type into the instruction stream and the IL is not generic at that point. Our IL format is actually truly type neutral. And, by keeping it type neutral, we can add generics later and not get ourselves into trouble, at least not as much trouble. That's one of the reasons our IL looks different from Java byte code. We have type neutral IL. The Add instruction adds whatever the two things are on top of the stack. In a generic world, that could translate into different code when the generic is instantiated.

    Osborn: Is that available to all .NET languages?

    Hejlsberg:
    Yes. Microsoft Research in Cambridge has created a generics version of the common language runtime and the C# compiler. We're looking at how to move that forward right now. It's not going to happen in the first release, that much we know, but we are working on making sure that we do things right for the first release so that generics fit into the picture.

    1. Re:Generic Types by SpryGuy · · Score: 2, Informative

      And let's not forget that a preliminary version of generics is supported in JDK 1.4 (turned on by an option, but not "officially" part of the 1.4 JDK), and will be released as an official feature of the 1.5 JDK.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
  90. New VB = language neutrality?? by the_skywise · · Score: 2, Insightful

    I don't understand your point.

    The old VB is, for all intents and purposes, GONE. In its place is a language that has almost a completely different syntax and environment, but is called VB.

    And why was this done? Because the "old" VB wasn't supportable by the OOP-ness of the CLR (which is what this article points out)

    In effect, it would be FAR better for the old-VB'ers to learn C# than VB. Because they're going to be basically learning a new language anyway.

    Even C++ programmers are left out in the dust because you essentially have to use proprietary C++ keyword extensions to access .NET functionality. (not code to the .NET API, you must use .NET syntax) In some cases, basic C++ operations (like casting) cannot be used if your app will be .NET capable, and you must code explicit workarounds to case using the .NET way (see last month's MSDN journal...)

    (oh and C is NOT a .NET language... also from the MSDN)

    But I fail to see how all of this shows that this = language neutrality and therefore this = a very easy transition/upgrade for many developers out there?

    And I'm ultimately more concerned about how this impacts my ability to make reusable C++ objects across multiple platforms... I know alot of people on slashdot these days seem to think there's nothing but windows out there (odd because slashdotters are accused of being Linux biased...)... and that's not the case...

    1. Re:New VB = language neutrality?? by sheldon · · Score: 2

      "But I fail to see how all of this shows that this = language neutrality and therefore this = a very easy transition/upgrade for many developers out there? "

      That's because you started with a flawed premise...

      "The old VB is, for all intents and purposes, GONE. In its place is a language that has almost a completely different syntax and environment, but is called VB. "

      Sorry but the differences are not that substantial. Yes, it'll be difficult to take existing code and drop it right into place. But on the other hand for someone already familiar with the VB syntax it's a trivial transition.

    2. Re:New VB = language neutrality?? by the_skywise · · Score: 2, Insightful

      So what *IS* my flawed premise?

      As for VB. The differences ARE substantial. Yeah, VB programmers are used to abuse whenever they move up to the next version of VB. ('Cause their code often has to be modified to accomodate the minor language changes from each version...) But the entire paradigm of VB is different with VB.NET. VB.NET is a TRUE object oriented language. VB is NOT. VB had objects, but the objects weren't inheritable, and the methods weren't overridable. My argument isn't that old VB'ers can't do new VB. My argument is that, for the price of learning the new paradigm, the VB programmers can spend a little more effort and learn C# and take advantage of more features than in VB plus have a lead in to doing C++ which will enhance their career skillsets...

      Oh, but that would break the .NET argument of language neutrality... because everyone wants to use different languages...

  91. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion

  92. Actually, CLR same as Colusa's CVM by Oink.NET · · Score: 1

    Microsoft's CLR is actually based on Colusa Software's CVM, which Microsoft got when they acquired Colusa. Read about it here

  93. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  94. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  95. Yahoo Store is coded in Lisp... by Anonymous Coward · · Score: 0
    ... as explained by Paul Graham.

    FYI, It was sold for quite a bit of money.

  96. Questions by Anonymous Coward · · Score: 0

    what are multiple inheritance of implementation and genetic programming?

    Thanks in advance....i have no idea what these are

  97. I used to code in VB 4 and VB 5 by alexhmit01 · · Score: 2

    (plus a little VB for DOS).

    VB is a kick ass language. For a long time, however, it wasn't kick ass as much as VC++ was crap.

    VB was a RAD tool. You could throw together a database front end REALLY fast. VC++ was not. Building the same front end in VC++ was slow and annoying.

    The problem with VB was that you were given a crippled language because of Microsoft's marketting goals. They wanted an "easy" language for everyone. This worked. However, every project I worked on in those languages would need 1-3 Win32 API calls. Getting those calls to work would normally take between 50% and 75% of the project time.

    I had some projects where we really wanted to move the logic into VC++. I thought that since I knew C (and C++ as a better C, not real C++), I could play with VC++ long enough to move the logic into some DLLs.

    The interfaces were hard to pick up. We got faster computers instead and figured Moore's law would help us.

    Java tried to hit the VB developers with the RAD tools. While Java was better for building GUIs than VC++, it was far worse than VB. When I learned Java for school, I really appreciated the benefits of a true Object Oriented language. However, when it came to building the GUIs, it was hard to not cry. Sure the people that never built a GUI thought that Java was fine, but if you had built one with VB, Java made you cry.

    It's come a way now, and the modern IDEs are decent.

    You are 100% correct. Java could have hit big time if there was a VB like tool for it. However, Sun wrote AWT, which was a disaster. Reading books from Sun's Java people makes you want to cry. They brag about how they spent about 6 weeks on AWT. Why? Why did early Java applications look hideous? Why was there not a reasonable GUI system?

    Oh well, look at Sun Workstations at the time. CDE/Motif... yummy. Motif may have wonderful technical merits. CDE and Motif look ugly.

    Sigh, why didn't Sun work with Apple to develop the GUI portion? Both companies had a lot to gain by an assault on the desktop, both needed to unseat Microsoft, and both needed cross-platform to take off.

    Oh well, Apple helping push Java might have gotten them marketshare, and that wouldn't help Sun's delusions of taking over the desktop with expensive workstations.

    STUPID STUPID STUPID

    Brilliant OO programming is great for large projects.

    Quick and dirty will always win for quick jobs.

    How much "corporate" data is stored in little Access databases? Easy to develop helps a lot. Not everyone has a big IT department. Not every department in a large company can get IT to help them. Sometimes it's easier to find $500 for Access or VB and sneak it past IT then to try to get the write thing done.

    Oh well. I'm happily not coding in VB anymore, but I'm sorry that it isn't all Java-like. JavaBASIC would have been nice.

    1. Re:I used to code in VB 4 and VB 5 by Anonymous Coward · · Score: 0

      visual c++ is not a programming language, its an ide. Yes there is a difference.

    2. Re:I used to code in VB 4 and VB 5 by alexhmit01 · · Score: 2

      Not really.

      C++ is a programming language.

      VC++ is a programming language, based upon C++, that involves building applications with their IDE and MFC.

      VB is also an IDE. It is also a quasi-object oriented language built on top of BASIC syntax.

      Alex

  98. I agree by markj02 · · Score: 2
    Microsoft needed something like Java to cope with the numerous safety, security, and portability problems they had due to their use of C/C++. Since Microsoft clearly couldn't use Java anymore after the lawsuit, they made their own closest copy and tweaked it in some small ways.

    The two languages and runtimes are very similar, and for most applications, the decision which one to use probably depends on whether you are a Microsoft or a Sun shop. For some applications, C# is a little nicer.

    In the long run, I hope we won't get stuck with either of these runtimes for too long. Both of them are still fairly limited compared to what modern languages can do. In particular, lack of support for parameterized types and lack of support for efficient functional programming languages, mean that these are clearly not ultimate solutions. Sun is perhaps a bit more honest about this: it's a Java runtime, but if you can make Python or Smalltalk run on it, more power to you. Microsoft is overpromising by calling their runtime "common" or "universal".

  99. Java or .NET can't be one thing for everything by stardeveloper · · Score: 2, Interesting

    I think people have to realize that Java or .NET can't be one thing for everything.

    Java couldn't succeed on applet/desktop side, that's a fact. But it is also a fact that it succeeded on enterprise application framework side, much to the success of it's J2EE platform. J2EE is a complete framework for building enterprise class applications ( JSP to EJB ). Much to it's success is due to the role played by IBM, Oracle, BEA, Borland, Sybase and host of other companies.

    Probably if we had been able to create an open source enterprise class application framework using "C" ( my favorite language ), perl, php etc, we would have created faster and smaller apps than any of these two frameworks. When I talk of enterprise class I mean framework which supports Messaging, Transactions etc.

    .NET is a new platform and is extremely easy to develop for, thanks to expensive VS.NET. It contains few things which Java lacks ( won't comment on those ). But it is yet to see if it is able to get the attention Microsoft wants it to.

    The point is that both of these frameworks are out there because their companies ( Sun and Microsoft ) want to get the maximun money out of you ( and your companies ), not that they love and care about you so they want you to use their software. So my suggestion is that don't get emotional in taking one's side against the other, when these companies care about their interests, you should care about your interest; "choose the software which is best for the job at hand" and stop believing in Java or .NET as if they are relegions.

    Stardeveloper.com
    http://www.stardeveloper.com

  100. Re:And behind #2 is... Java! by MrBandersnatch · · Score: 1

    Java? Oohhhhh that's that cross platform language isn't it? The one I spent 8 months developing a product on with the intension of it running on X, Windows and WinCE. The one that my clients bought into having seen the beta running on WinCE..... The one that Sun quietly DROPPED support/development for the WinCE VM leaving me with a bill for several thousands $ in licensing fees for a proprietary VM.
    Point is it may be an open standard but I haven't noticed Sun releasing many of their products as open source. Not that MS is likely to either - they will both make decisions for commercial reasons and you could find yourself damned whichever beast you choose to side with.

  101. Actually, C# is the defensive move... by bubbha · · Score: 1

    Java mind share is already too entrenched on the server. Why choose a programming language like C# that locks you into a wintel server configuration? Java allows for many more options - mainframe/linux, intel/linux, Sun/Solaris, HP/HPUX/Linux, Intel/Windows, Hell, Apple/OSX servers for that matter. And after the fiasco MS created this summer forcing business to upgrade with a gun to their head... well that was the eye-opener that cinched the deal. Load on top of that all of the security problems and the callous way MS handles them...well you may be amused, but I don't think the rest of the world is.

    --
    I want to be alone with the sandwich
  102. LANGUAGE NEUTRALITY IS A STRAW MAN by Drake42 · · Score: 1

    Think from the business point of view:

    If you are a paying for programmers, do you really want them all speaking different languages? Obviously not. You want them all to be able to read each others code. This makes it so you can pull people from one project and put them on another project without having to teach them a whole new language.

    The very first thing any company or project does is pick a language. Before that point, language neutrality doesn't matter becuase the company hasn't picked a language yet. Beyond that point language neutrality doesn't matter because everyone has learned the language of choice. In a legacy, language-hetrogenous environment language neutrality does not matter because everyone has to be trained in CRL.

    .Net has no selling point because no business wants language neutrality and every feature it intends to offer can already be done in J2EE. (I'm seperating .Net from Passport because Passport is a particularly dangerous idea)

    The fact that language neutrality is 'cool' doesn't matter. The .com days are over and if you aren't thinking about your company's profitability you are wasting your employers money.

    1. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by sheldon · · Score: 2

      You seem to have a very naive view of software development.

      Most companies already have at least a half dozen or so different languages deployed throughout the enterprise. (VB, C++, Uniface, Java, Delphi, COBOL, etc. etc.)

      I don't know anyone ignorant enough to think that they will ever be able to replace all software with a single language/platform as you suggest.

    2. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by Drake42 · · Score: 2

      Why would you replace a completely working system?
      If it works and you don't need to significantly modify it, then you don't worry about it. But then, that application doesn't effect a future development decision much either.

      If the project does need major maintenance or you are trying to take advantage of the maintainers free time you have these situations:
      A) The project is not changing enough to be re-written in which case you stick with the language you are in. (Thus not needing language neutrality)
      B) The code is going to be rewritten in which case you can choose the language and don't care much about language neutrality.
      C) Your developer has enough spare time to work on something else, but is unwilling to learn a new language in which case you have a lazy developer.

      I do understand that migration is a slow process, but you don't need to keep your COBOL programmers forever if they refuse to learn new technologies. Obviously you don't switch languages in one big bang as you seem to suggest.

      Also remember that I'm not talking from the view of a programmer. I'm talking from the point of view of a business manager who doesn't want to spend a huge salary on COBOL consultants when they could spend much less money on a java programmer if they re-write the software in a more commonly known language.

      I know tonnes of people at large companies who spend 40 hours a week doing 5 worth of work because they're the only ones who know the obscure mainframe lanugage. As soon as the company migrates to a more up to date platform and language they suddenly get much more bang for their programmer buck. That is profitable. Paying someone for 35 hours a week of surfing time is not. Making new extensions to an old language (such as adding .Net to Cobol or the laughable 'Visual Fortran') is simply perpetuating a non-profitable situation.

    3. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by the_skywise · · Score: 1

      Actually... you have the naive view of software development.

      Yes, most companies have a dozen or so different languages deployed...

      But those teams DON'T WORK TOGETHER. ONE team uses ONE language, ONE platform, and (if you're fortunate) ONE architectural style. Just making all the underlying code callable from within a different language DOESN'T make the code WORK TOGETHER.

      So Microsoft's argument is "Now, we have enabled every COBOL programmer to still be useful and valuable to the company. Their code can be used by C# programmers!" BS! If you're a C# programmer at three o'clock in the morning, and you're trying to fix a bug to ship your product by deadline at 8am, and you track the bug down to a problem in the COBOL source... AND YOU DON'T KNOW COBOL... what good is that? What're you going to do? Hope you can get in touch with the COBOL guy, and try to have him fix his code?!
      What happens if you're the manager when the COBOL guy leaves? Are you going to replace him with ANOTHER COBOL guy? Or are you going to have the code rewritten to conform to whatever language you have the most programmers of (which is what everyone does nowadays without .NET anyway!)

      The reason ONE team uses ONE language is to keep its own sanity in check. If you break development over multiple languages, you just add more risk and potential bugs to the development. (oh sorry, I sent a CZ string instead of a .NET string and the VB module foobared itself...)

      (and I don't know why you throw SINGLE PLATFORM in there, because you're implying .NET works on multiple platforms... Guess you're talking Windows ME, Windows 2000, Windows XP and Windows CE...)

    4. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by sheldon · · Score: 2

      "But those teams DON'T WORK TOGETHER. "

      As I said, you have a very naive view of software development.

      Most software is built within companies for use in day to day internal business. It is not shipped out the door, there are no 8am deadlines where you are working by yourself.

    5. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by sheldon · · Score: 2

      "I'm talking from the point of view of a business manager who doesn't want to spend a huge salary on COBOL consultants when they could spend much less money on a java programmer if they re-write the software in a more commonly known language. "

      Uhh, yeah... whatever.

      Look, you don't know what you are talking about. That's clear because you've taken a problem that is really quite complex and tried to simplify it down to "people are just lazy."

      Obviously you've never worked in a largescale IT environment.

    6. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by fitten · · Score: 1

      Maybe the reason that a project chooses a language is because there is little language neutrality?

    7. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by the_skywise · · Score: 1

      "Look, you don't know what you are talking about. That's clear because you've taken a problem that is really quite complex and tried to simplify it down to "people are just lazy." "

      Uhh no, I happen to have quite a bit of experience in the IT industry, working with various development environments and frameworks:

      I've written software strictly for "in-house" (as you so quaintly put it) and have worked for an 8 am milestone deadline so the boss could report the "success" at his monday morning meeting.

      And contrary to your limited experience "language neutrality" has been around a long time. It's called network computing (Microsoft called it "DDE" way back when), and we communicate using standard protocols. Group A uses their language, and Group B uses ours... It's not rocket science, but neither group exchanges algorithms. Not because they're lazy (as you would think anybody who disagrees with you), but because the algorithms AREN'T TAILORED to the solution domain already in existence.

      It's obvious that you have no real programming experience outside a Microsoft environment and believe Microsoft has single-handedly innovated everything. But then being an MCP, that would explain everything.

    8. Re:LANGUAGE NEUTRALITY IS A STRAW MAN by Anonymous Coward · · Score: 0

      There are software releases in "corporate" environments.
      Then there are bug fixes and the deadline can be 3am, if that is the maintenance window.

      In a large corporation with mutiple apps to support, teams don't "code" together. In small ones, maybe.

  103. Bargain basement little side gigs... by Drake42 · · Score: 2

    ...are the biggest boon for free lance developers.

    You meet someone who is busy and needs to update their little side app. Because the person is doing it on the side they don't have time to do a proper design. You come in, bill them at a competitive, hourly rate to update/rewrite/extend the code and then train the maintainer on what you did. You get a nice little bonus for your spare time, and the maintainer gets to keep the clout of maintaining an important app plus gains access to a good example of using up to date technology in their application space. The only tricky part is finding the clients.

  104. .net and Java is about productivity by dybdahl · · Score: 1

    .net and Java is about productivity, not about how all software will be written in the future. Those programmers, whose work will improve the most, consider this a revolution. This happened with Visual Basic, UCSD Pascal, Java, and now .net.

    But when you compare Delphi (a native compiler) with Visual Basic (a P bytecode compiler), there is no doubt which one delivers the best end-user products. Visual Basic requires a runtime and separate OCX-files etc., whereas software made with Delphi is often just an .exe file, that includes everything from the database engine to all widgets.

    I believe Java has problems for the same reason: How do you create a program that runs well on Mac OS 8, 9, X, Windows, Linux etc.? You definitely don't use the latest Java version, because that is not supported on all platforms! And somehow I cannot make some of my browsers run java apps in a stable way.

    The whole idea of having a runtime is pretty troubled, and so it will be for Microsoft .net. Remember, that most PCs out there run Windows 98, a 4 year old operating system, and that Windows 98 is still one of the most sold operating systems on brand new computers. There is no doubt that the first versions of .net will be unstable and faulty just like everything else in version 1.0, which leads to the conclusion, that:

    .net will not be widely supported on deployed desktops in a stable version before year 2008, and maybe even later if Linux gets widespread use on the desktop.

    That's in 6 years. How did the world look like 6 years ago? Well, Windows 95 was gaining market share from Windows 3.x and Linus Thorvalds could go unnoticed on exhibitions.

    Personally, I believe .net is too late.

    Dybdahl.

  105. .NET is for the server AND the desktop by Otis_INF · · Score: 2

    (NOTE: below, 'java' is the name for a platform, not a language.)

    Webservices? Are you running these on the desktop? I don't think so. .NET is a platform where you can build winforms based apps (client/desktop stuff), or serverbased apps (webforms apps, also clients!) or server based distributed (!) apps (webservices).

    The idea of java from 1995, where you could have all kinds of applets, running on servers on the internet, and working together as one big app (the 'The network is the computer' idea) is never delivered by Sun, but will now be delivered by MS.

    .NET is for the server mostly and for the desktop, but it will take off on the server in the first couple of years, since the runtime is big. Yapping it is targeted at the desktop only shows that you don't understand where the power of .NET really is located: in the ease to create distributed applications with flexible clients.

    Java is now 'a' platform of choice for writing server side businesslogic components. Together with JSP's, its like the VB/C++ - ASP combination on win32. Someone said 'On the server, Java truely rules', well, I hope he means 'it's awesome', instead of 'it 0wnz', because it doesn't have the majority of the servermarket, and with .NET on the market, it will not get that majority in the future also, mark my words.

    --
    Never underestimate the relief of true separation of Religion and State.
  106. CLS has been done before with CP/M by Mandelbrute · · Score: 2

    But all it seemed to do was clear the screen!

  107. Re:Correct, but 1 question please? by Anonymous Coward · · Score: 0

    >> And if three things happen - MS sticks to the 1.0 format, Mono finishes within a reasonable period of time, and VS.NET catches on- then most developed apps will run on multiple platforms without modification.

    Just one question: why MS can be interested in that? You are insinuating that high quality business applications will run unmodified on linux, thus making buying NT Workstation&Server licences unnecessary.
    Why would MS be interested in this happening?

    At a more general level, I hardly see how the management team who (for 10 years) refused to ship VBasic for Macintosh and prevented an OpenWin32 standard to be created, will be the able to execute any multiplatform strategy. It doesn't seem to fit the management's culture, unless the whole top is replaced by different people.

    But maybe I am missing something?

  108. Also important to Big Enterprises by Anonymous Coward · · Score: 0

    Language Neutrality is also important to big enterprises running Mainframe Applications. Most of the their code is STILL in Cobol, and will remain there. Providing Language Neutrality and multiple Language support is very smart of Microsoft. That Sun has not done much is very DUMB of them!

  109. That's exactly the problem! by Anonymous Coward · · Score: 0
    It is going to be a very important technology in the future, whether you like it or not.

    Wether we like it or not it still gets rammed down our sensory input devices until it starts leaking out of our sensory output devices. Or at least, that's what people like you would have us complacently expect.

    Let me give you the following important reasons why we should all make a concerted effort to have CLR run into the ground:

    1. It creates a barrier between your code and the cpu which limits the potential for what anyone can do (can you say digital rights management?)
    2. When newer processors come out it will slow down innovation because either:
      • you'll have to wait for the CLR to be updated to take advantage of new processor features
      • you'll have to wait longer to get the processor because of the coordination involved in making the CLR and processor features work properly.
      And who's to say processor company A won't convince Microsoft that parts of the CLR's code should hinge on unique features of their processor that processor company B has yet to implement. Has anything been setup to make sure this doesn't happen?
    3. We all know about the speed diferences between running bytecode through the JVM compared to running it as native code, imagine how bad things could potentialy be using CLR? It boggles the mind!!!

    I hope this makes you stop, think and create an informed opinion rather than complacently acception whatever MS (or ANY OTHER ORGANISATION) dishes out as being the status quo.

  110. That's Exactly the problem! by los+furtive · · Score: 2
    It is going to be a very important technology in the future, whether you like it or not.

    Wether we like it or not it still gets rammed down our sensory input devices until it starts leaking out of our sensory output devices. Or at least, that's what people like you would have us complacently expect.

    Let me give you the following important reasons why we should all make a concerted effort to have CLR run into the ground:

    1. It creates a barrier between your code and the cpu which limits the potential for what anyone can do (can you say digital rights management?)
    2. When newer processors come out it will slow down innovation because either:
      • you'll have to wait for the CLR to be updated to take advantage of new processor features
      • you'll have to wait longer to get the processor because of the coordination involved in making the CLR and processor features work properly.
      And who's to say processor company A won't convince Microsoft that parts of the CLR's code should hinge on unique features of their processor that processor company B has yet to implement. Has anything been setup to make sure this doesn't happen?
    3. We all know about the speed diferences between running bytecode through the JVM compared to running it as native code, imagine how bad things could potentialy be using CLR? It boggles the mind!!!

    I hope this makes you stop, think and create an informed opinion rather than complacently acception whatever MS (or ANY OTHER ORGANISATION) dishes out as being the status quo.

    --

    I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

  111. It is not about VM by eud · · Score: 2, Insightful
    I would say it is obvious that "write once, execute everywhere" concept failed miserably at least at the client side. It is simply impossible to write a non-trivial and useful application for several platforms because it must interoperate with different platform-specific mechanisms. Do all the Java-supported platforms have Windows-type tray?

    At the same time Java is obviously a success at server-side. When you write an "enterprise application" it is (in my experience) not supposed to run everywhere. What is even more important there are not so many differences between, say, Solaris and Windows NT/2k for a typical web/database transaction processing system.

    What really counts here is not a particular VM feature or its absence. It is all about APIs, services, and application servers implementing them.

    Java is a language, which is kept quite simple. There is no standard C-like preprocessor, type system is straightforward, no generic types, etc. There are no selling points here except for this simplicity.

    Java is strong because of the widely adopted J2EE platform along with all these 3- and 4-letter acronyms (JDBC, EJB, JMS, JSP, JTA, etc.) and because there is a number of mature J2EE-compliant application servers around.

    This is were the main battle will take place probably.

    -- Eugene

    1. Re:It is not about VM by Anonymous Coward · · Score: 0

      something i like about "write once, run anywhere" is that I can code my personal JSP site on my Mac OS X box or my PC, and know that the damn thing will deploy without a hitch on my host's linux servers!

  112. Re:And behind #2 is... Java! by SuperKendall · · Score: 2

    I think however that you will be less likley to be damned with Java, in that there are more open codebases to start with and Java certainly is running on a lot more platforms (like my phone and Palm).

    The other side of that comes from us KNOWING that if you felt like it you could easily just take all of the specs and implement a VM on any platform you felt like, as other people have done just that - if the cost was way to high you could have built a WinCE VM from scratch yourself.

    As there are no finished open .NET VM's, and there are questions around the published standards even spplying all of the details you need to produce a full working platform that can run any .NET code, I'm not sure you could say the same thing for .NET (although in your particular case I guess you can be assured it will be on WinCE - but will there be a palm .NET? I doubt it).

    I'll clsoe by noting that you didn't complain about cross platform not working, just about VM availiablity. The cross platform aspect of .NET has yet to be proven out, though a lot of that may come down to the same issues - lack of VM on a platform (.NET for Solaris and the AS/400 is when?).
    .

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  113. Eiffel# by SimonK · · Score: 2

    Actually Eiffel# has two deficiencies compared with Eiffel proper. It lacks covariance, and it has no multiple inheritance. These are two of Eiffel's most important features. The other two are design by contract and genericity.

    Design by contract was never going to be an issue, because "its just code". Generics they have implemented, but the only way to implement them is by type erasure (as Java does). Thats inefficient for primitive types, and will make Eiffel# generic types non-type-safe when they're used in code in other languages, or, indeed, in Eiffel# code that does not have the source available at compile time.

    The end result is a radically different language from Eiffel. One, in fact, that looks like C# with design-by-contract and Java-style generics, but Eiffel's *syntax*. This is true regardless of Meyer's genius (which I don't dispute). In fact, it is a language you could implement on the JVM just as easily as you can implement it on the CLR.

    So why does Meyer say the CLR is "truly language independent" ? This seems to me to be an extraordinary assertion. Now, maybe he has some assurances from Microsoft that the capabilities of the CLR will expand in future versions, but if he does he is probably being naive to believe them. If not, as an assertion it does not reflect at all well on his intellectual integrity. Sure: you can implement any language on the CLR, just as you can on the JVM, but some languages will require so much effort, and be so inefficient, it will not be worth it. I don't care how clever Meyer is: the CLR has a profound bias towards statically typed, single dispatch, single implementation inheritance languages. Only 2 such languages exist: Java and C#. To implement multiple inheritance of mutliple dispath would require very considerable efforts. He admits as much himself later in the article, so why is he pushing this ?

    Meyer's article does indeed make several good points, but on the "true language independence" he does not substantiate his case, and, indeed, undermines it is several places. The CLR is clearly not "truly" language independent.

    1. Re:Eiffel# by Anonymous Coward · · Score: 0

      Eiffel# is different Eiffel, I agree. Meyer doesn't go into this in detail because the article is about the significance of .net. However to say that Eiffel# == C# + design-by-contract + generics is silly. These are two features that can easily change how code is designed. So a different design mentality can be used with Eiffel# when compared to C#.

      The point of his article is not that .net is an equal playing field for all languages. His point (as I read it anyway) is that any language can be moved onto .net in a reasonable way. Have you ever tried some of the functional language implementations on JVM? Their performance is very scary. However Microsoft (and 3rd parties) has made a real effort to get functional languages running reasonably. There aren't any independent running times available yet. However .net reseachers are actively tackling this problem, where Java researchers aren't. So one could see how this is open to debate.

      But let me make this clear, Meyer doesn't define "true language independence," and there are at least two ways of understanding that phrase.

      Also Java doesn't have a standard way of handling generics. There are about 7 significantly different ways being proposed last I checked and there isn't one article describing them all (last I time checked, too).

  114. and it has been a curse by Anonymous Coward · · Score: 0

    why do people keep floggin this? its been hell to deal with.

  115. Java Generics by SimonK · · Score: 2

    There's a JCP standard now. Its slated for implementation in 1.5

  116. Re:Is there an Open project to create a better one by alext · · Score: 1

    Wow, someone actually thinking about the requirements!

    I'd like to stick my neck out and say that, if we're starting here in 2002, we should definitely avoid bytecode and go for an intermediate language based on ASTs, i.e. a representation of the actual program structure.

    The reasons for this would normally be considered rather deep - stuff about reflection, meta-level programming, LISP-style macros etc. - but one angle is obvious to any Open Source hacker the code is the source! Just distribute the semi-compiled form and bingo! anyone else can read it, change it etc. Surely an "Intermediate" Language to warm the cockles of RMS's heart?

    There should be references to this approach in LISP/Scheme research - if anyone knows a good paper I'd appreciate a pointer.

  117. What about the Windows registry? by outlawstar · · Score: 1

    Assuming .NET apps compiled in Windows can be run on Linux, what happens to the role of the registry? Virtually any sizable program written for MS Windows makes use of the registry; will Linux implement something similar just to support .NET apps? If not, will programs written for Windows really run on Linux without problem?

  118. The LOTR reference is hauntingly correct! by KlomDark · · Score: 3, Funny

    Remember the whole story about the _other_ rings: Power given to the leaders, to control their people. Of course, the leaders took the rings out of their personal greed. Sauron completely takes them, as he is able to control all the other rings, and holders of those rings, with the ONE RING.

    Sounds just like it: Here, use these beautiful new "rings" (.NET), and all will be good. At least until I use my super-powers to control you when you least expect it.

  119. One answer: mental masturbation by denshi · · Score: 2
    I'm serious. Microsoft has an ever-increasing number of programmers with little to do. Their culture is noted as being obessive about being around the office, even when you're burnt out and contributing nothing. So every grandiose project that reinvents the wheel mitigates that. The 'grandiose' part is not to be overlooked -- it's so much better for marketing to be able to say "we're developing a comprehensive solution for language conformity" versus "we're solidly on the treadmill of building quality interfaces for languages calling foreign functions". One promise is resignation towards mature engineering, the other is a 'build once and forget it' christmas morning fantasy.

    Another reason is that the above is *hard*. It's simple to call functions across languages -- it's much harder to make languages agree on a binary format for data representation so objects can be passed between languages. Sure , if the computing world had grasped LISP back in the 50's & 60's we wouldn't have most of the 'design goals' needed to patch over Algol, but they didn't and we did.

    Oh, and MS needed another line item to crush Sun.