.Net 4.0 & C#4.0 Opinions
-
Well, Josh Fischer [^] has a decent article on the new features. Parallelization, when I looked at the TPL, it seemed cute, meaning it's easy to parallelize a for loop, but if you really need to work with threads to utilize processors and you really have real work that can be parallelized, then I think TPL is too simplistic, and really doesn't give you that much more. Sure, it hides some details, but so what? I'd rather work more closely with the API than have some additional layer wrap the management of threading. Optional parameters I've missed from the days of C++ since I started working with C#. About time. Dynamic variables seems pointless to me and probably a big performance hit, especially since it looks like the runtime is essentially using reflection to figure out if the object has the property. Everyone complains that declarative programming doesn't allow for compile-time type checking, yet "they" keep adding features to C# that move type checking into the runtime. :sigh: The co-contra variance looks very useful. Com Interop stuff looks like it'll be useful. I don't really care if they rewrite WWF, and am glad I'm not using it if that's the case. Entity Framework--why bother. There's better 3rd party solutions out there, and for anything real, the EF looks way to immature anyways. Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
Marc Clifton wrote:
Optional parameters I've missed from the days of C++ since I started working with C#. About time.
Right and it's taken until version 4 to get them :confused:
Marc Clifton wrote:
Dynamic variables seems pointless to me
I didn't see the point either.
only two letters away from being an asset
-
Well, Josh Fischer [^] has a decent article on the new features. Parallelization, when I looked at the TPL, it seemed cute, meaning it's easy to parallelize a for loop, but if you really need to work with threads to utilize processors and you really have real work that can be parallelized, then I think TPL is too simplistic, and really doesn't give you that much more. Sure, it hides some details, but so what? I'd rather work more closely with the API than have some additional layer wrap the management of threading. Optional parameters I've missed from the days of C++ since I started working with C#. About time. Dynamic variables seems pointless to me and probably a big performance hit, especially since it looks like the runtime is essentially using reflection to figure out if the object has the property. Everyone complains that declarative programming doesn't allow for compile-time type checking, yet "they" keep adding features to C# that move type checking into the runtime. :sigh: The co-contra variance looks very useful. Com Interop stuff looks like it'll be useful. I don't really care if they rewrite WWF, and am glad I'm not using it if that's the case. Entity Framework--why bother. There's better 3rd party solutions out there, and for anything real, the EF looks way to immature anyways. Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
Excellent! I could not agree more with each of your points.
-
I think it has type covariance and contravariance which is something I've wanted for a while.
Yeah, ditto. It's one of those things that you think should work, but doesn't once you go try it:
var strings = new List() { "hello", "world" };
IEnumerable objectList = strings; // this works nowThe 3 big areas that affect me are
IEnumerable<T>
,Action<T, ...>
andFunc<T...>
-
I was thinking about the impending release of .Net 4.0/C# 4.0 and wondering whether or not I can be bothered (not that I've actually opened VS 2008 for a couple of months now, but it's handy to keep your toe in) - I'm sure the more eager amongst you will have checked out .Net 4.0 and the VS 2010 betas, so I thought I'd throw the question out "Is it worth it" and gather some opinions (I'm bored, it's raining and I've got nothing better to do :D ). From what I've read, particularly with reference to C#, the main areas of development are: 1) Parallelization 2) Dynamic language features & the DLR 3) Some (C#) language improvements to make Office/COM interop less of a pain in the jacksie, design by contract and some other stuff. 4) A rewrite of WWF. 5) Another stab at (or improvements to) Entity Framework. And that's about it (there are bound to be some other things, but those were the big five I found talked/blogged/pod-casted about most). Are any of these (or any other features you know about that I don't) enough to make you upgrade? the one that appeals to me most is the dynamic stuff (the DLR + IronPython more than C#'s dynamic features) but I could do without it - and the rest, I'm not so sure. The parallel stuff looks interesting, but runs the risk of being too close to bleeding edge and may well be superceded by something else quite quickly, the changes to WWF would make my blood boil if I had invested anything in the original release and I've avoided Entity Framework - only because I've not had much use for it. Also, is this release too soon?
print "http://www.codeproject.com".toURL().text Ain't that Groovy?
martin_hughes wrote:
Also, is this release too soon?
Well, in general, it would be nice if MS slowed down a bit...
Kevin
-
looking forward to fixing a lot of shitty, unreadable, convoluted and... shitty code due to the introduction of optional parameters* looking forward to fixing a lot of shitty, unreadable, convoluted and... shitty code due to the introduction of dynamic declarations* i am still hoping that if i continue to ignore wpf it will die the slow horible death it deserves ( not sure i will succeed on this one) *other people's code, of course
Opium is my business. The bridge mean more traffic. More traffic mean more money. More money mean more power. Speed is important in business. Time is money. You said opium was money. Money is Money. Well then, what is time again? icalburner
Member 1709723 wrote:
looking forward to fixing a lot of sh***y, unreadable, convoluted and... sh***y code due to the introduction of optional parameters
Interestingly, in my C++ days I didn't mind them so much. But when I've encountered them when I've had to maintain VB .NET code they've been a real pain.
Kevin
-
Well, Josh Fischer [^] has a decent article on the new features. Parallelization, when I looked at the TPL, it seemed cute, meaning it's easy to parallelize a for loop, but if you really need to work with threads to utilize processors and you really have real work that can be parallelized, then I think TPL is too simplistic, and really doesn't give you that much more. Sure, it hides some details, but so what? I'd rather work more closely with the API than have some additional layer wrap the management of threading. Optional parameters I've missed from the days of C++ since I started working with C#. About time. Dynamic variables seems pointless to me and probably a big performance hit, especially since it looks like the runtime is essentially using reflection to figure out if the object has the property. Everyone complains that declarative programming doesn't allow for compile-time type checking, yet "they" keep adding features to C# that move type checking into the runtime. :sigh: The co-contra variance looks very useful. Com Interop stuff looks like it'll be useful. I don't really care if they rewrite WWF, and am glad I'm not using it if that's the case. Entity Framework--why bother. There's better 3rd party solutions out there, and for anything real, the EF looks way to immature anyways. Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
Marc Clifton wrote:
Parallelization, when I looked at the TPL, it seemed cute, meaning it's easy to parallelize a for loop, but if you really need to work with threads to utilize processors and you really have real work that can be parallelized, then I think TPL is too simplistic
I hope you give it a fair try, it's really so much more than parallelizing loops.
Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon Judah Himango
-
Any news on if they've fixed any of the many bugs in WPF ?
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
-
I know there's a ton of things to fixed, have they said anything ?
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Not that I've heard, but then again, I haven't exactly been reading a ton of blog posts lately either. My time is filled by watching my 14 month old's face as he steps into a puddle and stomps his feet for the first time. To him, it turned out to be the coolest thing on earth. For me, it turned out to be the coolest thing on this earth! :cool:
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
And here I was thinking they write them so I have stuff to blog about.....
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Yeah, I have popcorn ready for you and the release date. :laugh:
Cheetah. Ferret. Gonads. What more can I say? - Pete O'Hanlon
-
Wow. I think a Microsoft employee signed up recently; you got univoted. Fixed
Between the idea And the reality Between the motion And the act Falls the Shadow
-
Member 1709723 wrote:
i am still hoping that if i continue to ignore wpf it will die the slow horible death it deserves ( not sure i will succeed on this one)
What makes you say that ? It has issues, but it's the nicest way to create compelling UI right now.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Christian Graus wrote:
[WPF is] the nicest way to create compelling UI right now
OK, either you missed the joke icon, or.... who are you, and what did you do to the real CG? :suss:
Cheers, Vikram. (Proud to have finally cracked a CCC!)
Recent activities: TV series: Friends, season 10 Books: Fooled by Randomness, by Nassim Nicholas Taleb.
Carpe Diem.
-
martin_hughes wrote:
Also, is this release too soon?
Well, in general, it would be nice if MS slowed down a bit...
Kevin
-
Marc Clifton wrote:
Parallelization, when I looked at the TPL, it seemed cute, meaning it's easy to parallelize a for loop, but if you really need to work with threads to utilize processors and you really have real work that can be parallelized, then I think TPL is too simplistic
I hope you give it a fair try, it's really so much more than parallelizing loops.
Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon Judah Himango
Judah Himango wrote:
I hope you give it a fair try, it's really so much more than parallelizing loops.
I will definitely look at it again with .NET 4.0. But should I expect anything different from what I wrote about already here?[^] Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
-
I agree...I haven't even touched linq, etc. C# 2.0 is fine for me. They should wait till 2012 at least before a new VS and they should let their new fancy features live or die in a sandbox for a couple of years before they unleash it on us.
I think they should move to at least a 3-year update cycle. In between should be just pure bug fixes. VS 6 had five (or was it six?) service packs. VS .NET IDE only ever has one service pack. Each release could have done with more than the one.
Kevin
-
Member 1709723 wrote:
looking forward to fixing a lot of sh***y, unreadable, convoluted and... sh***y code due to the introduction of optional parameters
Interestingly, in my C++ days I didn't mind them so much. But when I've encountered them when I've had to maintain VB .NET code they've been a real pain.
Kevin
back in the c++ days it took some brains to begin to be into this line of work (high learning curve) so most people knew how to use the tools ( surely there are always exceptions ) but starting with vb6 or so, and the appearance of learn xxxxx in 24 hours coupled with the pre-burst bubble salaries, a lot of self styled code afficianados have gotten into the fray, motivated by the easy $$ a lot of people, they look at some language features and say: "look, a shiny new hammer", and often enough they use the wrong end of it... unfortunately the large majority of other developers i have come into contact with are exactly like that (various technologies' fanboys included) it has usually fallen on my brow to repair and update - hence the forward looking bitterness (albeit i appreciate the new features) i can count on my fingers all the developers i have met i actually respect in terms of abilities no flaming please - i am more than certain that if i knew most of the regulars in here i would need several more hands
Opium is my business. The bridge mean more traffic. More traffic mean more money. More money mean more power. Speed is important in business. Time is money. You said opium was money. Money is Money. Well then, what is time again? icalburner
-
I was thinking about the impending release of .Net 4.0/C# 4.0 and wondering whether or not I can be bothered (not that I've actually opened VS 2008 for a couple of months now, but it's handy to keep your toe in) - I'm sure the more eager amongst you will have checked out .Net 4.0 and the VS 2010 betas, so I thought I'd throw the question out "Is it worth it" and gather some opinions (I'm bored, it's raining and I've got nothing better to do :D ). From what I've read, particularly with reference to C#, the main areas of development are: 1) Parallelization 2) Dynamic language features & the DLR 3) Some (C#) language improvements to make Office/COM interop less of a pain in the jacksie, design by contract and some other stuff. 4) A rewrite of WWF. 5) Another stab at (or improvements to) Entity Framework. And that's about it (there are bound to be some other things, but those were the big five I found talked/blogged/pod-casted about most). Are any of these (or any other features you know about that I don't) enough to make you upgrade? the one that appeals to me most is the dynamic stuff (the DLR + IronPython more than C#'s dynamic features) but I could do without it - and the rest, I'm not so sure. The parallel stuff looks interesting, but runs the risk of being too close to bleeding edge and may well be superceded by something else quite quickly, the changes to WWF would make my blood boil if I had invested anything in the original release and I've avoided Entity Framework - only because I've not had much use for it. Also, is this release too soon?
print "http://www.codeproject.com".toURL().text Ain't that Groovy?
I think dynamic typing is a step backwards and I saw a speech by Anders ( PDC? ) where he almost winced when announcing it. The stuff I really like is the work on parallelization. Sure, PLINQ gives you
.AsParallel()
, but behind the scenes there has been an important shift from threads to tasks. These are lightweight and are also a better abstraction. MS thinks so too: the work-stealing scheduler written by the PFX team has been amalgamated into the framework and now runs the CLR thread pool. Loads more has been added too - Coordination Data Structures, and things likeCountdownEvent
andReductionVariable
. Also continuations, and wrappers for the Asynchronous Programming Model and Event-based Asynchronous Pattern. There's a lot of good stuff. It's not well documented at the moment - the best resource is the PFX team blog: http://blogs.msdn.com/pfxteam/default.aspx[^] - but their work relieves the application developer from the more mundane parts of writing concurrent software. As long as you don't expect it to do everything for you, then you won't be disappointed! Nick---------------------------------- Be excellent to each other :)
-
Judah Himango wrote:
I hope you give it a fair try, it's really so much more than parallelizing loops.
I will definitely look at it again with .NET 4.0. But should I expect anything different from what I wrote about already here?[^] Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
An influential article :) Was that really 18 months ago now? Nick
---------------------------------- Be excellent to each other :)
-
An influential article :) Was that really 18 months ago now? Nick
---------------------------------- Be excellent to each other :)
Nick Butler wrote:
Was that really 18 months ago now?
Scary, isn't it. Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
-
martin_hughes wrote:
Also, is this release too soon?
Well, in general, it would be nice if MS slowed down a bit...
Kevin
-
I was thinking about the impending release of .Net 4.0/C# 4.0 and wondering whether or not I can be bothered (not that I've actually opened VS 2008 for a couple of months now, but it's handy to keep your toe in) - I'm sure the more eager amongst you will have checked out .Net 4.0 and the VS 2010 betas, so I thought I'd throw the question out "Is it worth it" and gather some opinions (I'm bored, it's raining and I've got nothing better to do :D ). From what I've read, particularly with reference to C#, the main areas of development are: 1) Parallelization 2) Dynamic language features & the DLR 3) Some (C#) language improvements to make Office/COM interop less of a pain in the jacksie, design by contract and some other stuff. 4) A rewrite of WWF. 5) Another stab at (or improvements to) Entity Framework. And that's about it (there are bound to be some other things, but those were the big five I found talked/blogged/pod-casted about most). Are any of these (or any other features you know about that I don't) enough to make you upgrade? the one that appeals to me most is the dynamic stuff (the DLR + IronPython more than C#'s dynamic features) but I could do without it - and the rest, I'm not so sure. The parallel stuff looks interesting, but runs the risk of being too close to bleeding edge and may well be superceded by something else quite quickly, the changes to WWF would make my blood boil if I had invested anything in the original release and I've avoided Entity Framework - only because I've not had much use for it. Also, is this release too soon?
print "http://www.codeproject.com".toURL().text Ain't that Groovy?
martin_hughes wrote:
WWF
Windows Wrestling Foundation?
Don't attribute to stupidity what can be equally well explained by buerocracy.
My latest article | Linkify!| FoldWithUs! | sighist