From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fdb77,d4d987297ba30e17 X-Google-Attributes: gidfdb77,public X-Google-Thread: fac41,d2fe3e6e3f79439,start X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,d2fe3e6e3f79439,start X-Google-Attributes: gid103376,public From: Mike Stark Subject: Re: Java or Not? Any *informed* opinions? Date: 1997/05/30 Message-ID: <338F1183.38D1@gsfc.nasa.gov> X-Deja-AN: 245025924 References: <5ltvfv$at4$1@darla.visi.com> <5m5ugn$nnl$1@darla.visi.com> <5mclt2$h61$1@boris.eden.com> <5mcrej$212$4@darla.visi.com> <5mdk9v$nak$1@boris.eden.com> <5mensn$g14$1@darla.visi.com> <5mf6e1$9ro$1@boris.eden.com> <5mfcd4$199$2@oksennus.binary.net> <338B3784.62EB49A3@imaginary.com> <5mi9n1$t68@titanium.dowco.com> <5mk7h2$2bs$1@darla.visi.com> <338DF190.43F5D7@imaginary.com> <5mlb00$gv$1@darla.visi.com> Organization: NASA Goddard Space Flight Center -- Greenbelt, Maryland USA Newsgroups: comp.lang.java.advocacy,comp.lang.ada,comp.lang.eiffel Date: 1997-05-30T00:00:00+00:00 List-Id: George Reese wrote: > > In rec.games.mud.admin John DiCamillo wrote: > : George Reese writes: > : >John DiCamillo wrote: > : >> > : >> George Reese writes: > : >> (someone wrote:) > : >> >: I'd ask for a summary of where Java is/isn't handy, if I didn't think it > : >> >: might cause another brief flare up of the war - as a Java newbie, I'd say > : >> >: the portability and socket-related issues are probably it's strongest > : >> >: points. > : >> > : >> >In a nutshell, its most important strengths are: > : >> >* any sort of network related system (socket, distributed objects, database) > : >> >* multi-threaded programming > : >> >* internationalization and localization of systems > : >> >* ability to scale from the low-to-medium end > : >> >* lack of required applicaiton installation or maintainence > : >> >* automatic garbage collection > > : >> Of course, many of these strengths are also available in other > : >> languages, including C++. I would say that the only strength > : >> really unique to Java is that it is tied to the Web. > > : >No, I did not say available. I said strengths. Java has a hell of a > : >lot more than the few features listed above; the features listed above > : >are STRENGTHS. In other words, Java rocks other languages big time in > : >these areas. > > : No, I'm just not buying it. Ada has had threads built into the language > : for years. > > I cannot speak to Ada, as I have never used it. But, again, I was > talking about the strengths of Java. This is a significant strenth > whether Ada has this feature or not. Why? Because damn near no oneis > doing Ada development nor will they likely. Not so, but it does tend to be concentrated in aerospace & defense industries, although there is some commercial usage. If you are interested in facts, explore http://www.adahome.com/Ammo/Success/ -- this lists some non-defense projects using Ada. > > : C++ does sockets, distribution, and databases just as well > : as Java (ignoring for the moment real distributed languages like Obliq > : which had RMI *years* ago). > > Nonsense. C++ sockets vary from class library vendor to class library > vendor, and you still have to deal with differences between hardware > architectures. > > CORBA and DCOM distribution are not built into the C++ > language... They are hacks on top of it and are not capable of things > like distributed garbage collection. > > : Python does mobile code. > > Mobile code? What do you mean? > > : Garbage collection > : is built into dozens of languages from Eiffel to Smalltalk, and can be > : added seamlessly to C++. > > I said a lot of other languages have it. However, seamless garbage > collection in C++ certainly is not the norm. > > : The "ability to scale from the low-to-medium > : end" is not much of a strength to begin with, but almost every language > : invented in the last 15 years supports this. > > That is patently false. Most client-end languages like Delphi, PB, > anmd VB fall flat on their faces when you try to scale them *at all*. > > : Heck, Ada even has a version that compiles to the JVM, and I understand > : that one of the Eiffel vendors is working on a similar product. I've used the Ada to JVM compiler (called AppletMagic, produced by Intermetrics), and have been impressed with it. I hope the Eiffel and Smalltalk people can do as well. Java byte codes could be a good basis for multi (OO) language systems. > > So what? :) Eifel and Ada, as I stated below, are toy languages. Neither of these is a toy language. Toy to me implies something small scale like the original BASIC or the original Pascal. The "so what" on the Ada side is that Dod has billions of dollars worth of legacy software that potentially could be compiled to run on the JVM and be reused within a Java system. > > : I'll spot you internationalization and ease of installation. And it > : has a fairly quick compiler and a simple build model. Platform indepen- > : dence (as long as you are not too fussy about what that means) is also > : nice, and very important for some applications. > > Major bonuses, IMHO. Ada 95 also added the Unicode character set. I don't know what other factors you consider "internationalization". Please be more specific. > > : Look, I'm not trying to bash Java. I used it for a small project and it > : was pleasant enough to use. Granted this was more than a year ago, and > : I'm sure things have changed since then. But I just don't see why people > : think it is the greatest thing since sliced bread. I'm not trying to bash Java either. We are currently using it to develop an attitude estimation system, so that we can evaluate it's usefulness for our application area (spacecraft flight dynamics). Early returns are very promising, particularly in comparison to C++. There is definitely attractiveness to the fact that it is a simpler language than C++ or Ada. The main annoyance so far is the lack of operator overloading -- we like to write our code so it looks like a mathematical formula, which is natural enough for the flight dynamics problem. > > A year ago, Java was not good for much other than building applets. > > People think it is great because it has the ability to change the way > we do software engineering. How? In my mind, it has mixed benefits in software engineering terms. The exception handling is even more rigorous than Ada's, since you must catch any exception raised by functions you are calling. However, the lack of separation between interface and implementation, which are there in varying degrees for C++, Ada, and Eiffel, will hurt you when you are developing large (100-1000 KSLOC) systems. That doesn't mean Java is useless, just a little harder to use in some cases. > > : >> >Its most important weaknesses are: > : >> >* speed (but it is not as slow as people would have you believe) > : >> > : >> More importantly, performance and functionality are dependent on > : >> the quality of the JVM available to the end-user. > > : >I fail to see this as a big issue. Over time, the uniformity of JVM's > : >will stabilize as do most software products. It really is not a major > : >factor in whether or not one uses Java. Or it should not be. > > : Well jeez, are we talking about Java today or Java at some random > : point in the future? Yes, eventually, I'm sure that all the problems > : with Java will be worked out. But in the mean time, you have to deal > : with exactly the sort of compatibility problems that Springer is always > : yammering about. > > I am talking about making a decision as to whether Java will work for > you or not. If you are beginning to develop a project now, Java works > well on the MS and Solaris environments. If most of your uses are > there, you can be happy to know that ifnothing else, other uses can > run your software and that things for them will only get better. > > Java gives them that. Any other language leaves them with no > application at all. > > : >> >* lack of MI > : >> * Lack of genericity (what C++ calls templates) > : >> * Very limited ability to specify the contract for interfaces > > : No comment on these? Not even to agree or disagree? > > Actually, I missed these. > > Parameterized classes are coming. I think they are a nice feature, > but neither a plus nor a minus for any language. > > Design by contract. I am sure if I were an Eiffel programmer, I would > care more. I am not, and I don't. > > : >> >* inability to scale to a massive degree (only C/C++ can do this well so far) > : >> > : >> That's a pretty parochial point of view, even for these newsgroups. > : >> How about Eiffel, Ada, or even Erlang. All of these have been used > : >> in large or even huge mission critical and real-time critical apps. > > : >Toy languages. Get them out of niche development, and then we can talk > : >about them. Mission critical systems may be a niche, but neither a tiny nor unimportant one, as you will realize next time you board a 777 ;) > > : Oh please. I will wager real money that more real work has been done > : in those languages than in all the versions of Java combined. Counting > : by delivered functionality, not books written about them. When did Java > : get finalized, in March? Ada has been around for almost fifteen years. > > So what? The point is Eiffel and Ada have 0 industry support. They > are now and forever shall be at best marginal niche languages. Even > if Eiffel was some deity's personal gift to programmers, it would not > matter without industry support. Zero industry support is an exaggeration, at least in the case of Ada. I can't speak for Eiffel, since I've never used it, but only read about it. > > : Eiffel is being used in modern C/S business software. Ada is commonly > : used in avionics and automation control systems, both in and out of the > : defense industry. Erlang is a niche language, in that it is a proprietary > : solution for telephone switches, but it was specifically designed for > : real-time multi-threading and large scale development. > > Proprietary languages suck. Period. Either way, these three > languages are inconsequential. Ada is an ANSI standard and has a GNU compiler available, so if it sucks, it's not because it is proprietary. (we have *lot's* of people around here who thinks it sucks, IMO because it was rammed down people's throats ;) > > : >> >To my knowledge, all except the MI question are being addresses. And > : >> >none of the weaknesses are damning. > : >> > : >> Well, I guess that depends on what you are trying to do, doesn't it? > > : >No. Damning means makes it unuseable or not useable for most purposes. > : >Because Java my be unuseable for systems wtih extremely exact > : >performance requirements has no bearing on my comment. > > : Whatever. My only point is that other language choices exist, and > : these should be evaluated for the specific job at hand. There are > : some situations where Java makes sense (I am told), and there are > : others where it does not. > > That is a truism. You should always evaluate which tools will serve > each job best. Little things like ubiquity and industry support, > however, matter a lot. Agreed. Support must be *sufficient*. It is not necessary that the language you use be the most popular. There is still sufficient support out there for FORTRAN and COBOL, and I expect there will be for quite a while. > > -- > George Reese (borg@imaginary.com) http://www.imaginary.com/~borg > I am bored with my .sigs -- -------------------------------------------------------------------------------- Michael Stark NASA/GSFC Phone: (301) 286-5048 Code 551 Fax: (301) 286-0245 Greenbelt, MD 20771 e-mail: michael.e.stark@gsfc.nasa.gov "I don't give them hell. I tell the truth and they THINK it's hell!" Harry S. Truman --------------------------------------------------------------------------------