Yet more questionable info on W3Schools.



  • Filed under the articles about .NET:

     

    Executables, C++ (and Java too) must die

    Neither C++ nor Java can ever create standard components that can run on all computers. There is no room for these languages in future distributed applications. Executables are not standard. COM objects are not standard, DLL-files are not standard. Registry settings are not standard. INI-files are not standard. None of these components must be allowed to destroy your dream of a standard distributed application that will run on almost any computer in the world.

     

    http://www.w3schools.com/ngws/ngws_standards.asp

     

    Stand alone it might have some merit, but file it under .NET? Do they want their standard world to be 100% Microsoft???



  • Errors in what they say:

    • C++ is just a language, it's the compiler that makes it platform specific.
    • The whole point  of Java is that it works on anything.

    I assume by .net they are referring to web applications, in which case they aren't arguing against c++ and java, but against executables vs web apps. Using cgi, there's no reason why you couldn't have a c++ or java application generating your web pages.



  • Oh yes, and web applications have done a great job so far at being standardized. With every web browser having its own slightly different interpretation of all these web 'standards', creating standard components that run on every platform imaginable is really a breeze.

    And as for .NET, not only does it only run on Windows (how many platforms does that run on?), nearly every version of the framework has been incompatible with the previous versions, so that's really nice and standardized as well.

    Get real. Every tool has its function. Some tools are better at certain jobs than others, but saying that every other tool should die to make place for your one great magical tool, that's just dumb.
     



  • @Devil N said:


    And as for .NET, not only does it only run on Windows (how many platforms does that run on?), nearly every version of the framework has been incompatible with the previous versions, so that's really nice and standardized as well.

    Hmm, the CLI (common language infrastructure) has an ECMA standard dedicated to it (as does C#). So it is a standard.
    Hence you can run .NET apps (even using the binaries Visual Studio spits out) on many platforms that aren't Windows.

    I certainly haven't been hit by any forward incompatibilities between .NET 1.x, 2.0, 3.0 and 3.5 yet.



  • I think Java has demonstrated a lot better of a "standard" for a distributed application that will run on any computer in the world.

    Executables are not standard. COM objects are not standard, DLL-files are not standard. Registry settings are not standard. INI-files are not standard.
    Quick! Which of these does Java use? (Answer: None of them!)

    In fact, I'd say that Java has already gained the position of the Modern Language for Enterprise and business and all that stuff (replacing COBOL). And its license-expansion gyrations look like it is only to expand its use in this role.



  • @benryves said:


    Hmm, the CLI (common language infrastructure) has an ECMA standard dedicated to it (as does C#). So it is a standard.

    And this just goes to show what an utterly meaningless thing it is to say "X is a standard". 

    People just don't seem to understand what "standard" means any more. It is a completely irrelevant label except in certain specific circumstances that do not exist here. "Standard" is almost never what you are interested in (and is usually being abused by a PR goon to try and distract you from the things that you actually care about).



  • W3C is nice as a reference, in the same way that Wikipedia is. You shouldn't rely on it as a form of real documentation, but it's a handy thing to look at quickly, sometimes. Just remember that some of these articles haven't been updated in years and years and years.



  • @benryves said:

    @Devil N said:

    And as for .NET, not only does it only run on Windows (how many platforms does that run on?), nearly every version of the framework has been incompatible with the previous versions, so that's really nice and standardized as well.

    Hmm, the CLI (common language infrastructure) has an ECMA standard dedicated to it (as does C#). So it is a standard.

    No, actually, what happened is that ECMA lost their mandate and all moral authority the moment they rubber-stamped a non-standard for political reasons.  And the ISO will be next if it fails to reject a "standard" that attempts to redefine reality to match a bug in Excel's date routines.  (1900 was not a leap year, and any standard that said it was is not a standard, by definition).

     



  • @DaveK said:

    @benryves said:

    @Devil N said:

    And as for .NET,
    not only does it only run on Windows (how many platforms does that run
    on?), nearly every version of the framework has been incompatible with
    the previous versions, so that's really nice and standardized as
    well.

    Hmm, the CLI (common language infrastructure) has an ECMA standard dedicated to it (as does C#). So it is a standard.

    No,
    actually, what happened is that ECMA lost their mandate and all moral
    authority the moment they rubber-stamped a non-standard for political
    reasons.  And the ISO will be next if it fails to reject a
    "standard" that attempts to redefine reality to match a bug in Excel's
    date routines.  (1900 was not a leap year, and any standard that said
    it was is not a standard, by definition).

     

     Agreed. Too many authoritative organizations and such are pressured into approving for lack of a better term: crap, therefore they end up looking like wealkings by the end of the day thus nobody takes them seriously at that point.
     



  • Who writes these things? Neither C++ nor Java can ever create standard components that can run on all
    computers? But .NET can? Is w3schools run by Microsoft?



  • @asuffield said:

    @benryves said:


    Hmm, the CLI (common language infrastructure) has an ECMA standard dedicated to it (as does C#). So it is a standard.

    And this just goes to show what an utterly meaningless thing it is to say "X is a standard". 

    People just don't seem to understand what "standard" means any more. It is a completely irrelevant label except in certain specific circumstances that do not exist here. "Standard" is almost never what you are interested in (and is usually being abused by a PR goon to try and distract you from the things that you actually care about).

    That's a great point.  What is a standard?  Is it something that's used by the majority of people?  Is it something that most implementations are compared against?  Or is it just a specification -- a thoroughly-described set of syntactical and semantical rules with a name attached to it?

    And what if nobody follows the written standard, but instead converges to some other common set of rules.  Does this become a standard?  And what of the old one?  In particular, I think of HTML, CSS, and DOM.  I think everybody will agree those are standards, but will they really agree on the rules of that standard, and if not, then can we really say that any one set of rules is a standard?

    I think we need to break the idea down into these two separate categories: nominal and normal.  The W3C XHTML 4.01 Strict specification is a nominal standard.  The <blink> tag is a normal standard.
     



  • @RevEng said:

    I think we need to break the idea down into these two separate categories: nominal and normal.  The W3C XHTML 4.01 Strict specification is a nominal standard.  The <blink> tag is a normal standard.

    Even that is too low-level. The question which you are almost always interested in is:

    Will this thing function with this other thing that I have already got?

    Most of the time, the "standard" under consideration does not manage to answer this question.

    What has happened is that people have seized on the concept of a "standards organisation" as a form of marketing tool - if you can get your product blessed by one of these corporations, then you can brag about it to people who don't know any better, and claim it means that your product is somehow better. In fact, this is exploiting a form of cargo-cult behaviour.

    A long time ago (when the concept of standards was first dreamed up), there were many people producing products that would not work together - they would be different sizes or shapes, so they wouldn't fit. This was inconvenient, so some of the people producing products decided to collaborate and start making their products fit with each other. In order to do this, they all agreed on a specific set of sizes and shapes that they would use. Once they started following this agreement, their products would work together, improving their value to everybody.

    The essential thing you have to realise here is that the list of sizes and shapes is not the important part - what matters is the agreement between several people to make their products work together. A list without an agreement does not accomplish anything. With most modern IT "standards", no such agreement exists, because the people involved don't want to make their products work together (for whatever reason). Modern standards-worship results from people confusing the result of the agreement (the specification) with the agreement itself - yet another example of the cargo-cult effect.

    (There are numerous reasons why software people don't want to make their products work together, but they mostly come down to the near-zero marginal cost of reproduction that distinguishes software from physical goods. Once again, the old models for business and production do not function in this environment, and we have failed to create new models that do work)



  • Good standards are still meaningful - look at the Mono project that sprung up mainly because they were given essentially the same design document the original .Net teams had to work against. But for outside governments and businesses looking to check off that standardized box, what matters is the precense of competition, not just a standard or the promise of interoperability... someday. If a standard has only one implementation, the company might as well be ISO 9000 certified for all the good it will do the customer. (OT, I nearly hung up on one salesman who listed ISO 9000 as a reason to go with his company instead of a competitor last week.)



  • @foxyshadis said:

    Good standards are still meaningful - look at the Mono project that sprung up mainly because they were given essentially the same design document the original .Net teams had to work against.

    Yes, do look at it. Most real-world .net programs won't run on mono, because they use MS-specific extensions that aren't in the spec (which mono is trying to reimplement, has not yet managed to reimplement, and MS has patents on some of it). This is a good example of why the "standard" is not what matters. Microsoft doesn't want cross-platform applications, and that's what really counts.

    But for outside governments and businesses looking to check off that standardized box, what matters is the precense of competition, not just a standard or the promise of interoperability... someday.

    Competition has its uses, but it will not make two products from different vendors work together. In the case of software, it usually ensures that they will not work together. Nothing short of an actual agreement to cooperate is likely to result in interoperability.



  • @asuffield said:

    Yes, do look at it. Most real-world .net programs won't run on mono, because they use MS-specific extensions that aren't in the spec (which mono is trying to reimplement, has not yet managed to reimplement, and MS has patents on some of it). This is a good example of why the "standard" is not what matters. Microsoft doesn't want cross-platform applications, and that's what really counts.



    That's definitely the catch. Most .NET applications use Windows-specific calls. Without them, you might as well use Java.

    I love the VS2005 Pro IDE, but I've heard that SharpDevelop will let you choose the framework to build against (including Mono). About the only way to insure cross-platform is to develop against Mono only. So much is still missing, though. I wish Java wasn't so friggin' scattered. Too many libraries/SDKs/frameworks/whatever.

    AND DAMN THIS TAG AUTOCOMPLETE!



  • @benryves said:


    I certainly haven't been hit by any forward incompatibilities between .NET 1.x, 2.0, 3.0 and 3.5 yet.

     

    Actually he is correct, the .Net Frameworks aren't backwards compatible at all, you cant create a DLL in .Net 2.0 and use it in a .Net 1.1 application. 


Log in to reply