Rating: Summary: Great book, but... Review: All the raves about this book are correct, but Microsoft rushed it to press too early. It goes up to chapter 23, but Microsoft has already posted chapters 24 and 25 on their web site. Also, some of the material is inaccurate due to Microsoft changing their mind about the 2.0 implementation.
Rating: Summary: May yet be a Classic Review: C# has now been publicly released by Microsoft for well over a year. In fact, it is maturing into a major upgrade, to version 2. Not surprisingly, there have been several books out on version 1. This book describes version 1 and some aspects of version 2 though these are not strictly official yet.So is that the main point of this book; to give up a heads-up on V2? Because otherwise, do we really need another book on V1? What is the point? Well, perhaps the point is that one of the authors is Hejlsberg, the architect of C#. At Borland, he was the chief architect of Delphi and Turbo Pascal. A towering figure. The blurb on the book's back cover calls him a "programming legend". I do not think this is hype. This book has promise of being a landmark. One of those that is forever definitively associated with a computer language. Like "Pascal - User Manual and Report" by Jensen and Wirth, and "The C Programming Language" by Kernighan and Ritchie. The main question about this book is the timing of its publication. It is late. Its chances of being considered in the august ranks of the above classics would have been much enhanced if it could have been published coincident with the release of C#. Sure, it would not then mention the V2 features. But that could have been put in the second version of this book. By being late, it let other explanatory texts grab that initial mindshare. Someone, NOT necessarily Hejlsberg, fumbled the ball on this one. Not too late though. The book starts a lap behind. But it may yet achieve classic status. By the way, those of you interested in the history of programming may appreciate this. Hejlsberg is the architect of C#. He is not the (only) author of C#. A team of authors at Microsoft worked on it, simply because these days a new language needs much more effort. Jensen and Wirth were the sole authors of the initial Pascal. Likewise for Kernighan and Ritchie. The simplest reason for the increased complexity is of course the GUI, which was nonexistent then. But another is that C# (and Java) use an automatic garbage collector. In C and Pascal, the programmer must explicitly dellocate, which means that the latter is a simple deterministic method. The complexity is in your wetware. Moving to an automatic GC vastly increases the language's internal complexity.
Rating: Summary: Straight from the source Review: C# is an elegant language uniquely developed along with .NET and as such, the originators of this language were in a somewhat unique experience of being able to develop a langauge and a development framework at the same time. I personally have had the pleasure of being able to use tools that Anders Hejlsberg (the primary author) developed for nearly two decades. He was the original developer of Turbo Pascal, which was an amazingly well-architected compiler that still astonishes me to this day in its compilation speed. Delphi followed, another triumph of Anders, which is a tool I still use for most of my Win32 development. It was a quantum leap and a true evolution from TurboPascal. The back cover of the book refers to Anders as a "programming legend." Microsoft was able to recruit Anders from Borland a number of years ago where he was hard at work at the next generation of language development - C#. When .NET first came out, it seemed like VB.NET might well be language of choice - now it seems that C# is starting to take that role and it is no wonder. The book? Well, it is written from the source - the guys that developed it first hand and as such, it stands next to such giant references as Kernighan and Ritchie's "The C Programming Language." This is a true reference book meaning it is to be referred to, not necessarily read (though it is VERY readable). It covers 2.0 and generics, which will be available sometime in 2005. So it should hold up for a few years before a 2nd edition comes out. It is one of the more important C# references I have. But bear in mind, it is really about the language itself - not applications. Enjoy!
Rating: Summary: Awesome book focused on the language itself Review: I must say it's awesome! In particular, I was very pleased to see C# 2.0 chapters included. What I also like very much about the book is that it is focused on the language itself, while many other C# books tend to present a mix of the language and the Framework Class Library. I would even expect this book to play the same role the Kernigan & Ritchie's played for C programmers and the Bjarne Stroustrup's for C++ generation since it is written by people who were either "fathers" of the language or at least had a significant influence on it, and who else would communicate the language philosophy better?
Rating: Summary: So what is this really? Review: I think several of the previous reviews missed the gist of what this book is. It isn't "plagiarized", nor is it "classic" material - it simply IS a reprint of the current state of the Microsoft C# Language Specification in a snazzy new hard cover, thats all. You can download the C# Language Specification from the MSDN site if you want to take a look at precisely how the content of this book is organized. Microsoft Press first published the C# Language Specification back in 2001 based on the beta content. This is apparently just the current state of the specs, nothing fancy. Many of the examples used here are the same old examples used with the beta edition specs. This is pure techie reference material. Nothing more, nothing less. So I gave it 3 stars. How do you rate a language specification document? It is what it is. Marketing hype about "destined to be a classic" (ya da ya da) is disingenuous, but charges of plagiarism are ill-considered also: its simply the same old spec document that Hejlsberg, et al, have been working on for the past four years. Just updated. So if you want a nicely bound edition of the current spec buy the book...
Rating: Summary: Great reference, but NOT a programming tutorial Review: I've always held as a personal dictum that the best way to get complete, irrefutable information on something is to go straight to the source. And the new title "The C# Programming Language", co-authored by Anders Heljsberg, a Microsoft distinguished engineer and the creator of the C# language, is such a source.
To paraphrase my favorite quote from the Matrix series, "He IS the architect."
However, the key element to understanding why you should get this book is understanding what it is...and perhaps more importantly, what it is not. The main focus of the book is to provide centralized documentation for the C# language specification. It's not intended to be a comprehensive tutorial to C# development; it's a programmer's reference, profiling the internal mechanics behind the world's most rapidly-adopted programming language.
So, it's not a book where developers can copy out code, find out how to better design classes, or lookup methods and properties within the .NET Framework - it's a valuable reference guide for the experienced developer. As such, I find it to be a fantastic resource for upper-level computer science students (a market Addison-Wesley very adeptly serves anyway), or those professional developers moving over from other languages and/or platforms, and I highly recommend it to those who would make buying decisions for such classes.
People looking to buy it as a programming guide will be disappointed, I'm sad to say, as it's simply not that type of book. This would be akin to be getting lost trying to read the U.S. Constitution to find out how to create a law. It's applicable...but not directly.
However, I enjoyed reading it, for the academic and conceptual benefits it provided. And yes, I did learn a lot, most of which I didn't realize prior. A very, very helpful collection of appendices make this book a great addition to any development team's library. A hale and hearty section is also dedicated to introducing to the new features inherent to C# 2.0 - generics, anonymous methods, iterators, and partial classes.
In my opinion, the book's one major flaw is the misnomer is gives off to the buyer, which unfairly at this point in the .NET game, implies the de facto expectation for a self-help book on learning various aspects of Microsoft development. The true purpose of the book could have been better promoted with the inclusion of a subtitle, something like "The C# Programming Language - An Architect's Guide to the Specification", or something making the true purpose a bit more obvious.
That having been said, the book is a fantastic deal, priced cheap (a great bargain at US$29.95), so buy it if you're an experienced developer who's curious. You'll grow as a developer by increasing your own programming acumen by becoming more intimately familiar with how the C# language does what it does in the background.
The title is beautifully bound, being a hardcover book with one of those little page-placeholder ribbon thingys, the name of which I obviously don't know, but a nice touch nonetheless.
I'm not sure how I should rank this book, as it's a specification, and therefore inherently comprehensive, and likewise subject to standardization prior to publication. But, I did get a lot out of it, so that says something.
Rating: Summary: THE definitive spec for C# Review: If you write C# code for a living, this book belongs on your desk. While the spec is available online, there's a lot to be said for having it as a nicely bound, hardcover edition. It comes in very handy whenever a language syntax or usage question comes up, and is good looking to boot.
Rating: Summary: General Advice Review: Most of the other reviews have pretty much covered the details of this book. So, I will just add what appears to be missing. Every experienced C# developer probably already knows that they need this material. Whether they download it or buy the book is up to the individual. Personally, I have the Language Specs version from C# 1.0 beta, I have the downloads of this current version and have read through the 2.0 extension. However, I am buying this book also. Aside from being more convenient to shelve and find when needed, it needs to take it's pride of place in my lineup beside Kernighan & Pike (C), Stroustrup (C++), Arnold et al (Java), Knuth (Art of Prog.), Gamma et al(GoF Patterns). You may call it the legends' guard of honor. My little tribute to such distinguished personalities of my time. If you are new to programming or to C#, you may think you don't need this book now, but you'd be surprised how quickly you grow to need this book more. When C# was released, I had to develop an application quickly to support a book I was writing (everybody was new to the language). Many of the error messages I got from compilation were helpful but for some of them, I had to dig into the language specs to see all the do's and don't in one place. Even MSDN can't give you that. If you are a systems developer, who for your livelihood have to mess with Reflection.Emit, CodeDom, Compilers, Custom Macros and such like, you would know that you can't do your job so easily if you didn't have this book. If you don't right now but ever hope to, consider this an early advice: you need the specs. Compared to the other language specs books in my lineup, the systems developer would notice that C# specs is the most scholarly, with extensive, unhurried details of syntax, lexicon, grammar, semantics and such definitions that you need to be able to precisely do all sorts of custom stuff to this language. You can rest assured that you have all your patterns in one place. This book elegantly separates language definitions from framework infrastructure. Let's put it this way, anyone can write a book on any programming language. But, there will aways be one "The <...> programming Language" book" on each one. And traditional respect has allowed it to remain so. This is it for C# and I think it is the most well put together. The examples are so artfully chosen to illustrate the special language element being described. You would not be left guessing what the code does. And the first chapters of each section (chapters 1 and 19) give a masterful overview of most common language elements without putting you through reading the whole book. Much value could be added to this book with an "Appendix C: Common Framework Libraries", eg: System, Collections, IO, Diagnostics, Globalization, Net, Runtime, Security, Threading, Runtime, CodeDom, Reflection.
Rating: Summary: be careful you know what you are getting Review: OK, OK, maybe my mistake. But looking at the titles and the reviews I "bought" this book on-line at Safari. Should have been more cautious and if I was in the book store I would have noticed that this book is _just_ about the language - not how to use it, not the libraries, just the language. Not sure how this is useful. Certainly not for me. If this book is what you really want - just a language specification, then it is probably good. I stopped reading when I realized the mistake I had made.
Rating: Summary: C# language, pure and simple Review: One thing very obviously missing from the chapter on Exceptions is a discussion on writing custom exceptions. Otherwise a very well written book for a very very reasonable price.
|