SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Technology Stocks : Apple Inc. -- Ignore unavailable to you. Want to Upgrade?


To: Hugues who wrote (10699)4/1/1998 9:45:00 PM
From: rhet0ric  Respond to of 213176
 
Re: Java and the Yellow Box

Matthew Johnson: Java is a GREAT beginners language. Java is basically C++ without all the good stuff in it(C++ --). This "stuff" was taken out to simplify the language so the Java Virtual Machine could be smaller and therefore faster. also it makes coding alot easier. But please you cannot tell me taking abilities out of a language makes it a superior language.

Perhaps rather than saying "Java is a great beginners language," we could say, "Java is the beginning of a great language." I agree with you that Java isn't there yet. But we need to look at Java in the long term. Java clearly has a long way to go before it can compete with a mature language like C or C++. It has had a better thought-out beginning than either of those languages, however, and its cross-platform capabilities can revolutionize the industry in a way that C/C++ never could.

(I don't think that Sun took stuff out of Java to make it run faster--the stuff was never there to start with. Rather, they are incrementally adding capabilities over time).

I also completely agree with your point that, in the short term, Java is not living up to its promise of being cross-platform. For now, the main problem is that JVMs are progressing at different rates. The JVM in Netscape for Mac, as we all know, has trouble with real time quotes, while the equivalent on PC does fine. Over time, JVMs will progress, and we will see better and more uniform performance.

However, this is not what Microsoft wants. Microsoft is justifiably afraid that Java and JVMs will improve over time, and so it is attempting to do two things: make IE dominant, and make pure Java break in the IE JVM. If they succeed in both these things, they will have effectively killed off the best chance the industry has to become open, cross-platform, and most importantly, free from Microsoft's domination. Deliberately incompatible JVMs are much more destructive of Java's cross-platform capabilities than variable progress among compatible JVMs.

(It's good to have you on the board, Matthew. I look forward to hearing more from you).

Hugues: Apple is offering another one, inside the Yellow box.

Mmm, not exactly. What they're doing is adding Java libraries to the current Objective C. (I'm not a developer myself, so I may have my terminology wrong). This means that developers can compile their Java applets and run them natively in the yellow box. Because they're native, they don't take the performance hit of needing to be compiled on the fly by the JVM.

Hugues: What's your opinion ?

In the long term, yes, if Java doesn't get derailed by the likes of Microsoft, its rise could have a very positive effect on Apple and AAPL. Again, I stress "if" and "long term."

rhet0ric



To: Hugues who wrote (10699)4/2/1998 12:23:00 AM
From: George von Dassow  Read Replies (3) | Respond to of 213176
 
<<Naive questions about Java and Rhapsody and Apple perspectives>>

I know this wasn't directed at me, but I think I might be qualified to comment of some of this.

<<I understand Java is pretty attractive to a lot of people, working on it, or studying it.

I guess the two reasons are
- portability between platforms
- object-oriented

and maybe a third one:
- agreement on it by all as the next best language for developing programs>>

You can add to that:

1) Java is like C++ for kids. I mean that in the best possible way. I moved all my work to Java after avoiding it for a while ("you mean no pointers?!? how do you DO ANYTHING?" I thought). I spend a tiny fraction of my time debugging. Honestly, it's like 5 or 10 percent now, and it used to be 70 or 80, I'd guess, when I was using C/C++. That is simply because I am a self-taught programmer, whose primary education is in zoology and cell biology, not computer science. BTW, this doesn't necessarily apply to user interfaces in Java; I still need to do a lot of trial and error to make windows look and behave right.

2) Java has great, easy-to-use if simple libraries for a seemingly ever-expanding universe of applications. I hear they just announced a 3D library. I tried to learn Unix socket programming so I could distribute my simulation across a network. I gave up. I tried to do the same thing with Java's network library, and it seemed like a cakewalk in comparison. But I never even used that version, because they soon came out with the remote method invocation stuff that attempts to make distributed computing nearly as straightforward as single-machine work. That's what I'm learning to use now.

<<However, Java is not the only object-oriented language, and a lot of other languages are portable between platform: I suppose c++ is too.>>

