Linked by twitterfire on Mon 24th Oct 2011 22:52 UTC
General Development "Looking past the Metro hype, the Build conference also revealed promising road maps for C#, Visual Studio, and the .Net platform as a whole. Perhaps the most exciting demo of the conference for .Net developers, however, was Project Roslyn, a new technology that Microsoft made available yesterday as a Community Technology Preview. Roslyn aims to bring powerful new features to C#, Visual Basic, and Visual Studio, but it's really much more than that. If it succeeds, it will reinvent how we view compilers and compiled languages altogether."
Thread beginning with comment 494243
To view parent comment, click here.
To read all comments associated with this story, please click here.
JAlexoid
Member since:
2009-05-19

How is exposing the internal API publicly a major departure and reinvention of compilers?
I'm not saying it's not great that they are exposing API that will stay stable. I just don't get the hype over this.
Please do hype up anything that grows up from this to be ridiculously fun or novel. But as it stands, Roslyn is not revolutionary or anything like that.

Reply Parent Score: 3

Nelson Member since:
2005-11-29

How is exposing the internal API publicly a major departure and reinvention of compilers?


Compilers are tansformed from this classic vision of take a source file in -> generate code.

Now, every aspect of the compiler is a service. I can do metaprogramming by transforming syntax if thats what I need. I can gather data from a previously or newly compiled program (or myself) using semantics.

I can transform code at the semantic level for an even more targeted approach to metaprogramming.

I can query the Solution/Project API and perform the same syntax/semantic analysis on those documents, or whatever else I want, then save the project.


I'm not saying it's not great that they are exposing API that will stay stable. I just don't get the hype over this.
Please do hype up anything that grows up from this to be ridiculously fun or novel. But as it stands, Roslyn is not revolutionary or anything like that.


I suppose that's your opinion, I just strongly disagree.

I view this in the same light I view other exciting framework developments. When LINQ launched people were asking how this would be revolutionary, the same with Rx. Some concepts just take time to grasp.

Reply Parent Score: 2

JAlexoid Member since:
2009-05-19

Compilers are tansformed from this classic vision of take a source file in -> generate code.
...snip...

But again, none of that is something new. Is it new to .NET?

I view this in the same light I view other exciting framework developments. When LINQ launched people were asking how this would be revolutionary, the same with Rx. Some concepts just take time to grasp.

Within .NET community probably yes. Outside .NET, we'll have to see.

LINQ: And yet, here I am 4 years later developing in every conceivable language outside of MS universe without LINQ making a dent.

Reply Parent Score: 1

eeperson Member since:
2011-10-25


Compilers are tansformed from this classic vision of take a source file in -> generate code.

Now, every aspect of the compiler is a service. I can do metaprogramming by transforming syntax if thats what I need. I can gather data from a previously or newly compiled program (or myself) using semantics.

I can transform code at the semantic level for an even more targeted approach to metaprogramming.

I can query the Solution/Project API and perform the same syntax/semantic analysis on those documents, or whatever else I want, then save the project.



You could use this same description for Common Lisp and Slime. Although admittedly the implementation is actually somewhat different. However, this exact set of features has also been implemented in other languages use almost the exact same method. Look at the Scala presentation compiler and plug-in API. They've been around for at least a year. I believe the Eclipse Scala plugin already uses the presentation compiler.

This combination of features is not revolutionary. However, it is nice to finally see these features in a mainstream language.



I suppose that's your opinion, I just strongly disagree.

I view this in the same light I view other exciting framework developments. When LINQ launched people were asking how this would be revolutionary, the same with Rx. Some concepts just take time to grasp.


I would argue that LINQ is not revolutionary either. It is just monad composition. This has existed in other languages for years. However, once again, it is nice to finally see these features in a mainstream language.

Reply Parent Score: 1

roverrobot Member since:
2006-07-23


Compilers are tansformed from this classic vision of take a source file in -> generate code.

Now, every aspect of the compiler is a service. I can do metaprogramming by transforming syntax if thats what I need. I can gather data from a previously or newly compiled program (or myself) using semantics.

I can transform code at the semantic level for an even more targeted approach to metaprogramming.

I can query the Solution/Project API and perform the same syntax/semantic analysis on those documents, or whatever else I want, then save the project.



However, the more you describe it, the more it looks like they are reinventing llvm.

What surprised you most is this syntax transformation thing. But it is obviously quite possible for any modern compiler because it just translates the AST representation of a program back into same/another language.

Reply Parent Score: 1