Microsoft Research's C-Omega
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.
Another Language with the precursor C
A psychopath can't tell the difference between right and wrong. A sociopath knows the difference - he just doesn't care.
Microsoft created a frankenstein again which will be an embarrasment for Dr. Billius Gatesus
What's the difference between data oriented programming language and object oriented one?
O'Reilly's XML.com websites the inside scoop on the language in the article titled Introducing C-Omega written by Dare Obasanjo.
With that aggravating beauty, Lulu Walls.
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.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
How does it compare with Ruby + ActiveRecord + YAML?
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 CQuidquid latine dictum sit, altum videtur
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.
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.
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."
Direct away from face when opening.
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.
We still have C-Aleph to go.
--Stephen
Did you ever notice that *nix doesn't even cover Linux?
Off-topic, but the FPP should have said Carnage4Life instead of Dare Obasanjo...
[o]_O
What's the difference between a stream and a state machine?
If they release another 'lets get all developers back to pwn the intarwebnet' language they woudl have to call it:
J -g yros-++
:-)
Visual-omni-ueber-C-sharper-alpha-omega-cognis-
" 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 of google is basically one big beta...
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
In the old days the os, program language and database were united as a mainframe. as400/RPG
.NET is fading and MS needs a new technology to keep marketing hype up.
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
sounds like something I should be ordering from Hi-Health or the local vitamin store.
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 data" is like saying "calculus numbers". I assume he means "relation value" when he says "relational data".
Relation values are not tables. A table is a representation of a relation value. Relations represent sets. Both the attributes and the tuples are unordered for instance, it's hard to draw a picture of something that has no intrinsic order.
The relational model is not "rigid", that's the whole point, you can use relational algebra to create arbitrary expressions, and if your constraints are correct, you can derive any correct fact from your database. This author clearly thinks the relational model is just a "bunch of tables" and rejects it without further thought. It would be more correct to say XML uses a rigid tree structure, while relational databases represent any possible data structure.
Serialized objects are not tabular, they are ad-hoc depending on what library you are using. Some libraries use XML. Again he should know this.
Basically it doesn't make sense to group "relational data" with "serialized objects" and call them both "tabular data".
Next is the favorite buzzword of the XML practitioner: "semi-structured". I have no idea what that means. XML documents are streams of UTF-8 (or similar) characters. This is a rigid structure. At the next level of abstraction, they are a tree of nodes. Again, rigid structure. The structure of the tree can be further constrained by schema, but even if it isn't, it's still rigidly structured. How could you parse it, otherwise?
So already we know this "research" is just going to be a misunderstanding of existing data models with some programmer-friendly buzzwords thrown in. As expected: if they truly understood data models, they wouldn't have written this paper or invented this language to begin with!
The former tends to be strongly typed and is typically processed using object-XML mapping technologies, while the latter tends to be untyped and is usually processed using XML technologies like DOM, SAX, and XSLT.
So tabular data is strongly typed and processed with object-XML technologies. Wouldn't it be processed with tabular-XML or tabular-object technology? I've used tabular data (like CSV) and I've never needed objects or XML with it.
In the case of processing strongly typed XML using object-XML mapping technologies, there is the impedance mismatch between programming language objects and XML schema languages like DTDs or W3C XML Schema.
Okay, now I get it.. we're processing strongly typed XML using object-XML mapping technologies. Based on the previous sentences, I think this means strongly-typed XML is actually equivalent to tabular data, right? I guess the author is just confused. I know I am.
And there's another favorite buzzword: impedance mismatch. Usually this means the programming is trying to match up two different concepts without realizing it (like variables to types or values to variables). I think the author here just means "requires awkward syntax".
This is the point where I usually stop reading a paper. But I glanced at the rest. Basically he 1) creates a hierachical, application-specific database. Both of these concepts were rejected decades ago. And 2) he shows a language which is basically the same as existing languages except you don't need to put your XML and SQL in double-quotes. Okay. This can be valuable. But he uses something that looks like SQL, rather than relational algebr
How much crap can you put in a language. Check out Nickle for a much simpler approach to building a language.
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.)
Karma: Excellent (My Karma? I wish...:-( )
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 doesn't make sense to pass null to a method. With this feature, it'd be possible to see from the method signature if that's true. It'd save writing a bunch of assertions for those of us who already are picky about this stuff, and be a hint to others that they should be, too. And those assertions are quite useful - they make the program fail sooner, closer to the code that caused the error.
Instead, this is a feature that just lets you assign null to primitive types. By a completely different mechanism than you use for classes. Boring to me - I like languages where there are no special primitive types. Enhancements to them - especially additional differences to remember - won't get me excited.
... another Perl?
May god have mercy on their souls.