Who uses Java?

M

Mark Thornton

Jon said:
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?
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
 
J

Jon Harrop

Mark said:
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?
 
D

Daniel Pitts

Jon said:
Ah, ok.


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?

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

RedGrittyBrick

Jon said:
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?
 
J

Jon Harrop

RedGrittyBrick said:
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?

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

Lasse Reichstein Nielsen

Jon Harrop said:
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
 
J

Jon Harrop

Lord said:
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.
 
J

Jon Harrop

RedGrittyBrick said:
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.
 
M

Mark Space

Jon said:
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?
 
J

Jon Harrop

Lasse said:
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
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 :)

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

Jon Harrop

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

Mark Space

Jon said:
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.
 
M

Mark Space

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

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

Kenneth P. Turvey

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

Ramon F Herrera

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?

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?


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

Mark Thornton

Jon said:
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
 

Ask a Question

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

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

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top