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 / March 2008

Tip: Looking for answers? Try searching our database.

Who uses Java?

Thread view: 
Jon Harrop - 09 Mar 2008 23:54 GMT
I have heard many times before that Java is the world's most common
programming language. I checked this out and it certainly seems to be true:
there are a huge number of Java programmers out there. However, I have no
idea what exactly they build with Java. The only software I have ever used
that is written in Java is (to the best of my knowledge) OpenOffice, Tribal
Trouble and Eclipse. And I only used Eclipse to develop Java code...

I have one friend who is a bioinformatician and uses Java exclusively. I met
another friend recently and he corroborated my view, saying that he didn't
know anyone who used Java and had never come across an employer who wanted
a Java programmer (he is currently looking at jobs in quantitative finance
but his recent background is in web analytics).

So where is Java used in industry?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Peter Duniho - 10 Mar 2008 00:14 GMT
> [...]
> So where is Java used in industry?

Just a warning to would-be respondents to this post:

My impression of Harrop is one of a religious follower of the F# language  
and borderline troll.  Any regular in this newsgroup already knows the  
widespread use of Java, and it's my opinion, based on observation of  
Harrop's behavior in the C# newsgroup, that he's not genuinely interested  
in any true answer to his question.  Instead, this will likely devolve  
into some attempt to indict Java as not being appropriate or useful,  
proposing F# as the "right" language.

I recommend spending at least a little time with Google Groups reviewing  
his past posts before you jump in to answer his question here.  If after  
that, you still feel he's got a serious, worthwhile question, by all means  
reply in kind.

Pete
Karl - 10 Mar 2008 01:23 GMT
>> [...]
>> So where is Java used in industry?
[quoted text clipped - 13 lines]
> that, you still feel he's got a serious, worthwhile question, by all means
> reply in kind.

F#? Now that's a new one on me. We certainly have a plethora of ways to
program computers, eh? Having professionally developed in ASM, C, C++, Java
and C#, I must say Java is my personal favorite, but that's just me. I have
my reasons, but they might not be appropriate for all applications.

One language seems to become dominant every few years, but it really doesn't
matter what anyone says. It usually happens organically, and there isn't
anything anyone can do about it.
Jon Harrop - 10 Mar 2008 03:10 GMT
> F#? Now that's a new one on me. We certainly have a plethora of ways to
> program computers, eh? Having professionally developed in ASM, C, C++,
[quoted text clipped - 4 lines]
> doesn't matter what anyone says. It usually happens organically, and there
> isn't anything anyone can do about it.

F# is largely about interactive programming (like MATLAB), native interop to
Microsoft products via .NET (like Excel) and a very high-level programming
language (first-class lexical closures, pattern matching over algebraic
datatypes and so on). Technical users are a primary market and they
conventionally use Fortran/C and MATLAB/Mathematica rather than Java.

I used to use C++ and Mathematica for technical computing. Now I'm writing
software for technical users in OCaml, C# and F#. I keep toying with the
idea of diversifying into Java.

My only direct exposure to Java has been writing OCaml code to generate
100kLOC of (unidiomatic) Java bindings to XenServer a couple of years ago,
so that Java programmers could use the product. I did try to get into Java
programming then but found it extremely difficult.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Jeff Higgins - 10 Mar 2008 00:18 GMT
> I have heard many times before that Java is the world's most common
> programming language. I checked this out and it certainly seems to be
[quoted text clipped - 13 lines]
>
> So where is Java used in industry?

Will you reiterate your academic credentials?
Jon Harrop - 10 Mar 2008 01:05 GMT
> Will you reiterate your academic credentials?

BA, MA, MSci, PhD in natural sciences (physics and chemistry) from the
University of Cambridge.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Arne Vajhøj - 10 Mar 2008 00:45 GMT
> I have heard many times before that Java is the world's most common
> programming language. I checked this out and it certainly seems to be true:
[quoted text clipped - 10 lines]
>
> So where is Java used in industry?

www.dice.com

search on Java and start reading !

Arne
Jon Harrop - 10 Mar 2008 01:20 GMT
> www.dice.com
>
> search on Java and start reading !

Thanks for the link.

Just ploughing through a few of these they all seem to be in the US. Is that
representative of Java or just of this website? Does Java have a higher
market share of languages in the US than it does in Europe?

There are lots of foreign keywords: JSF, EJB, Struts, JSP, RDBMS, ESRI
GIS/ArcIMS, ArcSDE, JDBC, Spring, Hibernate, iSeries...

I get the impression that many are database and XML related and few are GUI
related. That surprises me: I thought cross-platform GUIs were a major
selling point of Java.

Has anyone collated overall demographics on who programs in Java, where and
what sorts of programs they write?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Joshua Cranmer - 10 Mar 2008 01:36 GMT
> There are lots of foreign keywords: JSF, EJB, Struts, JSP, RDBMS, ESRI
> GIS/ArcIMS, ArcSDE, JDBC, Spring, Hibernate, iSeries...

Wow. You really don't know anything about Java, do you?

> I get the impression that many are database and XML related and few are GUI
> related. That surprises me: I thought cross-platform GUIs were a major
> selling point of Java.

Try calling ESRI GIS not GUI related. If you don't know, GIS software is
heavily used in... just about every environmental science field and
every civil planner's office?

Signature

Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth

Arne Vajhøj - 10 Mar 2008 01:44 GMT
>> www.dice.com
>>
[quoted text clipped - 4 lines]
> Just ploughing through a few of these they all seem to be in the US. Is that
> representative of Java or just of this website?

It is a US job site, so surprisingly it has only US jobs.

You will need to find the similar job sites for other countries.

I can give you one for Denmark www.itjobworld.dk - but it need someone
that knows the country to know what the right web site for IT jobs
are.

>                                                 Does Java have a higher
> market share of languages in the US than it does in Europe?

I don't think so.

I would expect countries with many small companies to use a bit less
Java than countries with fewer big companies though.

> There are lots of foreign keywords: JSF, EJB, Struts, JSP, RDBMS, ESRI
> GIS/ArcIMS, ArcSDE, JDBC, Spring, Hibernate, iSeries...

You can look them up in Wikipedia. It is basically either standards
or products with some relevance to the Java world.

> I get the impression that many are database and XML related and few are GUI
> related. That surprises me: I thought cross-platform GUIs were a major
> selling point of Java.

Most Java GUI's are web GUI's.

Desktop GUI apps are made (the keywords are: AWT, Swing and SWT), but
web GUI's are more used.

Arne
Jon Harrop - 10 Mar 2008 12:34 GMT
>> Just ploughing through a few of these they all seem to be in the US. Is
>> that representative of Java or just of this website?
>
> It is a US job site, so surprisingly it has only US jobs.

