And The #1 Reason You Should Try Out Java If You're A .NET Programmer Is...

by M. David Peterson

cuz' with Java you don't have to deal with all those nasty API calls...

wait, what?

Danny Coward's Sun Weblog

NET2Java uses the NET2Java Library to translate .NET API calls into Java Platform API calls.
Because .NET programs usually make lots of .NET platform API calls.


I guess I'm completely missing the point here as the way I read this suggests the belief that "with .NET your Bound and Gag'd to the .NET API. If you want real freedom and independence from the API, then its time to give Java a try!"

I sincerely hope that I am wrong in my interpretation cuz' if I'm not...

17 Comments


2006-05-09 10:57:41
som of ya'all re'ally a're takun the mikker wit th'e illiterat posting nah.
William
2006-05-09 12:46:38
Is this post supposed to make sense?
M. David Peterson
2006-05-09 16:37:52
William,


Which part is difficult to understand?


This part "...Because .NET programs usually make lots of .NET platform API calls."


Makes about as much sense as a selling point as would the opposite:


Because Java programs usually make lots of Java platform API calls.


In and of itself, this is the point... Why use an apple to apple comparison of two platforms built around a gigantic API structure?


The rest... I guess you would need to read a lot more of my post's from the past, and in particular some of the comments people will leave to understand it. Unfortunately there is no way for me to determine ahead of time which pieces someone will understand and which pieces they won't as unfortunately the concept of #ifdef hasn't hit the blogosphere just yet.

M. David Peterson
2006-05-09 17:00:11
Anonymous,


Some words and phrases are purposely spelled incorrectly... In some countries they use the term "slang" and it's okay... its part of the culture.


For example, here in the U.S. slang is part of everyday life... Unfortunately I tend to write faster than my brain can spell check so I can't blame everything on slang terminology as I will be the first to admit that anything I write in which a tool is used that doesn't provide automatic and immediatte spell checking features tends to be a bit ... how should I say... innaccurate I guess works, although in some cases "completely innaccurate" would be a better choice of words.


Such is life... And life was meant to enjoy instead of getting hung up on things that, while important, don't bring the day to screaching halt if a word or twenty happens to be mispelled.


However, given the Anonymous tag I can only assume your opinion means about as much to you as the term anonymous tends to imply... (although not always the case)


Don't want to risk the idea that people might actually know that you have an opinion on a particular matter or the opinion in and of itself is of the type that you don't want people to know that it was you that wrote it...


So why write it?


Either way, no worries... I still have a big phat smile on my face... Oh shoot... there's one of those slang terms again... Maybe I shouldn't use it just in case someone doesn't like that word in particular.


Or maybe you should try to find a way to put a smile on your own face... If there is one thing in life I've learned its that people that don't smile very often have a dislike for people that do.


2006-05-10 09:56:01
Poor title grammar.


... if you'rea .NET programmer ...

M. David Peterson
2006-05-10 12:44:47
:D Ooops... Okay, well then... I feel a little REAAALLLY dumb. :D


Thanks... I'll fix that now. :D


Just call me Mr. (Over)Sensitive. I think I MORE than deserve the title on this one :) (no pun intended... just can't think of a better word to use.)

M. David Peterson
2006-05-10 13:05:32
NOTE: There are certainly times I wish I could,


a) Go back in time and think twice before pushing "Post" on the comment I am about to post.


b) let slide my "In all cases where possible, once a URI, always a URI" rule and claim "I never wrote that... I'm sorry, but you must be mistaken." ;) (of course, even the #id qualifies as a distinct URI obviously, so deleting a comment both breaks this rule and the rule of standing behind what you write and accepting the fact that, at least in this (and any other similar instances) case you were a complete and total idiot.


c) build a better grammar checker, or at very least a grammar checker that (at least in my case) would highlight every occurence of "your", "you're", "there", "their", and "they're" with a note that states "are you ABSOLUTELY postively this is the correct usage..."


Actually the second part of that last one I could write... The first part...


Response to recruiter: "Have you actually read anything I've written?! I'm sorry, but I'm pretty-sure to absolutely-positive I'm not the hacker for the job of building a better Grammar Engine."

