Pro C#
FrazzledDad writes "Andrew Troelsen's Pro C# 2005 and the .NET 2.0 Platform, 3rd Ed. gives a great breadth and depth of coverage to C# and the features of Microsoft's .NET 2.0 Framework. He does a fine job covering fundamentals of C# and .NET in general and then dives into terrific detail on a number of important topics." Read the rest of Jim's review.
Pro C# 2005 and the .NET 2.0 Platform, Third Edition
author
Andrew Troelsen
pages
1032
publisher
Apress
rating
8/10
reviewer
Jim Holmes
ISBN
1590594193
summary
Great coverage and detail on many C# topics, but long
Troelsen claims that the book is targeted at "experienced software professionals and/or graduate students of computer sciences," and that he won't spend "three chapters on iteration or decision constructs," but he spends enough time covering basics that the book will be beneficial to developers of any skill level.
First off, the book is longer than it needs to be. Part of this is the amount of text Troelsen spends covering fundamentals, despite his claims of the book's targeted audience. Experienced developers will skip right over the sections on object-oriented programming basics and C# language fundamentals. Still, this extra material didn't particularly bother me and it's very useful to newer developers, or those needing a refresher on basics.
Troelsen's example code also has more cruft than necessary, which tends to drag out examples a bit too much. The auto-based example he carries through the book is a nice practical example, but do I really care about methods turning the radio on and off while not lending any weight to the concept?
I was also surprised to find missing any discussion of COM interoperability. While COM Interop isn't a sexy, futuristic topic, I'd think there would be great value in covering it - helping some developers understand how to better deal with migrating or wrapping up legacy applications.
Lastly, despite the book's title emphasizing C#, there are 130 or so pages on ASP.NET and XML web services. Sure, these are part of the .NET Framework, but it seems a diversion from focusing on C#.
Frankly, the bad items I list above are all nits to me in what I consider a very worthwhile book. The book's loaded with plenty of good material, starting out with a solid overview on developing .NET applications outside Microsoft's Visual Studio.
Troelsen nicely covers using the freely available .NET Framework SDK to build applications. He also mentions Textpad and has a handful of pages dedicated to SharpDevelop, the open source C# development environment. He also gives a short nod to the freely (for now!) downloadable Visual C# 2005 Express before moving into an overview of the upscale versions of Visual Studio.
Troelsen nicely lays out critical concepts in his book. His work is the first place I've found clear explanations of why one should occasionally drill into .NET's Common Intermediate Language (CIL, sometimes referred to as "IL"). Other articles and books I've read haven't really gone past the level of "gee, it's neat!", but Troelsen lays out good examples of when it can be useful - such as inspecting IL and finding out how to directly call operator overloads ("+=", for example) in languages which might not support this feature.
I also found Troelsen's discussion of remoting and serialization very clear and useful. Furthermore, he does a great job with delegates and events, starting out with manually working with event handlers. This helps the reader understand the fundamental workings of handler assignments and multicasting rather than just directly jumping to event handling assignment via the += operator.
Even better than Troelsen's conceptual coverage is the level of detail he brings to all the topics he writes on. I already mentioned his coverage of event/delegate multicasting as one example. Other examples would be his extensive coverage of reflection, late binding and threading, among other topics.
He dedicates one chapter to the guts of .NET assemblies, running the gamut from why assemblies exist, through the format of assembly headers, to how shared assemblies work. There's good discussion in this chapter on the what/why/how of the Global Assembly Cache and how to deal with publishing assemblies with policy interraction.
There's plenty of other goodness in this book. Generics get great coverage, as does ADO.NET and multi-threading. There's also a chapter dedicated to GDI+ programming for you graphics geeks.
It's nice that Troelsen carries one example through much of the book, building concepts on the same framework of his automobile classes. Source for his examples is available from Apress's website, and Apress also has a searchable e-book available. The e-book's available for free for short time if you purchase the hardcopy.
Troelsen's writing style is also easy to deal with. He's got a good writing voice which makes potentially dry stuff interesting.
It may be overly long for some folks, but this book is a worthwhile investment for those looking for clear, detailed explanations of C#. The length really doesn't detract from the book's overall value, and I'm happy to have it on my bookshelf. (I even pull it off and use it.)"
You can purchase Pro C# 2005 and the .NET 2.0 Platform, Third Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Troelsen claims that the book is targeted at "experienced software professionals and/or graduate students of computer sciences," and that he won't spend "three chapters on iteration or decision constructs," but he spends enough time covering basics that the book will be beneficial to developers of any skill level.
First off, the book is longer than it needs to be. Part of this is the amount of text Troelsen spends covering fundamentals, despite his claims of the book's targeted audience. Experienced developers will skip right over the sections on object-oriented programming basics and C# language fundamentals. Still, this extra material didn't particularly bother me and it's very useful to newer developers, or those needing a refresher on basics.
Troelsen's example code also has more cruft than necessary, which tends to drag out examples a bit too much. The auto-based example he carries through the book is a nice practical example, but do I really care about methods turning the radio on and off while not lending any weight to the concept?
I was also surprised to find missing any discussion of COM interoperability. While COM Interop isn't a sexy, futuristic topic, I'd think there would be great value in covering it - helping some developers understand how to better deal with migrating or wrapping up legacy applications.
Lastly, despite the book's title emphasizing C#, there are 130 or so pages on ASP.NET and XML web services. Sure, these are part of the .NET Framework, but it seems a diversion from focusing on C#.
Frankly, the bad items I list above are all nits to me in what I consider a very worthwhile book. The book's loaded with plenty of good material, starting out with a solid overview on developing .NET applications outside Microsoft's Visual Studio.
Troelsen nicely covers using the freely available .NET Framework SDK to build applications. He also mentions Textpad and has a handful of pages dedicated to SharpDevelop, the open source C# development environment. He also gives a short nod to the freely (for now!) downloadable Visual C# 2005 Express before moving into an overview of the upscale versions of Visual Studio.
Troelsen nicely lays out critical concepts in his book. His work is the first place I've found clear explanations of why one should occasionally drill into .NET's Common Intermediate Language (CIL, sometimes referred to as "IL"). Other articles and books I've read haven't really gone past the level of "gee, it's neat!", but Troelsen lays out good examples of when it can be useful - such as inspecting IL and finding out how to directly call operator overloads ("+=", for example) in languages which might not support this feature.
I also found Troelsen's discussion of remoting and serialization very clear and useful. Furthermore, he does a great job with delegates and events, starting out with manually working with event handlers. This helps the reader understand the fundamental workings of handler assignments and multicasting rather than just directly jumping to event handling assignment via the += operator.
Even better than Troelsen's conceptual coverage is the level of detail he brings to all the topics he writes on. I already mentioned his coverage of event/delegate multicasting as one example. Other examples would be his extensive coverage of reflection, late binding and threading, among other topics.
He dedicates one chapter to the guts of .NET assemblies, running the gamut from why assemblies exist, through the format of assembly headers, to how shared assemblies work. There's good discussion in this chapter on the what/why/how of the Global Assembly Cache and how to deal with publishing assemblies with policy interraction.
There's plenty of other goodness in this book. Generics get great coverage, as does ADO.NET and multi-threading. There's also a chapter dedicated to GDI+ programming for you graphics geeks.
It's nice that Troelsen carries one example through much of the book, building concepts on the same framework of his automobile classes. Source for his examples is available from Apress's website, and Apress also has a searchable e-book available. The e-book's available for free for short time if you purchase the hardcopy.
Troelsen's writing style is also easy to deal with. He's got a good writing voice which makes potentially dry stuff interesting.
It may be overly long for some folks, but this book is a worthwhile investment for those looking for clear, detailed explanations of C#. The length really doesn't detract from the book's overall value, and I'm happy to have it on my bookshelf. (I even pull it off and use it.)"
You can purchase Pro C# 2005 and the .NET 2.0 Platform, Third Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
First off, the book is longer than it needs to be. Part of this is the amount of text Troelsen spends covering fundamentals, despite his claims of the book's targeted audience
It was Meyers, I think, who said at the beginning of one of his C++ books that it wasn't a tutorial and you need to know C++ before reading. And as a result, his books are concise and a great value.
It's not like there aren't a million other C# books available. What makes this one special or "news for nerds?"
Yeah, whatever. Mod me down.
With this book.
Seriously though, unless you're a newbie programmer, I just suggest reading the C# language specifications, and browsing the web for tutorials onI used to spend hundreds of $$$, if not thousands, every year on programming books. For the exception of some really intense CS type of things, I usually ended up Googling for examples and looking at online stuff anyway. Now that I'm smarter, I just look for stuff on the web. These days with so much competition between platforms and languages, there's always some free material on the web and it's better written half the time by people who actually use it.
I could tell you horror stories about programming authors who never programmed the language before and wrote a book on it! *coughSAMScough* They would rely on the technical editor, or in some cases, the readers to find the errors. Then it's off to the 2nd edition for another round of proof reading by the consumer.
Troelsen claims that the book is targeted at "experienced software professionals and/or graduate students of computer sciences," and that he won't spend "three chapters on iteration or decision constructs"...First off, the book is longer than it needs to be."
So is it a concise tutorial or a bit excessive?
He who knows best knows how little he knows. - Thomas Jefferson
This isn't a troll, its the truth about Microsoft only shops are a dwindling commodity and Mono was a non starter... but this doesnt make C# a 'worthless language'. What makes it a worthless language is that it has all the bad parts of C++ and Java without any of the benefits. Its kind of like a Perl module that would allow you to program in Fortran to run under the Perl interpreter in a Python shell.
"I am a patient boy. I wait I wait I wait. My time is water down the drain..." Fugazi
From the review: "Lastly, despite the book's title emphasizing C#, there are 130 or so pages on ASP.NET and XML web services"
.NET technologies - the title of the book points out that it covers BOTH C# and .NET 2.0. There is no special emphasis on C#.
I'm not sure how you can fault me for including coverage of ASP.NET and other
These folks have a formal semantics of C#:
http://www.ti.ethz.ch/rs/
For those who don't see the point in having a computer language if you can't say, precisely what statements in the language mean.
http://www.thebricktestament.com/the_law/when_to_
Anyone else happen to read this book?
I've been getting job inquiries for C# programmers from all over the country and have been looking for a refresher book; and one to expand into the more advanced topics.
It's nice to see book reviews, but I have a problem with believing just 1 review. Books which I tend to enjoy or derive a lot of useful information out of, may not work well for others, so I like to see a large number of people who recommend a book.
Slightly off-topic, but any other recommendations out there if this isn't all the reviewer claims it to be?
"If all the world's a stage, I want to operate the trap door." - Paul Beatty
vendor. That's what I don't understand about people who are using the .NET, C#, VB, etc... I want the ability to move my code over to Linux, Apple, or whatever platform without having to do a complete rewrite.
"What makes it a worthless language is that it has all the bad parts of C++ and Java without any of the benefits"
Most people experienced with the languages believe the opposite - it has all the benefits of Java with none of the problems (lack multiple inheritance, effective marshalling, etc).
What makes it a worthless language is that it has all the bad parts of C++ and Java without any of the benefits.
Would you care to enlighten the rest of us which bad parts and benefits of C++ and Java you had in mind?
How can a language that runs on such a limited number of Operating Systems be considered "Pro"?
Just wondering...
--Phillip
Can you say BIRTH TAX
I happy to say, that IMO, this is the first proper/quality book review we've had for quite some time on /.
The author clearly listed what is, and is not, contained in the book, and also provided his opinion on how useful these various chapters were to him.
Hopefully future book-related-articles will try to provide atleast this level of information, as opposed to common "The book had alot of good stuff, but then some stuff was missing.".
More on-topic, I would say that in my experience I've never found these sorts of books particularly helpful, as anyone with software experience should have no trouble finding the information they need in the MSDN library, or on various other websites. Also, I imagine it would be difficult to find a developer who does not already have experience with a syntactically similar language.
I can imagine though, that this sort of reading might bring up questions (and answers) to questions that many developers had not yet thought to ask (primarily regarding CIL, GAC, etc), which could of course be helpful.
Big ones, small ones, some as big as yer 'ead!
Give 'em a twist, a flick o' the wrist...
My very first thought when I saw the headline "Pro C#" was:
What, you mean there are people who are?
KFG
Wow. Care to extrapolate...
As it seems, you posted in the wrong forum. Don't ever surf /. and pr0n simultaneously...
"As is widely known, as a language it is superior to both Java and C++. I believe most programmers 30 years of age prefer C# to C++. Its main drawback is, however, that it is one-platform only (Mono admittedly being a non-starter, parent was right in that)."
Huh?
No language can possibly be superior to BOTH Java and C++ since they are targeted at almost completely disjunct sets of software engineering solution domains.
>Microsoft only shops are a dwindling commodity
really? Prove it.
Anecdotal evidence shows that MS shops exist and are hiring fiercely. I put a c# resume up a couple weeks ago and the phone rang in an hour and hasn't stopped ringing.
Outside of mom's basement, people use these technologies, despite what the slashbots would like to think. And from spending 48 hous with asp.net 2.0, despite some frustrations, I can tell you that this is a *very* powerful platform. The user management stuff is amazing. It makes all the user management/login work absolutely trivial. Color me impressed.
Its not a troll... but it espouses beautifully the typical slashdotter attitude of "I don't use it; therefore, it sucks."
The fact that a language bound is bound to an OS, that still has a 90%+ of desktops, is not an argument for it being a worthless language. Java was supposed to save the world because it was cross-platform and, as far as I can tell, the world is still in need of saving.
Sorry for posting anonymously -- don't want to catch too much trouble...
.NET performance. I have benchmarked some FP intensive C++ code and compared MSC V7.x and 8.x using both native and .NET code generation, and found an over 2.8x slowdown with the same code running under the CLR vs native.
This isn't a comment on the book, so much as it is a comment on
Known troll. Not the author.
Calling anything "PRO" usually means it aspires to escape substandard status, perfectly suited to Microsoft's patented language. C# and VB are both acceptable for business apps, or if you want to emulate an 8 year old PC on current hardware.
OMG B&N is selling this book for LIST price. Save yourself $22.20 by buying the book here: Pro C#. And if you use the "secret" A9.com discount, you can save an extra 1.57%!
From reading the headline, I thought this was something to do with Oracle updating Pro*C to do C# :)
At the end of the day you realize that u NEED to force all the people to install annoying ".NET Framework" to run your app. How "pro" is that look? Not to mention trouble that brings the infamous "Mscoree.dll".
/em goes back to coding in c. Come get me when someone comes out with more than a "Fischer Price my first programming language".
"Lastly, despite the book's title emphasizing C#, there are 130 or so pages on ASP.NET and XML web services. Sure, these are part of the .NET Framework, but it seems a diversion from focusing on C#. "
Programming ASP.NET 3rd Edition is a good book for those working with ASP.NET
Oh do please shut the hell up. You don't have a "real" job do you? Microsoft only shops are not a non-starter, they exist in multitude, in fact finding a job doing non-Windows based programming that isn't "web programming" is definitely more difficult.
Just because you WANT the fallacy of Microsoft being "dead" to be true doesn't mean that it's anywhere close to being a reality.
I survive by only reading the main book, not the book written about the main book.. This means only written by the manufacturer (such as Microsoft or Cisco), RFC's and W3C etc, and O'reily. The rest are all blurbage, storys and marketing. Additionally, check to see whats on the curriculum of the best Universities where often the professors wrote the book used there and at most major Universities. Perhaps the best is to just read the code (not the comments) of what you're trying to understand.
-c0d3r-
The GP didn't say MS only shops are dead. They said they are dwindling. There IS a swinging trend away from solitary vendors, whether you choose to admit it or not. Yes, plenty of people are still hiring MS based developers, but plenty of other shops are broadening their horizons. Before you go on a tirade about the slash-bots, expand a little bit. I've worked business, public, and academia. All of them are making significant shifts to be less dependent on MS, so don't generalize your experiences to the rest of the world; see what's out there first.
Microsoft Sucks, F/OSS Rocks. I get mod points now right?
Why do so many people have problems installing the .NET 2.0 framework? BFD. Install it once. Done. Never have to worry about it again. Why all the hate?
What makes it a worthless language is that it has all the bad parts of C++ and Java without any of the benefits
Such as? I'm looking forward to hear your examples! But I'm not going to hold my breath, because I'd bet my 6-figure C# developer salary that you're talking from a position of ignorance. Your last sentence is the bit that really gives it away, typical 'Linux hasnt got it, so it must be rubbish!' response.
What about pro D-flat? Isn't that the same language with the same performance but just a bit flatter and even less tied to the same less useful platform?
I had to use C# for a class last semester. Comming into the class I was very much opposed to the concept, essentially feeling that it was better to go with either C++ or Java instead of something inbetween. .NET framework (two thirds of .NET seems to work 1 way, but 1/3 of it seems to have been written by a completely different team who never looked at what the other team was doing- neither way seems to be particularly bad, but it just doesn't feel as coherent as, say, Java).
After using C# for a while, I've come to the conclusion that, while still not a favorite language of mine, it has a fair bit of potential. My biggest problem was, as I recally, the aggrevating inconsistancy of the
As I primarily program on Linux and Mac at home, and most of my professional development is with PHP I'll probably never use C# enough to grow fond of it, I do have to say that if I ever ended up taking a job coding for a Microsoft platform it's nice to know that C# is at least there and much less asinine than using VC++ with Win32 or MFC (which I've found vastly inferior to Swing, Qt, GTK+ or Cocoa).
Famous Last Words: "hmm...wikipedia says it's edible"
"It seems like the only people who have any interest in C# are:..."
So which one is Miguel? One or two?
Having worked with C# for a year, I found it to be Java clone with most of the braindead parts of Java fixed and few, if any, of the C++ annoyances.
The cake is a pie
n/t
Comment removed based on user account deletion
The most insightful post here yet. These compromise languages are, by design, almost never "the best tool for the job". They only exist for fodder in the pissing contest between Sun and MS, and the PHB's and fresh college grads caught up in it.
Attention zealots and haters: 00100 00100
Having used C# (under linux using mono tools) and getting paid to write Java, I can tell you have no idea what you are talking about.
"He was a wise man who invented beer." - Plato
There undoubtedly exist some problem spaces where the "middle-course" - strongly-typed VM implementations of the C# and Java variety - are the best option.
I leave figuring out just where the tipping points are as an exercise for the reader.
The book keeps telling you where every example is, even when they're in the logical locations (which is almost always). I think we're smart enough to find chapter 3's examples in the chapter 3 directory Mr. Troelsen.
Oh well, that doesn't add much more than probably 20 pages to the book.
That's what I've noticed while going through the first half or so of it.
Then I would recommend a DSL and an appropriete support environment(PDF)
That's all there is to it.
Are you adequate?
Interesting how you make the above claims as an AC.
I also recommend Juval Löwy's "Programming .NET Components" as a follow-on. I thought it covered threading more completely.
We apologize for the preceding message. All those responsible have been sacked.
Beleive me, every wannabe would love to read a book "Pro Blah-Blah"
May Peace Prevail On Earth
My biggest problem was, as I recally, the aggrevating inconsistancy of the .NET framework (two thirds of .NET seems to work 1 way, but 1/3 of it seems to have been written by a completely different team who never looked at what the other team was doing
Can you give an example of where you found a problem with say orthoganality or symmetry?
While it's certainly true that you can find most or all of the material in books like this on-line, I think there's still a solid place for books in the programmer's world. Most of the on-line information is poorly organised, poorly written, poorly edited and often of dubious accuracy, and that's assuming that you can rely on it to stay in the same place and not to change anyway.
MSDN is a prime example: it used to be a great resource, but these days it's got so much bad content and so little organisation that I no longer even bother looking at it when I need to know something, or reading the web pages for the specific programming tools and languages I use. Most of the good articles I once bookmarked now give back 404s and redirect to some generic Microsoft ad for something irrelevant, on a page with hundreds of links to other equally irrelevant things.
The web generally suffers from information overload in programming-related fields. If you want a clear, concise, well-structured, and comprehensive look at a subject, a good book is still hard to beat.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
The most insightful post here yet. These compromise languages are, by design, almost never "the best tool for the job". They only exist for fodder in the pissing contest between Sun and MS, and the PHB's and fresh college grads caught up in it.
And as Java becomes not only the most popular development language for general purpose work, but also on Sourceforge, it is quite amusing to see yet another 'everyone is wrong but me' post. Because obviously almost all of the IT industry has got it wrong, and consists only of PHBs and fresh college grads.
The flaw in your thinking is that you forgot that "most popular" does not always equal "best". Much more often it equals "most marketed", as in the case of the two redundant (to C++) languages mentioned.
Attention zealots and haters: 00100 00100
The flaw in your thinking is that you forgot that "most popular" does not always equal "best". Much more often it equals "most marketed", as in the case of the two redundant (to C++) languages mentioned.
The flaw in your thinking is that you assume that everyone except a few wise C++ supporters are unable to resist marketing, and can't make judgements for themselves based on years of experience of comparing C++, Java and C#.
You're right, I do assume that, so I guess there's something we agree on. IT is mostly run by PHB's, who are largely unable to resist marketing, and definitely cannot make judgments for themselves based on years of experience with computer languages (because they have none). And most fresh college grads are only going to have studied what was in the curriculum, and that's based on what's hyped at the time (because colleges need enrollees), and they're graduating with student loan debt and just want to get a fucking job, and don't care in what or if some other language is better or the same or whatnot. I'll add a third category, consultants/authors: These people are wise enough to see the strengths and weaknesses and overlap, but they make their livelihood on riding the hype, no matter how unfounded. So there's a huge group who can't tell the difference, and two other groups who really have to just go along with it, to survive.
Attention zealots and haters: 00100 00100
You're right, I do assume that, so I guess there's something we agree on.
:)
.WAR archive in the full confidence that they can deploy this binary on any J2EE 1.4 platform - HP/UX, Windows, Solaris, Linux, z/OS etc.
No - we both agree that you assume it, not that it is true
IT is mostly run by PHB's, who are largely unable to resist marketing, and definitely cannot make judgments for themselves based on years of experience with computer languages (because they have none).
I disagree. There is a phenomenal amount of IT that is based around small consultants and small developer groups. These are the people who are willing to try new technologies, and have to work hard to keep up-to-date with developments to keep themselves competitive. I am one of these.
We are the people have have followed Java over many years, waiting until it really is capable of taking over from C++, as we can really make use of the faster and safer development, and the ability to really provide platform-independent binaries. As an example, I often write web applications. I can supply my customer with a
C++ can never match this - I would have to test my application on all those platforms to be confident. Even if I didn't, I would have to provide separate binaries and libraries - it is a mess!
Java is a real benefit to developers like me - it removes so much of the burden of development and portability testing that took up so much of a project.
Sorry, but you are simply wrong about the state of the IT market. We aren't all stupid!
I'm not going to dicker with you over the liberties you're taking with the term "binary". But I do thank you for calling Java a "platform", which it is (i.e. it is not "cross-platform", it is "cross-OS^H^Hseveral-OSes"). I will point this out, though:
;-)
C++ can never match this - I would have to test my application on all those platforms to be confident.
You'd be widely viewed as a fool if you don't anyways. "Write once, debug everywhere" may not be as much the case nowadays (holy shit was it back in the JDK 1.0 and 1.1 days!), but only a fool doesn't test before deploying. (Or is that what your customers are for?
Even if I didn't, I would have to provide separate binaries and libraries - it is a mess!
Interestingly, with Java, instead of having the burden that you refer to here of conforming to your customers' platform(s), you code to one platform and your customers have the burden (and often the expense) of acquiring the (correct version of) the platform you've chosen, with the accompanying performance loss of one level of indirection/not running directly on the native platform. Definitely an advantage of Java, to the developer.
Attention zealots and haters: 00100 00100
I'm not going to dicker with you over the liberties you're taking with the term "binary".
;-)
Well, I am not shipping source code...
But I do thank you for calling Java a "platform", which it is (i.e. it is not "cross-platform", it is "cross-OS^H^Hseveral-OSes").
You are just playing with words here. If you are being that strict then C binaries are not cross-platform as you need libraries or Kernel services on the OS you are deploying on.
As for 'several OSes' - this is nonsense. You would find it hard to name a major OS now that does not have a Java VM.
You'd be widely viewed as a fool if you don't anyways. "Write once, debug everywhere" may not be as much the case nowadays (holy shit was it back in the JDK 1.0 and 1.1 days!), but only a fool doesn't test before deploying. (Or is that what your customers are for?
Well, then I am a fool. Actually, I am not, because you really, honestly, do not need to test like this, especially if you are deploying on an app server. The JVM implementor and App server vendor has done the work for you - that is why these products are put through so many rigorous tests before they are allowed to be called 'Java' or 'J2EE'. There may be 'edge-case' issues if you are doing, say, very high-traffic networking or graphical game development, but otherwise, you really can safely assume portability.
Interestingly, with Java, instead of having the burden that you refer to here of conforming to your customers' platform(s), you code to one platform and your customers have the burden (and often the expense) of acquiring the (correct version of) the platform you've chosen, with the accompanying performance loss of one level of indirection/not running directly on the native platform. Definitely an advantage of Java, to the developer.
Sorry, but what burden? What cost? To run even a major J2EE application all the client needs is a JRE (free from Sun, or IBM, or HP), and an app server (free and open source from Sun, or Apache, or JBoss, or Geronimo).
Setting up most of these requires no more than a download, and unpack and setting a few environment variables (e.g. JAVA_HOME).
If you can find any cost or bother in this, go ahead and explain. I can't.
And, of course, the idea that there is any performance cost because of a level of indirection is further nonsense. All Java byte codes, be they in your application or the app server, are compiled to highly optimised native code. There is no more performance cost for Java to use these native services than for C to use, say a threading library or sockets library. The JVM implements its services using the native platform in the same way that POSIX-compatible libraries provide access to the native platform. Both are compatibility layers.
I'm sorry, but you are setting up an endless series of non-existent problems with Java to try and justify continued use of C++.
That's great and I think it will help us in the future, for sure! It was Meyers, I think, who said at the beginning of one of his C++ books that it wasn't a tutorial and you need to know C++ before reading. And as a result, his books are concise and a great value. I agree also with this comment!
Thanks for visiting my Web site! Post your comments on my forum!
I checked out this book at the local bookstore and it's definately worth buying. But you time to read it.
I was searching through the local BN, when a stranger introduced himself, noticed me searching through the book elaborated on it. Later on while talking I decided this was the book I was searching for. Purchased it, use it, and have not looked back. It has what I need, of course there is the Internet and I use that also, but I have also used C# and .Net, the Fisher-Price toys, to replace some apps written on UNIX in that good ol' language 'C'.
.Net, and soon hopefully a perpetual income from online. All I needed was some gaps filled-in. A book sometimes can change your life and this one did.
This book has enabled me to make money from
Its also amazing that most of our vendors who sell complete software packages to us are switching to C# now instead of that coffee cafe' language. The college I go to has more people write their free-lance projects in C# than Java; their "teaching" language.