﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Niki commented on C# vNext</title><description>Thank you David and Ayande, I've had another look at boo, especially at the newer test cases, and you're right, that's exactly what I meant.
  
  
Guess I'll have a boo-power-weekend soon!
</description><link>http://ayende.com/2970/c-vnext#comment18</link><guid>http://ayende.com/2970/c-vnext#comment18</guid><pubDate>Wed, 28 Nov 2007 14:15:03 GMT</pubDate></item><item><title>Ayende Rahien commented on C# vNext</title><description>Reshef,
  
This is strictly something that the compiler has to do, it is not related to the platform.
</description><link>http://ayende.com/2970/c-vnext#comment17</link><guid>http://ayende.com/2970/c-vnext#comment17</guid><pubDate>Tue, 27 Nov 2007 14:38:52 GMT</pubDate></item><item><title>Reshef Mann commented on C# vNext</title><description>About dynamic interfaces, 
  
I don't think that it is likely to see real duck typing from microsoft ever in C#.
  
And about handling it in the clr, can't it work like Boo handles duck typing or the way the DLR works?
</description><link>http://ayende.com/2970/c-vnext#comment16</link><guid>http://ayende.com/2970/c-vnext#comment16</guid><pubDate>Tue, 27 Nov 2007 13:59:05 GMT</pubDate></item><item><title>John Rusk commented on C# vNext</title><description>Here's a discussion in the Microsoft forum on symbols/memberinfo:
  
  
[http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=466000&amp;SiteID=1&amp;mode=1](http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=466000&amp;SiteID=1&amp;mode=1)</description><link>http://ayende.com/2970/c-vnext#comment14</link><guid>http://ayende.com/2970/c-vnext#comment14</guid><pubDate>Tue, 27 Nov 2007 07:20:40 GMT</pubDate></item><item><title>John Rusk commented on C# vNext</title><description>Here's a discussion in the Microsoft forum on symbols/memberinfo:
  
  
[http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=466000&amp;SiteID=1&amp;mode=1](http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=466000&amp;SiteID=1&amp;mode=1)</description><link>http://ayende.com/2970/c-vnext#comment15</link><guid>http://ayende.com/2970/c-vnext#comment15</guid><pubDate>Tue, 27 Nov 2007 07:20:40 GMT</pubDate></item><item><title>Ayende Rahien commented on C# vNext</title><description>Niki,
  
Check the recent stuff about DSL building, from quasi quotation to meta methods.
  
  
Yes, generics is still being added in, but it is possible to both consume and create generic types.
  
And yes, the docs are out of date.
</description><link>http://ayende.com/2970/c-vnext#comment13</link><guid>http://ayende.com/2970/c-vnext#comment13</guid><pubDate>Tue, 27 Nov 2007 00:46:46 GMT</pubDate></item><item><title>Ayende Rahien commented on C# vNext</title><description>Niki,
  
Go check boo, that is exactly what this is.
</description><link>http://ayende.com/2970/c-vnext#comment12</link><guid>http://ayende.com/2970/c-vnext#comment12</guid><pubDate>Tue, 27 Nov 2007 00:45:12 GMT</pubDate></item><item><title>Ayende Rahien commented on C# vNext</title><description>Frans,
  
Tough for him.
  
I am with you on that, this is something that can be really helpful on the language level. That he doesn't like it is nice, but it doesn't change the fact that this is a desired featured.
  
To me, it looks like the need to dance around AOP is causing a lot of warts in the design of C#.
</description><link>http://ayende.com/2970/c-vnext#comment11</link><guid>http://ayende.com/2970/c-vnext#comment11</guid><pubDate>Tue, 27 Nov 2007 00:44:49 GMT</pubDate></item><item><title>Ayende Rahien commented on C# vNext</title><description>Reshef,
  
Duck typing should cover this. It looks like duck typing with strong typing, which doesn't really mix. I don't really like it, it looks awkward. And there isn't a good way to handle this in the CLR.
</description><link>http://ayende.com/2970/c-vnext#comment10</link><guid>http://ayende.com/2970/c-vnext#comment10</guid><pubDate>Tue, 27 Nov 2007 00:42:17 GMT</pubDate></item><item><title>Niki commented on C# vNext</title><description>Daniel,
  
  
I know Boo. It's a promising language, although metaprogramming in Boo is nowhere nearly as concise as macros in Lisp or Scheme. (But I don't know if that could be done in a language with a rich syntax like Boo.)
  
  
My main problem with Boo is that (AFAIK) it still doesn't naturally support .NET generics. Either that, or the documentation on this topic is hopelessly outdated.
</description><link>http://ayende.com/2970/c-vnext#comment9</link><guid>http://ayende.com/2970/c-vnext#comment9</guid><pubDate>Mon, 26 Nov 2007 17:02:09 GMT</pubDate></item><item><title>Daniel commented on C# vNext</title><description>Niki,
  
  
Boo is a compile-time-static-typed CLR-friendly metaprogramming langauge and it works fine with C#, VB, etc.
  
  
http://boo.codehaus.org/
  