Ah, ok.

>>                                                 Does Java have a higher
>> market share of languages in the US than it does in Europe?
[quoted text clipped - 3 lines]
> I would expect countries with many small companies to use a bit less
> Java than countries with fewer big companies though.

I see. So Java is used predominantly in large companies for database work
and (guessing) intranet web services. Presumably that might be anything
from software to run vets practices to airline ticket reservation systems
and so forth?

>> There are lots of foreign keywords: JSF, EJB, Struts, JSP, RDBMS, ESRI
>> GIS/ArcIMS, ArcSDE, JDBC, Spring, Hibernate, iSeries...
>
> You can look them up in Wikipedia. It is basically either standards
> or products with some relevance to the Java world.

Ok.

>> I get the impression that many are database and XML related and few are
>> GUI related. That surprises me: I thought cross-platform GUIs were a
>> major selling point of Java.
>
> Most Java GUI's are web GUI's.

I see.

> Desktop GUI apps are made (the keywords are: AWT, Swing and SWT), but
> web GUI's are more used.

What are the relevant keywords for web GUIs?

Many thanks,
Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

motosauro - 10 Mar 2008 14:01 GMT
> > Desktop GUI apps are made (the keywords are: AWT, Swing and SWT), but
> > web GUI's are more used.
[quoted text clipped - 4 lines]
> --
> Dr Jon D Harrop, Flying Frog Consultancy Ltd.http://www.ffconsultancy.com/products/?u

jsp, jsf
Daniel Pitts - 10 Mar 2008 16:14 GMT
>>> Just ploughing through a few of these they all seem to be in the US. Is
>>> that representative of Java or just of this website?
[quoted text clipped - 13 lines]
> from software to run vets practices to airline ticket reservation systems
> and so forth?

The company I work for uses it for the externally visible, high-traffic,
highly-dynamic web sites. Also, we use Solr as a common back-end
technology, which is a Search Engine implemented in Java.

To put some numbers in it, our front page along gets gets well over 200
million hits a day.

Signature

Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>

Mark Space - 10 Mar 2008 19:12 GMT
> I see. So Java is used predominantly in large companies for database work
> and (guessing) intranet web services. Presumably that might be anything
> from software to run vets practices to airline ticket reservation systems
> and so forth?

I think around 90% of all computing is large companies with database
work.  It doesn't matter if you are programming Cobol, BASIC, C, C++,
Java, C# or what.  That's where (approximately) 90% of the jobs are.  By
comparison, everything else is a niche application, with the possible
exception of Microsoft OS and desktop applications.

Besides large companies and their databases, I've seen Java used for
"small-shop desktop applications."  That is, a small shop of 1 to 5
developers, who want to deliver a desktop application to an end user.
Here's one example:

http://www.gokgs.com/

(See their download link.)

In this space, I think Java competes with Python, TCL/TK, Visual Basic,
etc. and other "rapid prototyping" languages.  It's the relatively fast
design work, coupled with an easy delivery mechanism (JWS) that make
Java attractive here.  Java is also a much more rigorous language than
other rapid prototyping languages (that I have tried), which make it a
good choice for an application that will transition to a long
maintenance phase.

Java also seems popular for some embedded applications, especially on
phones.

Personally, I think it's this combination of wide availability, faster
start-up, and better maintainability that make Java popular.
Lew - 11 Mar 2008 04:28 GMT
> I think around 90% of all computing is large companies with database
> work.  It doesn't matter if you are programming Cobol, BASIC, C, C++,
> Java, C# or what.  That's where (approximately) 90% of the jobs are.  By
> comparison, everything else is a niche application, with the possible
> exception of Microsoft OS and desktop applications.

True, but there is a saying, "Serve the classes, dine with the masses.  Serve
the masses, dine with the classes."  Microsoft showed that you can get rich by
turning a million-dollar product, the computer OS, into a one-hundred dollar
product.  In fact, they made those of us who work on (multi-)million-dollar
software projects better off - the increase in personal computers led to an
increase in large-scale computing and the sophistication of its deployment.

The number of customers for a million-dollar product will be much smaller than
the number for an equivalent ten-thousand-dollar, or one-thousand-dollar
product, to whit, custom software services.  Assuming someone can figure out
how to deliver quality custom software at a price the masses, at least the
business masses, will accept.

This requires a breakthrough of about 100:1 in productivity compared to how
the large companies and government agencies do software and I.T.  The trick is
to maintain the level of stability and reliability that a slower approach is
thought to ensure.

Java is certainly a candidate for the kind of robust, secure and stable
systems the big guns crave.  Because of its large API and inherent basis in
the network and concurrency, one can do a great deal without inventing a lot,
if one invests the time to learn this massive, overwhelming API.  However,
Java has yet to bring enterprise programming to the masses, because heretofore
Java enterprise programming was as clunky and behemoth as its results were
reliable and scalable.

But, lo!  The new generation of Java, with yet more to learn, has grown wings,
and learned to mix DNA with scripting and web templating.  Some wizards have
incanted, "Dependency injection!", and called forth the Spring of Nimbleness.
 JavaEE 5 has polished JSTL, EL and JSF to a high gloss, allowing rapid
development with yet solid architecture.  EJB 3 and JPA (Hibernate, OpenJPA)
make back-end and database interaction much slicker, and disguise the worst of
the caching and optimization issues.  Glassfish, Geronimo and Glassfish are
capable of managing the application service and PostgreSQL certainly is up to
the database requirements.

Since Java is now integrated with suitable frameworks from the front JSes and
JSPs to the back JDBCs, it bids fair to become the /lingua franca/ of network
and enterprise development down to even small or moderate-size businesses,
i.e., everywhere.  If it all doesn't turn out to be too much all at once for
anyone to master.

If the new nimbleness brings Java into manageability, I predict a massive
increase in its use.

Then there's Micro Edition ...

_* References *_

Java today:
<http://java.sun.com/>
<http://java.sun.com/javase/6/>
<http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/beta2.html>

EJB 3   <http://java.sun.com/javaee/5/docs/tutorial/doc/bnblr.html>
EL     <http://java.sun.com/products/jsp/reference/techart/unifiedEL.html>
Geronimo        <http://geronimo.apache.org/>
Glassfish       <https://glassfish.dev.java.net/>
Hibernate       <http://www.hibernate.org/>
JavaEE  <http://java.sun.com/javaee/>
JavaME  <http://java.sun.com/javame/index.jsp>
JBoss           <http://labs.jboss.com/>
JDBC    <http://java.sun.com/javase/technologies/database/index.jsp>
JPA     <http://java.sun.com/javaee/5/docs/tutorial/doc/bnbpy.html>
JS      <http://java.sun.com/javascript/>
JSF     <http://java.sun.com/javaee/javaserverfaces/>
JSP     <http://java.sun.com/products/jsp/>
JSTL    <http://java.sun.com/products/jsp/jstl/>
OpenJPA         <http://openjpa.apache.org/>
PostgreSQL      <http://www.postgresql.org/>
PostgreSQL JDBC <http://jdbc.postgresql.org/>
Spring          <http://www.springframework.org/>

