Java Forum / General / March 2008
Who uses Java?
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 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 ...
|
|
|