Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / April 2006

Tip: Looking for answers? Try searching our database.

Future of Java

Thread view: 
Alex - 10 Apr 2006 06:37 GMT
Hi Everyone!

I'm a recent college grad and have invested quite a bit of time into
learning Java. I just got a job as a programmer doing Java. However, I know
of Microsoft's .NET Framework is becoming increasingly popular. Is that
going to take over Java? What is everyone's take on the future of Java? I'm
actually thinking that I should know both C# and Java to stay competitive
in this world. Any advice or ideas what will happen with Java?

Thanks!
David N. Welton - 10 Apr 2006 07:39 GMT
> Hi Everyone!
>
[quoted text clipped - 4 lines]
> actually thinking that I should know both C# and Java to stay competitive
> in this world. Any advice or ideas what will happen with Java?

Language popularity stats - to be taken with a grain of salt, because
it's not possible to measure this stuff accurately:
http://www.dedasys.com/articles/language_popularity.html

On the economics of programming languages, which explains why Java won't
just go away from one day to the next:
http://www.dedasys.com/articles/programming_language_economics.html

Signature

David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

Roedy Green - 10 Apr 2006 17:55 GMT
On Mon, 10 Apr 2006 08:39:26 +0200, "David N. Welton"
<davidw@dedasys.com> wrote, quoted or indirectly quoted someone who
said :

>Language popularity stats - to be taken with a grain of salt, because
>it's not possible to measure this stuff accurately:
>http://www.dedasys.com/articles/language_popularity.html

"We begin by taking a look at the raw google numbers returned by
looking for “perl programming”, “c programming” and so forth."

I wonder how many of those "c programming" were about c and how many
were "c. programming" about programming in general.  Further since
both Java and C++ resemble c and since many programmers know c, it
makes sense to introduce a language by comparing it with c, and by
assuring the user you can still interface with your old c programs.

What you want is not the number of google entries, but how many google
queries were about each language.  But even that means not much.  That
would rank Ruby higher than C since people don't know Ruby yet and are
curious, even if they were actually using C.

One of my measures of trends is feet of shelf space in the bookstores.
It shows where the interests is.  Again it overemphasises the latest
fad, which may or may not take off.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Stefan Ram - 10 Apr 2006 18:12 GMT
>What you want is not the number of google entries, but how many google

 Here is the language popularity at freshmeat:

http://freshmeat.net/browse/160/

 Languages used at a contest:

http://merd.sourceforge.net/pixel/language-study/icfp-figures.html

 TIOBE:

http://www.tiobe.com/tiobe_index/index.htm

There also is a list at sourceforge with C at rank 1, IIRC.
I can't find it right now.
Roedy Green - 10 Apr 2006 19:46 GMT
>  Here is the language popularity at freshmeat:
>
>http://freshmeat.net/browse/160/

If you monitored that over time you could also get the derivatives,
i.e. see what people are using for new projects.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Stefan Ram - 12 Apr 2006 06:37 GMT
>There also is a list at sourceforge with C at rank 1, IIRC.
>I can't find it right now.

 The sourceforge list really is hard to find!

 Eventually I found a quotation here:

http://www.jroller.com/page/matsh?entry=java_history_was_made_today

 It has Java on the top rank.

 However, it does not give a source URI at sourceforge and I
 wonder whether anyone can find the sourceforge page with that
 »current list for languages«.
Oliver Wong - 12 Apr 2006 14:57 GMT
>>There also is a list at sourceforge with C at rank 1, IIRC.
>>I can't find it right now.
[quoted text clipped - 10 lines]
>  wonder whether anyone can find the sourceforge page with that
>  »current list for languages«.

   It used to be easier. Nowadays, when you go to the "Software Map", you
can only browse via category (e.g. "Networking", "Games", "Database", etc.).
Previously, you could browse by development status (e.g. "Planning", "Beta",
"Mature", etc.), Programming Language, License (e.g. GPL, BSD, etc.), and so
on.

   So previously, you'd just choose "Browse by Programming Language", and
you'd see a list of all the programming languages available, along with a
number indicating the number of projects using that language.

   Now what you have to do is click on "Software Map", and then choose the
"All" category. For me, this leads to the URL
http://sourceforge.net/softwaremap/trove_list.php?form_cat=18, but I suspect
in a few months they might change it again. From there, click on "Filter",
and select "Required Programming Language". Select a programming language,
e.g. "Java", and click "Apply". When the page reloads, you'll see
"Displaying Result 1 to 10 of 17966", for example. This indicates that 17966
projects are registered as using Java. Repeat for the other languages.

   Note that some projects are listed as using multiple languages (e.g.
both Java and C++ and PHP), so the sum of all thei individual figures you
get will be larger than the number of total projects. Also note that it's up
to the developer to choose the language categorization, and there's no
verification mechanism for this. I've seen projects incorrectly categorize
themselves (e.g. an IDE which *supports* editing Java source code, but which
is written in C++, might get categorized as "using Java").

   - Oliver
Stefan Ram - 12 Apr 2006 15:11 GMT
>From there, click on "Filter", and select "Required Programming Language".

 Thank you! That really was a mystery to me.
 But know I was able to follow the procedure you describe.
Roedy Green - 12 Apr 2006 19:09 GMT
>http://www.jroller.com/page/matsh?entry=java_history_was_made_today
>
>  It has Java on the top rank.

also such out some of the shootout benchmarks to get an idea which
languages do best at which tasks.

http://shootout.alioth.debian.org/gp4/benchmark.php?test=spectralnorm&lang=all
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

David N. Welton - 10 Apr 2006 21:05 GMT
> On Mon, 10 Apr 2006 08:39:26 +0200, "David N. Welton"
> <davidw@dedasys.com> wrote, quoted or indirectly quoted someone who
[quoted text clipped - 6 lines]
> "We begin by taking a look at the raw google numbers returned by
> looking for “perl programming”, “c programming” and so forth."

And then we go on to look at a few more numbers...

> I wonder how many of those "c programming" were about c and how many
> were "c. programming" about programming in general.  Further since
[quoted text clipped - 4 lines]
> What you want is not the number of google entries, but how many google
> queries were about each language.  

No, what you really want is to show all the different numbers you can
get your hands on, because all of them are likely to have problems and
insights of some type, by the very nature of the task you're taking on.
So you show all the different stats, and then, just for fun, crunch
them up together for those who just want to look at one chart that
'explains everything'.

Signature

David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

Jon Martin Solaas - 10 Apr 2006 07:43 GMT
> Hi Everyone!
>
> I'm a recent college grad and have invested quite a bit of time into
> learning Java. I just got a job as a programmer doing Java. However, I know
> of Microsoft's .NET Framework is becoming increasingly popular. Is that
> going to take over Java? What is everyone's take on the future of Java?

It will continue to evolve.

> I'm
> actually thinking that I should know both C# and Java to stay competitive
> in this world.

Jack of all trades master of none ...
Dag Sunde - 10 Apr 2006 07:59 GMT
>> Hi Everyone!
>>
[quoted text clipped - 10 lines]
>
> Jack of all trades master of none ...
Luckily, our trade is programming not a particular language,
so learning one more programming-language will only take you
closer to master.

:-)

Signature

Dag.