IDEs:
Eclipse <http://www.eclipse.org/>
NetBeans <http://www.netbeans.org/>

Signature

Lew

Arne Vajhøj - 11 Mar 2008 02:17 GMT
>> I don't think so.
>>
[quoted text clipped - 5 lines]
> from software to run vets practices to airline ticket reservation systems
> and so forth?

Java is used for many things. But that type of business app is
a very common usage of Java.

Not just intranet - also internet.

The term "database work" is misleading in the sense that databases are
used for almost any persisting. Java, .NET, PHP, Python or whatever -
databases are usually involved in some way.

>> Desktop GUI apps are made (the keywords are: AWT, Swing and SWT), but
>> web GUI's are more used.
>
> What are the relevant keywords for web GUIs?

Servlet, JSP, Struts, JSF, JSR168.

Arne
Lasse Reichstein Nielsen - 10 Mar 2008 07:11 GMT
> I get the impression that many are database and XML related and few are GUI
> related. That surprises me: I thought cross-platform GUIs were a major
> selling point of Java.

I won't pretend to know what everybody is doing, but from where I sit,
the primary advantage of Java is cross-platform *server* software (i.e.
J2EE servers or web containers) running on anything from low-end PC's
to heavy server iron.

You then make rich clients for your server application, but they are
typically for a specific customer who are happy to specify, e.g.,
clients to run on Windows with a screen size of 1024x768.

/L
Signature

Lasse Reichstein Nielsen  -  lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
 'Faith without judgement merely degrades the spirit divine.'

Jon Harrop - 10 Mar 2008 14:25 GMT
>> I get the impression that many are database and XML related and few are
>> GUI related. That surprises me: I thought cross-platform GUIs were a
[quoted text clipped - 4 lines]
> J2EE servers or web containers) running on anything from low-end PC's
> to heavy server iron.

That's interesting. I hadn't thought that being cross-platform would be an
advantage for servers. Is that because you don't want to be tied to MS? Are
there any Linux-only competitors?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Mark Thornton - 10 Mar 2008 15:14 GMT
>>> I get the impression that many are database and XML related and few are
>>> GUI related. That surprises me: I thought cross-platform GUIs were a
[quoted text clipped - 7 lines]
> advantage for servers. Is that because you don't want to be tied to MS? Are
> there any Linux-only competitors?

In the server world, non x86 CPUs still exist. A Java app can run
unchanged on any of IBM's disparate collection of hardware.

Mark Thornton
Jon Harrop - 10 Mar 2008 15:35 GMT
> In the server world, non x86 CPUs still exist. A Java app can run
> unchanged on any of IBM's disparate collection of hardware.

Is recompilation really that much of a problem?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

RedGrittyBrick - 10 Mar 2008 17:01 GMT
>> In the server world, non x86 CPUs still exist. A Java app can run
>> unchanged on any of IBM's disparate collection of hardware.
>
> Is recompilation really that much of a problem?

How many SKUs do you want to maintain for "F# for Numerics"?

Which of the following scenarios would be more useful to you?

1) IBM create an F# compiler that runs only on the IBM z10 and produces
native executables for that platform.

2) IBM create a CLR for the IBM z10 that runs the CIL produced by
Microsoft's F# compiler?
Jon Harrop - 10 Mar 2008 17:49 GMT
>>> In the server world, non x86 CPUs still exist. A Java app can run
>>> unchanged on any of IBM's disparate collection of hardware.
[quoted text clipped - 10 lines]
> 2) IBM create a CLR for the IBM z10 that runs the CIL produced by
> Microsoft's F# compiler?

We can retarget languages easily so it makes no difference to us.