Rob Adams
2006-05-11 09:48:30
Or you could possibly be bothered learn proper grammar.


You give a half-hearted, apologetic rational behind your grammatical "nuances" but you fail to realize the context. You are writing a technical blog for a well respected publishing company.


Please also realize that while words "cuz'" and "gunna" have made their way into common vernacular, their use in technical articles (blogs or otherwise) should be very limited. Plus, slang like "somvya" is not as common and its use breaks continuity, causing the reader to pause, re-read the word to make sure of the meaning.


That being said, it is your blog and if you choose to descend into "netspeak" or truncated slang, it is your choice to do so. It is out choice as reader to decide whether to read it or not.


Rob


Oh, you also used "their" instead of "there" in the phrase "Simmer down their Javanator"

bbqchickenrobot
2006-05-11 09:58:18
There's no way I'd leave .NET to go to java. java is slow and clunky and the interface/UI is a piece of poop. Sun should REALLY look into creating new flashy cool, FAST GUI components in their next release. This article is completely biased and doesn't make much sense if you know both worlds. pretty soon .NET will be available on most *nix platforms including Windows.Forms and that will make all teh difference. Java requires/has an API too! It's called the virtual machine which houses the java runtime. worst yet, there's no exe to start the program from a double click, just from a compile, not counting extra tools. if you're working on *nix, consider Java I guess... but I'd honestly look at languages like Ruby over Java, although java is pretty cool. I guess ruby on rails for web apps and java for rich/think clients would be my choice on *nix platforms. For windows - he's got the ball, he dribbles to the free throw line, jumper, shoots! nails it at the buzzer! Nothing but .NET!
bbqchickenrobot
2006-05-11 10:06:54
btw - I didn't mean this article was biased... but the sun/java articles referenced in this article are... ;)
M. David Peterson
2006-05-11 10:20:43
Rob,


Where in here did you see me state: I can't be bothered...


I write code for a living... In fact, writing code is what I have done for basically my entire life. When you write code, you get used to the notion of shortcuts, and "slang" words that represent something else.


While I recognize grammar to be an important aspect of any type of writing, I also know a lot of technical writers, and a lot of technical editors... Each group tends to share a fairly common trait amongst each other. Editors tend to be really good at taking the chicken scratch that hackers such as myself tend to be really good at creating, and turn it into books that people like you can stand reading due to the fact that they have been edited by folks who have made it their life to ensure proper grammar and spelling is what makes it to the press, and written by folks who know how to write code better than you do. (otherwise, why would you purchase the book?)


Do you think I take pride in the fact that because I have a tendency to write fast, proper usage of grammar tends to get neglected? I'm not... But I'm not going to sit here and worry about it either, especially given the fact that this is first cut stuff.


Now flip this to code... Do you think that I am proud of the fact that I have made a career out of doing something that I truly love, and as such have developed valuable skills which in some cases are second to very few, if not none?


Yep... I am. Really proud. As I should be. I work my a$$ off and I deserve to be proud of the work I do.

M. David Peterson
2006-05-11 10:24:12
bbqchickenrobot,


Not to worry... I knew what you meant :)


Thanks for taking the time to comment! :D

Ozydedanaan
2006-05-11 10:30:35
Cripes, Adams, chill out.


Peterson was responding to a Java Nut who made absolutely no sense. There seems to be a lot of them around.


I liked the humor - slang and all.


.Net, C# in particular, is more useful, leads to more maintainable code, and is faster than Java. Period. Don't attack a technology just because you don't like Microsoft - I don't particularly care for Daimler-Benz either, but they make good cars.

M. David Peterson
2006-05-11 10:38:14
Ozydedanaan.


Thanks! I appreciate your supportive comments... Unfortunately when people read a post and enjoy it, or at very least are neutral, by nature there seems no need to leave a comment (e.g. "I am laughing right now... just thought I let you know" ;) where as when there are things that folks dislike, theres a tendency to head straight for the comment section and let the person know.


Unfortunately I am just as guilty as the next guy, but that doesn't mean I enjoy reading all the negative feedback either.


Thanks for taking the time to leave your positive comments... They helped put a smile back on my face where it belonged :D