Jon Martin Solaas - 11 Apr 2006 17:06 GMT
>>> I'm actually thinking that I should know both C# and Java to stay
>>> competitive in this world.
>> Jack of all trades master of none ...
> Luckily, our trade is programming not a particular language,
> so learning one more programming-language will only take you
> closer to master.

Yes and no. It's never wasted to learn more than one language. Having a
broad background will give you a broader understanding of what you are
doing.

But when it comes to competition, on the java arena you'd always have to
compete with people dedicated to the java platform, and on the C# arena
you'd always have to compete with people dedicated to C#. Specializing
on both platforms isn't what I'd recommend.
Dag Sunde - 12 Apr 2006 00:02 GMT
>>>> I'm actually thinking that I should know both C# and Java to stay
>>>> competitive in this world.
[quoted text clipped - 11 lines]
> you'd always have to compete with people dedicated to C#. Specializing on
> both platforms isn't what I'd recommend.

Then we disagree... :-)

So far, I've never worked a place where only one language was used.

To me, languages is just like a carpenters toolbox:
I pick up a hammer to drive in a nail, but use a screwdriver for
a screw...

If you're into web-applications, one client insist on running IIS
with VBScript/ASP, another does the same, but *might* want to move to
linux next year. JavaScript is a must clientside in both scenarios.

Then there is what to use for the server side business components,
and the DB...

Signature

Dag.

Jon Martin Solaas - 12 Apr 2006 07:59 GMT
>>>>> I'm actually thinking that I should know both C# and Java to stay
>>>>> competitive in this world.
[quoted text clipped - 14 lines]
>
> So far, I've never worked a place where only one language was used.

Actually they exist but they're very rare. As rare as places where only
one man works, I suppose.

> To me, languages is just like a carpenters toolbox:
> I pick up a hammer to drive in a nail, but use a screwdriver for
> a screw...

Ofcourse, but you don't do the work of a plumber, then, I suppose?

> If you're into web-applications, one client insist on running IIS
> with VBScript/ASP, another does the same, but *might* want to move to
> linux next year. JavaScript is a must clientside in both scenarios.
>
> Then there is what to use for the server side business components,
> and the DB...

So you propose getting to know oc4j, tomcat, weblogic, jrun, resin,
websphere, jetty just to get to know the potential platform for your
web-gui, then you're gonna learn struts, jsf, velocity, tapestry,
millstone, WingS, expresso ... just in case you're gonna utilize a
web-framework on top of jsp and servlets, and finally you're gonna learn
ejbs, corba, webservices for component/distribution technology, along
with hibernate, toplink, ADF, entity beans, jdbc and what-do-I-know for
persistence? Then you're going to a job interview for a job as a
webgui-programmer and claim expertise in all those areas?

Good luck, I think we just have to agree we disagree ... :-)

That said, you one should - as a minimum - have enough overview to know
other tools and crafts better suited for the job than those one master
self. And part of any adequate education in CS is getting familiar with
a broad selection of programming languages. But trying to embrace it all
as a professional is just not realistic. How about sql tuning, network
traffic monitoring and tuning, os memory tuning, SAN, clustering
architecture, firewalls, routers, appserver tuning, browser
compatability quirks, etc etc ...
marcwentink@hotmail.com - 12 Apr 2006 09:12 GMT
> Ofcourse, but you don't do the work of a plumber, then, I suppose?

Yes but if you can tell your boss in construction, if I am done doing
my carpenter job, I can go and help the plumber, although I am not a
specialist in it, it will help you a bit to get the job.
Jon Martin Solaas - 12 Apr 2006 10:45 GMT
>> Ofcourse, but you don't do the work of a plumber, then, I suppose?
>
> Yes but if you can tell your boss in construction, if I am done doing
> my carpenter job, I can go and help the plumber, although I am not a
> specialist in it, it will help you a bit to get the job.

AS long as you don't screw up the piping I'm sure that's just fine. But
then you have already defined yourself as a specialist carpenter :-)
marcwentink@hotmail.com - 12 Apr 2006 11:48 GMT
> As long as you don't screw up the piping I'm sure that's just fine. But
> then you have already defined yourself as a specialist carpenter :-)

Yes, and on the other hand this same boss will not hire you if you say,
well I know a bit of carpenting, a bit of plumbing, and have done some
things with electricity, but actually I am not really good in either
three.

If you are really good you can do two or may-be three computer
languages as 'senior', if you say you can do more you are either a
genius or, rather, you have made an inconsistent carreer plan.

It also depends how close the languages relate together. Doing C++,
Java and C#  together on a reasonable level is possible I think.
Thomas Hawtin - 12 Apr 2006 11:01 GMT
> Yes, and on the other hand this same boss will not hire you if you say,
> well I know a bit of carpenting, a bit of plumbing, and have done some
[quoted text clipped - 4 lines]
> languages as 'senior', if you say you can do more you are either a
> genius or, rather, you have made an inconsistent carreer plan.

The way the rules seem to work is that you can claim concurrent
experience. A job involves a m languages (or other skills) for n years,
you therefore have m*n years experience.

Tom Hawtin
Signature

Unemployed English Java programmer
http://jroller.com/page/tackline/

Jon Martin Solaas - 12 Apr 2006 12:13 GMT
> The way the rules seem to work is that you can claim concurrent
> experience. A job involves a m languages (or other skills) for n years,
> you therefore have m*n years experience.
>
> Tom Hawtin

That's just brilliant :-)
Jon Martin Solaas - 12 Apr 2006 12:12 GMT
>> As long as you don't screw up the piping I'm sure that's just fine. But
>> then you have already defined yourself as a specialist carpenter :-)
[quoted text clipped - 10 lines]
> It also depends how close the languages relate together. Doing C++,
> Java and C#  together on a reasonable level is possible I think.

Yup, that's my point. And you know, when we're talking specialization in
 a java context, there are so many different ways to go, web-framework
specialization, appserver platform specialization, etc. Many
web-programmers have specialized in Struts, for instance. While they
most likely know about other frameworks too. Yet others specialize in
different technologies from a specific vendor, like Oracle (Jdev, adf,
toplink, oc4j, portal etc.) or IBM (websphere, ibm-Eclipse (what's the
name again, still visual age or ...)), JBOSS-this-and-that, or maybe
even only a single product from a specific vendor and focus solely on
integrating that with other java technologies.

Still, in the java context, broad knowledge is important, to select the
right tool. In the MS world it's the one-size-fits-all philosophy that
rules, in the java world, where there is a broad selection of tools,
based on some sort of best-of-breed-ecology, you really gotta know a
little about everything to make the right decisions when selecting tools
and platform. Still, this doesn't mean you should try to specialize in
everything.

Signature

jon martin solaas

Dag Sunde - 12 Apr 2006 12:50 GMT
<snipped/>
> If you're into web-applications, one client insist on running IIS
>> with VBScript/ASP, another does the same, but *might* want to move to
[quoted text clipped - 6 lines]
> websphere, jetty just to get to know the potential platform for your
> web-gui,
yes, yes, yes, no, yes, no + JBoss

> then you're gonna learn struts, jsf, velocity, tapestry, millstone, WingS,
> expresso ... just in case you're gonna utilize a web-framework on top of
> jsp and servlets,
yes, Yes, Yes, Yes, No, No, No

