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

Lennart Sorensen lsorense at csclub.uwaterloo.ca
Fri Apr 9 14:30:17 EDT 2021


On Fri, Apr 09, 2021 at 01:44:58PM -0400, Stewart C. Russell via talk wrote:
> I'd agree if I were doing something like wanting the sum of the values
> of a list. /list.sum()/ is going to be many times more efficient than an
> accumulator loop on a system that's got any level of vectorization.
> Chris Tyler's talk on AARCH64 optimization in gcc a few years back
> showed that the code isn't anything like my mental model (somewhere
> around a Z80, with faulty memory management) expected.
> 
> But in document processing, you really really /really/ want the output
> to come out in the same order as the input. Which is why functional
> languages seemed a strange choice for document transformation. The
> absence of side-effects can be handy in document processing, but being
> in the right order is usually what publishing houses get paid the big
> bucks to do.

Not controlling the processing order is not the same as not controlling
the output order.  Any input list should result in output in the same
order, no matter what order each part of the list was processed in.
Now if the result depends on interaction betweem the elements in the
input, then you obviously have to treat that as a single input.

> I've had to process utility time series power generation data in XSLT.
> That was horrid. Order matters a lot there, too.
> 
> Call me old-fashioned, but I want my computers to do what I tell them. I
> don't want exceptions, I want results or error messages to explain why.
> I know there are many processes running that do things I'll never
> understand, but they must prove themselves useful to me or get out of my
> way.

Well to some extent even if writing C code you are not exactly telling
the computer what to do.  The compiler has a lot of choice in when
to move things between registers and memory, largely dependent on the
architecture you are running on.  Humans are generally not that good at
handling large complex systems, so having to explicitly manage memory
and such isn't usually a good idea, and certainly once you get to
multithreaded most people make a mess of it if they have to explicitly
control it.

-- 
Len Sorensen


More information about the talk mailing list