M. David Peterson
2006-05-11 17:37:13
NOTE: I do need to be careful with my emotions in regards to folks getting all worked up over the content of a post, as I have probably posted more "slam" comments than I've received, probably several times over... It would be a bit hypocritical for me to suggest that its okay for me to say some of the things I say in both comments and posts, and then turn around at every last negative comment someone posts as if they "have no right!"


If I have the right, so does anyone else...


That said, anybody who has read any of my posts and follow-up comments at any great length should understand quite well by now that I tend to push in certain areas such that I can get folks to respond, and then back away when people have showcased they know what they're talking about, giving them the respect they deserve for posting a solid, factual-based response... I'd be surprised if no one has noticed that this tends to be a fairly consistent pattern of mine.


But its not just me...


In fact this trait seems to be fairly typical amongst most anybody who likes to engage in good conversation, and understands that some of the best conversations come from getting people emotionally involved... I fall victim to it all the time, but I'm no more the wiser as human emotion tends to defy rational behavior at any and every given opportunity.


With all of this said, I will admit, the comments that gnaw at me the most are the ones that have nothing to do with the technical content of any given post or comment, and instead are folks who can find nothing else to argue about but punctuation, spelling grammar, or the fact that they dislike the picture I have posted in my profile... so much in fact that they use this as a primary basis of their argument against my post, using personal insults as some sort of "ha! I showed that guy a thing or two!"


