
Great reference, but NOT a programming tutorialI'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.
Great book, but...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.
So what is this really?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...
A great reference bookWell, let me warn you, if you think this is a How To book, or something you pick up and read cover to cover, It's not! This book is essentially the technical documentation of the C# spec (covering the new framework enhancements like Generics), written by the guy that wrote it (and he writes books about as well as he creates languages). There are plenty of good examples, but since it's a reference book more than anything else, you're not going to get 10 pages of examples on the more 'complex' subjects. What you will get is clear and relevant information on how C# really works and and example or two to get you through it.
This is a lot different than the rest of the A-W Series, but it's a class act through and through. And if you are a C# programmer or want to be one, this is a must have reference.
Older, and not freeChapter 1 of this book is a short and nice introduction to C# for programming language experts. However, the following chapters are not easy to understand even for experts. You can download a newer version of "C# Language Specification" (a standard from ECMA but whose content is mostly the same as this book) free. Do you still want to buy this book?
be careful you know what you are gettingOK, 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.
Straight from the sourceC# 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!
Big disappointmentThis book is a big disappointment to any one who wants to learn programming using C#. For less price, you can find better books that summarize the syntax of the C# language in much less pages, in addition to providing a lot of examples. I bought this book with confidence, knowing that the authors are the inventors of the language, but I realized that the book does not really teach C# programming. It goes on and on to describe the syntax and the dos & don'ts of the syntax. Learning a new syntax is not a big deal, but learning to build programs by using C# and the Framework is what everyone wants and expects to find in the book. I prefer to read a "Learn-in-24-hours" or "Learn-in-3-days" book to learn the syntax and get to the actual programming by learning about the .NET Framework as well.
I am sure this book contains everything about the syntax but not about programming. Maybe this book should be published on the Internet or given free of charge. But the book is expensive and not that useful. I wonder how come a big publishing company such as Addison-Wesley takes the risk of publishing a book like this, which does not really teach programming and contains almost no examples. My advice to anyone who is serious about learning C# programming is not to buy this book.
Awesome book focused on the language itselfI 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?
General AdviceMost 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.
An absolute must for the serious C# programmerThis book is excellent. It is a "no-fluff", hardcore discussion of the C# language features. It goes next to Stroustrup's "The Annotated C++ Reference Manual" on my bookshelf. I would think that any serious C# programmer would use this book as THE reference book for the C# language. Thankfully, it also includes all the information in the soon-to-be-released version 2.0 of the language. Like Stroustrup's book, the language is clear, concise, and explains the rationale of the language. It is well formatted and the examples are to the point.
In my opinion, there are two drawbacks with this book regarding the "general consumer". The first is that it really is a technical reference and therefore will not be as attractive to the newbie programmer that is looking for code examples rather than reference material. The second drawback is that this book stands apart from the surrounding .NET framework in terms of developing Windows and web-based applications. Again, the "average" programmer is looking for C# examples related to application development.
Neither of these so-called drawbacks bothers me at all. In fact, I'm personally rather detracted from books that try to do too much and succeed at nothing.
Useless for most programmersThe book covers the C# language in a rather abstract formal way, with great detail. I was very dissappointed because it lacks examples and it does not provide any reference to the .NET framework. Into my opinion C# is a useless language to wrtie applications without a proper framework.
THE definitive spec for C#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.
Handy C# Reference hardcover book!This is definitely a good "encyclopedia" reference for the C# language. It is not for beginners who need their hand held to learn C#, rather it is for those who want to know more about the language they work with. The book doesn't waste any time getting into C# specifics (classes, arrays, interfaces, statements, etc...) It covers all you need to know, in concise sections, and handy little charts for reference.
The book has a unique system of pointers within its chapters to point to pages that cover these concepts in more detail. I must admit this confused me for a few minutes, no where did it explain what these special characters were. Also, it does not make any references to this "enhanced online index" as described above in the book detail. But hey, it does come with a neat little ribbon to bookmark a page...
I skimmed over the C# 2.0 part, about 1/6 of the book (100 pages) is dedicated to this new version, which is close to beta testing. It covers in detail four new concepts, and has 4 chapters for each concept - Generics, Anonymous Methods, Iterators, and Partial Types.
Overall, a handy book for my burgeoning .NET library. Definitely worth the $17.99 with Amazon's 40% off!
DenseIf you are looking for a book on learning C#, look elsewhere. If you need a dense, detailed look at the C# specification, this is the book for you. Frankly, it is really only good as occasional reference material.
A real must-have!I earn my living as a professional programmer. If you're serious about C#, you need this book. Sure, it's not a tutorial but a reference book. But C# is full of little traps, and most of them come from fake similarities to other languages. For instance, I expected C#'s structs to behave as Eiffel's embedded type or, on the contrary, as true C/C++ structs. The fact is that a C# struct is a different kind of beast, and the fastest way to get familiar with this and other features is reading carefully the language's formal definition.
On the other hand, I own the hardcover edition, a good decision of the publisher. A good companion book? Try this: The Common Language Infrastructure Annotated Standard.
Absolutely OutstandingThis is without doubt the best language reference I have. Its authors impart their combined knowledge in a clear uninhibited style. The typeface is crisp and its contents well formatted making it refreshingly easy to read. Congratulations to all involved.
If you are serious about C# you should have this book.
.
C# language, pure and simpleOne 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.
C# Programming Language, The (2nd Edition)It is a superior book... only for those that know C#, because the book is very technical. First chapters cover C# as BNF notation, and next continue explaining more in depth the first ones.
But really it is the definitive book to consult and learn C#, it is like Stroustrup’s for C++. It covers minimal stuff about .NET and centers only in C# and explains ALL, but in a syncretic manner.
Good ref. book, but where is the code?Just want to echo what has been said by others here. It's rare to have a programming book without getting code to play with. What's the purpose?
I enjoy reading it, but don't know how long it will keep me going by reading it "dry".
Also I wonder if there is a place to send feedback, errors, typos and etc. though not sure that anyone cares.
Good but...I was happy with the book except for the only quirk that the back of the book was hurt at one end. Given that I ordered a new book, I had expected an undamaged book. However, this is my first such incident with Amazon. I'm guessing/hoping this will not happen in the future.
A great referenceThis book is a great reference for the C# programming language as it will be in it's second incarnation (as of this time, the next version of C# has not been released). However, it is a copy of the C# lanaguage specification that can be found online at Microsoft's website, as well as is distributed with the .NET framework.
However, as far as the specification is concerned, it is very good for those that want the final word on all things concerning C#. There is no guesswork here.
Specifically, I would recommend this book for those that prefer to have a hard copy of the specification by their side, as well as those that want to get a better grip on aspects of the language and syntax.
use Generics in 2.0[This is a review of the SECOND EDITION, which was published in 2006. Many of the other, earlier reviews are about the First Edition.]
There are many computer programming books, but only a handful of languages in widespread use. One way to choose which books to read is to look for the intersection between these 2 ideas. Namely, books written [or co-authored] by the authors of a language. Think Kernighan and Ritchie for C, Jensen and Wirth for Pascal. Well, for C#, we have this book, co-authored by C#'s architect, Hejlsberg.
The book itself is probably not best for a complete newcomer to C#, who has no background in other languages. There are no easy to learn tutorial-type lessons. The authors plunge straight into the language. It might be good if you already know the basics of C#. Then this book can be used as an [the?] authoritative reference when you have questions, or if there are ambiguities in other texts.
The book does show that C# is inherently easy to use. Its syntax is on a par with Java. Generally, clearer than C++, from which many readers might hail. In various newsgroups and blogs, there are ongoing arguments about the relative merits of C# and Java. Yet this book might show to many readers that the 2 languages are broadly equivalent in ease of use and functionality. (Leaving aside issues of what platforms you can run a language on.)
One thing that will strike some readers is that no graphics are covered. The core C# classes described in the book are inherently those for pure computation. In this sense, the style of the book harks back to traditional texts on C and C++. Experienced programmers won't have a problem with this. But one can readily imagine new programmers, who have always used widgets, experiencing an impedance mismatch. C# does of course have graphics, using its Graphics class and System.Drawing, but the authors have chosen to exclude those from the current discussion.
Also, what distinguishes this book from its first edition is the coverage of C# 2.0. Seven chapters are devoted to 2.0. I'm not going to tediously enumerate all the differences from 1.0. But perhaps the biggest improvement in 2.0 is the use of Generics. (By the way, this follows in the footsteps of Java 1.5, whose Generics have roughly the same functionality.) Whenever possible, you should use Generics. They let you parameterise the arguments of class methods and interfaces. So that some automated code checking can be moved from run time to compile time. Worth its weight in gold. Run time bug detection is expensive, especially if it's in code that is already at a customer site. Compile time checking occurs much earlier, and is essentially free by comparison.
An Advanced C#This is a "Collector's Edition" of the C# specification, that I believe is freely available on the Internet. The value in this book is that it is very nicely bounded and perfect for a software engineer's library. Also, the annotations provided by Anders Hejlsberg, et. al. are illuminating and thought provoking. While you could just print this out on your printer, I think this book is valuable for saving you time and being more durable.
The spec is also very well written and understandable to experienced C# developers. If you want to be an expert on C#, I think this book will put you in a very good position to do so.
An excellent technical referenceThis book is an excellent technical reference for C# 1.0 written by the language lead architect himself. It also presents some new C# 2.0 features. Be careful! This is definitely not the language tutorial for beginners.
c# from the sourcethis book covers c# in detail, and its straight from the source; the people who defined the language. It gets a little textbook-y at times, but its quite informative nonetheless.
Solid reference but nothing moreThe first chapter of the book gives a brief and interesting introduction into C#. The rest of the book is truly only a technical reference. Even four seasoned Programmers this book is not useful for learning unless you like reading specs. Stroustroup managed to do a much better job in documenting C++ with "The C++ Programming Language" (even though he was not as complete as this book about C#).
If you know C# by heart and need a spec for the gory details, go and buy this book. If you have only a rough knowledge and want to get a good knowledge, look for another one.
