Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Microsoft IT Technology

Microsoft Research's C-Omega 49

Microsoft Research has produced a data-oriented programming language by merging C#, XPath and SQL. O'Reilly's XML.com website the inside scoop on the language in the article titled Introducing C-Omega written by Dare Obasanjo.
This discussion has been archived. No new comments can be posted.

Microsoft Research's C-Omega

Comments Filter:
  • What's the difference between data oriented programming language and object oriented one?
    • Apparently class data can be accessed as if it was an SQL database. I think.
    • Re:data != object (Score:3, Informative)

      by TuringTest ( 533084 )
      XSLT is an example of a data oriented language: you define what to do for every kind of data that can be found in a data flow; you specify how to transform the old data into the new one.

      In an object oriented language, you build classes of objects that make series of calls to other objects following a given recipe.
    • by zangdesign ( 462534 ) on Thursday January 20, 2005 @12:38PM (#11421382) Journal
      Object Oriented Language = data knows what to do with itself but programmer don't know what to do with the data.

      Data Oriented Language = data doesn't know what to do with itself and neither does anyone else.
  • by straybullets ( 646076 ) on Thursday January 20, 2005 @09:34AM (#11419178)
    I understand this is very important news and that not a second should be wasted before disclosing to the world, but still you need to use the verb website correctly and say :

    O'Reilly's XML.com websites the inside scoop on the language in the article titled Introducing C-Omega written by Dare Obasanjo.

  • It will be a jack of all trades that everyone hates. Now merged with SQL to make things worse... Please, don't confuse relational algebra, predicate calculus and set theory with procedural algorithm description notation. They are not in the same problem space.
    • People have been coding in embedded SQL or, to the contrary, various kinds of P-SQL all the time. What is wrong with that? Relational algebra, predicate calculus and what-not is all very well, but you have to actually write some code which, like, interacts with user, network, and some such. Last time I checked SQL cannot do that.
      • by hey! ( 33014 ) on Thursday January 20, 2005 @10:20AM (#11419652) Homepage Journal
        Not only is there nothing wrong with it, it's quite nice not having to generate lots of boilerplate code to fetch a value from the database. Combine this with iterators and collection objects, and it could be very nice.

        Of course, the main issue becomes portability, but portability is not a top priority for everyone. In any case it is very possible to write non-portable code without embedded SQL and quite possible to write portable code with embedded SQL. For example you could embed your queries in interfaces specifying iterator methods, and have concrete classes for each database platform.

        None of this stuff looks particularly radical. Which is a Good Thing (TM). That's what C# is -- nothing creative, just take the proven ideas from other platforms and don't try anything really new like Java did with checked exceptions. That's what Linux is, if you think about it.

        Embedded SQL is not a radical new idea -- I remember it from special C preprocessors as far back as the early 80s. The XML features they have look to me like they've rediscovered S-expressions after 40 years, only with uglier (!) and less general syntax.

        That said, the combination of XML as a transport/archival medium, object operations, and relational object serialization is very common. Therefore a scripting language which reduces the impedence mismatch between these is also a Good Thing (TM). You might think the XML-ification of everything in sight is the height of stupidity when in many situations superior technologies such as ASN.1 exist. I certainly do. But twenty five years in this business has taught me that what makes sense to you doesn't affect the choices you need to make as much what everybody else in the world thinks.
        • There are truly innovative features in C-omega (at least for "mainstream" languages, which it apperas to try to become).

          The first is treatment of concurrency based on join-calculus [inria.fr].

          The second is type system for XML. There is a lot of research in CS for strongly-typed XML processing (check XDuce [sourceforge.net] for one).

          TFA actually does a good job of presenting most important concepts of those for people not quite familiar with undelying theory.

        • Of course, the main issue becomes portability, but portability is not a top priority for everyone.
          Now, that is a totally wrong statement about this Microsoft product!

          Portability is very important for them -- they put lots of good money and talent into avoiding that terrible problem!

          (I wish I could add a ":-)" here, but not being compatible is a standard monopolist tactic. See e.g. file formats.)

    • In the old days the os, program language and database were united as a mainframe. as400/RPG

      Now everything is separated everything out into independent systems/servers. any os, any language, and database server.

      With languages like this were moving back again.
      Sounds like 1980's CA-Clipper to me.

      Either way, the buzz on .NET is fading and MS needs a new technology to keep marketing hype up.
  • Firstly you can't type C easily in normal ascii (unlike C/C++/C#/ etc..)

    Eventhough it brings in some syntactic sugar, I suspect that most of it is just that and won't offer any better productivity. Nullable types wrapped into a union like looking thingy , anonymous structs which confuse the user in terms of code clarity.

    All in all I'm less than impressed in this evolution of C-like languages. I prefer the path Python (more correctly Parrot) has taken rather than C
    • All in all I'm less than impressed in this evolution of C-like languages. I prefer the path Python (more correctly Parrot) has taken rather than C

      There is actually a language being developed thats attempting to fuse ideas from c-omega & python together, called Spry [spry-lang.org]

      No idea if it'll ever be finished, but could be interesting if it works.
    • Btw, I typed "C ω" everywhere.. too bad it doesn't render even here..

      I do have to say one thing about C-omega though, it might be faster as more compilers move this into concurrent code - but as of today I don't see any parallelized execution systems in .NET. Maybe the a multi CPU machine might extract better performance out of threads/whatever the compiler/JIT churns out.

      Maybe MS imagines that anything that runs Longhorn will need dual CPU/cores :)
  • I for one am not impressed, this is just a marketing ploy to make the public believe that Longhorn and WinFS will be released soon. Just think about it, this new programming language screams WinFS.

    • WRONG! (Score:1, Informative)

      by Anonymous Coward
      Microsoft Research != Microsoft.

      MSR is nothing more than funded think tanks. Most of what they do never even comes to light.

      Its not even being advertised.

      Get a clue boy.
      • Yes, but he is right that this programming language screams WinFS. Maybe thats what holding it back, WinFS really is useless unless programs are written to take advantage of it. Personally I wish Microsoft would have built WinFS off a new query language as SQL really needs throwing out but going to hang around simply because its become THE standard. When you are writting entire new systems though, the standards can be changed easier. So the realease of WinFS would be perfect, especially if its backwards com
  • Isn't a bit lofty of an assumption to assign the last character of the alphabet to a new incarnation of C? As if C-Omega is the culmination of all work before it up to the alpha version of C.

    Some times I worry about the effects of megalomania.
    "Only through Windows can you reach productivity."

    They've already covered "Blessed is he who waits."
  • From the examples on the site, that's not a new language, seems to me its just a new API...
  • It requires MS SQL Server 2003.

  • Not the end (Score:3, Funny)

    by illuminatedwax ( 537131 ) <stdrange@alUUUum ... inus threevowels> on Thursday January 20, 2005 @11:47AM (#11420726) Journal
    We still have C-Aleph to go.
    --Stephen
  • Off-topic, but the FPP should have said Carnage4Life [slashdot.org] instead of Dare Obasanjo...
  • If they release another 'lets get all developers back to pwn the intarwebnet' language they woudl have to call it:

    Visual-omni-ueber-C-sharper-alpha-omega-cognis- J -g yros-++

    " C "

    As much as I hate them for abusing the Greek language, we have a language which we can say:

    "I C-Boobs!" :-)

    Have you noticed that googles publicly tagging 'beta' to websites has been caught up by amazon, yahoo, msn, and shedload of others.

    People will now think BETA is better than release!

    - Beta testers get stuff early
    - all
  • by netsfr ( 839855 )
    sounds like something I should be ordering from Hi-Health or the local vitamin store.
  • makes me cringe (Score:2, Interesting)

    by Anonymous Coward

    I read this article when it came out. It made me sad to see this kind of stuff from a group with "Research" in the name (the of course you see the "Microsoft" and you realize this "research" is actually just Microsoft's "buzzword factory").

    Let's see the level of discourse here:

    unlike prior data interchange formats, XML can easily represent both rigidly structured tabular data (e.g., relational data or serialized objects) and semi-structured data (e.g., office documents).

    First of all, "relational dat

  • I got excited for a second when I saw the "nullable types". I was hoping for a second this was a more radical feature that I saw somewhere (in Cyclone [att.com], maybe):

    You can say if a reference is "nullable" or not. Nullable references can always be assigned any value; non-nullable references can always be assigned from non-nullable references. When you try to assign a non-nullable reference from a nullable one, there's a runtime check inserted.

    In other words, it'd be a safety feature. In a lot of cases, it doe

Single tasking: Just Say No.

Working...