C# for Java Developers 382
C# for Java Developers | |
author | Allen Jones, Adam Freeman |
pages | 548 |
publisher | Microsoft Press |
rating | 9 |
reviewer | Joe French |
ISBN | 0735617791 |
summary | A comprehensive C# from Java tutorial |
First things first
First of all, let's deal with the Microsoft issue. I was surprised to find that this book even existed given the problems MS has had in the courts recently. I was even more surprised to find that C# for Java Developers is very balanced and does not hype up C# at the expense of Java -- throughout the book there are places where the authors say that "Java is better at this" or "We have no idea what the C# designers were thinking." A refreshing attitude from a company that is not known to be an admirer of Java.I was reluctant to pay for a Microsoft book, but I have to admit that I am impressed. This is the first MS book I have ever purchased, and it is clearly written, well thought-out and very, very comprehensive. One of the best features for me is that all of the instructions for compiling and managing code assume that you are using the command-line tools, rather than Visual Studio. For someone on a tight budget, this was a real bonus.
The Scoop
The first part of the book is an overview of .NET, and contains the boiler-plate description that you get from the .NET web site. Not that useful, but pretty short. There is a chapter that compares .NET to Java (J2SE and J2EE), but again, there is nothing new or important there.
The second part of the book covers the C# language, using Java as a starting point. The coverage seems comprehensive, and explains where the two languages are the same (quite often), where they are different (now and then) and when they appear to be the same, but you are likely to spend a couple of hours tracking down something weird (more often than I would like). I had started playing around with C# before buying this book, and all of the problems that I had in the early days were detailed here with clear explanations.
Part three delves into the .NET class library, covering basic topics such as collections, IO and handling XML. Once again, I was impressed with the depth of coverage and the way in which the authors use Java classes to explain the workings of .NET. It was while I was reading through this section that I realized just how different C#/.NET and Java can be.
The last part of the book covers "advanced" topics. There seems to be little reason for the division between basic and advanced topics, but chapters cover areas such as threading, security and networking. The one thing that is consistent in this part of the book is that there is less of a parallel between Java and C#. For example, "Windows Forms" is used to build client UI applications, but is very different toolkit from Swing/AWT.
The appendix list is a little dull, covering topics like GC and configuration files. There are some interesting snippets, but I got the impression that these were topics that the authors thought were important, but didn't know where else they should go. The exception is the "Java to .NET API Reference" which, for me at least, sets this book apart from the competition. Every class from the J2SE class library is mapped to an equivalent .NET class and a reference to where the topic is covered in the book -- having something like this has saved me hours of searching.
What's to Consider?
This book uses a lot of C# fragments to demonstrate how classes are used, but contains very few full "working" examples. I found this to be great once I knew the basics of C# (because I could focus on the topic), but difficult at first (because I could not play with complete code).
C# for Java Developers covers much more of the .NET Framework than the other books in my local bookstore, but because of this the text can be dense at times, as the authors try and pack in a bit too much detail.
I can't find major fault with this book, and a (small) part of me admires Microsoft for publishing such an unbiased book.
Summary
If you are a Java programmer who wants or needs to learn about C# and .NET, then this is a great book. Don't be put off by the Microsoft logo, and bear in mind that you don't need a copy of Visual Studio to follow the examples.
The book effectively uses Java as a tool to teach C# and explain the workings of .NET. If you are like me, then you will find this book invaluable and will likely keep it close at hand for quick reference.
Table of Contents
- Introducing .NET
- Introduction to Microsoft .NET
- Comparing Java and .NET Technologies
- The C# Language
- Creating Assemblies
- Language and Syntax Features
- Data Types
- Advanced Language Features
- Programming .NET with C#
- Strings and Regular Expressions
- Numbers and Dates
- Collections
- Streams, Files, and I/O
- XML Processing
- Advanced Topics
- Reflection
- Threading and Synchronization
- Networking
- Remoting
- Database Connectivity
- Security and Cryptography
- Graphics and UI
- Introduction to XML Web Services
- Appendices
- Platform Integration
- Shared Assemblies
- Configuring Applications
- Garbage Collection
- Cross-Language Code Interoperability
- Java to .NET API Reference
You can purchase C# for Java Developers from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
C# may not stand for long... (Score:4, Insightful)
But I think C# will be used to convert the C, C++, and Java crowd into the
Yeah, I think C# is MS's way to convert everyone to VB.NET.
Luckily,
Re:C# may not stand for long... (Score:5, Informative)
No one at Microsoft likes VB.NET. It was meant as a crutch to get old VB developers into the new programming model.
All of the
Re:C# may not stand for long... (Score:2)
Re:C# may not stand for long... (Score:2)
Seems reasonable: get the competition using product.
Re:C# may not stand for long... (Score:2)
Re:C# may not stand for long... (Score:2)
Re:C# may not stand for long... (Score:2)
I love VB.NET. On the scale of most flexible to least flexible, you've got managed c++, C#, and VB.NET, however, the difference in capabilities between C# and VB.NET is so miniscule that i suspect that if i were in a situation that vb.net didn't address, i'd do it in MC++ and expose it to VB.NET anyhow.
So for me C# is the niche language - its for people that are too snobby to use VB, and does't really have any day-to-day benefits over C#.
I happen to love the case-insensitivity, and the code-block autocompletion. Finally, the background IDE-mode compiler is fantastic.
VB.NET is easily the most productive development tool i've ever used. For grins, I loaded up one of my old unix C++ apps in xemacs and hacked around on it. c++ on solaris with xemacs and ddd is nowhere CLOSE to the ease of use and quick turnaround from idea to debugged code, for me anyway
VB.NET (Score:3, Informative)
I'm not a big fan of VBisms such as "MustOverride", "MustInherit", "NotInheritable" etc, which can easily become unreadably verbose for my taste as you combine them, but after trying it out for a couple of simple apps as an experiment I find it an outstanding improvement over the original VB.
I think it's perfectly feasible to build a relatively big project in VB.NET without destroying some hardware and going on Prozac, as I would expect with any other VB.
Not that I would, but it has become a matter of taste or distaste for the VB-like syntax, not a major disfunctionality of the language itself.
VB.NET is a crutch. But it's a crutch that manages to fix VB as a language. I consider that an achievement, to say the least.
Re:C# may not stand for long... (Score:2, Insightful)
You're right, I think it is a much nicer alternative to Java for client side apps.
"But I think C# will be used to convert the C, C++, and Java crowd into the
C# is far from just a tool to convert people to the
"Yeah, I think C# is MS's way to convert everyone to VB.NET."
I think its other way around.
"Luckily,
True. I refuse to use ASP.NET on IIS since IIS is such a crock. I hope Mono keeps going strong for client side however.
Re:C# may not stand for long... (Score:2)
I think the opposite.
C# is made easier than C++. VB.NET is *very* rewritten in
But, of course, due to the nature of
However, C# wasn't written to match VB.NET. VB.NET, on the other hand, went throught one of its greatest rewrites so far to match C#. Make up what you want from that.
Re:C# may not stand for long... (Score:2, Interesting)
The
There you go. Pipe that to wc -w and I think you'll find I win.
graspee
Re:C# may not stand for long... (Score:2)
Re:C# may not stand for long... (Score:2)
Re:C# may not stand for long... (Score:3, Interesting)
So you can run it on FreeDSD or Linux using Rotor or Mono.
Re:C# may not stand for long... (Score:2)
Rotor and Mono are merely opportunistic parasites in the
Re:C# may not stand for long... (Score:2)
There's a huge difference between cloning the CLR and the Dotnet Framework, that's why most serious cross-(hardware)-platform apps on Linux use Java, Python or Perl.
Re:C# may not stand for long... (Score:2)
Really? [go-mono.com]
Bytecode has its place (Score:2)
We've already heard about Windows CE.NET, which runs on ARM. MS has released a "preview" of a 64-bit version of Windows for Itanium, and it is making noises about a new version optimzed for the AMD Opteron.
I believe MS intends to eventually produce one deliverable (the CLR bytecode assembly) which will be compiled into native code on the ARM, x86, Itanium and Opteron, with different optimizations for each.
Also, one of the concepts I like about the CLR is the possibility of optimizing for your platform at the last possible moment. Imagine having different JIT compilers for Pentium III, Pentium IV and the Athlon, producing a different executable depending on your machine. I doubt it will happen, though.
Re:Bytecode has its place (Score:2)
ARM has an extension for their chips that allows them to run many (not all) java bytecodes as native instructions.
The future is now!
Re:Bytecode has its place (Score:2)
I know Java does that. I've run gcj, Supercede (an old Asymetrix IDE) and the experimental native compiler from IBM (later rolled up into Visual Age Enterprise), and they all produce native executables.
My point is that Microsoft seems to want that flexibility in deployment for their products... So they can (for example) do one release of Money.NET (or whatever, just an example) without having to place multiple executables on the CD for Pentium, Itanium and Opteron. They did it before with NT 3.x... I remember 3.5.1 having i386, ppc, mips and alpha directories on the install CD.
ARM has an extension for their chips that allows them to run many (not all) java bytecodes as native instructions.
Really? That's very cool! I didn't know that... There must be some really good JVMs using these shortcuts.
The future is now!
Agreed.
Re:C# may not stand for long... (Score:2)
An attempt at a multi-linguange Java clone because MS is afraid of Java, and they copy what scares them (regardless of the merit of the monster).
Re:C# may not stand for long... (Score:2)
In the process, I discovered a couple articles (no obvious bias from MS) comparing C# and Java. More than convince me of C#'s merits though, I discovered 4 things lacking in Java that utterly turn me off of the language: no passing by reference, no preprocessor directives (and hence no conditional compilation), no enums, and no overloaded operators. Sure, in each of those cases it's possible to work around the problem, but in each of the cases it would make the code less readable. Also, having done C++ for a while, I feel that I shouldn't have to work around them. C# includes support for all four of these features, while still fixing most of the problems that I suspect led Java's developers to not include them.
Now, whether the benefits I see in the language of C# outweigh the drawbacks of it being MS (if you see it that way) is a matter of opinion. For me, I'm going with C# for stuff I write for Windows, but will stick with C++ for things I want to be cross-platform.
EvanED has it wrong I think. (Score:2, Interesting)
For someone who has done a good deal of research on languages, I find it odd that you should point to four of THE most superficial differences.
Had you pointed to differences between the CLR and the JVM, you might have had an audience.
Instead, you rehashed the oulde argument between C++ and Java. Who won that debate? The people who realized that it was a waste of time to argue THESE points.
EvanED, I wish you well in your research. I would like to point out to you that there is not a junior college on Earth that will give you any extra credit for your penetrating analysis.
Sincerely,
sweet jonnie
Re:C# may not stand for long... (Score:2, Informative)
Will anyone take the challenge, I wonder?
Don't confuse this with advocacy,
Microsoft.NET is a product, note not a standard, intended to develop enterprise class web services. Microsoft.NET is comprised of ASP.NET,
Microsoft.NET is mostly a rewrite of Windows DNA with enhanced language support and web services. The primary 'benefit' is language independence and inter-operability. The
There are several pluses for the Mircosoft.NET framework and a great deal of draws with J2EE. The programming model is simpler than J2EE. The
Terrarium (Score:3, Interesting)
The thing that finally got me to play with C# was Terrarium [gotdotnet.com]. Players create 'creatures' which then compete in a peer-to-peer set of virtual terrariums. You can create plants, herbivores, or carnivores. It was quite fun (in a super geek way) and VERY challenging.
Refreshing indeed (Score:2, Interesting)
Try finding that balance in a Java book, most of which devote all of Chapter 1 to a buzzword parade and list of Java perks (prevents bugs, write once run anywhere, cures baldness, etc).
Wow- C# review on Slashdot? (Score:3, Insightful)
C# really is a nice language. It is more powerful than other
C# also gives you the ability to write XML comments in your code that can be parsed by the compiler to generate documentation. There is also an open source project called "NDOC" (hosted on Source Forge) that lets you generate really cool and helpful docs.
However, the majority of Slashdot readers probably don't care how C# is better than other
Re:Wow- C# review on Slashdot? (Score:2)
There's of course much, much more to it like the
What I personally like most with C# is this:
- Isn't a "layer" above another language, like C++. Clean.
- The ease of use of Java with much of the power of C++.
- Many annoying shortcomings in Java are fixed while preserving invaluable support for things like garbage collection.
I'm not advertising VS.NET by this in any way. Always remember that *nix (and Windows!) users can go with the Mono project [go-mono.com] to get the C# language with platform independence, while still not supporting Microsoft if that's a concern.
Re:Wow- C# review on Slashdot? (Score:2)
I'm excited about the mono project. I hope it comes to fruition and can keep up. It would be nice to see what kind of development tool (if any) will be available on the linux platform. VI just doesn't do justice. Emacs might do the trick, but I like intellisense like VS.NET has (but I hate a lot of the nuances that come with it)
I'd like to see some open source editors come out that could be used on different platforms. I wonder if anyone is working on that? I've used WebMatrix, not sure if that is open source, but it is free. There is also a free one called "Sharp Edit" but no auto complete, at least not the last time I checked.
Re:Wow- C# review on Slashdot? (Score:2)
Re:Wow- C# review on Slashdot? (Score:2)
Thats not exactly new, that the same feature
as Javadoc did for java since version 1.0
generating documentation (Score:2)
Re:Wow- C# review on Slashdot? (Score:3, Interesting)
No, C# doesn't allow you to write unsafe code, you have to use C++ for that. What's new about C++ in the
You can write UNSAFE CODE [dotnetextreme.com] with C#. Yes, it is mixed in, but it is still unsafe code. See this article for reference.
I never said it runs outside the CLR, just the GC.
C# the only real choice (Score:2, Funny)
Also with the upcoming war on Iraq it's best if we're all patriotic and support our country's companies with our hard-earned dollars. Why, if you use Java, you might as well hang an Iraqi flag in your yard and wear a Republican Guard uniform to work every day. That's how important this is. Don't you Java developers feel ashamed of yourselves? I would.
The Canonical C# for Java Developers Article (Score:5, Informative)
Mirrors:
What was wrong with J# for Java users? (Score:3, Informative)
Re:What was wrong with J# for Java users? (Score:2)
But, yes, it would probably help a bit.
I didn't have a problem making pure Java apps (Score:2)
What was so hard about developing a platform independant app with J++? It seemed pretty clear to me what was Win32 and what was Java.
Good starting point online (Score:3, Interesting)
This is a great site. If anyone wants to learn C# coming from a C/C++ or Java background I send them here. Shows source in all three languages (where applicable). Good place to start.
I must say I was a hard-core Java fan until I found C#. I must qualify that statement since I develop exclusively for Windows.
If you write code that will only live in the Windows world, you owe it to yourself to check out C#/.NET.
Re:Good starting point online (Score:4, Insightful)
After a first glance I saw
This is typical code you might write in Java or C++:
foo.setSize (getSize () + 1);
label.getFont().setBold (true);
The same code you would write like this in C#:
foo.size++;
label.font.bold = true;
Now, if that isn't biased crap then I must be the guy bending over at goatse.cx. The rest of the article goes on in much the same way.
I just knew it. For C/C++ coders C# is what Windows is to a proper OS users. It may be easier if you're a numwit, but I'm quite sure that the design is rigid and quite quickly you'll wind face to face with some illogicality or utter impracticality. And there you are... not happy as a clam, but happy as a lion with a hedgehog rammed up in it's butt.
If you're now thinking "well, C++ is flawed, too" the you've missed the point or you only think you know C/C++. There's a big difference in knowing and mastering and my guess is that that in particular will be the problem with C#, as with all other Mickeyware.
Re:Good starting point online (Score:2)
Re:Good starting point online (Score:2)
Re:Good starting point online (Score:2, Informative)
foo.setSize (getSize () + 1);
label.getFont().setBold (true);
The same code you would write like this in C#:
foo.size++;
label.font.bold = true;
Now, if that isn't biased crap then I must be the guy bending over at goatse.cx. The rest of the article goes on in much the same way.
Actually, IIRC, C# supports some syntactic sugar called "accessors;" basically, label.font.bold = true maps to a call to label.getFont().setBold(true). They didn't make the member data publically acessible, they just lowered the keystrokes to call simple mutator methods.
This is SO not insightful (Score:2)
What the f*** is so insightful about bashing language on the basis of it being high-level and created by Microsoft?
C, C++, Java and C# all looks like nice languages, and even if you are sceptical you should base languages on its merits, and not who created it.
I'm really paranoid about Microsoft, I run a small norwegian Linux site, and I'm a Linux user, but this is just BS.
Besides, reasonable C-coders might prefer to code in C, but won't dismiss C# or Java as some sort of "Mickey Mouse"-language just because it is high-level. Some times you need the power of C, sometimes you just want rapid development without the hassle.
There are at least enough C-coders that think C# is great, to create Mono [go-mono.com].
Re:Good starting point online (Score:3, Interesting)
Couldn't agree more, but the same won't hold for C/C++ which they referred to.
I bet you thought those were direct property accesses, right? I wouldn't expect such a staunch defender of The One True Faith to actually look up the mechanisms of property declarations...
Doh, it being methodized was obvious enough. It just kinda bugged the hell out of me seing
foo.setSize (getSize () + 1);
label.getFont().setBold (true);
Labeled as "typical code" in C++.
And the part which you were obviously referring to as it cannot be done in C++ (because one can't overload
label.font.bold = true
Well, I for one am quite doubtfull wether that is better than what C++ has now
label.font().bold = true
The article goes on and argues that the
Well, I sure don't see the "extra" parentheses harmfull, moreover I'm worried about the complexities of the scoping rules for similarily named fields.
Having read the cursive (italic) parts of the article, I have to say that I don't agree with most of it. And just as my comments here are biased, so is the article. Rants like these don't make good articles. That's why I post my crap here, which would've been a fair idea for that author aswell.
Re:Good starting point online (Score:3, Informative)
Re:Good starting point online (Score:2)
It *should* be mistakable for a field. The user of a class should not need to know how an item is implemented, whether it's via a field or a method should be opaque. That way the implementor can change the implementation without breaking code.
Re:Good starting point online (Score:2)
If you write code that you think will only live in a windows world, you should always consider carefully using cross-platform or portable solutions. I've seen the windows-only assumption fail many times: the developers were stuck with the difficult and tedious task of gettin their built-for-ms code to be cross-platform.
It's just one consideration. If vendor lock in doesn't bother you or your clients, or you will never need to reach other platforms or scale your solution, .MicroSoft might be right for you.
Windows.Forms (Score:2)
There are some articles about it too. [gotdotnet.com]
Re:Windows.Forms (Score:2)
Re:Windows.Forms (Score:2)
This attitude wont help java anywhere. Even with hotspot, java is slow, especially the GUI stuff on Linux/Unix. Array handling sucks big time too. Tomcat jsp:s get wiped down with hacks like php. Setting up J2EE is a real pain in ass. Etc, Etc. Never done
If java want's to survive, sun needs to make it easier and faster, and show studies PROVING it. The "Pet shop is not a benchmark" cry needs to replaced by "Hey, this version beats
Ignorance, or cluelessnes? (Score:2)
Where in any of the court documentation for any of the court proceedings that MS is invloved with does it say, "You have to divest yourself of your publishing brand?"
Wow.. review sounds pretty good! (Score:3, Flamebait)
Re:Wow.. review sounds pretty good! (Score:3, Insightful)
Of course not (Score:2)
Re:Wow.. review sounds pretty good! (Score:2)
The Cappuchino PC pt. 3?
Re:Wow.. review sounds pretty good! (Score:3, Funny)
Funny, I saw the opposite (Score:3, Insightful)
Pretty sad when the political orthodoxy is so overwhelming that every sentence has to start with the equivalent of "please don't hate me for saying it, but this wasn't as bad as I naturally assumed..." when discussing a book on programming.
C# is what you get if you take several years of Java real-world experience and ask "if we could do it over again from scratch, with no backward compatibility requirements with existing Java, what would we do?"
C# is what you get if, instead of taking Sun's attitude of "please, you're a programmer, not a language designer -- if what you're asking for were a good idea, we would have done it", you take MS's "mercenary" attitude of "what changes would you make to Java if you could?".
Re:Wow.. conspiracy theory sounds pretty good! (Score:2)
If you all really care SO MUCH, go to your local Barnes & Noble and RTFB.
If you want to know if something if bullshit, there's really nothing like seeing for yourself.
Why should it seem strange to mention C#? (Score:5, Insightful)
There is absolutely nothing strange with not keeping your head buried in the sand. Just because some folks seem to have a knee-jerk reaction to all things Microsoft doesn't mean Slashdot should be expected to ignore relevant and widespread programming practices.
Re: Why should it seem strange to mention C#? (Score:2)
It's true I have only anecdotal evidence to back up my assertion that C# and .NET are gaining widespread adoption. The division of the company I work for is heavily involved in .NET development, and we are in an industry that is traditionally behind the curve in software practices. I think only common sense will tell you of the general interest in .NET. I attended the kick-off in Denver and the place was packed.
I don't know why I'm responding to you, it is easy to close your eyes and say "show me the statistics or I believe nothing." Not to mention you're posting as an AC.
Can't figure it out? Try it out (Score:2)
It's free. You'll get a C# compiler, a bunch of class libraries, and a runtime, plus other goodies (e.g. other languages, but stick with C# if you're starting new.)
Get a beginning C# book and go to work. It's no different from learning what Java was about in Java's early days.
If your complaint is then, "but I'm not a Windows user", I can relate. One of the main reasons I became a Windows user was because I was having such a hard time learning the "cross-platform" Java language on my Mac back in the early days.
If you're not a Windows user, you should be used to waiting by now, so wait for (or go help) Mono [go-mono.org]. Since I'm not a Windows user on the server side, I have to wait with you for some things, but I think that there will eventually be an excellent
C# vs. Java comparison (Score:2)
ExtremeTech: Java vs. C#, a Code-for-Code Comparison [extremetech.com]
Microsoft press has some good titles. (Score:3, Informative)
Re:Microsoft press has some good titles. (Score:2)
WOW (Score:2)
And no, there's nothing wrong with posting books about C# or
Review of this review (Score:3, Insightful)
I propose slashdot community lay down some guidelines about reviewing a technical book. I applaud the reviewer's efforts and for keeping an open mind towards the source
curious? download the SDK. (Score:4, Informative)
The sound you here is a dozen moderators clicking 'Troll'.
mono for windows (Score:4, Informative)
And as is said elsewhere, every language has its place. C# is pretty nice for building Windows native applications. If you don't want to do that, then use a different language.
More on-topic, I'll definitely be checking this book out of the company library.
Versa Vise (Score:2)
You know that
Example please (Score:2)
Can you provide an example?
-- Brian
C# for Java programmer? (Score:2)
All you have to do is add "MS" to the front of all the standard Java classes, methods, and member variables, and run your code through a C# compiler isn't it?
Cash (C + Hash) == nice Idea, .Net == teh suxxo0rz (Score:2)
Did anyone in the Industrie notice yet that near to zilch people are actually using
Either I wanna go M$, then I go native. Or I want go independent, then I go Java. Is that so hard to get across?
No, folks,
Re:Cash (C + Hash) == nice Idea, .Net == teh suxxo (Score:2)
The
No, folks,
Thanks for the prophecy nostradumbass. Can you back any of what you said up with facts and not FUD? Are you a developer or do you just play one on TV? Go write more than a hello world before you blab about how
It's MUCH cleaner than Java (Score:2)
We need an open source language similar to C#. Java's not open source, either. But I'd rather see a C#-type language than a Java-type language.
I hate to say it, but C# is definitely the better language. It's main drawback for me is that it doesn't (currently anyway) run on anything but the shitty Windows platform. C# on Linux and I'd be in heaven.
Re:C# (Score:2)
Funny, I thought that C# was supposed to reduce complexity.
Although pronouncing it "C-sharp" is a little counter intuitive; my first thoughts are always "C-pound". The maybe the first `Obfuscated C#' contests can center on it's name.
Re:C# (Score:2)
I believe it was The Register which approached this topic in some detail. For me, I've found that the best cross-cultural pronunciation is "C-hash". "C-octothorpe", though perhaps the most precise and technically correct, doesn't roll off the tongue nearly as fluidly.
Re:C# (Score:2, Funny)
Re:C# (Score:2, Funny)
Maligned? (Score:2, Interesting)
It really is just scared developers concerned that anything redmond can cough up is too mainstream and below them...
Take a look at the ecma standards, download mono, and crawl out of your shell.
Re:Maligned? (Score:3, Interesting)
I'm pretty sure most of us developers are just a frightful bunch. Ada is an infamously derided language ("oh the government made it, so it's basically a beauracracy of a language") - yet it has more built in support for requirements validation and maintainability. If you look carefully at Ada, it is a pain to work with, but the result can be readily and meticulously examined by people other than the original developers.
If you were a sailor and an exocet was screaming towards your vessel 500 yards out and skimming the waves and the only thing between walking the deck and treading the waves is your Phalanx close-in weapon system, you're probably hoping the software which controls the Phalanx was developed with Ada. Now would not be the time to file a support request because your C++ caused a general protection fault.
So whether it's C# or anything else... I think way too many are afraid of having to re-stock their toolset from scratch. There's comfort in working with what you've always worked with. Insert cliche dinosaur analogy here.
Re: C# (Score:4, Funny)
> This is a maligned language.
Is it byte maligned, or word maligned?
Re:Good Stuff! (Score:2)
Perhaps.
Absolutely not.
Re:Good Stuff! (Score:3, Interesting)
Not quite, since Java is widely implemented. Sun doesn't expend time and money trying to make these implementations incompatible; instead, Sun wants them to be compatible and has test suites available for that purpose. Conversely, Microsoft has a history of prefering their implementation over any others and works hard to drive other implementations into obscurity. Only time will tell if history will repeat itself with respect to efforts such as Mono.
No, but I do consider the amount of risk associated with a technology.
Re:Good Stuff! (Score:2, Interesting)
http://www.ximian.com/devzone/projects/mono
Small SUmmary from page, "The Mono Project is a community initiative to develop an open source, Linux-based version of the Microsoft.NET development platform. Incorporating key
Re: (Score:2)
Re:It's pronounced *SEE-SHARP* by the way. (Score:2)
Re:It's pronounced *SEE-SHARP* by the way. (Score:2)
"Ouch!! That hurt! Fuck, now I'm bleeding cash!
Soko
Wow... (Score:2)
If you decide that you're going to stick only to assembly and nothing else, you're going to find little love in the computer industry.
High-level languages are designed so that you don't have to go through a couple billion lines of extraneous code to do something. Sure, if you program in assembler, your code will be cleaner, faster and has a greater potential for looking brilliant to other hackers, but I dare you to try coding around in assembler making a couple of graphics engines and tell me how simple it is in x86 against C++.
I mean, christ, I love assembler. You can do whatever you want with the memory, write self-modifying code, know at all times what is going on with the processor and everything else in the system, but fer crying out loud, if I want to make something as simple as a function call in Motorola HC11 that requires about 6 lines of code per call. A simple 4-line if block can result in a 20-line assembly instruction that would just be bloody easier to do if you just let a compiler automagically run it for you.
While Assembly is pretty, and I encourage that if you want to be a programmer, learn it and use it well, but for crying out loud, don't stop there.
Re:Assembly (Score:2)
FYI, there are kids taking high school level Visual Basic that can't fathom the concept of a loop... Let alone assembly.
I think "anal-retentive programmer" doesn't fit your average (probably not even above-average) high school student.
Re:Assembly: Why It Will Replace C++/Java (Score:2)
Couldn't have been Steve Gibson, UNLESS! Unless someone has DEVIOUSLY edited his post and STOLE all his capitalized words. The REAL Steve Gibson would NEVER have made such an unexciting post. HUZZAH!
Re:Java developers should use J#, no? (Score:3, Interesting)
However, syntax is often the easiest thing to relearn when switching language. Often much easier than to relearn an entire API. And since J# use the
Re:Java developers should use J#, no? (Score:2)
Re:Java developers should use J#, no? (Score:2)
Re:C# not so bad folks (Score:2)
Sad really
Re:C# ~= Java (Score:2)
I only knew about Bruce Eckel's wonderful online books [64.78.49.204] earlier (and lookie there - a C# book over there too!)
But I agree with you, I only needed a few web tutorials to get started. The online IDE help in VS.NET did the rest. What I found hardest in learning C# wasn't the syntax that's almost identical to Java or C++, but learning where to find everything in the huge Framework and how the classes were all organized.
Multiple inheritance (Score:2)
Oh quit your bitching. Want to reuse the same few functions across a set of classes? That's what the clipboard is for. You know, copy and paste. Just paste that useful code into every class that needs it.
Want to change, extend, or trim back that code that cut-pasted code that should have been a base class? That's what search-and-replace is for. You've got a lovely IDE, learn to use it.
Me? Bitter?
Seriously though, I've been thinking about creating a language called D. D is a half-step above C#. D will look just like C#, but it will add a new keyword: derivesfrom. Then you can write code like this:
public class BaseClass
// you know
{
// implementation and stuff goes here
}
public class Widget derivesfrom BaseClass, OtherBaseClass : IWhatever, ISomethingElse
{
}
The D "compiler" will read such things and emit perfectly compilable C# code, sparing you the cut-paste madness known as "code reuse" in the C# world. The only question is whether D should be implemented as a perl script (because I have a sense of humor) or as a D application (because geeks (like me) are fond of self-reference).
As a friendly gesture to those who oppose MI, the D compiler will spit out an error message if you attempt to derive from two classes that share a common base class. This one pathological example seems to have scared the bejeezus out of language designers everywhere. Other abuses of MI might be handled with stern warnings.
I submitted the project [sourceforge.net] to the good people at SourceForge a few minutes ago. In the meantime, contact me directly [natew.com] if you're interested in bringing D to fruition.
Re:compare web architectures (Score:2)
But jsp pages are nasty for complex code, so are asp.net pages. And the execution of some of the ASP.net controls take up a lot of bandwidth; the calendar control is an example.
ASP.NET's web service model is good; it is very easy to export methods from a class as SOAP actions against a URL. But to build and deploy a production quality, high availablity web service is always a management and config nightmare, and there java still has the edge over IIS+WinNT.
Re:another new language? technology churn (Score:2)
I agree with this. Programming matured quite a while ago, and most recent contributions have added only unneccessary complexity to what should be a tractable situation.
The last five years have introduced more acronyms, buzzwords, and brand names into my vocabulary than my brain can handle. Yet, what am I using on a daily basis? 20-year-old technology: vi, sh, sccs, make, etc. Relatively few new software technologies have really pushed beyond where we were in 1982, and many of those technologies are simply eye candy-enabled versions of what was around 10, 20, and even 30 years ago.
It seems we could be better off not reinventing the platform on which everything is built every five years. FORTRAN, C, C++, Java, C# all touted revolutionizing our lives. FORTRAN and C really did revolutionize things; they broke us free of assembly code. But what about the rest? Why is software quality about the same now as it always has been? It's because none of these newer platforms have changed the fundamental complexity of making good software. Writing software today still requires the same amount of "brains" as it did decades ago.
Re:C# for non-java developers? (Score:2)
I do reccomend the Petzold though. (I got that in the same shipment.) If you're not familiar with Windows Forms and want to do client programming for Windows, you'll almost need it. The Wrox Press book gives an intro on WinFoms (the O'Reilley appears to as well from a listing of topics on Amazon), but if you do any serious development you'll want a dedicated book. (It's expensive though; order it online for a lot less; it's $60 retail, but I paid $42 on Amazon. I believe other OL places have similar deals.)