Gavin Bierman - Microsoft Research in UK works on database query language
- Posted: Sep 20, 2004 at 6:14 PM
- 59,234 Views
- 23 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
~Ant~
So, what's up with the stream type? Doesn't that totally blow away pointers in unsafe blocks? Couldn't they just use *type, or type% or type<insert other symbol here>?
svg Figure() { yield return <svg ........ />; }
my question would be if the return type 'svg' has to be declared somewhere? Or is it just saying 'this is an xml fragment called svg that's produced in this method'? So is 'svg' in this case more than a name, i.e. a type that has properties, methods and events?
very interesting stuff, as always !
Sometimes you need to dynamically generate SQL in the application, but I don't think this solves that problem.
Maybe this will make a lot more sense after I get a good look at Yukon? I don't see much value for the client or the middle tier, but maybe on the database server itself.
Clearly there's some value in the idea - catching problems at runtime is no fun.
quick insight into current projects at microsoft - that's what channel9 is all about, imo.
I got a slap from the Scoble for this, since all the MSR videos were recorded on the same day I didn't have any chance to go back and re-record, the good news is that I'm recording some new video this week and will certainly make sure I get the lighting right this time round...
- Mike
Any one willing to comment on whether this makes it to C# 3.0? I sure hope it does cause it would be a real productivity boost on database driven apps.
1. Why do you say "so" all the time? Didn't know I did. Think it was just nerves...
2. Unsafe code? Cw doesn't support unsafe code. It supports everything else of C# though...
3. What's svg? If you download the compiler then you get this demo. You'll see the file xsvg.cw which contains the declaration for svg. It's a Cw class declaration, but you could read it as a type declaration in xsd etc.
4. Stored procedures? It depends on what you're doing. Cw is really useful for middle-tier apps - you're freed from using the rather weakly-typed ADO.NET libraries. We're currently checking that Cw runs under Whidbey. Assuming that it does, then you'll be able to use Cw to create assemblies that can be called from SQL using SQL Server Yukon. How cool is that?!
5. Bigger fonts. Something weird happened here. Just before Mike pressed record I increased the font size, but VS went wibble. Never seen anything like it - weird colours, bold, etc... Anyhow, Mike was on a tight time schedule, so we just went back to default settings. Sorry if it isn't very readable. All the demos are included with the compiler.
6. This is awesome/it rocks/... Couldn't agree more. Let me go and tell my manager
Gavin.
Also wonder how this would fit with Indigo, if Indigo already does this or how Data access may further leverage Indigo to pull this off seemlessly. Passing ADO tables is not the answer either imho. Just curious what the thought are about push/pull DTOs in regards to this stuff. TIA
I have one question about the Preview of Comega. How reliable is it to use for a commercial/release quality application? Do we really need to worry about compiler bugs?
1) o - hmmm - ummm
2) I use stored procs. I use them because I like the interface seperation between by procedural code and my database
and then something clicked.....
Where could i use this language... in SQL Server itself.
Yeah I know SQL 05 will host c# .net (primarily because Oracle host Java). But, if i was to be honest, 10-20% of my stored procs are really application code rather than data access and this forn of hybrid expressive language could be awesome in those situations.
However, i remember reading article about SQLJ years ago... exactly same thing. I understand that Cw is more than that, but still.
One thing that is needed in these samples is the source for the Northwind.dll this way a person could presumably create a BHIS.dll or some other database accessor dll paterned after the northwind.dll and experiment with Cw in a data collection that had some meaning to the person rather than the Oft used and now tiring Northwind... ( There just is not enough data there to make anything experimental be of much use to the PHB's of the world ).
Mainstream language designers and compiler developers seem to be stuck in the 1970's, still following the old C compilation model more-or-less. Why do we have to have this old fashioned edit-compile-run-debug cycle? Why do we even need source files when we're compiling to platform independent code? You'd only have extend the metadata facilities of MSIL a little in order to hold comments and then you could do without the old-school text file (yeh, I know "real programmers" are kindof wedded to idea of editing text files) and just have an editor that works on the MSIL in the users preferred format. Edit-and-continue wouldn't seem so much like voodoo if this was the case, it would merely be a logical extension to the way things normally worked - instead of editing an assembly on disc, we edit in memory and re-JIT.
This C-omega thing looks interesting, mixing in code with different grammars. I'd like to see this extended with a plug-in architecture to make it more generalised - this should be possible as long as the langauges are all LL(k) (i.e. parsable with recursive descent parsers). The plugin can do not only what's necessary to execute the code but also provide the "live analysis" needed by the editing environment. While we're on this theme, why does source code have to be a string of text? Without resurecting long-gone notions of "visual programming" languges, I'm thinking about things like mathematical equations. Wouldn't it be great if you could embed math code in your C# by writing equations like you do in Mathematica and have those equations rendered in the source editor the same way they'd be written in a math textbook?
OK, that's enough dreaming for now....
1. What's the relationship between C# and Cw? Everyone asks about this! Ernie Booth asked me this, and I posted the following to his Cw forum site (www.omegaengine.com - take a look!):
Is Cω an early release of C#3.0? We get asked this all the time. Indeed a number of (non-MS) websites have stated this as a fact. The short answer is no! We are quite separate from the C# and Visual Studio teams. We are in Microsoft Research, and Cω is a purely research project. Our main research interest is in the design and implementation of advanced programming language features. We released the compiler so our colleagues, academic and non-academic, can play with the system and hopefully their feedback will drive our future research. Again, research not product development. That said we do have contacts on the development side, and they are aware of what we’re up to (we don’t work in a vacuum!). Here’s a quote from Scott Wiltamuth which hopefully clarifies matters:
"The C# team is excited about Cω and other C#-based research projects that Microsoft Research Cambridge is working on. We have no current plans to extend the C# language in this direction, but will continue to observe the progress of Cω and other MSR-Cambridge projects.” -- Scott Wiltamuth, C# Product Unit Manager
2. Cw as a commercial application language. We're in Microsoft Research, so our prototype compilers are simply prototypes. We think the Cw compiler is pretty solid, but it comes with no guarantees. If you want those, you should really use C#, VB.NET or one of our commercial compilers.
3. I have a cool idea for a new language... That's great! Languages are a fascinating place to be doing research. Take a look at ACM Sigplan, ACM ToPLAS, POPL, PLDI, ECOOP, OOPSLA ... and see what people are up to. It's an exciting place. If you have ideas - these are the places to publish them.
Gavin
Just one quibble: the assumption here is that c-omega T-SQL-like syntax will make every effort to respect the ANSI-92 SQL syntax so that we are not forced to use "INNER/OUTER JOIN" stuff and can use "=*" or "*=". Also, I would liked to see how stored procedures are treated in c-omega.
Remove this comment
Remove this thread
close