<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx</link><description>Well, I intended to spend the last three weeks blogging about C# design process in anticipation of our announcements at the PDC, and then I got crazy busy at work and never managed to do so! As I'm sure you know by now, we have announced the existence</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9020646</link><pubDate>Tue, 28 Oct 2008 21:08:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020646</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;Eric,&lt;/p&gt;
&lt;p&gt;I would really appreciate if one of you C# 4.0 gurus could take a glance at the description of new features on Wikipedia: &lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/C_Sharp_"&gt;http://en.wikipedia.org/wiki/C_Sharp_&lt;/a&gt;(programming_language)#Future_development - and tell if there are some glaring mistakes there that have to be fixed for the sake of encyclopedic accuracy.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9020693</link><pubDate>Tue, 28 Oct 2008 21:39:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020693</guid><dc:creator>Eric Lippert</dc:creator><description>&lt;p&gt;There are no glaring mistakes at first glance; there are a couple of very minor errors here and there.&lt;/p&gt;
&lt;p&gt;Send me your email address and when I have a moment I'll go over the article in detail and email you my errata.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9020749</link><pubDate>Tue, 28 Oct 2008 22:06:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020749</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;Thank you very much!&lt;/p&gt;
&lt;p&gt;It's int19h@gmail.com.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9020758</link><pubDate>Tue, 28 Oct 2008 22:10:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020758</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;Oh, and regarding language features - apparently, there are some puzzlers regarding dark corners of variant generics coming up already (stuff you've covered here previously, but with no definite conclusion then):&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://social.msdn.microsoft.com/Forums/en-US/vs2010ctpvbcs/thread/c1e4476d-8be8-41b3-9dae-55b834313ce6"&gt;http://social.msdn.microsoft.com/Forums/en-US/vs2010ctpvbcs/thread/c1e4476d-8be8-41b3-9dae-55b834313ce6&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9020999</link><pubDate>Wed, 29 Oct 2008 00:25:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020999</guid><dc:creator>cwbrandsma</dc:creator><description>&lt;p&gt;&amp;quot;writing interfaces only intended to be implemented by one class&amp;quot;&lt;/p&gt;
&lt;p&gt;Give me a built in way to mock a class (without resorting to typemock) that doesn't involve creating an interface/abstract base class, and I will gladly stop. &amp;nbsp;Bonus point if you can show me this while implementing a MVP pattern (testing the Presenter).&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021003</link><pubDate>Wed, 29 Oct 2008 00:28:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021003</guid><dc:creator>Arne Claassen</dc:creator><description>&lt;p&gt;Eric, I suffer from OHD, at least when it comes to the Interface portion for two reasons: Testability and build time abstraction&lt;/p&gt;
&lt;p&gt;The first is a result of needing the interface so that i can mock my dependencies for unit testing. Can't really see a way around that. True, there will always exist at least two implementations of any interface, but it's still sort of artificial. I guess i'd put extension methods in a similar camp, since unless i attach the extension on an interface, i once again can't test it in isolation.&lt;/p&gt;
&lt;p&gt;The latter is a result of having to recompile the entire tree of depdendent assemblies if a low level class changes even if the change is internal to the class. By keeping everything behind interfaces and the interfaces in a separate assembly, the build dependence goes away, which on large projects is a signficant time saving.&lt;/p&gt;
&lt;p&gt;Any way around these limitations without going object and interface happy?&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021015</link><pubDate>Wed, 29 Oct 2008 00:42:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021015</guid><dc:creator>Eric Lippert</dc:creator><description>&lt;p&gt;I think maybe I was not entirely clear on that point. &lt;/p&gt;
&lt;p&gt;What I intended to get across was that I have seen codebases where every class definition also had an identical interface definition _for no good reason_. &lt;/p&gt;
&lt;p&gt;Someone had been taught at some point that interface abstraction was A Very Good Thing, and so every time they defined a class, boom, there was a parallel interface right there too. And of course the code was then littered with casts casting values of interface types back to their corresponding class types, because after all, we know that every IFoo is actually a CFoo! &lt;/p&gt;
&lt;p&gt;If you're writing interfaces that are designed to only be implemented by one class, and you have a really good reason for that, then that's not Object Happiness, that's working around the limitations of a tool in a fairly sensible manner.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021043</link><pubDate>Wed, 29 Oct 2008 00:58:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021043</guid><dc:creator>Frank Quednau</dc:creator><description>&lt;p&gt;@cwbrandsma&lt;/p&gt;
&lt;p&gt;Can you not declare that virtual which you want to mock?&lt;/p&gt;
&lt;p&gt;Anyway, thanks for that post, makes me a lot more relaxed about C#'s future! Down with philosophy! Up with pragmatism! (Only a few centuries ago, philosophers were practicians...)&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021145</link><pubDate>Wed, 29 Oct 2008 02:17:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021145</guid><dc:creator>Thomas Danecker</dc:creator><description>&lt;p&gt;doesn't &amp;quot;makes it easy to program in a ... style&amp;quot; sometimes imply &amp;quot;and difficult (or impossible!) to program in a non-... style&amp;quot;?&lt;/p&gt;
&lt;p&gt;i.e. when you want to be able to programm e.g. in oo style, you have the implicit requirement, that the things you're using (frameworks, apis, librarys) are also written in that style. otherwise it gets really difficult to use all that cool stuff that's already built in the framework while sticking to the chosen style.&lt;/p&gt;
&lt;p&gt;I enjoy the mixture of styles in c#/.net (and love the new declarative style), but imho, contrary to your point, it makes the language less object oriented. ok, it's more the framework that is less oo, but those two things go hand in hand somehow.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021178</link><pubDate>Wed, 29 Oct 2008 02:41:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021178</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;&amp;quot;Can you not declare that virtual which you want to mock?&amp;quot;&lt;/p&gt;
&lt;p&gt;You definitely can work around these things, but I'd imagine a lot of people find it a good bit more convenient &amp;amp; clear when working with interfaces, as you can guarantee that a stub/mock/testdouble/whatever won't have any kind of unwanted logic or dependencies. &amp;nbsp;At work I've had a few cases where someone else's code is working off a base class and, due to things like static methods lurking within (which potentially each pull in dependencies of their own!) I've found it hard to get the tests working without a lot of aggravation. &amp;nbsp;The moment they use an interface, things go a lot more smoothly. &amp;nbsp;By implementing the interface in a base class, you get the best of both worlds. &amp;nbsp;Same code, just an extra interface to worry about.&lt;/p&gt;
&lt;p&gt;Like the article says, it's possible to go too far, though. &amp;nbsp;I tend to make an interface for anything that has a tangible effect on my ability to test. &amp;nbsp;If I am never going to need multiple versions of a class, and that class has few dependencies and little/no impact on my testing, then I don't bother. &amp;nbsp;Same deal if there is no real 'common' interface and casting would be required. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rule of thumb is simply what the article said. &amp;nbsp;Don't do it just to do it. &amp;nbsp;Do it because it greases the wheels and makes your job easier. &amp;nbsp;Also, it helps to extract interfaces once the code is fairly stable, otherwise you just end up constantly updating code in two or three places instead of one or two). &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021248</link><pubDate>Wed, 29 Oct 2008 03:29:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021248</guid><dc:creator>themanfromsql</dc:creator><description>&lt;p&gt;Eric, &lt;/p&gt;
&lt;p&gt;Thank you for the clarification in the comments about why you wrote your article. &amp;nbsp;On first read, it did sound like you were discounting OO principles out of hand. &amp;nbsp;And you're right, there are some programmers who will take OO principles and apply them dogmatically and unthinkingly everywhere, just like there will always be people who will dogmatically adhere to the tenets of &amp;lt;insert your favorite religious or political organization&amp;gt;, and just like there will be people who will walk away from your article proclaiming that object-oriented programming is bad. &amp;nbsp;There is still no good substitute for thinking. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021388</link><pubDate>Wed, 29 Oct 2008 04:34:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021388</guid><dc:creator>Michael</dc:creator><description>&lt;p&gt;No offense meant, but anyone who says that Scheme makes it difficult to program in an object-oriented style simply doesn't know squat about Scheme. &amp;nbsp;The language does not &amp;quot;resist you at every turn&amp;quot;. &amp;nbsp;In fact, the language features (closures, macros) make it very easy for an average Scheme programmer to write his/her own OO system if he/she wants to. &amp;nbsp;In fact, this is the real problem with OOP in Scheme: it's so easy to write an OO system that everyone writes a different one. &amp;nbsp;Check out &lt;a rel="nofollow" target="_new" href="http://www.plt-scheme.org"&gt;http://www.plt-scheme.org&lt;/a&gt; for a Scheme implementation that has a full-featured object system.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021817</link><pubDate>Wed, 29 Oct 2008 11:08:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021817</guid><dc:creator>Greg M</dc:creator><description>&lt;p&gt;I agree with Thomas, and I'll go one step further and say that it applies even more so to functional programming. One of the big advantages you get from programming functionally are the guarantees of immutability, referential transparency etc, so if you're interfacing with code written in a non-functional style then being able to write your own code in a functional style isn't going to buy you as much as it would in a purely-functional program.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021838</link><pubDate>Wed, 29 Oct 2008 11:28:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021838</guid><dc:creator>RichB</dc:creator><description>&lt;p&gt;&amp;gt; # writing interfaces only intended to be implemented by one class&lt;/p&gt;
&lt;p&gt;&amp;gt; # designing every class to enable derivation, whether it needs it or not&lt;/p&gt;
&lt;p&gt;All well and good, except when it comes to testability. To get great test coverage, it is necessary to mock out objects. Ultimately, the only testability feature built into C# is friend assemblies. I wish that C# was testable without having to use the above features, but it's not. Misko Hevery (testability advocate at Google) says this well in several posts on his blog:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://misko.hevery.com/2008/07/24/how-to-write-3v1l-untestable-code/"&gt;http://misko.hevery.com/2008/07/24/how-to-write-3v1l-untestable-code/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://misko.hevery.com/2008/07/30/top-10-things-which-make-your-code-hard-to-test/"&gt;http://misko.hevery.com/2008/07/30/top-10-things-which-make-your-code-hard-to-test/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I guess the biggest bugbear from the DI (IoC) meme is that class-based OO languages need to split the .ctor in two, into an object graph constructor and an initialization constructor.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9021978</link><pubDate>Wed, 29 Oct 2008 13:38:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9021978</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;&amp;gt; I wish that C# was testable without having to use the above features, but it's not. &lt;/p&gt;
&lt;p&gt;TypeMock to the rescue!&lt;/p&gt;
&lt;p&gt;... except that some TDD proponents argue against TypeMock because it &amp;quot;promotes bad design&amp;quot; (i.e., does not force you to make an interface for every class, and forcibly decouple things even where it's pointless for any purpose but unit testing). So, it's not quite so simple.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022011</link><pubDate>Wed, 29 Oct 2008 14:05:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022011</guid><dc:creator>JScript as JavaScript</dc:creator><description>&lt;p&gt;I'll just say one thing that should get an educated reader critique everything written as this was done 15 years back:&lt;/p&gt;
&lt;p&gt;Mix-Ins.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022056</link><pubDate>Wed, 29 Oct 2008 14:35:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022056</guid><dc:creator>Sean Mulkerrin</dc:creator><description>&lt;p&gt;requesting that multiple class inheritance be added to the language&lt;/p&gt;
&lt;p&gt; I used to have this symptom very bad, but thankfully with many years of c# therapy i've been cured. for the most part at least.&lt;/p&gt;
&lt;p&gt;Some days are harder than others . . .&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022104</link><pubDate>Wed, 29 Oct 2008 15:10:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022104</guid><dc:creator>RichB</dc:creator><description>&lt;p&gt;int19h&amp;gt; TypeMock looks interesting. It's an interception system using the profiler API, so I guess it slows things down, but that doesn't matter in a unit test scenario.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022177</link><pubDate>Wed, 29 Oct 2008 15:59:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022177</guid><dc:creator>Stephan Leclercq</dc:creator><description>&lt;p&gt;Ah... Multiple inheritance... I would gladly stop requesting that if I had a proper way to make mix-ins.... Right now, having a class that implements two interfaces, reuses default behaviour from both, and redefines some from both, is complicated. An OO language should make that simple, you said this yourself !&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022300</link><pubDate>Wed, 29 Oct 2008 17:07:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022300</guid><dc:creator>Pop Catalin</dc:creator><description>&lt;p&gt;Regarding object happiness ... in my opinion, the true power of Linq comes not from functional programing alone, but from the fact that it can convert functional constructs to &amp;quot;Objects&amp;quot; ( Expresion&amp;lt;Func&amp;lt;...&amp;gt;&amp;gt; are objects). &lt;/p&gt;
&lt;p&gt;How I see it is that, Objects &amp;nbsp;are more flexible than functions, while functions are closed black boxes in most cases, objects are boxes with windows and doors. Generaly functions are composable, while objects can be both composable and decomposable, this is why I'm somewhat object happy in general, but I still like a functional approach where decomposition/modification is not needed or should be avoided (and very much welcome the functional aspect of C#). &lt;/p&gt;
&lt;p&gt;Dynamic? can't say I'm I have a opinion about it yet, as I'm not a dynamic fan, maybe I would have liked more some Spec#/C(Omega) features at first sigh, but hey :) there's a place for everything, in a dynamic world (literally) even a statically typed language can make a good use of dynamic features. I'm really curious to see how dynamic will work with generics, extension methods, lambda expressions and especially Linq.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022377</link><pubDate>Wed, 29 Oct 2008 18:06:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022377</guid><dc:creator>markus</dc:creator><description>&lt;p&gt;Dont forget that there are more ways to regard objects.&lt;/p&gt;
&lt;p&gt;Personally I use ruby, so I am much more inclined to the dynamic ways of smalltalk. I even enjoy prototype thinking in objects.&lt;/p&gt;
&lt;p&gt;For me essentially, OOP is finally about messages mostly (that alter a state), then come the objects. I always felt that C++ overcomplicated the whole aspect behind it to the worse. The only amazing thing is that C++ was such a success compared to C, because we still see so much of C++.&lt;/p&gt;
&lt;p&gt;This, in a way, makes me sad, because frankly C is a huge mess, especially with the whole ecosystem.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9022646</link><pubDate>Wed, 29 Oct 2008 20:36:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9022646</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;&amp;gt; For me essentially, OOP is finally about messages mostly (that alter a state), then come the objects. I always felt that C++ overcomplicated the whole aspect behind it to the worse.&lt;/p&gt;
&lt;p&gt;Glad to see the Smalltalk &amp;quot;that's not what I meant when I invented the term 'OOP'!&amp;quot; mentality is still alive. :)&lt;/p&gt;
&lt;p&gt;Do keep in mind though that the very first OO language was still Simula, which was very much statically typed and static overall (and C++ and the rest of the family are all recognizable descendants of Simula).&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9023442</link><pubDate>Thu, 30 Oct 2008 04:46:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9023442</guid><dc:creator>Greg M</dc:creator><description>&lt;p&gt;@Pop:&lt;/p&gt;
&lt;p&gt;What do you mean by decomposition in this context?&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9026459</link><pubDate>Fri, 31 Oct 2008 14:50:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9026459</guid><dc:creator>Pop Catalin</dc:creator><description>&lt;p&gt;@Greg:&lt;/p&gt;
&lt;p&gt;I mean that objects are inherently mutable, objects can be composed of more objects as fields (that are exposed or not) and if the object pars are exposed and mutable, then the object is decomposable, on the other hand when you compose functions you create a new function that is a black box, you can't get to it's inner parts (usually).&lt;/p&gt;
</description></item><item><title>Community Convergence XLVII</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9036489</link><pubDate>Tue, 04 Nov 2008 04:37:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9036489</guid><dc:creator>Charlie Calvert's Community Blog</dc:creator><description>&lt;p&gt;Welcome to the 47th Community Convergence. We had a very successful trip to PDC this year. In this post&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9056839</link><pubDate>Mon, 10 Nov 2008 07:48:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9056839</guid><dc:creator>Piyush Goriya</dc:creator><description>&lt;p&gt;Welcome to the 47th community convergece. we had a very successful trip to XBOX this year in this post &lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9120984</link><pubDate>Wed, 19 Nov 2008 03:53:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9120984</guid><dc:creator>Mark Demory</dc:creator><description>&lt;p&gt;Sorry I'm late. &amp;nbsp;Don't sweat it if no one reads this (OO humor).&lt;/p&gt;
&lt;p&gt;The number one problem I've had with all Microsoft products to date (with one exception) is this: &amp;nbsp;too many features!&lt;/p&gt;
&lt;p&gt;I've been a professional engineer/programmer/etc. for 25+ years, and I've used a fair variety of Microsoft products &amp;nbsp;over the years, as well as non-Microsoft software development products.&lt;/p&gt;
&lt;p&gt;Please, please, PLEASE, if anyone at Microsoft reads this, consider changing your mind! &amp;nbsp;Rather than continuing to generalize C#, give us more, more specialized, tools! &amp;nbsp;The more you generalize C# the less useful it will be for me to solve problem X.&lt;/p&gt;
&lt;p&gt;I have used a screwdriver as a chisel. &amp;nbsp;It worked great! &amp;nbsp;Once. &amp;nbsp;But after that it only worked as a chisel. &amp;nbsp;Now that I'm a little older I use the right hand tool for the job.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9121011</link><pubDate>Wed, 19 Nov 2008 04:00:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9121011</guid><dc:creator>Mark Demory</dc:creator><description>&lt;p&gt;I forgot to mention the good news! &amp;nbsp;Sorry. &amp;nbsp;My favorite computer ever (in the 25 years of using personal computers -- literally! &amp;nbsp;I still own several CP/M machines which I never use).&lt;/p&gt;
&lt;p&gt;I use an NEC MobilePro pretty much every day -- at work, at home, at church, in the car (just audio while driving, of course), at the local coffee shop after walking 30 minutes to get there, etc. &amp;nbsp;That's Windows CE 3.0, which of course is my favorite single operating system ever, for mobile computing. &amp;nbsp;I honestly do not need any of the additional features since, and still VERY MUCH MISS the lack of VBscripting in that one!&lt;/p&gt;
&lt;p&gt;Kudos to KISS.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9142944</link><pubDate>Wed, 26 Nov 2008 02:27:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9142944</guid><dc:creator>Duncan Bayne</dc:creator><description>&lt;p&gt;&amp;quot;The techniques are not good in of themselves, they're good because they're practical.&amp;quot;&lt;/p&gt;
&lt;p&gt;You've actually touched upon a serious philosophical here: &amp;quot;inherent value&amp;quot; is nonsense. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Value is a relationship between a valuer and an object; it is not an inherent property like dimension or mass. &amp;nbsp;For something to have value, there _must_ be a valuer.&lt;/p&gt;
&lt;p&gt;Thus a software methodology is _in of itself_ utterly devoid of value. &amp;nbsp;It might however be valuable to certain people in certain contexts. &amp;nbsp;The same applies to everything in existence - trees, rocks, computers, buildings, paintings, music, even people unless they (or others) see value in themselves.&lt;/p&gt;
</description></item><item><title>C# Dynamic - CSharp's new feature of the coming version 4.0</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9251513</link><pubDate>Wed, 24 Dec 2008 09:38:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9251513</guid><dc:creator>Journal of Abu Sayed Mohammad Ismail</dc:creator><description>&lt;p&gt;Very good resources for the coming version... Sam Ng Dynamic in C# Part One Dynamic in C# Part Two Chris&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9284938</link><pubDate>Tue, 06 Jan 2009 13:09:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9284938</guid><dc:creator>Reineir Post</dc:creator><description>&lt;p&gt;Perhaps deliberately you to not mention that language features come at a cost to everyone involved with the language, not just language designers: every user, every writer of software to support the language (compilers, syntax checkers, syntax highlighters, anything) will be faced with the possibility of meeting applications in the features, whether they like it or not.&lt;/p&gt;
&lt;p&gt;If the feature is at least non-intrusive, they can still continue their usual ways as long as they only meet and write code that doesn't actually apply the feature; but with intrusive features, that do not just add new syntax but modify the meaning of existing constructs or even programs, they have to understand the feature in depth and revise their existing code right away. &amp;nbsp;This is what is wrong with extension methods: they should have used a different syntax!&lt;/p&gt;
</description></item><item><title>re: The Future of C#, Part Two</title><link>http://blogs.msdn.com/ericlippert/archive/2008/10/28/the-future-of-c-part-two.aspx#9442260</link><pubDate>Tue, 24 Feb 2009 09:55:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9442260</guid><dc:creator>vishwajit</dc:creator><description>&lt;p&gt; i forgot to mention the good news! &amp;nbsp;Sorry. &amp;nbsp;My favorite computer ever (in the 25 years of using personal computers -- literally! &amp;nbsp;I still own several CP/M machines which I never use).&lt;/p&gt;
&lt;p&gt;I use an NEC MobilePro pretty much every day -- at work, at home, at church, in the car (just audio while driving, of course), at the local coffee shop after walking 30 minutes to get there, etc. &amp;nbsp;That's Windows CE 3.0, which of course is my favorite single operating system ever, for mobile computing. &amp;nbsp;I honestly do not need any of the additional features since, and still VERY MUCH MISS the lack of VBscripting in that one!&lt;/p&gt;
&lt;p&gt;Kudos to KISS.&lt;/p&gt;
</description></item></channel></rss>