> and finally you're gonna learn ejbs, corba, webservices for
> component/distribution technology,
Yes, Yes and Yes

> along with hibernate, toplink, ADF, entity beans, jdbc and what-do-I-know
> for persistence?
yes, no, no, Yes, Yes and probably

> Then you're going to a job interview for a job as a webgui-programmer and
> claim expertise in all those areas?

> Good luck, I think we just have to agree we disagree ... :-)

Here we have the culprit... I think we need to define Expertise and
specialising...

Yes of course, you need an overview of whats available, and its strengths
and weaknesses. Point is that it sounds like you're saying that you
would leave a project to someone else if JSF was one of the requirements,
and you had only worked with Struts earlier...?

You know Java, you can read, you know the priciples. So you just get
started, picking it up as you go. You will make mistakes, but at the end
of the project you can add JSF to the list of things you know.

Of course not *all* the inns and outs of JSF, but more that enough to
do a professional job...

Signature

Dag.

Jon Martin Solaas - 12 Apr 2006 20:26 GMT
> <snipped/>
>> If you're into web-applications, one client insist on running IIS
[quoted text clipped - 33 lines]
> would leave a project to someone else if JSF was one of the requirements,
> and you had only worked with Struts earlier...?

Uh, if I was at both sides of the table, it'd be pretty predictable who
I'd hire ...

> You know Java, you can read, you know the priciples. So you just get
> started, picking it up as you go. You will make mistakes, but at the end
> of the project you can add JSF to the list of things you know.
>
> Of course not *all* the inns and outs of JSF, but more that enough to
> do a professional job...

If I should hire a Struts programmer, and I'd have to choose between one
that knew Struts well from several projects, and one who had some
knowledge of a bunch of java webapp frameworks plus asp.net I'd simply
have to question them in depth. Maybe the Struts guy turned out to be
inexperienced, maybe he'd proove to be a struts expert ... who knows.
But if he turned out to be an experienced Struts programmer, well, the
choice would be obvious.
Dag Sunde - 12 Apr 2006 22:35 GMT
<snipped/>
>> Yes of course, you need an overview of whats available, and its strengths
>> and weaknesses. Point is that it sounds like you're saying that you
[quoted text clipped - 18 lines]
> if he turned out to be an experienced Struts programmer, well, the choice
> would be obvious.

Of course, if you where in the process of hiring someone for a specific
tast I agree completely.

I thought we where speaking generally about focus as a programmer...

Signature

Dag.

Jon Martin Solaas - 13 Apr 2006 09:42 GMT
> Of course, if you where in the process of hiring someone for a specific
> tast I agree completely.
>
> I thought we where speaking generally about focus as a programmer...

The question was about staying competitive I think.
Patricia Shanahan - 13 Apr 2006 15:12 GMT
>> Of course, if you where in the process of hiring someone for a specific
>> tast I agree completely.
>>
>> I thought we where speaking generally about focus as a programmer...
>
> The question was about staying competitive I think.

Exactly. This has been a real issue for me. For example, around 1980 I
had a nice career going as project leader for several parts of the
kernel of an NCR proprietary operating system, implemented in NCR's
assembly language.

I switched from assembly language to C in the early 1980's.

That move was enabled by time and effort I had spent in evening classes
in the 1970's, studying for a master's degree in CS, including learning
about programming language structure and getting some exposure to
several languages. Suppose instead I had spent that time and effort
getting even better than I was at NCR's assembly language....

Patricia
Roedy Green - 13 Apr 2006 20:27 GMT
> Suppose instead I had spent that time and effort
>getting even better than I was at NCR's assembly language....

I wonder if there are any others here who ever used the NCR "CRAM"
drives a stack of notched magnetic cards. The desired card would drop
from the stack and be swept around to be read then put back on the
stack. This was before the disk drive.. IBM later invented the similar
"Data Cell" which we dubbed the "salad picker" because of its habit of
shredding the little tape strips  it would pluck from a Kodak carousel
like device.

I wrote the device driver in assembler for a similar very mechanical
Univac device made of rubber belts to do OCR of utility bills.  It
could read mark sense or OCR B.  You could direct the bill into
several pockets, but you had to be quick since there was no way to
pause the beast.

I remember the night well when my employer Univac flew me out to the
huge testing facility to first see the beast I had written the code
for. I started a printout on a line printer that was much longer than
I thought would be, and try as I might I could not stop the ruddy
thing.  I eventually stopped  it by stomping my foot in the box of
paper. To my amazement, the code worked first time.  Documentation was
better in those days.

Coding was quite different sort of exercise when you could see the
tapes and disk heads moving.  It was obvious when and where you had a
problem. You could tell by the sound when your buffers were too small.

Just as the blind don't make the best housekeepers, I think today's
disdain for tuning apps, even after they are stable, comes from the
lack of ability to SEE what is happening under the hood. The
experience is not direct enough.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

marcwentink@hotmail.com - 14 Apr 2006 08:54 GMT
Patricia:

> Suppose instead I had spent that time and effort
> getting even better than I was at NCR's assembly language....

Mmm, I am a C++ programmer and I am doing some Java/.NET study, so you
think I am doing a smart thing, if you would look into the glass bol
for the future of software programming? I hope you say yes now..
Patricia Shanahan - 14 Apr 2006 14:25 GMT
> Patricia:
>
[quoted text clipped - 4 lines]
> think I am doing a smart thing, if you would look into the glass bol
> for the future of software programming? I hope you say yes now..

Unfortunately, my crystal ball is stuck on "Things are going to change",
and has been for over 35 years. It doesn't tell me anything useful, like
the direction of the next change. As far as I can tell, the basic choice
I made in the early 1970's, to prepare myself for a lifetime of learning
new languages and ideas, may still be right.

If you are learning for some short-term use, learning Java is fine.
However, for the long term it might be useful to learn at least one
language that is MUCH further from C++, as mind-stretching exercise.

I don't use Algol, Snobol, Cobol, Lisp, or the PDP-15 assembly language,
but I use the skills and mental flexibility, the willingness to take
each language on its own terms, that I learned studying them each time I
need another language.

Patricia
Missaka Wijekoon - 14 Apr 2006 21:20 GMT
>> Patricia:
>>
[quoted text clipped - 4 lines]
>> think I am doing a smart thing, if you would look into the glass bol
>> for the future of software programming? I hope you say yes now..

snip
> If you are learning for some short-term use, learning Java is fine.
> However, for the long term it might be useful to learn at least one
[quoted text clipped - 6 lines]
>
> Patricia

I agree! Learn languages right for the job, environment and the
applications' intended use.  Many programmers like to fit a square peg
in a round hole.  I see people try to write everything in the one
language which is most familiar.  For example,

If you are writing a desktop application intended for use with Windows,
C++ or C# or some .Net technology may be the best fit.

If you need to write a portable, networked XML server, Java might be a
good choice.

If you need to write an extremely high performance, scalable or compute
intensive application, C might be a better choice.

Perl is great for batch processing, short lived, data processing style
applications.

PHP might be best for rapid web development.

And the list goes on and on...

-Missaka
Jon Martin Solaas - 15 Apr 2006 20:32 GMT
> Patricia:
>
[quoted text clipped - 4 lines]
> think I am doing a smart thing, if you would look into the glass bol
> for the future of software programming? I hope you say yes now..

Isn't C++ part of .NET?

Signature

jon martin solaas

The Magpie - 17 Apr 2006 12:31 GMT
> Isn't C++ part of .NET?

No. Silly boy!
Oliver Wong - 17 Apr 2006 15:18 GMT
> Isn't C++ part of .NET?

   Not exactly. See:

http://groups.google.com/group/comp.lang.cobol/msg/f81481a6da8503ec

   - Oliver
marcwentink@hotmail.com - 18 Apr 2006 08:33 GMT
Jon:

> Isn't C++ part of .NET?

Yes and No, see the other link, but the thing is, most code for .NET
will be written in C#, VB.NET. Hence C++ for .NET is just there to
please the old MFC VC++ programmers. And I think it will probably die
as a MicroSoft environment supported máin language. C++ is used for
some open source projects, and a bit with Borland C++ Builder. So if
you would like to specialize in .NET, C# is the best choice, IMHO, not
C++.
The Magpie - 18 Apr 2006 15:46 GMT
> Jon:
>
[quoted text clipped - 7 lines]
> you would like to specialize in .NET, C# is the best choice, IMHO, not
> C++.

This sort of thing really gets my goat! No offense to you, Marc, or to
the other poster with the link.

Facts first: C++, like C original, are nada, zip, zilch, zero, damn-all,
totally, completly and utterly **NOTHING** to do with Microsoft in any
way, shape, form, or anything else whatsover!

What both Marc and the other poster are referring to is that C++ (like
Java, cobol, algol or any other goddamn programming language that you
care to name) *can* be used with .NET if Microsoft bother to put the
hooks into it but that *none* of them "belong" to either Microsoft or
.NET. They are and will always remain *independent* languages that can
be *used* with .NET and that is all. They are not and never will be in
any way "part of .NET".

Why does this bother me? Its because I teach adults and even among the
relatively bright, relatively well-informed among the general public I
hear around 60% who have been conned into seriously *believing*
stupidities like "Microsoft own the internet". I am not joking - there
are that many who believe something so stupid! This is pure marketting
hype from Microsoft and the more we pander to it by not making the clear
distinction between what genuinely *is* from Microsoft and what is not,
the more important Microsoft *appears* to be - without having to bear
any actual responsibility from the products it "claims".
marcwentink@hotmail.com - 19 Apr 2006 08:31 GMT
The Magpie:

> What both Marc and the other poster are referring to is that C++ (like
> Java, cobol, algol or any other goddamn programming language that you
> care to name) *can* be used with .NET if Microsoft bother to put the
> hooks into it

Yes everything you say is true. But since MicroSoft had a large market
share in C++ development with Visual C++, and now is moving his effort
to .NET and C#, a part of the C++ job market is gone. Mainly the MFC
Visual C++ companies will be 'guided' to .NET and C#.

This is not a judgement from me of Microsoft or anything, good or bad
it is how I think the market will develop. And correct me if I am
wrong, and I would love to be corrected in this, but I think that as a
C++ developer, you would nowadays have not that much more job
oppertunities apart from open source and a bit of Borland C++, since,
like I have written, MicroSoft, a big player in the IDE market will put
his effort on C#.

But I you say I am talking nonsense I will be more then happy if you
correct me. Nevertheless if I look at job opertunities in .NET mostly
they ask C# experience. And you try to convince some human resource
girl that C++ experience is just as good, forget it.
Jon Martin Solaas - 15 Apr 2006 20:31 GMT
>>> Of course, if you where in the process of hiring someone for a specific
>>> tast I agree completely.
[quoted text clipped - 17 lines]
>
> Patricia

So you actually weren't trying to have one C-career and one assembly
career going simultaneously? Probably smart move :-)

Signature

jon martin solaas

Roedy Green - 12 Apr 2006 02:57 GMT
On Tue, 11 Apr 2006 18:06:11 +0200, Jon Martin Solaas
<jon.martin.solaas@jahoo.nei> wrote, quoted or indirectly quoted
someone who said :

>But when it comes to competition, on the java arena you'd always have to
>compete with people dedicated to the java platform, and on the C# arena
>you'd always have to compete with people dedicated to C#. Specializing
>on both platforms isn't what I'd recommend

Seems to me as an employer, which I once was, if I had a choice of two
people, the one who know more languages would be the better choice
even if I did not currently use those languages in my shop.

Why?  

1. it shows the person is curious, intelligent, industrious, broad
minded, quick to learn new skills.

2. perhaps something in those languages is a perfect fit for a problem
we are using the wrong tool for.

3. Language bigotry is correlated with other forms of bigotry.  Since
I always had the complete gamut of sexes, religions, sensualities,
national backgrounds working for me, I would prefer to avoid bigots to
maintain harmony in the workplace.

I remember one young Russian immigrant who applied.  I gave him a test
problem to solve.  He did it in Modula, beautifully documented. Even
though I did not use Modula in the shop, I told him he had the job,
but by then he got a higher paying offer.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Jon Martin Solaas - 12 Apr 2006 10:43 GMT
> Seems to me as an employer, which I once was, if I had a choice of two
> people, the one who know more languages would be the better choice
[quoted text clipped - 4 lines]
> 1. it shows the person is curious, intelligent, industrious, broad
> minded, quick to learn new skills.

Wow, all that from claiming knowledge of more than one language? Well,
I'm sure you would consider other things than just the number of
languages, wouldn't you? I'd certainly would hesitate hiring a person
who knew only one single language, but that's not my point. My point is
that it's difficult to stay competitive  if you don't specialize
somehow. Would you hire a person with only general knowledge, and no
special kompetence at all?

Also, there are plenty of opportunities to exercise all the feats you
mention above within one platform. This is not the same as saying a
broad background knowledge of different languages aren't userful, but it
would be even more wrong to claim that specialists lack intelligence,
aren't curious, industious, broad minded and quick learners, if that's
what you're hinting at.

> 2. perhaps something in those languages is a perfect fit for a problem
> we are using the wrong tool for.

Maybe. If you're hiring a person to solve a problem you don't know how
to solve yourself, it seems feasible to look for a person with a broad
skills and a good overview.  But generally I'd say that kind of
competence is hard to sell.

> 3. Language bigotry is correlated with other forms of bigotry.  Since
> I always had the complete gamut of sexes, religions, sensualities,
[quoted text clipped - 5 lines]
> though I did not use Modula in the shop, I told him he had the job,
> but by then he got a higher paying offer.

Well he was perhaps a specialist in algorithms relevant to your domain
or something then? Or is this just an example showing that he got hired
with a narrow skillset when it comes to number of languages known?
Certainly he'd get the job even if he didn't know any of the languages
used in your multilingual shop? I don't get the point, really. Anyway,
if you'd hire him and introduced Modula as yet another tool in your
already overflowing toolbox I'd say you'd be in for some trouble,
facilitating a broad set of different technologies *does* come with a
cost, namely maintenance, both thechnological and intellectual.
Sometimes it's worth the cost, sometimes not. Unless you have a specific
and well defined need to offer solutions on such a diverse platform I'd
say it's not rational. Most business advice I've ever heard is about
keeping a focus, specializing, finding a niche etc. I'm sure one niche
would be collecting knowledge of as many platforms as possible and then
offering advice, but I'm not sure if there's such a large space in that
niche.

Now, please don't read this as an argument for narrowmindedness. I'm
just saying "jack of a reasonable number of trades, master of one" is
better than "jack of all trades, master of none" or something.

Signature

jon martin solaas

Patricia Shanahan - 10 Apr 2006 16:14 GMT
...
>> I'm actually thinking that I should know both C# and Java to stay
>> competitive in this world.
>
> Jack of all trades master of none ...

This at least suggests that one should learn just one programming
language, and focus on expertise in that language.

I've seen people who did that for several years, and then hit a
situation in which that language was just not the right tool for the
job. Some of them found it harder to learn another language than the
typical beginner learning their first one.

The problem was that they had completely absorbed the ways of thinking
appropriate to that language as the only right way to think about
programming. They could not see how to use any features in the new
language that were not present in the old language, so they struggled
with a crippled subset of the new language, containing only those parts
of it that matched the old.

For this reason, I strongly advise new programmers to learn at least a
second language as soon as possible. However, C# and Java are a bit too
close together. It might be better to learn an assembly language, or
Smalltalk, or Forth, or Lisp. Anything that requires different mental
models of programming from Java.

As a practical matter, languages change too fast to depend on learning
any one language. From new CS student in late teens learning language #1
to being ready to retire in late 60's spans 50 years. How many languages
have been really good career choices for 50 years? Even Fortran, which
has at least kept the same name for that long, is a very different
language now from what it was in the mid-1950s.

Learning another programming language is both a useful skill and a
mind-stretching mental exercise.

I like to think of myself as a master programmer, who happens to have
done some programming in Java, rather than a Java programmer.

Patricia
Stefan Ram - 10 Apr 2006 16:29 GMT
>I've seen people who did that for several years, and then hit a
>situation in which that language was just not the right tool for the
>job. (...)
>For this reason, I strongly advise new programmers to learn at
>least a second language as soon as possible.

 If the abovementioned people knows a language, for example,
 Java so well and language Java is »just not the right tool«
 but, for example, Tcl/Tk is needed, they might as well try to
 find someone else to do this task (someone experienced in
 Tcl/Tk) and concentrate on doing the things well they can do
 well, i.e., search another task, were they can continue to
 apply their Java skills.

 For example, when a family doctor finds that one of his
 patients needs surgery, he often will not take this as a
 chance to learn and practice surgery, but pass this patient on
 to a surgeon.
Remon van Vliet - 10 Apr 2006 18:07 GMT
>>I've seen people who did that for several years, and then hit a
>>situation in which that language was just not the right tool for the
[quoted text clipped - 14 lines]
>  chance to learn and practice surgery, but pass this patient on
>  to a surgeon.

A valid way of reasoning, but this doesnt always apply to developers i dont
think, and i agree with Patricia's point here. The benefit of learning more
than one language isnt necessarily being more flexible (although that's a
nice bonus) but also to pick up new ways of thinking, or different ways of
solving problems that are quite specific to a certain language. This (i
assume) is why examples such as ANSI C or assembly language are given as an
alternative. As a Java developer you'll automatically get quite proficient
in proper OO design, use design patterns etc. etc. As an assembly language
programmer for example, you'll automatically pick up optimization techniques
and a thorough understanding of how certain algorithms and data structures
work (because you often have to do them from scratch) and their performance
impacts or implementation pitfalls. This kind of knowledge will help the
quality of the code you produce, regardless of the language.

As a practical example, a lot of beginning Java developers could not give
you an answer if you ask them when it's better to use LinkedList and when
it's better to use ArrayList etc. while the average ANSI C developer can
probably give you a reasonably accurate answer just by looking at the class
names, because they probably had to manually implement linked lists and
other collections at some point. I'm sure there are better examples to prove
my point but i think the general idea is clear; the more languages you've
worked with that require a different set of skills, the more complete you
will be as a developer. Certain languages simply force a certain way of
thinking or make you focus on certain problem area, be it performace, OO
design, code readability etc. All that said i think it shouldnt be made a
bigger issue than it really is. Someone that never did anything but Java
isnt by default a less complete developer than someone who knows 10
languages. By the way, C# and Java are almost the same so there isnt any
significant gain in learning both. Just learn the one most relevant for your
career plans i guess.

My $0.02
Roedy Green - 10 Apr 2006 19:51 GMT
On Mon, 10 Apr 2006 19:07:46 +0200, "Remon van Vliet"
<remon@exmachina.nl> wrote, quoted or indirectly quoted someone who
said :

> I'm sure there are better examples to prove
>my point but i think the general idea is clear;

One of the most obvious ones is programming in a high level language
will lead you to create better-structured assembler code.  Though,
dealing with spaghetti assembler is not quite the problem it once was.

If you wrote in C after exposure to OO, chances are you will organize
your structs and methods in a much more coherent way.

After exposure to Eiffel, you will be much more careful in documenting
the pre and postconditions of a method, and more inclined to pepper
with asserts.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Stefan Ram - 11 Apr 2006 02:20 GMT
>After exposure to Eiffel, you will be much more careful in
>documenting the pre and postconditions of a method, and more
>inclined to pepper with asserts.

 So you might send a Java programmer to an Eiffel training for
 two weeks. One the other hand, you might also send him to
 a training »Design by contract in Java« for two weeks. Why
 should the Eiffel training be more succesful than the
 »Design by contract in Java« training?
Stefan Ram - 11 Apr 2006 02:49 GMT
>After exposure to Eiffel, you will be much more careful in
>documenting the pre and postconditions of a method, and more
>inclined to pepper with asserts.

 So you might send a Java programmer to an Eiffel training for
 two weeks. One the other hand, you might also send him to
 a training »Design by contract in Java« for two weeks.
 Why should the Eiffel training be more successful than the
 »Design by contract in Java« training?
Roedy Green - 11 Apr 2006 05:00 GMT
>  So you might send a Java programmer to an Eiffel training for
>  two weeks. One the other hand, you might also send him to
>  a training »Design by contract in Java« for two weeks.
>  Why should the Eiffel training be more successful than the
>  »Design by contract in Java« training?

They would both be good for the soul. However, I suspect the Eiffel
training would do more to loosen up frozen thinking, getting you
entirely out of your ruts for a while.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Patricia Shanahan - 11 Apr 2006 05:08 GMT
>>After exposure to Eiffel, you will be much more careful in
>>documenting the pre and postconditions of a method, and more
[quoted text clipped - 5 lines]
>   Why should the Eiffel training be more successful than the
>   »Design by contract in Java« training?

Either might be good, but note that there are two distinct set of
interests. It may not be in the best interests of an employer with a
single-language business to encourage employees to learn more languages.

It is in the interests of anyone who wants a long term programming
career to make sure they know how to learn languages. Is there any way
to do that without practice?

Patricia
Timo Stamm - 10 Apr 2006 23:46 GMT
Remon van Vliet schrieb:
> the more languages you've worked with that require a different set of
> skills, the more complete you will be as a developer.

One the other hand, it is not unlikely that you will find Java very
boring after learning too many other languages.

So if you /have/ to work with java, maybe you are better off not knowing
the alternatives ;)

Timo
Stefan Ram - 11 Apr 2006 02:45 GMT
>As a Java developer you'll automatically get quite proficient
>in proper OO design,

 I wonder how you are supposed to get this proficiency when in
 Java neither ints nor blocks are objects? Java is an
 object-oriented language insofar as MySQL is a relational
 database. (I.e., according to the definitions of the ones who
 invented the terms [Kay and Codd, respectively] they are not).

>As a practical example, a lot of beginning Java developers
>could not give you an answer if you ask them when it's better
[quoted text clipped - 3 lines]
>because they probably had to manually implement linked lists
>and other collections at some point.

 So, assume you have a bunch of such programmers in your
 company and now they are to be send to a two-week training
 in order to do something about the deficiency you mentioned.
 Which of the following classes do you choose?

   - ANSI C programming for Java developers
     (Introduction to ANSI C and especially those features
     of the languages that a Java programmer will not know)

   - The fine print of Java Collections for Java developers
     (Treats many details about the collections that might
     have been missed on the first view)

>I'm sure there are better examples to prove my point

 The most recent ANSI C standard is from 1989, AFAIK.
 The current standard is ISO/IEC 9899:1999 (E), which also
 might be available from INCITS. So »ISO C« nowadays might
 be more appropriate a term than »ANSI C«.

>Someone that never did anything but Java isnt by default a less
>complete developer than someone who knows 10 languages.

 Depends on the point of view, what criteria you choose.
 Sometimes when a company delievers some kind of standard
 business software that is somewhat customized for each client
 (adding some fields to forms and SQL-tables), a programmer
 with too much creativity and knowledge of other languages
 might be less effective, when all this is not required by the
 current task. Sometimes the company does now want »complete
 programmers«, but just programmers fitting the current tasks.

 See also (somewhat contradicting my point, but worth to be
 mentioned nonetheless):

http://www.norvig.com/21-days.html

 And a final quotation:

     A good C hacker will use Lisp when possible.
   Rahul Jain
Stefan Ram - 11 Apr 2006 02:58 GMT
>As a Java developer you'll automatically get quite proficient
>in proper OO design,

 I wonder how you are supposed to get this proficiency when in
 Java neither ints nor blocks are objects? Java is an
 object-oriented language insofar as MySQL is a relational
 database. (I.e., according to the definitions of the ones who
 invented the terms [Kay and Codd, respectively] they are not).

>As a practical example, a lot of beginning Java developers
>could not give you an answer if you ask them when it's better
[quoted text clipped - 3 lines]
>because they probably had to manually implement linked lists
>and other collections at some point.

 So, assume you have a bunch of such programmers in your
 company and now they are to be send to a two-week training
 in order to do something about the deficiency you mentioned.
 Which of the following classes do you choose?

   - ANSI C programming for Java developers
     (Introduction to ANSI C and especially those features
     of the languages that a Java programmer will not know)

   - The fine print of Java Collections for Java developers
     (Treats many details about the collections that might
     have been missed on the first view)

>I'm sure there are better examples to prove my point

 The most recent ANSI C standard is from 1989, AFAIK.
 The current standard is ISO/IEC 9899:1999 (E), which also
 might be available from INCITS. So »ISO C« nowadays might
 be more appropriate a term than »ANSI C«.

>Someone that never did anything but Java isnt by default a less
>complete developer than someone who knows 10 languages.

 Depends on the point of view, what criteria you choose.
 Sometimes when a company delievers some kind of standard
 business software that is somewhat customized for each client
 (adding some fields to forms and SQL-tables), a programmer
 with too much creativity and knowledge of other languages
 might be less effective, when all this is not required by the
 current task. Sometimes the company does not want »complete
 programmers«, but just programmers fitting the current tasks.

 See also (somewhat contradicting my point, but worth to be
 mentioned nonetheless):

http://www.norvig.com/21-days.html
Remon van Vliet - 11 Apr 2006 08:51 GMT
>>As a Java developer you'll automatically get quite proficient
>>in proper OO design,
[quoted text clipped - 49 lines]
>
> http://www.norvig.com/21-days.html

There's a counter argument for any point of view if you try hard enough. I
have a background in x86 and ARM Basic (i know, i know), assembly, C and a
few Pascal dialects before starting with Java, and although i cant point out
bits of code and say "look, this is where i used my C experience" i'm pretty
sure i picked up some skills relatively unique to a certain language and use
them in my Java code. Also, starting with a brand new language tends to make
it more fun, and when it's more fun you'll be more hapy to spend time on
learning it as well as be more efficient at picking up new skills.

But like i said, it's not set in stone, some people wont enjoy learning more
than one language at all and rather just go to the courses you mentioned and
get it over with. Just like some people never touch or do anything Java
related as soon as they get home while others browse newsgroups and do hobby
projects whenever they have a spare few minutes. Different solutions for
different people, but i personally support the more languages = good point
of view..

Chris Uppal - 11 Apr 2006 09:07 GMT
>   So, assume you have a bunch of such programmers in your
>   company and now they are to be send to a two-week training
>   in order to do something about the deficiency you mentioned.

I don't think you'll get anywhere in this analysis if you focus on training
courses (for languages or for anything else).  The point of a training course
is that its a /project management/ tool -- nothing more.  The only way to learn
a language or most anything else (OO programming for instance) is by
using/doing it.  Even a two week course (at least twice as long as is typical
in my experience) is just a way that a project manager can attempt to shorten
people's start-up times, and so reduce the overall project duration.  And for
that, they can work well (if properly scheduled).  What they don't do is teach
the language (or whatever), they just put people in a position where they /can/
learn[*] the language.

([*] Many people, of course, have no need of formal training courses in order
to attain that starting position.)

Would a Java programmer add anything to his/her overall mastery of programming
with a training course in C, IA32 Assembler, Scheme, or Eiffel ?  Not a chance.
Would they gain anything from a year of evenings and weekends spent using
language X for their own projects ?  Almost certainly.

   -- chris
marcwentink@hotmail.com - 11 Apr 2006 10:08 GMT
Remon van Vliet:

> By the way, C# and Java are almost the same so there isnt any
> significant gain in learning both. Just learn the one most relevant for your
> career plans i guess.

But that is only in the view of understanding the art of programming.
If you think in chances to get a job, earn money, it can be useful to
know two major languages, just because you double your possibilities in
the job market.
Mitch - 11 Apr 2006 14:07 GMT
> Remon van Vliet:
>
[quoted text clipped - 6 lines]
> know two major languages, just because you double your possibilities in
> the job market.

I have to second this, though it also emphasises the point that it's all
down to personal opinion.

I've been looking for jobs in programming of late and there are a number
of positions that ask for "Experience in C++/Java" and I honestly
believe I'd stand a better chance of getting that job if I were able to
say 'both'.

Equally though I think I will learn a second programming language not
only to get more jobs (After all, to get even remotely acceptable at
programming you need a few years practice - I don't want to wait that
long unemployed!) but ii will learn a second and perhaps third because
at the minute I think learning Java is fun, but in a few years time I'll
probably get bored and I honestly believe you can only get *good* at
something if you truly enjoy it.

I'm sure it will better my overall programming abilities as well, but I
wouldn't let that stop me ;)
Gordon Beaton - 11 Apr 2006 10:37 GMT
> Someone that never did anything but Java isnt by default a less
> complete developer than someone who knows 10 languages.

It is commonly accepted that your understanding of your mother tongue
will improve with every foreign language you learn.

Similarly (whether by default or not), I believe that the developer
who knows other languages will always be a more complete developer
than the one who knows only Java, because he will have a larger set of
experiences to draw from when choosing a solution to almost every
problem. He will have a better understanding of the abstractions
behind the languages, and be more aware of their respective strengths
and weaknesses.

/gordon

Signature

[  do not email me copies of your followups  ]
g o r d o n + n e w s @  b a l d e r 1 3 . s e

Monique Y. Mudama - 10 Apr 2006 19:45 GMT
>   If the abovementioned people knows a language, for example, Java
>   so well and language Java is »just not the right tool« but, for
[quoted text clipped - 7 lines]
>   needs surgery, he often will not take this as a chance to learn
>   and practice surgery, but pass this patient on to a surgeon.

Yes, but experienced car mechanics who need to change the oil in their
motorcycles are more likely to do it themselves than to pay someone.

Signature

monique

Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html

Jon Martin Solaas - 11 Apr 2006 17:30 GMT
> ...
>>> I'm actually thinking that I should know both C# and Java to stay
[quoted text clipped - 4 lines]
> This at least suggests that one should learn just one programming
> language, and focus on expertise in that language.

Mnnno. Agree that's one interpretation.  But the question was about
staying competitive in the market (event though it came from a college
student). I believe it'd be very resource consuming to stay competitive
on two arenas; .net and j2ee (really this isn't about languages but
about platforms). You'll always find yourself competing with someone
that has dedicated themselves totally to the platform at hand (and it's
absolutely possible to do that without totally neglecting other
languages, programming paradigms etc.)

> I've seen people who did that for several years, and then hit a
> situation in which that language was just not the right tool for the
[quoted text clipped - 10 lines]
> For this reason, I strongly advise new programmers to learn at least a
> second language as soon as possible.

Agree completely. Better go for one of C# or Java, and study something
completely different to get some perspective. Java for instance is
pretty verbose, how about looking into Lisp?

> However, C# and Java are a bit too
> close together. It might be better to learn an assembly language, or
> Smalltalk, or Forth, or Lisp. Anything that requires different mental
> models of programming from Java.

Definitely.

> As a practical matter, languages change too fast to depend on learning
> any one language.

Disagree, most languages evolve pretty slow. PHP is one example of the
opposite, trying to keep up with features in Java/C#-like languages.

> From new CS student in late teens learning language #1
> to being ready to retire in late 60's spans 50 years. How many languages
> have been really good career choices for 50 years? Even Fortran, which
> has at least kept the same name for that long, is a very different
> language now from what it was in the mid-1950s.

Nobody will ever try to replace old COBOL programs running in the
financial sphere. Java's been adopted there too, so ... well. But even
more important; do OP really want to spend the rest of his life programming?

> Learning another programming language is both a useful skill and a
> mind-stretching mental exercise.

Yes, but trying to dig deep into two platforms simultaneously isn't what
 I'd recommend.

> I like to think of myself as a master programmer, who happens to have
> done some programming in Java, rather than a Java programmer.

Me too, but I'd probably hire the Java programmer (they're only *that*
bright on the other side of the desk, you know :-)
Roedy Green - 10 Apr 2006 17:47 GMT
>I'm a recent college grad and have invested quite a bit of time into
>learning Java. I just got a job as a programmer doing Java. However, I know
>of Microsoft's .NET Framework is becoming increasingly popular. Is that
>going to take over Java? What is everyone's take on the future of Java? I'm
>actually thinking that I should know both C# and Java to stay competitive
>in this world. Any advice or ideas what will happen with Java?

.NET is for a few hardware platforms. Java is for a huge range of
platforms. Obviously any server system that gets too successful will
find itself retooling without .NET to either:

1. use a large farm of cheaper servers
2. use bigger servers.
3. use specialised low power servers (ever more important in the
coming years).

Given the perpetual optimism of the human breast, anyone who plans to
succeed big would avoid .NET from the start.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Oliver Wong - 10 Apr 2006 21:38 GMT
>>I'm a recent college grad and have invested quite a bit of time into
>>learning Java. I just got a job as a programmer doing Java. However, I
[quoted text clipped - 16 lines]
> Given the perpetual optimism of the human breast, anyone who plans to
> succeed big would avoid .NET from the start.

   This is unless Mono.NET really takes off, or at least, finds a niche
among *nix hackers/administrators/developers (perhaps not unlike Perl?)

   - Oliver
Kenneth P. Turvey - 11 Apr 2006 01:49 GMT
>     This is unless Mono.NET really takes off, or at least, finds a niche
> among *nix hackers/administrators/developers (perhaps not unlike Perl?)

I've never understood the point of Mono.  The need it fills is already
filled by Java and it will always be playing catchup with the Windows
implementation.  .Net wouldn't even exist if Microsoft could have changed
Java into a proprietary language.  

- --
Kenneth P. Turvey <kt-usenet@squeakydolphin.com>

XMPP  IM: kpturvey@jabber.org
Yahoo IM: kpturvey2
David N. Welton - 11 Apr 2006 07:20 GMT
>>>    This is unless Mono.NET really takes off, or at least, finds a niche
>>>among *nix hackers/administrators/developers (perhaps not unlike Perl?)

> I've never understood the point of Mono.  The need it fills is already
> filled by Java

You can't ship Sun's Java with most Linux distributions who care about
free software (that is, the important ones like Debian and Fedora), and
open source Java implementations weren't there yet when Mono started.  I
don't know exactly why they decided to do Mono instead of putting their
efforts into free Java, but in any case, in not much time, they've done
an exceptional job.

Signature

David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

Kenneth P. Turvey - 13 Apr 2006 01:38 GMT
> You can't ship Sun's Java with most Linux distributions who care about
> free software (that is, the important ones like Debian and Fedora), and
> open source Java implementations weren't there yet when Mono started.  

OK, so they chose to implement a platform where they will never be allowed
to reach 100% compatibility, or even close.

> I
> don't know exactly why they decided to do Mono instead of putting their
> efforts into free Java, but in any case, in not much time, they've done an
> exceptional job.

That may be, but it is a poor choice of what to spend your time on.  In
many ways it is like the Wine project, but with Wine one can see a point
to being a decade behind.  If Mono ever gets popular, Microsoft will
simply crush it by extension of it's proprietary language, possibly with
patents.  Wine has the same problem, but Wine doesn't have to be popular
to be useful.  Mono really does.  Why choose a platform that nobody else
is using unless it has significant advantages over the competing
platforms?  Mono doesn't.

- --
Kenneth P. Turvey <kt-usenet@squeakydolphin.com>

XMPP  IM: kpturvey@jabber.org
Yahoo IM: kpturvey2
David N. Welton - 13 Apr 2006 08:26 GMT
>>>You can't ship Sun's Java with most Linux distributions who care about
>>>free software (that is, the important ones like Debian and Fedora), and
>>>open source Java implementations weren't there yet when Mono started.  

> OK, so they chose to implement a platform where they will never be allowed
> to reach 100% compatibility, or even close.

"The point" says a friend of mine who works on the Mono core, isn't
necessarily to have something compatible with Microsoft's
implementation, but to have a "managed runtime" with which to write code
on Linux.  Sun's Java doesn't offer that.

>>>I
>>>don't know exactly why they decided to do Mono instead of putting their
>>>efforts into free Java, but in any case, in not much time, they've done an
>>>exceptional job.

> That may be, but it is a poor choice of what to spend your time on.  In
> many ways it is like the Wine project, but with Wine one can see a point
[quoted text clipped - 4 lines]
> is using unless it has significant advantages over the competing
> platforms?  Mono doesn't.

See above for why it's not like Wine - you can do all kinds of useful
things in Mono without considering Windows in the slightest.  Whether it
was a wise decision or not, time will tell, I suppose.  Personally, I
think Sun lost a big opportunity by not open sourceing Java, but time
will tell.

Consider also that the "crush it with patents" argument might apply to
Sun and open source Java as well.  Sun certainly has them, but so far
has chosen not to utilize them... of course, open source Java
implementations aren't that widely used yet either.

Ciao,
Signature

David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

Oliver Wong - 13 Apr 2006 15:56 GMT
>>>>You can't ship Sun's Java with most Linux distributions who care about
>>>>free software (that is, the important ones like Debian and Fedora), and
[quoted text clipped - 8 lines]
> implementation, but to have a "managed runtime" with which to write code
> on Linux.  Sun's Java doesn't offer that.

   I'm not a lawyer, but...

   Microsft's .NET API library has some legal restrictions on it. Sun's
J2SE API library has some legal restrictions on it. People have implemented
a "substitute API" for .NET (which AFAIK doesn't have a special name for
it). People have implemented a "substitue API" for J2SE called GNU
Classpath.

   Assuming "Managed runtime" means "Mainly garbage collection and pointer
babysitting, plus a few other minor features", you can get from using Java
on Linux too (via an open source compiler/virtual machine like the Sable
project).

   One reason I appreciate Mono is that I can understand C# code a lot more
easily than C++ or C code. So if open source developers post C# snippets,
it's easy for me to convert that to Java code. Not so easy for C++ or C
code. The more people developing code in languages I can understand, the
better for me.

>>>>I
>>>>don't know exactly why they decided to do Mono instead of putting their
[quoted text clipped - 21 lines]
> has chosen not to utilize them... of course, open source Java
> implementations aren't that widely used yet either.

   Again, I'm not a lawyer, but I think the developers of the Mono project
and the GNU Classpath project have taken some efforts to ensure that they
are "relatively safe" from legal problems. You're not allowed to work on
those projects if you've seen the source code for their proprietary
counterparts, for example.

   - Oliver
David N. Welton - 13 Apr 2006 20:13 GMT
>> Consider also that the "crush it with patents" argument might apply to
>> Sun and open source Java as well.  Sun certainly has them, but so far
>> has chosen not to utilize them... of course, open source Java
>> implementations aren't that widely used yet either.

>    Again, I'm not a lawyer, but I think the developers of the Mono
> project and the GNU Classpath project have taken some efforts to ensure
> that they are "relatively safe" from legal problems. You're not allowed
> to work on those projects if you've seen the source code for their
> proprietary counterparts, for example.

Sure - the point is that working on an open source Java instead of Mono
doesn't magically make you any safer from mega-corp patent threats.

Your only real protection is the massive publicity hit that the
mega-corp would take if they were seen to be beating up on the little
open source guy.

Signature

David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

joseph_daniel_zukiger@yahoo.com - 14 Apr 2006 02:11 GMT
> >>>    This is unless Mono.NET really takes off, or at least, finds a niche
> >>>among *nix hackers/administrators/developers (perhaps not unlike Perl?)
[quoted text clipped - 4 lines]
> You can't ship Sun's Java with most Linux distributions who care about
> free software (that is, the important ones like Debian and Fedora),

So?

If you don't know how to download and install Sun's Java, you're going
to have a really hard time when it comes to using the various free
classes available.

Oh. So you're saying that getting Mono is someday going to be as easy
as getting .net on MSWxxx?

8-/

> and
> open source Java implementations weren't there yet when Mono started.  I
[quoted text clipped - 8 lines]
> Linux, Open Source Consulting
> - http://www.dedasys.com/
David N. Welton - 14 Apr 2006 08:04 GMT
>>>I've never understood the point of Mono.  The need it fills is already
>>>filled by Java
>>
>>You can't ship Sun's Java with most Linux distributions who care about
>>free software (that is, the important ones like Debian and Fedora),

> So?

If it can't/doesn't ship by default, that makes it a pretty poor
candidate for  coding system/desktop utilities, doesn't it?

> If you don't know how to download and install Sun's Java, you're going
> to have a really hard time when it comes to using the various free
> classes available.

> Oh. So you're saying that getting Mono is someday going to be as easy
> as getting .net on MSWxxx?

Right now, it ships with Debian, Ubuntu, and now Fedora, so, yes.

It will be interesting, with Redhat having bought JBoss, what that will
mean in terms of their free java efforts.  They've been one of the major
backers of classpath and gcj to date.

Signature

David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/

jvsoft.org@gmail.com - 12 Apr 2006 09:11 GMT
It's  hard to say what is the future of java.
There have so many techology,we only have  time to master small of them
kevin - 12 Apr 2006 15:01 GMT
.NET is Java's evil twin in some regards... good twin in others. .NET
is a lot better about being a self-contained useful framework, but its
schema often makes you do really stupid and repetative stuff to do
basic things. Overall, .NET is a freaking PAIN to deal with, but I must
say, in my experience as a web developer, I've had a lot more people
want .NET work done than Java when people are wed to a specific
implementation (either by the existence of previous code or arbitrary
decision).
Roedy Green - 12 Apr 2006 19:18 GMT
>NET work done than Java when people are wed to a specific
>implementation

You'd think by now people would be keen on flexibility.  You never
know what platform or methodology is going to take off, with the money
going to develop spur its growth all out of natural proportion. You
want to be poised to catch that wave.  If you have chained yourself to
one platform, you could be left behind.

That wave may well come not from Redmond or Silicon Valley but from
Japan, India or China, and hence catch the pundits napping.

This also applies to progammers. It is good to keep yourself limber
rather than succumbing to arthritis of knowing only arcane details of
one particular library package and one particular language.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Andy Dingley - 15 Apr 2006 16:36 GMT
>I know  of Microsoft's .NET Framework is becoming increasingly popular.

Where did you read that? MSDN?

"Becoming popular" is a long way from "All other options vanish".

Now if you're a Coldfusion or even Perl wizard, then it's time to worry.
But PHP will be around for a long time yet in the shallow end of the
"well it sort of works" sites and Java is where the real work is
happening.

Go and work in 3 web shops for a bit. Gain a feel for the overall level
of _competence_ between the typical PHP, .Net and Java shop. Now show me
a PHP shop were even the concept of design patterns or Agile has
registered, let alone it just being an accepted part of day-to-day work.
You can do pretty much anything in anything, if you sweat hard enough
over it. But for myself, I'd rather play with the smart kids.


Free Magazines

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

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation Week