Speaking of which, are there tools for translating Java code to other
languages (e.g. C#)?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Lord Zoltar - 10 Mar 2008 18:06 GMT
> We can retarget languages easily so it makes no difference to us.

Who is included in "we" and "us"?
Jon Harrop - 10 Mar 2008 18:48 GMT
>> We can retarget languages easily so it makes no difference to us.
>
> Who is included in "we" and "us"?

Flying Frog Consultancy Ltd.:

 http://www.ffconsultancy.com

We learned a long time ago that generating code for high-level languages is
a great way to earn geometric money in linear time. For some reason, we
have never really tried to attack the Java market though. We tend to carve
niches with new languages instead.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

RedGrittyBrick - 10 Mar 2008 18:31 GMT
>>>> In the server world, non x86 CPUs still exist. A Java app can run
>>>> unchanged on any of IBM's disparate collection of hardware.
[quoted text clipped - 10 lines]
>
> We can retarget languages easily so it makes no difference to us.

Eh? Neither scenario involves retargeting languages.
Jon Harrop - 10 Mar 2008 18:50 GMT
>>>>> In the server world, non x86 CPUs still exist. A Java app can run
>>>>> unchanged on any of IBM's disparate collection of hardware.
[quoted text clipped - 12 lines]
>
> Eh? Neither scenario involves retargeting languages.

The ability to retarget makes both choices redundant because we can get our
code running on that platform without IBM doing anything. The only
beneficial effects for us are secondary: if IBM build a market for their
new platform then we can earn money by porting our software to it.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Kenneth P. Turvey - 10 Mar 2008 20:10 GMT
> The ability to retarget makes both choices redundant because we can get our
> code running on that platform without IBM doing anything. The only
> beneficial effects for us are secondary: if IBM build a market for their
> new platform then we can earn money by porting our software to it.

Just because you can do something doesn't mean you really want to spend
your time that way.  Java allows you to spend your time on something more
productive than retargeting your code and maintaining the veneer you
mentioned in another post.  In Java you have one code base to develop and
maintain.

Signature

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

Jon Harrop - 11 Mar 2008 02:49 GMT
>> The ability to retarget makes both choices redundant because we can get
>> our code running on that platform without IBM doing anything. The only
[quoted text clipped - 6 lines]
> mentioned in another post. In Java you have one code base to develop and
> maintain.

That doesn't work in our case because our target market is programmers
rather than end users. If we dropped support for all other languages we
would lose everyone except Java programmers, i.e. we would lose 80% of our
potential target market. Also, it would be extremely cumbersome to maintain
the code as Java source rather than its high-level definition.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Mark Space - 10 Mar 2008 18:57 GMT
> We can retarget languages easily so it makes no difference to us.

"Retarget?"  Do you mean re-write you application in a new language?  Or
perhaps you mean that future applications are still in the planning
stage and could be implemented in any choosen language?   Something else
 maybe?
Jon Harrop - 10 Mar 2008 19:11 GMT
>> We can retarget languages easily so it makes no difference to us.
>
> "Retarget?"  Do you mean re-write you application in a new language?  Or
> perhaps you mean that future applications are still in the planning
> stage and could be implemented in any choosen language?   Something else
> maybe?

I mean the code is autogenerated from a high-level language-agnostic
definition. So we define a backend to generate another language (like Java)
and click a button to get millions of lines of Java source code. Then we
write a more idiomatic veneer by hand and sell it.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Mark Space - 10 Mar 2008 19:53 GMT
>>> We can retarget languages easily so it makes no difference to us.
>> "Retarget?"  Do you mean re-write you application in a new language?  Or
[quoted text clipped - 6 lines]
> and click a button to get millions of lines of Java source code. Then we
> write a more idiomatic veneer by hand and sell it.

This sounds a bit like using YACC (and similar programs) to generate a
compilers from a grammar specification, or using a hardware description
language (Verilog, etc.) to create new chips.  I've never thought about
trying to solve general purpose programming problems with a tool like that.

Do you mind if I ask what language and tool you use for your high-level
definitions and auto-generation?  Is it something entirely in house or
did you derive if from some external product?

Thinking about this a bit more, with auto-generation, you could skip the
whole Java compilation step and just go directly to JVM byte codes.
This might also allow you to easily provide features that Java doesn't
support directly, for example features that Java requires you use a
separate tool like AspectJ.  Then just write your "veneer" in hand-coded
Java.
Jon Harrop - 11 Mar 2008 02:42 GMT
> This sounds a bit like using YACC (and similar programs) to generate a
> compilers from a grammar specification, or using a hardware description
> language (Verilog, etc.) to create new chips.

Exactly, yes.

> I've never thought about trying to solve general purpose programming
> problems with a tool like that.

I consulted for XenSource (now part of Citrix) a couple of years ago and we
built a compiler to generate XML-RPC interfaces for the entire
XenEnterprise API for several different languages all at once. Java was the
second language supported, after OCaml.

The reason was essentially that XenSource have an incredibly competent
software engineering team and, in particular, a lot of compiler experts.
All of their high-level code, used to remote control Xen hosts, is written
in OCaml and OCaml was bred for compiler writing. So they worked compilers
into their code whenever possible and the results were incredibly
impressive: three people maintaining millions of lines of code written in
half a dozen completely different programming languages.

So I've taken a leaf out of their book and started doing the same thing for
numerical and visualization libraries.

> Do you mind if I ask what language and tool you use for your high-level
> definitions and auto-generation?  Is it something entirely in house or
> did you derive if from some external product?

The definitions are written in an OCaml-like language. This is parsed using
OCaml's macro system and an OCaml code generator spits out OCaml, C#, F#
etc. We could target Java if I put enough effort in but first-class
functions would have to be compiled into some kind of OO design pattern,
which could get ugly for users.

We also have a cross-platform hardware-accelerated vector graphics library.
The original uses OpenGL but I am current porting it to Windows
Presentation Foundation.

> Thinking about this a bit more, with auto-generation, you could skip the
> whole Java compilation step and just go directly to JVM byte codes.

That is possible but probably harder. We can also go via Scala or OCamlJava.
The latter is an obvious choice because it compiles our existing code with
zero changes to JVM bytecode. I'm not sure how interoperable it would be
though, and we would be wanting to sell the generated code to Java
programmers.

> This might also allow you to easily provide features that Java doesn't
> support directly, for example features that Java requires you use a
> separate tool like AspectJ.  Then just write your "veneer" in hand-coded
> Java.

Yes. There is certainly a lot of potential for such things.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Mark Thornton - 10 Mar 2008 20:26 GMT
>> In the server world, non x86 CPUs still exist. A Java app can run
>> unchanged on any of IBM's disparate collection of hardware.
>
> Is recompilation really that much of a problem?

Depends on the availability of cross compilers. Without them it is a
significant pain.
Arne Vajhøj - 11 Mar 2008 02:20 GMT
>> In the server world, non x86 CPUs still exist. A Java app can run
>> unchanged on any of IBM's disparate collection of hardware.
>
> Is recompilation really that much of a problem?

No, but converting C/C++ or Cobol source code to run on a new
platform can be major work.

Arne
Jon Harrop - 11 Mar 2008 02:43 GMT
>>> In the server world, non x86 CPUs still exist. A Java app can run
>>> unchanged on any of IBM's disparate collection of hardware.
[quoted text clipped - 3 lines]
> No, but converting C/C++ or Cobol source code to run on a new
> platform can be major work.

Right.

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Lew - 11 Mar 2008 04:36 GMT
>>>> In the server world, non x86 CPUs still exist. A Java app can run
>>>> unchanged on any of IBM's disparate collection of hardware.
[quoted text clipped - 3 lines]
>
> Right.

Much like writing a JVM for a new platform can be major work.

Signature

Lew

Logan Shaw - 11 Mar 2008 06:34 GMT
>>>>> In the server world, non x86 CPUs still exist. A Java app can run
>>>>> unchanged on any of IBM's disparate collection of hardware.
[quoted text clipped - 5 lines]
>
> Much like writing a JVM for a new platform can be major work.

... work which has already been done, in many cases.  Though
certainly not ALL cases.

  - Logan
Lasse Reichstein Nielsen - 10 Mar 2008 18:36 GMT
> That's interesting. I hadn't thought that being cross-platform would be an
> advantage for servers. Is that because you don't want to be tied to MS? Are
> there any Linux-only competitors?

Not tied to anybody, preferably. Linux-only? Why would anybody do that?

Anyway, customers differ. Some prefer Sun servers running Solaris,
others IBM servers running AIX. Some have staging environments running
on smaller servers. Developers can run a server locally on windows
boxes and deploy on different testing environments.

Many customers specifically require a J2EE solution, because they
already have servers and expertise in their infrastructure.

The advantage here is a software platform that is hardware and
operating system independent (in theory at least). It allows you to
develop for different hardware targets using the same developers!  And
to reuse code between projects. The "write once, run anywhere" is a
big winner on the server side, but not very successfull on the client
side. My guess is it's mainly because the GUI looked equally bad on all
platforms :)

/L
Signature

Lasse Reichstein Nielsen  -  lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
 'Faith without judgement merely degrades the spirit divine.'

