This post originated from an RSS feed registered with .NET Buzz
by Sam Gentile.
Original Post: Using CoMega and TextPad
Feed Title: Sam Gentile's Blog
Feed URL: http://samgentile.com/blog/Rss.aspx
Feed Description: .NET and Software Development from an experienced perspective - .NET/CLR, Rotor, Interop, MC+/C++, COM+, ES, Mac OS X, Extreme Programming and More!
With the release of the CoMega bits yesterday, I did some playing already. I was intrigued back when it was Polyphonic C# with concurrency, and ideas from a theoretical model called the join calculus and a join-based concurrent functional language called JoCaml., but with the addition of the Xen concepts there are some very interesting and very practical places for this technology to go. Some have argued that Microsoft has done a fantastic job at the “simple” problems in computing and punted some of the hard ones. I am no PHD Computer Scientist, but it seems like one of these problems is the classic “ORM problem” and the “impedance mismatch” between the relational and object models. I really like the ideas from Xen in Comega around this “
From a data perspective, our design goal was to evolve C# to provide an integration of the object, relational and semi-structured data models. (A similar process is happening with database systems; nearly all now offer some form of integration of the relational and XML data model, and of SQL and XQuery.) Diagrammatically we have aimed for the following.
That's the important problem to be solved IMHO. Indeed, if you want to see where Anders is going in C# 3.0 and where is ideas are coming from, just listen.
So, I have begun playing around and although I love what I see, it seems like some concepts and even operators have overloaded meanings from what they mean elsewhere in the .NET world and elsewhere. An example, for me, is the Streams concept which is “Central to C? is the notion of a stream. Like arrays, streams are homogeneous collections of a particular type. However unlike arrays they are lazy, i.e. constructed only when needed. Streams are sometimes also called iterators and from a functional point of view they are the same.“ It seems confusing to me with the standard definition of streams and BCL streams as well. Another example of overloaded meanings is “* is the type for homogeneous sequences of integers“ which I always take * to be some sort of pointer.
Anyhow, I love it and although it seems like you can use Everett to build Cw projects, if you want to use the command line compiler and TextPad, here is how to do it:
In TextPad, select Configure | New Document Class
For a Document Class Name, use Comega or whatever
For Class Members, use (*.cw)
In the 3rd dialog of the wizard, check Syntax Highlighting and select csharp.syn as it's C#