From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- usergrps/uktug/baskervi/6_3/mcjava.tex | 271 +++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 usergrps/uktug/baskervi/6_3/mcjava.tex (limited to 'usergrps/uktug/baskervi/6_3/mcjava.tex') diff --git a/usergrps/uktug/baskervi/6_3/mcjava.tex b/usergrps/uktug/baskervi/6_3/mcjava.tex new file mode 100644 index 0000000000..f6a0f91bc4 --- /dev/null +++ b/usergrps/uktug/baskervi/6_3/mcjava.tex @@ -0,0 +1,271 @@ +\title{Java, Java} +\author{Malcolm Clark} +%\newcommand\BV{Baskerville} +%\newcommand{\url}{\texttt} +%\newcommand{\TUB}{\textsc{Tug}boat} +\begin{Article} +%\section{Java} +\noindent +January 30th, Queen Elizabeth \acro{II} conference centre, just off +Parliament Square, +high security at the door, thousands of suits +(so that's what happened to all those delayered \acro{IBM} guys), +few women, even fewer +pony-tails. We start 20 minutes late (surely not technical +difficulties? no, it appears we're letting the late comers +get through security and up to this floor). Dry ice in the hall, +synchronised flashing lights (is this a disco, or an awards presentation?), +sub-Star Wars music. The audience of a thousand are reverentially +hushed except for the bleeping +of personal telephones. The lights go down, the music up; +Robert Young-Johns (one of Sun's \acro{VP}s) +bounds onto the stage, wearing the Java uniform -- +a cute black shirt with all the right logos. +Good move: they are clearly not suits, but still projecting +an `acceptable' corporate identity. He apologises for the +hype: `Java will not cure all known ills', but appeals to +our imagination, citing an examples from home banking (yawn), +Dolly Parton and Jupiter. + +Sun now score a small point by managing to convince +the Minister for Science and Technology (did you know we +had one?), one Ian Taylor \acro{MP}, to start the conference off. +Apart from an interesting political incorrectness (perhaps +understandable, he is, after all a Tory minister), he was +adequate. At least he seemed aware of the Internet, and +he was also aware that the digital revolution needs to get +out to rural areas too, citing the freeing up of radio +spectra which could offer \acro{ISDN}-like data transfer rates. +He was also looking forward to a future of smart cards +and kiosks (and even interworking between government departments). +He stayed for the next talk then strode off with his +apparatchik hot on his heels. + +Bob Sproull next: this is more like it. This man is seriously +worth listening to (Newman \& Sproull, Principles of +Interactive Computer Graphics). We knock through a wave diagram +(the waves are mainframes, minis, pc plus proper user interface, and +the network: they are as much focus shifts as waves). The man +says `paradigm'.\footnote{You can +easily identify those who flowered in the 60s and 70s: they +know how to say `paradigm', and aren't afraid to.} I like him. +He tackles some of the worries: does the Internet have stable funding? +In his view it has more stable funding than some of the governments +who once funded it. They could disappear tomorrow, but the Internet +would still be there. What's wrong with the Web? +He cites its lack of +interactivity (sic), extensibility, and security, but lauds its +`publish once, read anywhere' democratisation. +What's the answer? Java of course. Java applets (little applications) +can be downloaded and can provide the interactivity we long for. +The interaction is at the client end, so we aren't shipping +information backwards and forwards from client and server. +Ah you say, I don't like the idea of downloading a program +over the Internet to run on my machine; that's just asking for +trouble. Obviously the Java team thought about this. What happens +is that the applet runs on a Java virtual machine. You get your bit +of code (platform independent) and the Java virtual machine interprets it. +That way you can insist that the applet has access to only a very +few facilities: it should `do no harm'. For example, applets cannot +write to files on the client, and cannot access arbitrary bits of +memory or files (your credit card details are safe). There's a bunch +of other stuff to ensure that this is going to be secure, some +bound in the structure of the programming language, and some +in its operation. The Java language specification is, in normal +Sun style, open: the specifications are published. They intend +to offer `compatibility' tests and performance guidelines +(claiming along the way that interpreted Java can be as fast +as compiled C++). In this way they hope to avoid the Balkanisation +that is Unix (his phrase). Later, I asked Sproull how confident he was +that a similar `Balkanisation' would not dismember Java, wondering +what would happen when Netscape or Microsoft decided to add their +own extensions (think of \acro{HTML}, for example). He said he was optimistic +rather than confident, but that there was clearly an advantage to +a level of \textsl{de facto} standardisation brought about by +a high level of interoperability, really hoping that +the momentum was sufficient to prevent too much deviation. + + +The history of Java is interesting: it was not envisaged as +an Internet killer app, but as a way of controlling domestic +appliances from toasters to \acro{VCR}s. Or maybe even your doorbell +(if I go back to a talk I heard recently by Andy Hopper of Olivetti +Research Laboratories). In passing you can begin to see why those potential +4,294,967,296 \acro{IP} addresses start to look limiting. We don't need +one for each individual on the planet: we need one for each connected +device on the planet (or off the planet: no doubt Galileo could have +had an \acro{IP} address, just as the Shuttles do). It was designed to be a +language for embedded systems, imposing the constraint that it +had to be pretty compact. Sun have been maintaining +that the network \textsl{is} the computer for some time. The network really is +essential to the workings of this computing. Given its platform independence +(or `neutrality', as the current term seems to be), Sproull could claim +that we were moving to a `write once, run anywhere' range of apps. + +After coffee (I would have prefered to say `a steaming cup of Java', +but no, imagination did not stretch to the caterers), Oliver Morton +of \textsl{Wired} took the stand. + +This was a surprisingly erudite, literate and interesting +talk. I hadn't really expected a journalist (even one at +\textsl{Wired}) to be like this Pony-tail. He talked about something +I understood -- the Cambrian period. His suggestion was that +there is a parallel between evolution of lifeforms and evolution +of programs. He suggested that it was back in the Cambrian when +diversity exploded, and that we date biological variation +from then. He suggested that the parallel `event' now is networking, +which will lead to the same sort of explosion of riches and exploitation +of `niches'. I don't really buy argument by analogy (a viewpoint +which goes back a long way), but the talk was emminently enjoyable, +plausibly relevant, and the \acro{AV} work was excellent! Instead of +fixed `slides' prepared in some PowerPoint-clone, where the +excitement lies in the dissolves and fades, this was a slick (non-perjorative) +presentation, where the text on the screen moved around in a way +which contributed and enhanced what he had to say. It wasn't really +multimedia, but it showed a real quantum leap from `ordinary' +presentations. Of course, this stuff is a blow to me. Usually +I scribble down what's on the slides and then go back to listening +to the talk. Not possible. + +Matt Reid, another Sun manager took us on `The Java experience', +bringing to the podium specimen Java developers. This array of talent +included Charles Ashley (Matrix Publishing), Alan Slater (Orbital +Technologies), Per Gunnar Osteby (Applet UK), Alan ?? (Knowledge +Media Institute -- the Open University's newest venture) and Gary +Bullock (Parallax). A good range of things in there, from Web +enhancement through to good interactive applications, telepresence +and the word `Javatise'. Then we wheeled on a star: Miko Matsumura from +\textsl{Hot Wired}. He told us he had already addressed audiences on +Madison Avenue and Silicon Valley, so we knew he thinks he's good: +he probably is too. There is something about these assured +20-something year olds, so completely in control, and at the leading +edge which makes me want to retch. Envy I think it's called. +The example he showed included an `avatar'. That's interesting, since +it suggested he'd read Neal Stephenson's \textsl{Snow Crash}, which +I predict is an excellent predictor for much cyberspace development. +He ended by telling us he is the first Java evangelist. I reached +for my bell, book and candle. + +The afternoon split into three streams. I took the stream +which contained my first jolt of Java and more Bob Sproull. +Simon Roberts, from Sun's Educational Services taught +us how to write an application in the Java language in +just 45 minutes. No, that doesn't mean it takes only 45 minutes +to learn Java. It just means he led us through it, +assuming that we were happy with C++ already (I wish!). Java +borrows its syntax mainly from C++, but just to confuse there +are some syntactic differences: it is largely object oriented, +and where it differs most from C++ is in any part of that language +which lets you effect strange and unsocial things -- like +pointers and overloading of operators. It also simplifies by +permitting only single inheritance. I ended up more confident +that Java was quite coherent and had a lot of thought hours +behind it. It also seems to be the programmers' revenge on the +Internet. Let me explain. In the good old days, the Internet +was the preserve of the hacker (again, in a non-perjorative sense); +you had to know a bit about networks, be able to incant in Unix, +have a smattering of some obscure programming language (C, C-shell, +grep, Perl or whatever). This was when the Internet was free and +easy, when the Acceptable Use Policy said `no commercial use', +when people shared programs, and all was sweetness and light (this +is a nostalgic view). Then along came the Web with its trivially +simple \acro{HTML}. Anyone could use the Internet, and anyone could provide +information for it. And at the same time, it exploded into commerce, +politicians started pontificating, and frankly, it +got rather non-elitist! Along comes the next step (apologies to +Steve Jobs!) -- Java. This will separate the men from the boys. Only +the traditional propellor heads will be writing the code, but yet, +it's what the Net needs. Control has been restored to the anarchists. +Well, maybe. In fact I suspect we'll see application environments +where most people can create Java applets without getting their +hands dirty. But for a while the programmers will be leading. + +Back to Sproull: he's talking about Commerce and Security. To be honest, +he isn't really into commerce, but he dutifully covers the areas +he thinks are going to develop by breaking commercial +uses of the net into four areas: +selling and advertising (for example, find the product: this can be +exemplified by the use of directories); make the sale (here there is great +weight on the security of transactions and the confidence with which payments +may be made); fulfillment (where orders might be filled entirely +digitally, and where standing orders might also be arranged entirely +automatically); customer service (which might expand into relationship +management where the supplier advises the customer of other related products +or services, or upgrades, enhancements, etc.). In other words we are looking for +added value, as we would expect. + +%The Web browser can provide images, forms and (now) secure sockets, but the +%incorporation of Java applets can take this further to give active content, +%uniqueness and to control the presentation far more. In fact, Sproull seemed to +%be hinting that the retention of corporate identity (or brand differentiation), +%one of the banes of the Web, could be achieved through Java applets. He didn't +%exactly say it, but he implied that applets could ensure that pages looked the +%way that their designers intended (as Acrobat will do). + +Security is one of the major issues on the Internet. There is a lot of loose +talk about how insecure it may be, usually based on anecdotal evidence which +evaporates when tracked down to its source. +%People who happily provide their +%credit card details over the telephone are often the first to tell you how +%insecure the Internet is. They should know! +But taking it further, to the prospect +of downloading an applet to run on your machine, needs careful thought. +As I have commented already, considerable thought has gone into Java to make it +secure. Sproull identified a number of areas that we think about within the +general heading of security. We think of `benign' programs: those that `do no +harm'. The language restrictions of Java are supplemented by the fact that the +Java virtual environment checks the byte code of the downloaded applet to +ensure that it has not been tampered with en route. Add to this that an applet +can only call another applet from the server which provided the calling +applet, and, in fact, may only contact that source server and no other. There is +also a security manager on the client which restricts access to the client's +resources. If you are dealing with a `trusted' server, the browser's\slash +client's policies may be relaxed. For example, if you were running an Intranet +within a department or enterprise, you could conceivably allow the applet to +read files and ship the details around. Spreadsheet applications or other +databases could be candidate applications. But in an `open' environment like +the Internet, you would be less likely to take this option. + +Privacy on the net is of course possible, essentially through encryption based +on secret keys. This makes key management an issue. If you have various plastic +cards, each with their own \acro{PIN}, you will know how difficult it can be to +remember each one. Many people will resort to writing down the \acro{PIN}s or +keys, with the result that security is compromised. However, this is a +reasonable human response to an unreasonable expectation. With public key +cryptography, whose details are well-known, though whose implementation is the +subject of \acro{US} government restrictions, we may encrypt with a +public key and +decrypt with our private key. Provided the key is big enough this is pretty +secure (unless your adversary happens to have access to a supercomputer or a +farm of workstations). In any case it is possible to attack these schemes, +principally by replay attacks (where, for example, you copy the transaction to +buy a Porsche over the net, replay it, and intercept the second delivery), +the man in the middle ploy (where you pretend to be the supplier and therefore +acquire the essential information which is then used surreptiously), or perhaps +by analysing the traffic very carefully to identify useful information which +is then sold or used. Much of current communication depends on trust: that +does not mean that the transactions have to be completely accurate: provided +we have reliable and well-understood remedies for mistakes, we are usually +happy. In general terms we have to balance the risks and the security: +high levels of security usually involve high levels of inconvenience. +At present Java tends towards security. + +So there. What's it got to do with us? It is not inconceivable that \TeX\ +itself could be written in Java. But who would want to ship that behemoth +around just to run through a document? Had \TeX\ ever been modularised, this +might have been viable, but its monolithic structure militates against this. +What then of the helper applications -- the viewers or the printer drivers? +Possibilities. Remember that the `applet' (more like macro-applet) need only be +written for a single virtual platform. This may be more difficult in the first +instance, but in the longer term it has to be worthwhile. Future proofing is +in-built. I go back to the notion my avatar promulgated in \BV\ 5.3 -- +distributing \texttt{.dvi} but this time having a Java applet be the viewer or +printer. Use once, discard. Not an issue for us, since we all have a good +viewer, but useful for the disenfranchised. The drawback lies in the fonts, but +as suggested then, Adobe's Multiple Masters will do nicely. + +Did I mention that Java won't run on Windows\,3.x? or on Mac +\acro{OS}6? You need Windows\,95, \acro{NT} or the Mac's Copland. So +throw away those slow old machines. But wasn't that always the story? + +\end{Article} -- cgit v1.2.3