Slashdot Mirror


Microsoft's New Language

We've been buried in submissions about Microsoft's new programming language. Here's one of them. Brohamm writes: "Microsoft has created a new language called c# (pronounced C-Sharp). It's supposed to look like C but has the same concepts as Java. Looks like they gave those J++ developers something to do. Check it out at CNet."

9 of 601 comments (clear)

  1. Actually... by Anonymous Coward · · Score: 5
    Cool, a language with no syntax.

    When they say C# is language-independent, they're actually talking about the underlying object model, libraries, and runtime platform. It shares the same runtime platform as VB (called the "URT"), and there's no reason any language in general couldn't be made to compile to the URT. In case you haven't heard, Microsoft is also completely revamping the VB language. C# and VB will be almost identical in terms of power and what you can do with them. It seems to me that C# is more or less just an alternative for the people - including most developers at MS - who simply don't like using VB, and, as has already been pointed out, a response to Java. Even the developers at Microsoft admit (amongst themselves) that C# and Java are practically identical languages on the surface. But really, it's more or less equivalent to the new VB, it just uses a C-like syntax.

    They also are producing something called "managed C++", which is mostly a bunch of hacks to the C++ language to allow programs to compile and run on the URT. They are pretty much betting the company on this new platform. The language independence comes from the fact that all managed code (anything that runs on the runtime) uses the same object model and can share libraries. WFC has been implemented on the URT (written in C#), and it also has a bunch of system libraries which are all pretty well designed. The reason they say it's cross-platform is because everything is compiled to run on the URT, not natively. In theory, the URT can be ported to other platforms, and immediately any app that runs on it will run on those platforms. In the future, pretty much EVERY Windows app will run on the URT, so this is a good thing. The libraries for it are very rich, so there's no reason an application would need to use any Windows API calls or the like. The only real problem, of course, is that the URT will still be proprietary and controlled by Microsoft. However, it's not the mess that COM was (despite the fact the it was originally called COM+ 2.0), and may be easier to reverse engineer. The fact that it abstracts away pretty much anything that's Windows-specific (no more registry, among other things) certainly is a good step towards portability.

    In my opinion, the platform Microsoft is working on now is by far the best progress they have made in a long time, and it's long overdue. They've realized that the current Windows development model is broken, and has no future, especially as the Internet takes over. Instead of trying to continually extend what they've done before, they're pretty much completely abandoning the existing infrastructure. They are throwing backwards compatibility out the window, which is what they needed to do a long time ago. Unfortunately, due to the DOJ stuff, I wouldn't be surprised if the public never even sees the fruits of these efforts. I've never liked Microsoft's software or many of the things they've done, but this is something they've got right. I really dislike what they're intending to use it for, which is to offer software as a service over the Internet, but as a development platform, the URT is exactly what the world needs right now. Of all their major undertakings - and this is one of the biggest - it's probably the first which is truly well-designed with the potential to last for a long time.

    A lot of this progress on the URT, C#, WFC, and such can probably be attributed to Anders Hejlsberg, the mind behind Borland's Turbo Pascal and Delphi who moved to Microsoft a few years ago to be the WFC architect.

  2. C--, Anyone? by Christopher+B.+Brown · · Score: 5
    Simon Peyton Jones of Microsoft Research has been working on C--: a portable assembly language for quite some time now.

    C-- is intended, as the article suggests, as a "portable assembly language."

    Thus motivated, some colleagues and I have been working on the design of C--, a portable assembly language. C-- has to strike a balance between being high-level enough to allow the back end a fair crack of the whip, while being low level enough to give the front end the control it needs. A major goal is to provide portable support for features needed by advanced languages, such as garbage collection, exception handling, and debugging, without building in a particular garbage collector, exception semantics, or debugging model.
    There actually are some implementations available in source form.

    Microsoft may produce some software of frightening quality, but that doesn't mean that the people that they hire are ignoramuses, but merely that:

    "What you end up with, after running an operating system concept through these many marketing coffee filters, is something not unlike plain hot water." -- Matt Welsh
    --
    If you're not part of the solution, you're part of the precipitate.
  3. Hmm -- good name! by NMerriam · · Score: 5


    So C# could also be pronounced "C Hash", or simply "Cash".

    Methinks it's the same guys who named WinCe...

    --
    Recursive: Adj. See Recursive.
  4. Java Virtual Machine is not tied solely to Java by Speare · · Score: 5

    The JVM was created to support the Java language, but there's no reason that you must use Java to write for the JVM.

    In fact, many other languages have been written, compilers to target the JVM bytecode format. Also, the JNI (Java Native Interface) grew out of Netscape's support for C APIs to call into, and be called by, JVM bytecode.

    I wonder if Csharp/Dflat/Chash/Cpound/Coctothorpe might be targeting Microsoft's JVM implementation, which has gotten good grades on speed, or if it really is a whole new virtual machine.

    Microsoft doesn't appear to be claiming that the new language is free from entanglements with the operating system. In fact, if their "C#VM" were to make it easy to use COM/VBA automation, and to use native C# programs as clients and as services, it could be a win for them.

    I think they're missing the mark, though. Sun's reluctance to allow their JVM to be managed by an outside standards group, and Microsoft's reluctance to follow outside de facto standards, both played to this announcement.

    --
    [ .sig file not found ]
  5. This acronym is a no-brainer by xant · · Score: 5

    Are you kidding me? NINJA!! Ninja Is not JAva

    --
    It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
  6. As everyone knows... by Chiasmus_ · · Score: 5

    C sharp is the enharmonic equivalent of D flat. Which is probably what I'll end up calling this language.

    --
    "Beware he who would deny you access to information, for in his heart he deems himself your master."
  7. It's all so clear now! by Dreamweaver · · Score: 5

    Of course MS releases a new programming language.. they've probably had it in a red, glass-fronted box in the legal department for years marked with a "Break glass in case of anti-trust" sign. Now when they're forced to release the windows source code, they'll just release it in 'C sharp' which nobody knows and is just close enough to C and java to really screw up the people who Do know them.
    Dreamweaver

    --


    "If a man hasn't discovered something he will die for, he isn't fit to live" -- MLK, Jr.
  8. Quotes by Hard_Code · · Score: 5

    I am not a crook

    I did not kill Nicole Brown Simpson

    I did not have sexual relations with that woman

    This is not a response to Java

    --

    It's 10 PM. Do you know if you're un-American?
  9. Re:Another M$ ploy to co-opt an existing technolog by MrBogus · · Score: 5

    RMS had some interesting thoughts on this --

    Either the Open Source community rewrites Java (calling it by a different name, of course, to avoid trademark problems - [Something] Is Not Java) and then everyone has an open standard to write to; or, every large commercial concern rewrites Java, and then instead of one proprietary language, we have three or four.

    Microsoft has been public about their C# ('COOL') plans for a long time. After a recent standards battle, IBM is grumbling about creating their own Java too. Venture capitalists are probably circling around a few Java-clone startups as we speak.

    So, if we break this down further than Sun/Java = Good and MS/C# = Evil, you'll realize that Microsoft isn't really doing anything more than what other vendors will do eventually.

    --

    When I hear the word 'innovation', I reach for my pistol.