To Java or .Net -- That is the question!

J

Java Noobie

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?
 
L

Luc The Perverse

Java Noobie said:
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:


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!
 
Z

zero

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.
 
A

Andrew McDonagh

zero said:
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!
 
E

Ed Jensen

Java Noobie said:
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.

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.
 
T

Thomas Hawtin

zero said:
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
 
C

Chris Smith

Luc The Perverse said:
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#.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
C

Chris Smith

Roedy said:
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 });

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.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
D

derek

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.

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.
 
J

Java Noobie

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.

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?
 
C

Chris Smith

Java Noobie said:
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.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
A

Andy Dingley

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)
 
D

David Segall

Java Noobie said:
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.
 
C

Chris Smith

Andy Dingley said:
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".

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
A

Andy Dingley

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.

You're probably right - I'm in Europe, where our mobile systems work
right.
 
J

Java Noobie

David said:
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 :)
 
M

Mark Thornton

Chris said:
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.

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
 
C

Chris Smith

Mark Thornton said:
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.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,431
Messages
2,571,677
Members
48,796
Latest member
Greg L.

Latest Threads

Top