</description><link>http://ayende.com/2970/c-vnext#comment8</link><guid>http://ayende.com/2970/c-vnext#comment8</guid><pubDate>Mon, 26 Nov 2007 16:07:02 GMT</pubDate></item><item><title>Niki commented on C# vNext</title><description>Am I the only one whom AOP reminds of Intercal's "COMEFROM" directive? I know there are certain things like logging or performance profiling that could be done in a very elegant way using AOP. But then I always imagine debugging a program that just jumps somewhere completely different with no apparent reason at the source of the jump. And that's not a weird side effect of AOP, it's the intended effect. 
  
  
I am a huge fan of metaprogramming though, ever since I began to understand the true power of Lisp, but I doubt it will ever be included in C#. They could probably have implemented Linq with a few generic metaprogramming concepts, but they chose to hard-wire it in the compiler, so I guess the decision has already been made against any serious kind of metaprogramming.
  
  
IMO the best we could hope for is that someone comes up with a CLR-friendly (perferably compile-time-static-typed) metaprogramming language that integrates nicely with C# and all the other .NET languages.
</description><link>http://ayende.com/2970/c-vnext#comment7</link><guid>http://ayende.com/2970/c-vnext#comment7</guid><pubDate>Mon, 26 Nov 2007 15:37:13 GMT</pubDate></item><item><title>Frans Bouma commented on C# vNext</title><description>I asked Anders about mixins and AOP at the last summit, and he made it pretty clear that AOP is something he truly dislikes and it's very likely it won't be added to the language. 
  
  
This is sad, and also looking at what they added to the language, it's pretty funny because if they DID add AOP specific elements, they could have solved things properly instead of flaky as with extension methods (but not properties) etc. 
</description><link>http://ayende.com/2970/c-vnext#comment6</link><guid>http://ayende.com/2970/c-vnext#comment6</guid><pubDate>Mon, 26 Nov 2007 10:36:17 GMT</pubDate></item><item><title>Reshef Mann commented on C# vNext</title><description>Say u have:
  
public class A{
  
   public int Id {get; set;}
  
   // More properties
  
   ...
  
}
  
  
public class B{
  
   public int Id {get; set;}
  
   //More properties
  
   ...
  
}
  
  
U can declare something like:
  
public dynamic interface IIdentifiable{
  
   int Id {get; set;}
  
}
  
  
and in your code cast both class A and class B as IIdentifiable without having to actually implement IIdentifiable.
  
Resembles Boo's duck datatype, isn't it?
  
  
</description><link>http://ayende.com/2970/c-vnext#comment5</link><guid>http://ayende.com/2970/c-vnext#comment5</guid><pubDate>Mon, 26 Nov 2007 09:59:57 GMT</pubDate></item><item><title>Ayende Rahien commented on C# vNext</title><description>Reshef,
  
What do you mean by dynamic interfaces?
</description><link>http://ayende.com/2970/c-vnext#comment4</link><guid>http://ayende.com/2970/c-vnext#comment4</guid><pubDate>Mon, 26 Nov 2007 09:16:36 GMT</pubDate></item><item><title>Reshef Mann commented on C# vNext</title><description>U forgot to mention dynamic interfaces and a boo lover like u should know... :-)
  
I understood that MS intended to include it in C# 3.0 but finally postponed it since it wasn't required for linq to work.
  
I would take dynamic interfaces over the awkward linq... 
</description><link>http://ayende.com/2970/c-vnext#comment3</link><guid>http://ayende.com/2970/c-vnext#comment3</guid><pubDate>Mon, 26 Nov 2007 08:06:41 GMT</pubDate></item><item><title>Andrey Shchekin commented on C# vNext</title><description>Have you read a JavaGI paper (http://homepages.cwi.nl/~ralf/JavaGI/)? I think it gives a sane new approach to static interfaces and mixin-like features, instead of just copying everything form Ruby.
  
  
Talkig about hashes, is not it already easy enough: 
  
var hash = new Dictionary&lt;string, string&gt; {
  
    { "Color", "red" },
  
    { "Width", 15 }
  
}
  
?
  
Or do you really want tuples (guessing from the width value being of different type than color)? Then it would be
  
var tuple = new {
  
    Color = "red",
  
    Width  15
  
}
  
  
"Everything is virtual" is a hack, but I would vote for method interception.
</description><link>http://ayende.com/2970/c-vnext#comment2</link><guid>http://ayende.com/2970/c-vnext#comment2</guid><pubDate>Mon, 26 Nov 2007 07:27:02 GMT</pubDate></item><item><title>JH commented on C# vNext</title><description>Does this resolve mixins ? http://msdn2.microsoft.com/en-us/vcsharp/bb625996.aspx  
</description><link>http://ayende.com/2970/c-vnext#comment1</link><guid>http://ayende.com/2970/c-vnext#comment1</guid><pubDate>Mon, 26 Nov 2007 06:14:23 GMT</pubDate></item></channel></rss>