Jon Harrop - 10 Mar 2008 18:57 GMT
>> That's interesting. I hadn't thought that being cross-platform would be
>> an advantage for servers. Is that because you don't want to be tied to
>> MS? Are there any Linux-only competitors?
>
> Not tied to anybody, preferably.

Is Java not tied to Sun in practice?

> Linux-only? Why would anybody do that?

Just an idea. :-)

> Many customers specifically require a J2EE solution, because they
> already have servers and expertise in their infrastructure.

Does "J2EE" imply anything beyond "written in Java" in this context?

> The advantage here is a software platform that is hardware and
> operating system independent (in theory at least). It allows you to
[quoted text clipped - 3 lines]
> side. My guess is it's mainly because the GUI looked equally bad on all
> platforms :)

Yes, that's what I heard but I must say I was very impressed at how easily
Java worked across platforms when I tried it. I thought the GUIs were fine
but people are obsessed with looks... :-)

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Lasse Reichstein Nielsen - 10 Mar 2008 21:53 GMT
>>> That's interesting. I hadn't thought that being cross-platform would be
>>> an advantage for servers. Is that because you don't want to be tied to
[quoted text clipped - 3 lines]
>
> Is Java not tied to Sun in practice?

Nope. Recently they even released the source as GPL, but before
that other compagnies have created their own implementation
(at least JRocket from BEA and IBM's JDK's).

Further, there are many implementations of the J2EE specification,
from free to very expensive, depending on your needs and funds.

>> Many customers specifically require a J2EE solution, because they
>> already have servers and expertise in their infrastructure.
>
> Does "J2EE" imply anything beyond "written in Java" in this context?

Written for the Java 2 Enterprise Edition platform. Java is not just
a language. It's also a family of target platforms. The J2EE platform
is an enterprise server standard: http://java.sun.com/j2ee/overview.html

/L
Signature

Lasse Reichstein Nielsen  -  lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
 'Faith without judgement merely degrades the spirit divine.'

Lew - 11 Mar 2008 04:45 GMT
> Written for the Java 2 Enterprise Edition platform. Java is not just
> a language. It's also a family of target platforms. The J2EE platform
> is an enterprise server standard: http://java.sun.com/j2ee/overview.html

Though, of course, these days Sun prefers to call it "Java EE", reserving
"J2EE" for earlier versions.
<http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/>
> With version 5 of the Java Platform, Enterprise Edition (Java EE,
> formerly referred to as J2EE), ...
> [t]he Java EE 5 platform introduces a simplified programming model
> and eliminates much of the boilerplate that earlier releases required.

Signature

Lew

Lasse Reichstein Nielsen - 11 Mar 2008 07:02 GMT
> Though, of course, these days Sun prefers to call it "Java EE",
> reserving "J2EE" for earlier versions.
> <http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/>

Oh, I know. It's just that the customers still want J2EE :)
Personally, I'd love to switch to EJB3, JavaEE 5 and Java 5+, but
that's only now beginning to happen now.

/L
Signature

Lasse Reichstein Nielsen  -  lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
 'Faith without judgement merely degrades the spirit divine.'

Arved Sandstrom - 11 Mar 2008 17:29 GMT
>> Though, of course, these days Sun prefers to call it "Java EE",
>> reserving "J2EE" for earlier versions.
[quoted text clipped - 3 lines]
> Personally, I'd love to switch to EJB3, JavaEE 5 and Java 5+, but
> that's only now beginning to happen now.

So would I. :-) In my geographic area if a J2EE project comes up the odds
are still better than even that it'll be a J2EE 1.4 project using EJB 2.x,
and one still has to be prepared to code to servlets and JSP without the
benefit of a framework. Adoption of Java 5+ isn't too bad, though.

AHS
Arne Vajhøj - 11 Mar 2008 02:19 GMT
>>> I get the impression that many are database and XML related and few are
>>> GUI related. That surprises me: I thought cross-platform GUIs were a
[quoted text clipped - 6 lines]
> That's interesting. I hadn't thought that being cross-platform would be an
> advantage for servers. Is that because you don't want to be tied to MS?

It is a freedom to be able to choose Windows, Linux, Solaris depending
on what the external customer or the internal operations prefer.

>                                                                        Are
> there any Linux-only competitors?

Not that I am aware of. Linux and Unix are too close to that being
likely.

Arne
Logan Shaw - 11 Mar 2008 03:20 GMT
>>> I get the impression that many are database and XML related and few are
>>> GUI related. That surprises me: I thought cross-platform GUIs were a
[quoted text clipped - 3 lines]
>> J2EE servers or web containers) running on anything from low-end PC's
>> to heavy server iron.

> That's interesting. I hadn't thought that being cross-platform would be an
> advantage for servers.

Well, it can be.  It can also be an advantage for developers who
want to run the code locally on their machine.  They can choose
any OS that supports Java and do their development on that.  That
means less having to login to some server somewhere just to try
something out.  Also, if you switch architectures on a server app,
which tends to happen over time, cross-platform Java code has
the advantage that you do not need to do two builds of everything
during the transition period.  And if you have a lot of servers,
or just a lot of software, the transition period can be fairly
long in some cases.

There are also some other reasons that Java appeals on servers.
One is that Java makes threads and networking relatively easy.
Another is that Java has bounds checking on arrays, no pointers,
a bytecode verifier, and a consistent using exceptions for error
handling, and that means that sometimes errors don't lead to the
entire server app crashing where it would with some other
platforms.  Other languages certainly have some of these features,
but Java has, IMHO, a good mix of them that relatively few
other languages can match.

  - Logan
Stefan Ram - 11 Mar 2008 03:38 GMT
>                                                    no pointers,

     »(...) reference values (...) are pointers«

   JLS3, 4.3.1.

http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.3.1
Logan Shaw - 11 Mar 2008 06:33 GMT
>>                                                    no pointers,
>
[quoted text clipped - 3 lines]
>
> http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.3.1 

OK, they're pointers, but they're pointers without the dangers of
more traditional pointers.

Maybe I should be more precise and say this: "Java doesn't allow
you to shoot yourself in the foot by mistakenly accessing
arbitrary machine addresses."

Or maybe I should just say that Java doesn't have C-style pointers.
You can't do things like finding out that two instances of some type
are stored contiguously in memory, then add 1 to the pointer of
the first and use it to access the second.  You can't treat memory
as a gigantic BCPL-style series of cells, all of which you can
attempt to access, even though the attempt may lead to a
catastrophic crash.

Or maybe I should just say that, unlike many other languages, you
have no means of creating a reference that is visible but invalid.

Anyway, the term "pointers", like many words, has multiple meanings
depending on context, and hopefully it was clear from context what
sense I meant.

  - Logan
