I've just watched "Philip Laureano - I Can't Believe It's Not Roslyn" video
(http://vimeo.com/43612919) and I am thrilled. Really!! Meta programming in
.NET is what I needed since I started using WPF. So after watching the move
I was so excited.
But I didn't want to learn new language as I'm using C# at work. And I
started investigating Roslyn. But I was using VS 2012 RC and liked new
await/async language features. Roslyn doesn't implement them yet. Nemerle
too (not that await/async like .NET's 4.5 feature - *Nemerle's
concurrency.n uses Threads which is very different - and in my opinion less
flexible/efficient* - correct me if I'm wrong). But Nemerle is ready too
use. But not in VS 2012. So I thought maybe use Roslyn and I won't have to
learn new language. Or maybe I will use any existing C# parser and do C#
compile-time transformations myself. But after trying to use syntax unknown
for VS and I saw that it would work well without integration with editor
and intellisense - too much trouble. I was torn - none of the solutions was
ideal. I wanted to give a try to Roslyn, but then it refused installing :)
So here I am. Maybe that's better. Maybe I will appreciate another
Nemerle's features. I will give it a try at least. Do I have any choice? :)
It's the first not mainstream language that attracted my attention. As you
see it can give me the fastest access to metaprogramming in .NET. I hope
that the integration with VS 2012 is planned in a near future....
As I said one reason of my indecision was async/await functionality. I
wanted it all :) And hey! Roslyn couldn't give me it now. But Nemerle - why
not? It's true it is targetting only .NET 4.0 now. But there is Microsoft's
AsyncTargettingPack for .NET 4.0. It requires VS2012 compiler, true. But
Nemerle is an extensible compiler. And compiled async code uses standard
.NET 4.0 features. There is state-machine struct underneath. Rest is
included in AsyncTargettingPack dll.
And now my question is:
Is anyone working on this async/await featue compatible with .NET
4.5 async/await for Nemerle?
Because if not, I would like to try myself. It sounds so interesting that I
cannot resist. To make it clear - I'm not saying that I will accomplish
anything!! I even don't know the basics of the language, yet. First I need
to learn it. And I can do it only in my free time (which is very short).
And it is not a trivial macro to write. Especially when it takes loops and
try/catch statements into account. Maybe I will give up in a middle. Who
knows. But I know that if its done it will not need any change when
migrating to .NET 4.5. And it can be compatible with other .NET's async
Is there any interest for that kind of functionality?
Can I count on your help in difficult situations? :)
I think the macro possible. But I don't know the language yet. Do
you know any obstacles? For example - will I have any troubles with
generating private structs nested in classes, attributes for methods,
goto's and labels for state machine?
I don't know Nemerle design goals. Is it the preffered way to
implement it as macro? How the future versions of Nemerle and Nemerle's C#
compiler (that is a big question for me) will handle this async/await
functionality? Will the code be shared or different for both compilers?
Will it be a macro or what?
Ok. But before anything else I'm going to start learning the basics :))