Not exactly. C++ can be very difficult to port. Several years ago I had to make some fancy random number generator implementations run on a variety of different platforms, including SunOS, AIX, and NextStep, so that we could use the same library for versions of the same program running on as many computers in our network as possible. Now, these are all unix, right? But no two platforms agreed on the number of bytes in a standard integer, no two had the same time libraries, and on and on and on... it was a headache. For this kind of numerical stuff at least, write once / run anywhere is a reality with Java. And I am familiar with only one other language (TCL) that has even remotely the same kind of cross-platform approach (python may be another but I don't know much about it).

<<For the time being, there seems to be few applications available in Java. The main reason always stated being performance.>>

This is less and less true. My suspicion is that this claim is based on the first generation of Java VMs; according to numerous anecdotes, a lot of companies set up to develop Java applications and found too many bugs, too slow, too much trouble and gave it up, understandably concluding that Java wasn't quite ready yet. The advent of Java1.1 and just-in-time compilation makes up for a lot. And Java-to-native compilers are emerging. I can attest that there are a LOT of slow things in Java, many of them _inexplicably_ slow. The vector class is my favorite. Early on my code used a bunch of vectors ("hey, neato, an array that expands! I think I'll use some!"), and I thought Java was awfully sluggish. Then I did some tests, and found that vector look-up was more than 30 times slower than array look-up. Back to arrays! Another time I re-wrote a single line (it happened to be in the most-called method) in the core code of my simulator to compare integer indices instead of strings, and my whole program literally doubled in speed. No way would you get such a speed hit for a string compare in C++. So in other words, you learn to avoid the slow bits, or cheat (like using look-up tables instead of the Math class' sine method). And one thing is definitely true: different VMs give different results; implementers have a lot of latitude there.

<<And more annoying: Why would people need rhapsody or yellow box if they have java ? And why would developers choose to develop on rhapsody (with Java or open step, yet to be discovered) when they can develop for the java machines of the different OS. Does the yellow box provide more services than a classic virtual machine ? Are they really essential ?>>

I have not seen the Rhapsody developer release, so I do not know exactly what it is. But I am quite familiar with NextStep as a user, though not as a programmer (my University has quite a few Nexts scattered around). Java takes the lowest common denominator approach. I know this is a cliche, but it's absolutely true. It has to in order to be truly universal. As far as I can tell, Sun and JavaSoft really intend for it to be possible to implement a Java VM on literally any modern computing platform, embedded platform, smart phone/microwave/sex toy/whatever. Thus every feature has to be something that any arbitrary device could, in principle, accomplish. The flip side to that is that Java cannot exploit the various features of any specific underlying platform. None of this is true of Rhapsody (or the yellow box, rather), which is specifically targeted to each of an identified group of platforms. Rhapsody thus can take the highest common denominator approach, as I assume it will, if Rhapsody is more or less version 5.0 of OpenStep. In case you have never used a Next, they are nothing like using Java apps. NextStep provides a smooth, complete, rich user environment superior to the mac, to irix, to windows, solaris, anything, in my opinion, whereas working with user interfaces in java feels to me more like the early releases of X11 or windows 3.0. The bottom line is, I suspect, that it will never be possible to write a 100% pure Java program that is as slick and polished as the best Windows or Mac programs. The best it'll be is probably something like the many flavors of XWindows. But that's fine, as long as you don't seriously expect everyone to be running JavaOS boxes that only run 100% pure Java, which I doubt will ever come to pass. There are an awful lot of applications in which portability is more important than slick interfaces, and vice versa.

<<So, from what I have so far understood, Java evolution could really impact Apple future:
- If it does come out, it will reduce Microsoft power and pave the way for a rhapsody alternative
- But it could also make it obsolete (or less needful) by providing the cross-platform development called for by the computer community>>

Cross-platform development can mean a lot of things. In the case of Java, it means literally loading and using the same compiled objects on anything with a Java VM, at least as long as all your devices have the same flavor of Java logo. The Rhapsody Yellow Box, on the other hand, takes cross-platform development to mean that someone can write a unified code base and then compile separately for a lot of different targets, much as I believe the Microsoft Foundation Classes accomplish for Windows 95 and NT.

<<If it is not, it can also be incorporated gradually (and seamlessly) into the macOs, and bring a powerful OS to mac Users. This would stop the erosion of market share and could slowly bring back growth. However, the stock would not go above 30$ before 2 years.>>

I myself look forward to buying my copies of Rhapsody. But I doubt very much that a great OS by itself will turn Apple around. If Rhapsody had been released in November, and we were still waiting for G3 macs, I doubt Apple would have posted a profit last quarter, or be anticipated to do so this quarter, or have the good press it is enjoying lately, etc. The Mac OS has been good enough for the average computer user (business, home, education, you name it) for years, as has been Windows 95. I don't see how there can be any argument about that, since it is undeniable that millions upon millions of people use one or the other or both every day, and are quite productive at it. If you think a great OS alone will make a company, then where's Next? I'll tell you where: people like me who liked it a lot could never afford a Next. Rhapsody can't possibly be more than a piece of the Apple strategy (in fact, I'd be willing to bet that Quicktime is a more important piece in many ways). Instead, Apple's got to make its sales over the next year by making a better box and by advertising it better than they have in the past, and I think they are doing that. I'm happy to see them ditch a lot of stuff to focus on that.

Regards,

- George