Andrea Francia - 11 Mar 2008 22:25 GMT
> Maybe I should be more precise and say this: "Java doesn't allow
> you to shoot yourself in the foot by mistakenly accessing
[quoted text clipped - 10 lines]
> Or maybe I should just say that, unlike many other languages, you
> have no means of creating a reference that is visible but invalid.

Or simply we can say that Java doesn't have pointer arithmetic.
Logan Shaw - 12 Mar 2008 07:43 GMT
>> Maybe I should be more precise and say this: "Java doesn't allow
>> you to shoot yourself in the foot by mistakenly accessing
[quoted text clipped - 12 lines]
>
> Or simply we can say that Java doesn't have pointer arithmetic.

Well, it's a bit off-topic to continue this too long, but I'm
not sure all pointer-related ills come from pointer arithmetic.

For example, does this C code contain any pointer arithmetic?

    char* p = 0;
    *p = 65;

And yet, it's hardly free of problems.  :-)  I suppose you could call
it pointer arithmetic when you assign a constant, but I generally
think of arithmetic as involving operators.  Also, consider fun
stuff like:

    typedef union {
       char* p;
       int i;
    } U;

    U u;

    char c = 65;
   
    u.p = &c;
    u.i = 12345;
    *(u.p) = 66;

No pointer arithmetic, but it still dumps core.

By the way, I should amend my statement that Java doesn't allow
you to create references that aren't valid.  I was wrong about
that:  of course it does -- it allows null references.  It's just
that if you dereference them, an exception is thrown, which is
a whole lot nicer than leaving the behavior undefined like in
certain other languages whose names I won't mention.

  - Logan
Lew - 12 Mar 2008 13:03 GMT
> Well, it's a bit off-topic to continue this too long, but I'm
> not sure all pointer-related ills come from pointer arithmetic.
[quoted text clipped - 6 lines]
> And yet, it's hardly free of problems.  :-)  I suppose you could call
> it pointer arithmetic when you assign a constant, but I generally

This isn't pointer arithmetic, nor is Java immune to this particular bug:

 char [] p = null;
 p[0] = 'A';

> think of arithmetic as involving operators.  Also, consider fun
> stuff like:
[quoted text clipped - 13 lines]
>
> No pointer arithmetic, but it still dumps core.

Java doesn't have unions.  This isn't just a pointer bug but a union bug.

> By the way, I should amend my statement that Java doesn't allow
> you to create references that aren't valid.  I was wrong about
> that:  of course it does -- it allows null references.  It's just
> that if you dereference them, an exception is thrown, which is
> a whole lot nicer than leaving the behavior undefined like in
> certain other languages whose names I won't mention.

And this is the strength of Java.  It can't completely prevent you from making
bugs, but it can help you some when you do.

Signature

Lew

Stefan Ram - 12 Mar 2008 15:11 GMT
>For example, does this C code contain any pointer arithmetic?
>char* p = 0;
>*p = 65;

 This is not valid C code.

     »Among the invalid values for dereferencing a pointer by
     the unary * operator are a null pointer, [...]«

   ISO/IEC 9899:1999 (E)

 In C, a pointer used shall always refer to an object (just as
 in Java):

     »The behavior is undefined in the following circumstances:

     [...]

     An object is referred to outside of its lifetime

     The  value of a pointer to an object whose lifetime has
     ended is used

     [...]

     An lvalue does not designate an object when evaluated«

 (The null pointer does never refer to an object.)

     »[...]

     The operand of the unary * operator has an invalid value«

ISO/IEC 9899:1999 (E)

 When you go beyond the limits of the language, you can do this
 in the Java world as well (via JNI).

                                 ~~

 The meaning of »object« in C is different from the meaning of
 »object« in Java.

 When someone uses »object« in this newsgroup, he uses it in
 the sense of the Java Language Specification, Third Edition,
 not in the sense of ISO/IEC 9899:1999 (E).

 For the same reason, for a Java programmer, it is not that
 relevant, what »pointer« means in ISO/IEC 9899:1999 (E).
 Insofar, you were right, when you wrote:

>Well, it's a bit off-topic

 But we know that the Java Language Specification, Third
 Edition calls »reference values« »pointers«. This wording does
 matter for a Java programmer, while ISO/IEC 9899:1999 (E) does
 not matter for a Java programmer.
Logan Shaw - 13 Mar 2008 04:45 GMT
>> Well, it's a bit off-topic

>   But we know that the Java Language Specification, Third
>   Edition calls »reference values« »pointers«. This wording does
>   matter for a Java programmer, while ISO/IEC 9899:1999 (E) does
>   not matter for a Java programmer.

Certainly the wording does matter for a Java programmer, if the
Java programmer also writes other languages (such as C).  In the
particular context in which you originally brought this up, I was
comparing Java to other languages, saying that it has strengths
that make it a good choice for server-side programming.  When the
context is a comparison of languages, why should the JLS definition
of "pointer" be the only relevant one?

For what it's worth, I agree that the sentence "Java does not have
pointers" is false if you interpret as "Java does not have pointers
in any sense of the word".  But it's true if you interpret it as
"Java does not have pointers in the sense of the word relevant
in the current context" (where the context is a comparison to
other languages which have a different variety of pointers).

  - Logan
Stefan Ram - 13 Mar 2008 05:11 GMT
>For what it's worth, I agree that the sentence "Java does not have
>pointers" is false if you interpret as "Java does not have pointers
>in any sense of the word".

 When assertions about Java are made, I usually interpret the
 terms using the Java Language Specification, Third Edition.

 Therefore, to me, »Java does not have pointers.« is false
 because I interpret the words »Java« and »pointers« in the
 sense of of the Java Language Specification, Third Edition,
 which says that reference values are pointers.

 Common terms, such as »variable« or »object«, have different
 meaning in Java Language Specification, Third Edition than in
 ISO/IEC 9899:1999 (E). This shows that even such common terms
 simply do not have a meaning independent of a language or
 specification.

 When discussing Java or when discussing in the newsgroup
 »comp.lang.java.programmer«, I have no reason to use the
 terminology of ISO/IEC 9899:1999 (E), so I use the terminology
 of Java Language Specification, Third Edition. At least, I try.
Logan Shaw - 13 Mar 2008 06:22 GMT
>   Common terms, such as »variable« or »object«, have different
>   meaning in Java Language Specification, Third Edition than in
>   ISO/IEC 9899:1999 (E). This shows that even such common terms
>   simply do not have a meaning independent of a language or
>   specification.

You are right that such common terms don't have a meaning which
is fixed and independent of all context.  (Nor do many words.)

Therefore, as a reader or listener, in order to communicate
effectively, one must ascertain the intended context, and
interpret the word in light of that context.  This is a
fundamental part of human communication, which is not
mathematically precise but which instead requires the
application of insight about context (as well as other things,
like pragmatics) in order to apprehend the meaning.

Likewise, from the other side, the writer/speaker should make a
strong effort to make this process as easy as possible by not
introducing unnecessary ambiguities or other difficulties, to
the extent this is practical and doesn't interfere with other
concerns (like brevity).

>   When discussing Java or when discussing in the newsgroup
>   »comp.lang.java.programmer«, I have no reason to use the
>   terminology of ISO/IEC 9899:1999 (E), so I use the terminology
>   of Java Language Specification, Third Edition.

I, on the other hand, did have a reason to use the terminology
of a context other than the JLS:  I was making a comparison.
I recognize that a Java-centric interpretation of terms should
be given some extra priority in any Java-centric forum, but I
wouldn't go so far as to say that only Java meanings for words
should be used.

Having said all that, I suppose this is enough discussion for me
on this particular point.  I think we have both explained our
views quite clearly, and I can't imagine much can be gained by
discussing it further, and I have no particular desire to do
things which aren't gainful.

  - Logan
Lasse Reichstein Nielsen - 13 Mar 2008 21:22 GMT
>   When assertions about Java are made, I usually interpret the
>   terms using the Java Language Specification, Third Edition.
[quoted text clipped - 3 lines]
>   sense of of the Java Language Specification, Third Edition,
>   which says that reference values are pointers.

I disagree that it says that. The entire quote is:

"The reference values (often just references) are pointers to these
 objects, and a special null reference, which refers to no object."

If somebody said "There are towns connected by roads with road
signs. Road signs are pointers to towns", then I won't agree that it
implies "roads have pointers" where "pointers" means anything
specific.

It's explanatory text, using common words with their common meaning,
not formal definitions using defined words.

>   Common terms, such as »variable« or »object«, have different
>   meaning in Java Language Specification, Third Edition than in
>   ISO/IEC 9899:1999 (E). This shows that even such common terms
>   simply do not have a meaning independent of a language or
>   specification.

>   When discussing Java or when discussing in the newsgroup
>   »comp.lang.java.programmer«, I have no reason to use the
>   terminology of ISO/IEC 9899:1999 (E), so I use the terminology
>   of Java Language Specification, Third Edition. At least, I try.

First, I disagree that "pointer" is part of that terminology.

Second, discussing the specification only in terms of its own
definitions is vacuous. Sure we can say that Java has pointers,
where pointers is defined as what Java has, but that doesn't
*tell* us anything.

/L
Signature

Lasse Reichstein Nielsen  -  lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
 'Faith without judgement merely degrades the spirit divine.'

Lew - 14 Mar 2008 01:18 GMT
> Second, discussing the specification only in terms of its own
> definitions is vacuous. Sure we can say that Java has pointers,
> where pointers is defined as what Java has, but that doesn't
> *tell* us anything.

The problem is that when people say, "Java does[n't] have pointers," they
don't specify which meaning of "pointers" is involved.

Strictly speaking, Java does have pointers, in that variables point to the
objects that they reference.  Colloquially speaking, Java does not have
pointers as a language element as such.  It certainly doesn't have calculable
pointers, which is how most programmers mean the term.  (I.e., there is no
pointer arithmetic, "taking the address" of a variable, etc.)

Both views are important.  It's important to understand Java's pointers "in
terms of its own definitions"; this is not "vacuous" at all.  Many aspects of
Java's behavior are so much more easily explained when one thinks of
references as pointers.

However, the fact that Java's own idea of a pointer excludes most of what we
think of as pointer behavior is also important.  We need to be vitally aware
that Java does not have (C-style) pointers.

Signature

Lew

Lasse Reichstein Nielsen - 11 Mar 2008 06:57 GMT
>>                                                    no pointers,
>
[quoted text clipped - 3 lines]
>
> http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.3.1 

Quote the context, please:

"The reference values (often just references) are /pointers/ to these
objects, and a special null reference, which refers to no object."

They are not saying references are Pointers. They are saying that
references *point* to objects.

Java does not have pointers, in the sense typically meant by that word,
and as exemplified by pointers in C and C++.

/L 'no pointers!'
Signature

Lasse Reichstein Nielsen  -  lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
 'Faith without judgement merely degrades the spirit divine.'

Joshua Cranmer - 10 Mar 2008 01:23 GMT
> So where is Java used in industry?

Matlab uses it. Mathematic uses it. I think Maple may be using it as
well. Between the three of them, that's an awful lot of usage of Java.

Google uses it in part (along with a bajillion other languages).

All applets use Java; therefore, many online games use Java.

The IDA group at NRL uses it exclusively. I believe the U.S. government
and military use it heavily.

In summary: more or less in all fields.

Signature

Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth

Mark Space - 10 Mar 2008 01:50 GMT
> All applets use Java; therefore, many online games use Java.

Most web games seem to be written in Flash these days, and generally
Flash seems to be displacing Java Applets as the "web desktop"
programming language of choice.  I wish this were not true, but that
appears to be the case.
Jon Harrop - 10 Mar 2008 03:11 GMT
>> So where is Java used in industry?
>
> Matlab uses it. Mathematic uses it. I think Maple may be using it as
> well. Between the three of them, that's an awful lot of usage of Java.

Ah yes, of course. I worked at Wolfram Research when they were building
their Java stuff and saw some demos of it but never saw the final thing. I
believe they have some kind of GUI builder that targets either Java or the
JVM directly?

The MathWorks were kind enough to give me a free copy of MATLAB because I am
a book author. Where is the Java in MATLAB? They seem to have a MATLAB to
Java compiler:

 http://www.mathworks.com/products/javabuilder/

Is there a more integral part of MATLAB that is written in Java?

> Google uses it in part (along with a bajillion other languages).

Is it all behind the scenes?

> The IDA group at NRL uses it exclusively.

I don't know who they are, sorry.

> I believe the U.S. government and military use it heavily.

Do you know what they use it for?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Lew - 10 Mar 2008 13:14 GMT
>> I believe the U.S. government and military use it heavily.
>
> Do you know what they use it for?

Typical non-military uses are to drive web sites for the public to submit
forms such as mandatory filings or applications for benefits, and to provide
the middleware to interact with big-iron COBOL systems.  There is quite a bit
of activity in web services, also, much of which is on Java Enterprise Edition
platforms.  Typical uses include interagency communication of shared case
information.

Sniffing around the Web I've also found major corporations that use Java for
their web applications.  IBM comes to mind.

Just searching now for Java-based web sites, I found www.nyc.gov
<http://www.nyc.gov/portal/site/nycgov/?front_door=true>

Signature

Lew

