Java Forum / General / January 2006
To Java or .Net -- That is the question!
Java Noobie - 03 Jan 2006 15:50 GMT Folks, I am a Visual basic (2.0 - 6.0) programmer who is at a crossroads. Can someone sensibly articulate why one might choose Java over .NET as their "next" language? The way I see it, I have a small leg up in the .NET world coming over from Visual Basic, but I did some Java programming in back college (JDK 1.1) and really enjoyed it and I would like to get out from under the Microsoft 400lb gorilla mentality if possible. Specifically, I have these questions:
1. What is the best, fastest way to get up to speed? 2. Assuming I get convinced to go down the Java path, how difficult is it to get certified in the language? 3. Is there a web resource somewhere that outlines the requirements and possible certifications? 4. Is it even worth getting certifed? 5. As an outsider looking in, I have noticed what I consider to be feature bloat with this once lean language -- is this a accurate observation or am I off base?
Luc The Perverse - 03 Jan 2006 20:44 GMT > Folks, I am a Visual basic (2.0 - 6.0) programmer who is at a > crossroads. Can someone sensibly articulate why one might choose Java [quoted text clipped - 3 lines] > would like to get out from under the Microsoft 400lb gorilla mentality > if possible. Specifically, I have these questions: Having myself started with Basics (Tandy Basic to Gw Basic to Q - Basic to VB) and then on to other programming languages I feel I am in a position to make a recommendation.
The only advantage you will have in staying with .net, is that you will be familiar with the GUI interface - you will have to relearn the language, the tricks etc. Personally - I think the GUI itself is a crutch which would best be removed. Some might argue that it is theoretically possible to write .net code without the microsoft GUI, which I would not disagree with, but who really does this? The beauty of .net is the same as the curse - the inner workings are hidden in a way that you never really learn what is going on.
In my experience, it is much easier in Java to write GUIs by hand, without the help of an IDE visually constructing and automating everything.
.Net offers a Java like language, and even if you went for the less Java like C++, you would still be mostly starting over again from scratch.
I programmed for years in C++ (visual C++) and only a little while in Java. Java's native libraries are easier to understand and better documented than Microsofts. It is easier to find example code, and help on the net.
Java is designed to be run on any java capible device. .Net is a developer tool which in part is designed to keep people and their software stuck on a windows OS.
I would suggest Java over C++ because I truly believe it is easier and more fun to learn. I cannot speak for J# and C#, however, as I have not ever tried these languages.
Ultimately though, you will be able to write just about whatever you want in any of these languages. Admittedly certain languages are sometimes more suitable for specific tasks, but just about anything that someone beginning a trek in a new language will be doing could be done in any of the available options which you have listed.
I happily used Visual Studio for years, and I now am doing all my programming in Java. I would not frown on you for going either route. The only mistake would be to stop learning. C++ and Java are very similar in syntax in their base forms, the only real differences stem from the way Java and C++ have decided to handle data storage, and creation of objects. Java came after C++, and features included in C++ were deliberately left out in favor of more simple and understandable methods of doing things.
I suggest Java - but whatever choice you make, be sure to have lots of fun!
 Signature LTP
:) zero - 03 Jan 2006 21:06 GMT > Java came after C++, and features included in C++ were deliberately > left out in favor of more simple and understandable methods of doing > things. strangely enough, some of the features that were originally banned from Java because of simplicity and safety - and which are even "discouraged" in C++ - have been added in 5.0 One example is varargs.
 Signature Beware the False Authority Syndrome
Andrew McDonagh - 03 Jan 2006 21:09 GMT >>Java came after C++, and features included in C++ were deliberately >>left out in favor of more simple and understandable methods of doing [quoted text clipped - 3 lines] > Java because of simplicity and safety - and which are even "discouraged" in > C++ - have been added in 5.0 One example is varargs. annoying isn't it!
zero - 03 Jan 2006 21:14 GMT >> strangely enough, some of the features that were originally banned >> from Java because of simplicity and safety - and which are even >> "discouraged" in C++ - have been added in 5.0 One example is >> varargs. > > annoying isn't it! not as annoying as sun's generics approach ;-)
 Signature Beware the False Authority Syndrome
Thomas Hawtin - 03 Jan 2006 21:18 GMT > strangely enough, some of the features that were originally banned from > Java because of simplicity and safety - and which are even "discouraged" in > C++ - have been added in 5.0 One example is varargs. varargs in C and C++ is unsafe. In Java it is done with all the usual type safety and bounds checking that you would expect. (Not that I approve of the way it is done in Java.)
Tom Hawtin
 Signature Unemployed English Java programmer http://jroller.com/page/tackline/
