13.07.2015 Views

C# in Depth

C# in Depth

C# in Depth

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

358 CHAPTER 13 Elegant code <strong>in</strong> the new eraof smaller ones that can run at the same time, after all, and delegates are nice build<strong>in</strong>gblocks for that. The support for delegates <strong>in</strong> the form of lambda expressions—andeven expression trees to express logic <strong>in</strong> a more data-like manner—will certa<strong>in</strong>ly helpparallelization efforts <strong>in</strong> the future.There will be more advances to come. Some improvements may come throughnew frameworks such as Parallel Extensions, while others may come through futurelanguage features. Some of the frameworks may use exist<strong>in</strong>g language features <strong>in</strong>novel ways, just as the Concurrency and Coord<strong>in</strong>ation Runtime uses iterator blocks aswe saw <strong>in</strong> chapter 6.One area we may well see becom<strong>in</strong>g more prom<strong>in</strong>ent is provability. Concurrency isa murky area full of hidden pitfalls, and it’s also very hard to test properly. Test<strong>in</strong>gevery possibility is effectively impossible—but <strong>in</strong> some cases source code can be analyzedfor concurrency correctness automatically. Mak<strong>in</strong>g this applicable to bus<strong>in</strong>esssoftware at a level that is usable by “normal” developers such as ourselves is likely to bechalleng<strong>in</strong>g, but we may see progress as it becomes <strong>in</strong>creas<strong>in</strong>gly important to use thelarge number of cores becom<strong>in</strong>g available to us.There are clearly dozens of areas I could have picked that could become crucial <strong>in</strong>the next decade—mobile comput<strong>in</strong>g, service-oriented architectures (SOA), humancomputer <strong>in</strong>terfaces, rich Internet applications, system <strong>in</strong>teroperability, and so forth.These are all likely to be transformed significantly—but parallel comput<strong>in</strong>g is likely tobe at the heart of many of them. If you don’t know much about thread<strong>in</strong>g, I stronglyadvise you to start learn<strong>in</strong>g right now.13.5 FarewellSo, that’s <strong>C#</strong>—for now. I doubt that it will stay at version 3 forever, although I would personallylike Microsoft to give us at least a few years of explor<strong>in</strong>g and becom<strong>in</strong>g comfortablewith <strong>C#</strong> 3 before mov<strong>in</strong>g the world on aga<strong>in</strong>. I don’t know about you, but I coulddo with a bit of time to use what we’ve got <strong>in</strong>stead of learn<strong>in</strong>g the next version. If weneed a bit more variety and spice, there are always other languages to be studied…In the meantime, there will certa<strong>in</strong>ly be new libraries and architectures to come togrips with. Developers can never afford to stand still—but hopefully this book hasgiven you a rock-solid foundation <strong>in</strong> <strong>C#</strong>, enabl<strong>in</strong>g you to learn new technologies withoutworry<strong>in</strong>g about what the language is do<strong>in</strong>g.There’s more to life than learn<strong>in</strong>g about the new tools available, and while you mayhave bought this book purely out of <strong>in</strong>tellectual curiosity, it’s more likely that you justwant to get the most out of <strong>C#</strong> 3. After all, there’s relatively little po<strong>in</strong>t <strong>in</strong> acquir<strong>in</strong>g a skillif you’re not go<strong>in</strong>g to use it. <strong>C#</strong> 3 is a wonderful language, and .NET 3.5 is a great platform—buton their own they mean very little. They need to be used to provide value.I’ve tried to give you a thorough understand<strong>in</strong>g of <strong>C#</strong> 3, but that doesn’t mean thatyou’ve seen all that it can do, any more than play<strong>in</strong>g each note on a piano <strong>in</strong> turnmeans you’ve heard every possible tune. I’ve put the features <strong>in</strong> context and givensome examples of where you might f<strong>in</strong>d them helpful. I can’t tell you exactly whatground-break<strong>in</strong>g use you might f<strong>in</strong>d for <strong>C#</strong> 3—but I wish you the very best of luck.Licensed to Rhona Hadida

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!