Folks... For most people, a blog entry is something that you pound out real fast while a particular topic is on your mind. For the most part these are typed into 400x200 pixels html 'textarea' of which is nothing more than the name suggests... An area in which to type text. No spell checkers by default (although this is getting better, and is available via Google toolbars (IE, Fx), built directly into the browser (Opera), etc... DEFINITELY no grammar checkers... And when you're placing a comment, in most cases you can not go back and re-edit once you hit post. As such you're dealing with one shot to get all in which you want to say out of your mind while your mind is on the topic.


Of course, with a blog entry you can go back and fix things here and there, but to expect perfection in something that was written in 10 minutes sitting at a coffee shop on your way back from running errands goes beyond what should be considered reasonable expectations for a blog post.


This isn't a book... It's a blog entry. No editors, no art department, no layout, no nothing... Just you and a 400x200 textarea and a whole lot to say in a short space of time...


If you're going to attack a post... Attack the content of the post itself, not the fact that in 3 known places I incorrectly used their , they're and there, and the fact that slang terms have become commonplace should not be justification for there usage...


Its a BLOG!!!! Not a Book! If you disagree with the content of the post... tell me about it. If I misspelled a word and it annoys you... Tell me about it. I am more than happy to correct errors, as this, in fact, is exactly what they are...


Errors.


We all make them. Especially on first cut stuff. Either get used to them or get on with life in some other way. But to expect people to produce production quality content on first cut material, especially when they know its not going to go beyond first cut material (in other words, unless your Joel Spolsky, chances are pretty good that the only publishing an entry is going to see is the one that was invoked by the "Post" button in your blogging software.) goes beyond even what the most hard-nosed editor on this planet would even dream of expecting.


So why do you?

C. Davies
2006-06-16 09:28:14
I've been a loyal Java coder for just about a year and a half now (as well as using C/C++, Perl, BASIC and assembly among others over the last 9 years). There are a number of features of Java that make it enjoyable to code in for me:


* The API is really nicely constructed. A lot of thought has gone into the architecture of the library and it's a pleasure to work with.
* The API docs are in one location for the platform (SE/EE/ME, etc.) you're using and they don't try to be fancy. They give you the facts you're looking for quickly.
* If you want to learn about a standard API, the Sun web site always has a great tutorial (or "trail") written in a clear, consistent format.
* Most of the libraries written for Java are open source and have great communities writing some good articles on how to use them (recently I've been starting to get to grips with Hibernate, which is a good example of this). The advantages of open source over proprietary libraries have been fought over far too many times to be repeated here...
* I can write code on Linux or Windows and I have minimal (usually zero) hassle trying to get my code to run on both platforms.
* Java doesn't try to cover all bases with one library. If you're doing client/application development, you use J2SE. If you're working on web applications or web services, you use J2EE. Coding embedded devices - J2ME. You even have the option of using your skills to develop for smartcard devices through the Javacard development tools (in conjunction with the Open Card Framework).



For web development, I'm constantly tempted to move to .NET. A lot of the points above also apply to .NET, which is nice. A number of advantages of .NET (particularly C#) that I can see are:


* Microsoft have had time to copy the good things Java had and improve on parts where Java was lacking a bit.
* The number of web servers supporting ASP.NET vastly outweighs the number of web servers with support for servlet containers.
* There seems to be an equally (larger?) community for .NET, so getting help and advice wouldn't be too hard.



On the other hand, disadvantages of .NET that I can see are:
* I feel lost trying to look information up. Searching on MSDN is okay for a while, but the amount of Javascript trees I have to traverse can get quite annoying... and then you get lost in the tree somewhere.
* I sense a hugely "commercial" attitude. Most libraries I've read about for .NET are closed-source or require ridiculous license fees to be paid.
* The framework tries to cover everything. There doesn't seem to be any distinction in the platform configuration between writing a Windows.Forms-based application and writing an ASP.NET web service, aside from importing different namespaces.
* I don't mean to offend, but a _large_ majority of .NET coders I've met (both on IRC and reading through forums or articles) are quite immature (both in their attitude in talking to other people and in their style of coding). This isn't really a disadvantage of the language (although, I don't want immature people writing proprietary libraries that I'm forced to use...) and I'm sure Java has its fair share of immature people as well (usually manifested as applet coders, I guess :-)).



What's the purpose of this comment though? Please don't interpret it as a bash against .NET - these are just my observations from the other side of the wall. Given my (mis-)interpretations of coding with .NET, can you give some advice on where common places are to read/learn about new technologies?


For example, if somebody from the land of .NET asked me the same about Java, my response would be:


API Docs: http://java.sun.com/j2se/1.5.0/docs/api/
Tutorials/Introductory Articles:
* http://java.sun.com/learning/tutorial/index.html
* http://www.onjava.com/
* http://www.java.net/
IRC Channels:
* EFNet/#java (mostly newbie-bashing here; they're quite stern about common-sense :-))
Forums:
* http://forum.java.sun.com/index.jspa
* http://forums.java.net/


It's quite clear that the best sources of information, in my opinion, are from java.sun.com, java.net and onjava.com (ONJava is particularly useful for learning new things...).


I noticed that somebody posted about the slowness of the Java interface (I assume they mean Swing). The speed issue of Swing (although I don't noticed it at all) comes from the fact that it's a light-weight UI library, as opposed to a heavy-weight one, which the Windows.Forms library is. Light-weight means that the components are drawn by the library; heavy-weight menas that the components are created and drawn by the host operating system; the library just wraps the events and translates them to the appropriate events (e.g. an ActionEvent in Java). Java is not restricted to one GUI library... for light-weight GUIs, the usual choices are either Swing or AWT. For heavy-weight, there's Eclipse's SWT. Personally I love the architecture of Swing, but I do agree that it looks fairly ugly... I'd love it if Sun gave us a few sexy look-and-feels out of the box. :-) They probably don't want to encourage inconsistency in the appearance user interfaces in Java applications though.


So, in summary to this overly-long comment :-)
* Can you high-light large advantages of switching to .NET over Java (I'd prefer if issues relating to speed are ignored)?
* In particular, can you offer some links (or book references) that are suitable for developers switching from Java -> C#. I'm making a point of 'switching' because nothing makes me more angry than reading the patronising dribbles of most tutorials, which assume you either know nothing or you only know VB.


It's easy to tell the world that your platform is the best, but it would be more productive to tell us the directions of going from our country to yours. :-)


Who knows, maybe .NET isn't just a toy for wannabe shareware developers after all. ;-)

Ebrima Dibbasey
2008-07-21 07:12:37
i am a disabled boy age 24 and i am currently leader the national union of the disable youth the gambia and a journlist working on a disability column.


i am impress about your work and i want us to become partners in the disability fieled.
please feel free to contact me so that we can make a start ok