Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Language Interoperability

Language Interoperability

Scheduled Pinned Locked Moved The Lounge
questioncsharpc++javascriptdotnet
3 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    Joshua
    wrote on last edited by
    #1

    I really like what Microsoft has done with .NET. It really makes programming fun and easy. The only thing that bugs me, is seeing Microsoft tout .NET as a language-neutral platform. So far every .NET-enabled language I have seen has been altered to comply with the .NET platform. Keywords have been added to C++, OO features were added to JavaScript and we won't begin to talk about VB, COBOL and others. What is the benefit of language interoperability if all languages are the same thing? The truth is that the real advancement of .NET is not language interoperability, it is IL. By using an abstract Intermediate Language, Microsoft has added a new layer between the compiler and the binary. When you compile your source code, a .NET compiler will compile your source to IL. This is much different than a regular compiler, which generates low-level machine language. Since IL is a much more abstract than machine language, the result is obvious - languages end up looking similar since they all have the same base - IL. I'm not saying that language interoperability is a bad idea, I just think that interoperability should not be one of .NET's top 10 major selling points. Most developers will eventually catch on and realize that this interoperability was accomplished by adding an intermediate layer, and the term "language interoperability" may just be a nice way of saying "all .NET languages are the same thing". Microsoft should call a spade a spade. Joshua

    E D 2 Replies Last reply
    0
    • J Joshua

      I really like what Microsoft has done with .NET. It really makes programming fun and easy. The only thing that bugs me, is seeing Microsoft tout .NET as a language-neutral platform. So far every .NET-enabled language I have seen has been altered to comply with the .NET platform. Keywords have been added to C++, OO features were added to JavaScript and we won't begin to talk about VB, COBOL and others. What is the benefit of language interoperability if all languages are the same thing? The truth is that the real advancement of .NET is not language interoperability, it is IL. By using an abstract Intermediate Language, Microsoft has added a new layer between the compiler and the binary. When you compile your source code, a .NET compiler will compile your source to IL. This is much different than a regular compiler, which generates low-level machine language. Since IL is a much more abstract than machine language, the result is obvious - languages end up looking similar since they all have the same base - IL. I'm not saying that language interoperability is a bad idea, I just think that interoperability should not be one of .NET's top 10 major selling points. Most developers will eventually catch on and realize that this interoperability was accomplished by adding an intermediate layer, and the term "language interoperability" may just be a nice way of saying "all .NET languages are the same thing". Microsoft should call a spade a spade. Joshua

      E Offline
      E Offline
      Erik Funkenbusch
      wrote on last edited by
      #2

      What you're missing out on is that the new keywords are added to support new features of .NET. There would be nothing wrong with leaving attributes and properties out and still targeting the CLR. Depending on how you implement your language, you could very well make GC the default, and thus do away with even the __declspecs to enable it. This is all first draft stuff, we'll see this process get better.

      1 Reply Last reply
      0
      • J Joshua

        I really like what Microsoft has done with .NET. It really makes programming fun and easy. The only thing that bugs me, is seeing Microsoft tout .NET as a language-neutral platform. So far every .NET-enabled language I have seen has been altered to comply with the .NET platform. Keywords have been added to C++, OO features were added to JavaScript and we won't begin to talk about VB, COBOL and others. What is the benefit of language interoperability if all languages are the same thing? The truth is that the real advancement of .NET is not language interoperability, it is IL. By using an abstract Intermediate Language, Microsoft has added a new layer between the compiler and the binary. When you compile your source code, a .NET compiler will compile your source to IL. This is much different than a regular compiler, which generates low-level machine language. Since IL is a much more abstract than machine language, the result is obvious - languages end up looking similar since they all have the same base - IL. I'm not saying that language interoperability is a bad idea, I just think that interoperability should not be one of .NET's top 10 major selling points. Most developers will eventually catch on and realize that this interoperability was accomplished by adding an intermediate layer, and the term "language interoperability" may just be a nice way of saying "all .NET languages are the same thing". Microsoft should call a spade a spade. Joshua

        D Offline
        D Offline
        David Cunningham
        wrote on last edited by
        #3

        About Multi-language .Net: I think it's clear that Microsoft is marketing .Net this way to make it approachable for everyone. Want to take your Cobol skills and be cutting edge, writing wireless and distributed apps? .Net is the way to go. To everyone, Java means learning something new, multi-language nature of .Net avoids this. About Interoperability between languages: The interoperability between languages thing is interesting too. Presently, I believe almost all COM development is done in C++, and most COM consumption is done in VB. So it's likely that the devs currently writing the COM stuff will move to C#, and the VB guys will continue to consume the stuff made by them. It's not so much about language capability as it is about developer skill sets. In the fullness of time however I think you're right, it will all converge on one language. It has to. FWIW I don't think Microsoft really cares if that's C# or VB, they'll let the market decide. David

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups