Java Forum / General / April 2006
Future of Java
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 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 ... |
|