[GTALUG] Google wins over Oracle in Java API copyright suit

Lennart Sorensen lsorense at csclub.uwaterloo.ca
Wed Apr 7 17:44:58 EDT 2021


On Wed, Apr 07, 2021 at 11:21:52AM -0400, D. Hugh Redelmeier via talk wrote:
> When I was an undergrad at University of Waterloo, we were required to
> use FORTRAN (WatFiv).  I hated it.  I liked the notation of Algol
> better and Algol-W (W for Wirth) was a good implementation for student
> uses.  I even created a bit of a rebellion, but it was put down.
> 
> The answer was going to be PL/I.  But PLIWAT never got done.
> 
> (Luckily, I missed having WatBol (COBOL) imposed on me.  But I was
> a spear carrier in that project.  I worked on optimizing COMASS
> execution; COMASS was used to implement Z1, a systems implementation
> language used to write WATBOL.)
> 
> In your era, did they forced JAVA on you?  If so, I would understand
> hating it.

No java arrived as I was finishing, so I saw the awful plugin for the
browser and also saw javascript (livescript initially before marketing
at netscape renamed it to jump on the java bandwagon).  I did soon after
have to try to deal with people wanting to use java and the comptibility
issues it had.  It was all hype, and for some reason corporations fell
for the hype.  Now they have a ton of garbage they can't easily get
rid of.

> Why, in particular, do you think JAVA is a bad general purpose
> language for ordinary programmers?  Note: I don't actually know JAVA.

It tries to make everything a class, except when it doesn't (like integers
are not a class, while just about everything else is).  main is a class.
It takes all the object oriented things C++ got wrong, and borrows
those, rather than borrowing it from a language that got it right.
If you have to have object oriented programming, at least do it right,
not the C++ way.

> I know reasons why you or I might dislike it:
> 
> - essentially cannot be statically compiled

Definitely an annoyance at times.  Interestingly golang went the other
way and essentially can't by dynamically compiled and isn't objected
oriented (although it allows functions to be associated with types which
gives you most of the best parts of object oriented programming and
making types that can work across another set of types).

> - uses UTF-16 (I think).  The worst representation of UNICODE.

It does.

> - the library is a sprawling mess.  I'd guess that it is impossible to
>   master
> 
> - traditional JAVA programming style creates a surfeit of
>   abstractions, making it hard to understand what's actually going on
> 
> - implementations are very fat.  For performance reasons, jitting is
>   used.  This adds another layer of separation between your program
>   and real hardware.
> 
> - tuning JAVA program performance seems to too-often devolve into
>   blindly twiddling knobs on the JVM.
> 
> - JAVA cannot be improved: so much inertia, so horrible governance.
> 
> What are your reasons?
> 
> Those reasons don't make it a horrible teaching language, especially
> if you subset the library.

There are much better languages for teaching.  Many places have
fortunately switched to some of them.

The resources used by a java program are usually terrible, and there
is often not much you can do about it as a programmer.  The garbage
collection isn't great (not sure it ever is in any language).

Java also is rather terrible at interfacing with other languages.
It wanted to be its own ecosystem that didn't deal with anyone else.
I guess to do the 'run anywhere' idea required that, even though that
hardly ever worked.  The fact features keep getting deprecated means
many older java programs don't run anywhere anymore (good luck if you
used jfx)

-- 
Len Sorensen


More information about the talk mailing list