Jeff Higgins - 10 Mar 2008 03:46 GMT
> So where is Java used in industry?

Ask Ms. Ann
<www.trinityconsultancy.com>
Mark Thornton - 10 Mar 2008 13:35 GMT
> I have heard many times before that Java is the world's most common
> programming language. I checked this out and it certainly seems to be true:
[quoted text clipped - 10 lines]
>
> So where is Java used in industry?

My company (http://www.optrak.co.uk) produces vehicle routing software
which is written largely in Java. The bits which aren't in Java are for
historical reasons and will eventually disappear.

Mark Thornton
Jon Harrop - 10 Mar 2008 15:35 GMT
> My company (http://www.optrak.co.uk) produces vehicle routing software
> which is written largely in Java. The bits which aren't in Java are for
> historical reasons and will eventually disappear.

This is very interesting. May I ask why you are choosing Java?

Signature

Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u

Mark Thornton - 10 Mar 2008 20:50 GMT
>> My company (http://www.optrak.co.uk) produces vehicle routing software
>> which is written largely in Java. The bits which aren't in Java are for
>> historical reasons and will eventually disappear.
>
> This is very interesting. May I ask why you are choosing Java?

It was able to meet the needs of both the GUI+database as well as
computational parts of the system, and do so without erecting a wall
around the computation code. The GUI needs relatively fine grained
access to the computational components. Past experience has shown this
to be seriously unpleasant if different languages are used. It also
presents challenges in managing object lifetimes (which GC eliminates).
With computation times varying over a wide range (from subsecond to many
minutes) we also make significant use of threads.
The decision to use Java was taken (from memory) around 1997.

Mark Thornton
Ramon F Herrera - 10 Mar 2008 20:25 GMT
> I have heard many times before that Java is the world's most common
> programming language. I checked this out and it certainly seems to be true:
[quoted text clipped - 13 lines]
> --
> Dr Jon D Harrop, Flying Frog Consultancy Ltd.http://www.ffconsultancy.com/products/?u

> I have heard many times before that Java is the world's most common
> programming language. I checked this out and it certainly seems to be true:
[quoted text clipped - 13 lines]
> --
> Dr Jon D Harrop, Flying Frog Consultancy Ltd.http://www.ffconsultancy.com/products/?u

In an interview years ago, Scott McNealy said that a typical modern
car contains about 100 microprocessors. Set set of processors could
potentially have 100 different architectures and the car manufacturer
would have to hire 100 programmers to write the car's software.

Well, that was then and this is now.

Today the car manufacturer has to hire programmers that know Java and
only Java. No responsible manager or engineer will place a line of
Microsoft code in a car (or airplane, or operating room, or space
vehicle).

Let's see, what other big user can I give you as an example? Oh, I
know this is a biggie, and perhaps even you have heard about it.

Are familiar with the World Wide Web?

It is amazing that they don't teach about the WWW in Cambridge
University, if you are any indication.

-Ramon

ps: OpenOffice is not written in Java, but C++. You cannot use Java to
get that kind of responsiveness.
Mark Thornton - 10 Mar 2008 20:55 GMT
> ps: OpenOffice is not written in Java, but C++. You cannot use Java to
> get that kind of responsiveness.

Yes you can (at least with current JVM), though it isn't always as easy
to get great performance as we might wish.

The origins of OpenOffice predate Java.

Mark Thornton
Ramon F Herrera - 10 Mar 2008 22:30 GMT
On Mar 10, 3:55 pm, Mark Thornton <mark.p.thorn...@ntlworld.com>
wrote:
> > ps: OpenOffice is not written in Java, but C++. You cannot use Java to
> > get that kind of responsiveness.
[quoted text clipped - 5 lines]
>
> Mark Thornton

[I wrote:]
> OpenOffice is not written in Java, but C++.

Actually, I just downloaded the source code. It is written in C.

However, if you need to handle OOo programmatically, you don't even
need the SDK, all you need is Java.

-RFH
Arne Vajhøj - 11 Mar 2008 02:43 GMT
> [I wrote:]
>> OpenOffice is not written in Java, but C++.
>
> Actually, I just downloaded the source code. It is written in C.

I checked OOo 2.3.1 core source. It has:

280 .c files
8459 .cxx files + 167 .cpp files
3756 .java files
23 .py files

The C++ is good enough.

Arne
Ramon F Herrera - 11 Mar 2008 19:16 GMT
> > [I wrote:]
> >> OpenOffice is not written in Java, but C++.
[quoted text clipped - 11 lines]
>
> Arne

I stand corrected, Arne. It turns out that the source code that I
downloaded was only a small fraction.

The moral of the story if that for some applications (such as OOo) it
doesn't make sense to use Java BUT you should still write it with one
of the multi-platform GUI toolkits:

- wxWidgets
- Qt
- the one from GNU, which sucks.

I wrote a GUI application that handles large TIFF files, in Java. Due
to several factor (such as performance) I am now rewriting the whole
thing from scratch, using the original Java version as a prototype.
Going back to the OP: this is yet another important use of Java.

-Ramon
Arne Vajhøj - 11 Mar 2008 02:25 GMT
> Today the car manufacturer has to hire programmers that know Java and
> only Java. No responsible manager or engineer will place a line of
> Microsoft code in a car (or airplane, or operating room, or space
> vehicle).

http://en.wikipedia.org/wiki/Ford_Sync

> ps: OpenOffice is not written in Java, but C++. You cannot use Java to
> get that kind of responsiveness.

Most of OOo is written in C++ - but the database, the wordprocessing
wizards and some filters are written in Java. There are even a bit
of Python in it.

Arne
Roger Lindsjö - 11 Mar 2008 19:47 GMT
> So where is Java used in industry?

Where I work we use Java to serve content to mobile devices. This
includes designing a "portal", content ingestion and adaptation for the
devices (screen size etc).

We also use it for building MMSC and SMSC.

Java is also used to build the GUIs for managing these applications, and
they are usually distributed and launched with Java Webstart.

Signature

Roger Lindsjö

Roedy Green - 19 Mar 2008 09:15 GMT
>So where is Java used in industry?

the University of Calgary is using it to model hearts so that
physicians can visually climb into a heart they are about to operate
on and have a look around watching it work, sort of a real life
Fantastic Voyage.
Signature


Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com

Lew - 19 Mar 2008 13:31 GMT
>> So where is Java used in industry?
>
> the University of Calgary is using it to model hearts so that
> physicians can visually climb into a heart they are about to operate
> on and have a look around watching it work, sort of a real life
> Fantastic Voyage.

Kaiser Permanente runs their website on Java tech.  Looks like they use
Struts.  Well, they are a .org.

Signature

Lew



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 WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.