Roedy Green - 03 Jan 2006 22:25 GMT On Tue, 03 Jan 2006 21:27:09 +0000, Thomas Hawtin <usenet@tackline.plus.com> wrote, quoted or indirectly quoted someone who said :
>(Not that I >approve of the way it is done in Java.) If you were in charge, what might they look like?
 Signature Canadian Mind Products, Roedy Green. http://mindprod.com Java custom programming, consulting and coaching.
Chris Smith - 03 Jan 2006 23:28 GMT > >(Not that I > >approve of the way it is done in Java.)
> If you were in charge, what might they look like? I don't speak for Thomas. If I were in charge, they wouldn't exist. What would possibly still exist is the original proposal for "concise array literals" that they replaced... namely:
System.out.printf("Answer #%d is %f%.", { i, answer[i] });
Even if I couldn't (or didn't) do concise array literals, there would be no varargs. What someone at Sun has forgotten is that simplicity is its own virtue. The difficulty of typing "new Object[] { ... }" is outweighed by the additional difficulty in remembering the whole language, or in understanding the language specification, or in understanding certain compiler behaviors such as resolving method overloads.
All of these are costs that make it more difficult to learn Java. Those of us who've been Java programmers for a while may not think it's all that bad. After all, we've only had to learn a few things at a time and we have the benefit of historical insight. The picture from the outside is growing worse, though. Eventually, someone's going to do the same thing Java did to C++; come up with a new language that is refreshingly easy to use and understand for new programmers, and that does all the stuff that is really important in Java anyway. Java projects will continue for some time, but much of the market share will be lost over time to this new language. Old programmers will not find it very difficult to learn, and new programmers will find it much easier than Java, and it will be less of a risk to start new projects in this language than in that old behemoth.
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Chris Smith - 03 Jan 2006 23:17 GMT > Some might argue that it is theoretically possible to > write .net code without the microsoft GUI, which I would not disagree with, > but who really does this? Not really the kind of answer you're looking for, but I do it frequently in order to test sample clients to our SOAP web service from .NET languages, which we make available to our customers.
> In my experience, it is much easier in Java to write GUIs by hand, without > the help of an IDE visually constructing and automating everything. Absolutely. If you're writing GUI applications and don't have a GUI designer, you definitely want to be working in Java rather than .NET. (I almost refrained from mentioning that since GUI screens will render differently according to font settings and languages, the ability to design GUIs to make sense without hard visual positioning has certain advantages even when a GUI designer is available.)
> I would suggest Java over C++ because I truly believe it is easier and more > fun to learn. I cannot speak for J# and C#, however, as I have not ever > tried these languages. Currently used versions of C# are extremely Java-like. It has more interesting features, but lacks much of the simplicity and elegance that characterize(s/d) Java. The new version of C# is a scary behemoth. I have yet to build up the courage to look it in the face.
J# is dead. It is a halfway point for porting applications from Java and Java-like environments. I see no reason to start anything with J#.
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Ed Jensen - 03 Jan 2006 21:17 GMT > Folks, I am a Visual basic (2.0 - 6.0) programmer who is at a > crossroads. Can someone sensibly articulate why one might choose Java [quoted text clipped - 3 lines] > would like to get out from under the Microsoft 400lb gorilla mentality > if possible. For a person in your situation, the big advantage in moving to VB.NET is obvious: You're already familiar with Microsoft tools, and already familiar with VB. Moving to VB.NET will be the "least painful" choice for you (at least in the short term -- I'm not sure about long term).
Some big advantages in moving to Java are as follows:
* Portable (runs on Windows and lots of other operating systems) * Free-as-in-beer runtime environments (such as the Sun JRE) * Free-as-in-beer Java compilers (such as the Sun JDK) * Free-as-in-beer Java IDEs (such as NetBeans and Eclipse)
Since Microsoft's .NET technology is largely just a copy of Sun's Java technology, they're extremely similar, which means no matter which technology you follow, learning the other will most likely be pretty easy.
derek@gkdkwe.com - 04 Jan 2006 08:00 GMT > Folks, I am a Visual basic (2.0 - 6.0) programmer who is at a > crossroads. Can someone sensibly articulate why one might choose Java [quoted text clipped - 3 lines] > would like to get out from under the Microsoft 400lb gorilla mentality > if possible. Do you plan to get a job in your 'next' language ?
You see, the 'problem' with Java is that almost all Java-jobs are J2EE-related. This means that one not only have to master Java, but also the (fairly complex) J2EE-concepts, like its specific design patterns, servlets, beans, etc.
I think it's these days almost impossible to get a Java-job without J2EE-knowledge, and it is probably much easier to get a (low-entry) job as a .Net programmer.
Java Noobie - 04 Jan 2006 16:15 GMT > > Folks, I am a Visual basic (2.0 - 6.0) programmer who is at a > > crossroads. Can someone sensibly articulate why one might choose Java [quoted text clipped - 12 lines] > I think it's these days almost impossible to get a Java-job without J2EE-knowledge, > and it is probably much easier to get a (low-entry) job as a .Net programmer. Yes, getting a job in Java is the general idea. Is this business about the J2EE true universally, or only in spots around the Java world? Can someone not get an entry level position programming GUI's or some such?
Chris Smith - 04 Jan 2006 18:28 GMT > Yes, getting a job in Java is the general idea. Is this business about > the J2EE true universally, or only in spots around the Java world? Can > someone not get an entry level position programming GUI's or some such? It's not universally true, and it does depend on the industry. For example, if you want to work in military contracting (but who the heck would?) then you'd pretty much certainly need to learn J2EE. The commercial world is very quickly moving away from J2EE, although EJB 3.0 may make some changes to that trend.
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Andy Dingley - 05 Jan 2006 00:07 GMT >> You see, the 'problem' with Java is that almost all Java-jobs are J2EE-related.
>Yes, getting a job in Java is the general idea. Is this business about >the J2EE true universally, I'd certainly agree with the "All Java is J2EE" observation. However it's not all bad news - J2EE is just a marketing bag. It includes both EJB (complex) and JSP/Servlets (much simpler, also in good commercial demand).
> Can >someone not get an entry level position programming GUI's or some such? Yes, if you can find someone commercial who is doing Java GUI work. These projects are scarce and commercial ones are downright rare. probably the biggest commercial Java employer outside "web work" IMHO would be mobile phones and similar devices. There's good scope here for teaching yourself and getting into the small pocket apps / games market, maybe through shareware.
As to choosing Java / .NET as a career choice, then I voted strongly for Java myself, despite years of VB and ASP beforehand. I just don't like .NET as an architecture. Also your VB experience is not particularly helpful in the .NET world. Most of the VB you know is irrelevant to web stuff, JScript is a much better ASP language than VBScript, and the really interesting .NET stuff is in C# not VB.
As a junior JSP programmer you're just as much an organ grinder's monkey as you are as a VB.NET grunt programmer. However you have a _much_ better progression ahead of you into "hardcore" J2EE without the hard switch from VB to C# (technically sizable, commercially and career-wise almost insurmountable)
Chris Smith - 05 Jan 2006 16:17 GMT > I'd certainly agree with the "All Java is J2EE" observation. However > it's not all bad news - J2EE is just a marketing bag. It includes both > EJB (complex) and JSP/Servlets (much simpler, also in good commercial > demand). http://riters.com/JINX/index.cgi/Is_20this_20a_20J2EE_20application_3f
> Yes, if you can find someone commercial who is doing Java GUI work. > These projects are scarce and commercial ones are downright rare. There is a mid-to-small but very rapidly expanding market for Eclipse RCP-based application development. SWT is a pain to work with compared to Swing, but it's worth looking at.
Note that it's not necessarily easier than J2EE. Nor is a lot of Swing work, but Swing is part of the standard API and as such is taught earlier in many cases.
> probably the biggest commercial Java employer outside "web work" IMHO > would be mobile phones and similar devices. There's good scope here for > teaching yourself and getting into the small pocket apps / games market, > maybe through shareware. That's not my experience. The market is there, but cell phone companies are playing games that create gigantic barriers for individuals or small businesses to develop and distribute J2ME applications. Sprint, for instance, has a list of three or four "trusted" providers, and tells everyone else to submit their applications to those providers in a manner similar to book publishing companies that review unsolicited manuscripts.
Until the industry moves on, we won't see the potential for much J2ME space application development.
> As to choosing Java / .NET as a career choice, then I voted strongly for > Java myself, despite years of VB and ASP beforehand. I'd vote for neither. If you plan to bet your career on a single programming language, you're going to lose. This should be a choice of what job to get, not which "career".
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Andy Dingley - 05 Jan 2006 23:02 GMT >> probably the biggest commercial Java employer outside "web work" IMHO >> would be mobile phones and similar devices. There's good scope here for [quoted text clipped - 4 lines] >are playing games that create gigantic barriers for individuals or small >businesses to develop and distribute J2ME applications. You're probably right - I'm in Europe, where our mobile systems work right.
Mark Thornton - 06 Jan 2006 19:40 GMT > That's not my experience. The market is there, but cell phone companies > are playing games that create gigantic barriers for individuals or small [quoted text clipped - 3 lines] > manner similar to book publishing companies that review unsolicited > manuscripts. Obviously this only applies to J2ME applications which need to use 'secured' api. It is easy to publishing a J2ME application that only uses api that do not require a trusted signature.
Mark Thornton
Chris Smith - 06 Jan 2006 20:05 GMT > Obviously this only applies to J2ME applications which need to use > 'secured' api. It is easy to publishing a J2ME application that only > uses api that do not require a trusted signature. Sure, if you're willing to tell your users to ignore the scary message.
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Mark Thornton - 06 Jan 2006 20:06 GMT >>Obviously this only applies to J2ME applications which need to use >>'secured' api. It is easy to publishing a J2ME application that only >>uses api that do not require a trusted signature. > > Sure, if you're willing to tell your users to ignore the scary message. Or you don't do anything that requires a scary message. The only midlet I've written so far runs without any scary message being shown.
Mark Thornton
David Segall - 05 Jan 2006 08:57 GMT >Folks, I am a Visual basic (2.0 - 6.0) programmer who is at a >crossroads. Can someone sensibly articulate why one might choose Java >over .NET as their "next" language? By dropping VB "Classic" and not providing a conversion tool Microsoft demonstrated that they do not care about you as a developer or the thousands of businesses that depend on VB applications. Why would you give them the chance to do that level of damage again?
In contrast, Java is not only multi-platform it is multi-vendor. It is backed by all the (other) industry heavyweights including IBM, Sun and Oracle. IBM has a demonstrated track record of maintaining the languages they promoted. The current version of Rational Developer supports PL1 and even RPG.
Java Noobie - 06 Jan 2006 19:35 GMT > By dropping VB "Classic" and not providing a conversion tool Microsoft > demonstrated that they do not care about you as a developer or the > thousands of businesses that depend on VB applications. Why would you > give them the chance to do that level of damage again? This is the one thing that peaves me the most and has me considering the swaitch. I thought they left a LOT of folks in the lurch because of this switch to .NET. On the one hand, I can understand that COM needed replaced (believe me, I understand that), but to just cut everyone off and say ".NET or bust" was pretty bad. That is part of the reason I resisted for so long really, but now I have run out of rope and must shift paradigms one way or the other.
> In contrast, Java is not only multi-platform it is multi-vendor. It is > backed by all the (other) industry heavyweights including IBM, Sun and > Oracle. IBM has a demonstrated track record of maintaining the > languages they promoted. The current version of Rational Developer > supports PL1 and even RPG. These things are very attractive, but for a noobie such as myself, it is daunting to say the least. It seems to me that as Java has matured, it has also mushroomed considerably. The other thing that worries me is the speed of the platform itself. I have two very hot AMD computers with 1GB memory, SATA drives and all the trimmings and they still run Java applications like an old 386SX machine. Is this just something people get used to, or are there tweaks you learn in development to get around that -- or am I just whining now :-)
frankgerlach@gmail.com - 06 Jan 2006 21:12 GMT I did a medium-complexity server application (actually a simple multithreaded Object Request Broker) in Java, C#, Smalltalk and C++. Each implementation has in the order of 1000 lines of code. My general experience was that the first three languages are quite comparable in terms of development, debugging and testing effort. The C++ implementation was *very* nasty and difficult to debug, even with gdb and Purify (it took me at least 3 times longer to debug). I tend to favor C# over Java when it comes to the debug/modify/recompile/debug cycle, because csc is way much faster than javac. Java obviously leads when you talk about multiplatform support. Runtime performance of C#, Java and C++ was quite comparable, with the Smalltalk version being about half as fast as the other implementations. Smalltalk of course leads in the debug/modify/recompile cycle, because methods are compiled individually. But who does Smalltalk these times
:-( David Segall - 07 Jan 2006 03:28 GMT >These things are very attractive, but for a noobie such as myself, it >is daunting to say the least. It seems to me that as Java has matured, >it has also mushroomed considerably. The other side of the same coin is that Java _is_ mature. There are Java libraries for almost anything you wish to do although I agree that finding them can be difficult. When I started I used Google a lot and by searching for Java and <task I want to do> I was almost invariably rewarded with a method and some sample code. There is also a temptation to compare Java without an IDE to VB.Net which invariably comes with one. I have written up some IDE's here <http://ide.profectus.com.au> but I suggest you download the beta of NetBeans 5. In addition to providing the code completion you are used to it will insert the import statements once you have found the appropriate method.
> The other thing that worries me >is the speed of the platform itself. It is true that Java programs are slow to start, but once they are running they are probably faster than VB programs and comparable to programs written in other languages. The start-up time is a consequence of the virtual machine and I don't know how (or if) Microsoft have solved that problem with .Net.
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|