Google wins over Oracle in Java API copyright suit

Oracle sued Google, claiming Android infringed Oracle's patents on Java. Somehow. That failed. So they sued for copyright infringement based on the copying of the API declarations. The computer community had been very scared that APIs could be copyrighted, something nobody had expected. The US Supreme Court decided that this particular case came under "fair use". and was no infringement. This was NOT a general decision about APIs. This is very good news of Free Software. And consumers. https://www.techdirt.com/articles/20210405/09243546552/supreme-court-sides-w...

On Tue, Apr 6, 2021, 12:31 PM D. Hugh Redelmeier via talk, <talk@gtalug.org> wrote:
Oracle sued Google, claiming Android infringed Oracle's patents on Java. Somehow. That failed.
So they sued for copyright infringement based on the copying of the API declarations.
The computer community had been very scared that APIs could be copyrighted, something nobody had expected.
The US Supreme Court decided that this particular case came under "fair use". and was no infringement. This was NOT a general decision about APIs.
This is very good news of Free Software. And consumers.
https://www.techdirt.com/articles/20210405/09243546552/supreme-court-sides-w...
I read that article with interest after I had used a pharmacological/health sciences metaphore about copyright in another thread. This description of how the courts view a value added proposition, is closer to the crucible of linux topicality, but the principal is the same. Shame on Oracle for not sharing what they conceptually borrowed elsewhere for their product. You may use other copy protected work under fair use if it adds value to the proposition. I think this decision makes that pretty clear. ---
Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk

| From: Russell Reiter via talk <talk@gtalug.org> | | I read that article with interest after I had used a pharmacological/health | sciences metaphore about copyright in another thread. Most drugs are "protected" by patent legislation. Very different from copyright. Perhaps surprisingly, trademark law is very helpful to drug companies because what something is called may matter more than what it is. | You may use other copy protected work under fair use if it adds value to | the proposition. I think this decision makes that pretty clear. There are a few tests for US Fair Use. Do you think that "transformative" is the same as you meant by "adds value"? <https://en.wikipedia.org/wiki/Transformation_(law)>

On 4/6/21 2:17 PM, D. Hugh Redelmeier via talk wrote:
| From: Russell Reiter via talk <talk@gtalug.org> | | I read that article with interest after I had used a pharmacological/health | sciences metaphore about copyright in another thread.
Most drugs are "protected" by patent legislation. Very different from copyright.
Perhaps surprisingly, trademark law is very helpful to drug companies because what something is called may matter more than what it is.
Yes one of my family members stated this about aspirin after working at Bayer. They stated the cost was basically 3 to 4 times the regular non traded medicine even through it was the same. Most people still bought aspirin through. Happens all the time with other medicines as well.
| You may use other copy protected work under fair use if it adds value to | the proposition. I think this decision makes that pretty clear.
There are a few tests for US Fair Use. Do you think that "transformative" is the same as you meant by "adds value"?
I'm not a lawyer but to my knowledge there can be overlap. It really comes now to content again. For APIs the content is clearly no but perhaps in other cases it is. For example, translations add value but are considered transformative in nature. Content in the legal system is always critical. Nick
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk

On Tue, Apr 6, 2021 at 2:47 PM Nicholas Krause via talk <talk@gtalug.org> wrote:
| From: Russell Reiter via talk <talk@gtalug.org> | | I read that article with interest after I had used a
On 4/6/21 2:17 PM, D. Hugh Redelmeier via talk wrote: pharmacological/health
| sciences metaphore about copyright in another thread.
Most drugs are "protected" by patent legislation. Very different from copyright.
Perhaps surprisingly, trademark law is very helpful to drug companies because what something is called may matter more than what it is.
Yes one of my family members stated this about aspirin after working at Bayer. They stated the cost was basically 3 to 4 times the regular non traded medicine even through it was the same. Most people still bought aspirin through. Happens all the time with other medicines as well.
I believe it was in in the early 1800's that Dr. Friedrich Serturner isolated an alkaloid from the opium poppy. He called it morphine after morpheus the god of sleep. In the modernization of medicine the english Dr. Sydenham, one of the earliest english diarists said “Of all the remedies it has pleased almighty God to give man to relieve his pain and suffering, none is so universal and so efficacious as opium.” I think it was in 1888 that Bayer patented and released two products, Aspirin and Heroin (heroic) the substance legally described as diacetyl morphine. If I recall correctly it is created by exposing the alkaloid morphine to acetic acid anhydrides. Interestingly the Opium Poppy (papaver somniferum) has many alkaloids but only a few psychoactives which affect human biology; morphine, codeine, thebaine, noscapine (also called narcotine), and papaverine. The modern endorphin receptors were firstly named opium receptors. It was the fact that opium affected all mammals in every corner of the world, which led to those studies in symbiosis that led to further research. Why would a substance, which only grows well in a narrow equatorial region affect mammals not present in those areas? Ancient sumerian tablets had images of people with poppy stalks growing out of their heads, which indicated that those ancients were well aware of the psychotropic effects of the oil extracted from the seeds and used for cooking. Of course there is always the Seinfeld episode, for a bit of comic relief, under fair use policy @ 0.30 in. https://www.youtube.com/watch?v=mYzuQr7YVYg
| You may use other copy protected work under fair use if it adds value
to
| the proposition. I think this decision makes that pretty clear.
There are a few tests for US Fair Use. Do you think that "transformative" is the same as you meant by "adds value"?
I'm not a lawyer but to my knowledge there can be overlap. It really comes now to content again. For APIs the content is clearly no but perhaps in other cases it is. For example, translations add value but are considered transformative in nature. Content in the legal system is always critical.
Nick
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
-- Russell

On Tuesday, 6 April 2021, D. Hugh Redelmeier via talk <talk@gtalug.org> wrote:
| From: Russell Reiter via talk <talk@gtalug.org> | | I read that article with interest after I had used a pharmacological/health | sciences metaphore about copyright in another thread.
Most drugs are "protected" by patent legislation. Very different from copyright.
Quite so. In Oracles case I believe the issues of patent were tossed right away leaving only the issue of copyright
Perhaps surprisingly, trademark law is very helpful to drug companies because what something is called may matter more than what it is.
| You may use other copy protected work under fair use if it adds value to | the proposition. I think this decision makes that pretty clear.
There are a few tests for US Fair Use. Do you think that "transformative" is the same as you meant by "adds value"?
I believe the article indicates in this case and most likely for those similar to it, the test is twofold. The issue of the facts is for the jury to decide, the issue of law is for the judge. I believe that for educational purposes a school may copy the entire text of a play for the drama department, which the students may then use for their schools production. I think the transformation in that case may be in the supposition that, education is always a value added proposal for society as a whole. This transcends the rights of the rights holder to burden the users with the normal fee the creator would be entitled to. When the work is done by professionals who then make financial gains from it, that is a different kettle of fish. This might be why this case took ten years to settle. There were quite a number of equitable factors to be considered. There is the concept in natural law that just because you have an idea, that doesn't necessarily make it only your own. All the modern world is the sum total of the arts, artifice and artifacts of the historical record. No one person today could claim that as their own. However that doesn't necessarily stop people from trying.
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/lis tinfo/talk
-- Russell

| To: D. Hugh Redelmeier <hugh@mimosa.com>, GTALUG Talk <talk@gtalug.org> | From: Russell Reiter via talk <talk@gtalug.org> | On Tuesday, 6 April 2021, D. Hugh Redelmeier via talk <talk@gtalug.org> | wrote: | Quite so. In Oracles case I believe the issues of patent were tossed right | away leaving only the issue of copyright I said so in the first message on this thread. But you brought up drugs, so off we go on a different tangent. | > There are a few tests for US Fair Use. Do you think that | > "transformative" is the same as you meant by "adds value"? | > | > <https://en.wikipedia.org/wiki/Transformation_(law)> | | I believe the article indicates in this case and most likely for those | similar to it, the test is twofold. The issue of the facts is for the jury | to decide, the issue of law is for the judge. There are issues of fact and issues of law. That is a potential in any legal case. In tests for US fair use, there are four major factors, with sub-parts <https://en.wikipedia.org/wiki/Fair_use#U.S._fair_use_factors> | I believe that for educational purposes a school may copy the entire text | of a play for the drama department, which the students may then use for | their schools production. I don't think that that is the case. I think that it is wishful thinking. But I might be wrong. In Canada, there is special fund paid to copyright holders as compensation for certain kinds of educational use. I think that it is organized by Access Copyright (but I could be confused) <https://www.accesscopyright.ca/> | This might be why this case took ten years to settle. There were quite a | number of equitable factors to be considered. Appeal after appeal and then a retrial and more appeals seems a more likely reason for delay. | There is the concept in natural law that just because you have an idea, | that doesn't necessarily make it only your own. "Intellectual Property" is an invention of mankind. It is not natural law.

On Tue, Apr 6, 2021 at 5:44 PM D. Hugh Redelmeier via talk <talk@gtalug.org> wrote:
| To: D. Hugh Redelmeier <hugh@mimosa.com>, GTALUG Talk <talk@gtalug.org>
| From: Russell Reiter via talk <talk@gtalug.org>
| On Tuesday, 6 April 2021, D. Hugh Redelmeier via talk <talk@gtalug.org> | wrote:
| Quite so. In Oracles case I believe the issues of patent were tossed right | away leaving only the issue of copyright
I said so in the first message on this thread.
Copyright and patent are two sides of a double edged sword.
But you brought up drugs, so off we go on a different tangent.
Well I previously brought up the government's position on sars and cipralex manufacturing in the context of today's covid issues and intellectual property. Sorry for confusing your issue. However, drug synthesis is probably some of the earliest patent law on record.
| > There are a few tests for US Fair Use. Do you think that | > "transformative" is the same as you meant by "adds value"? | > | > <https://en.wikipedia.org/wiki/Transformation_(law)> | | I believe the article indicates in this case and most likely for those | similar to it, the test is twofold. The issue of the facts is for the jury | to decide, the issue of law is for the judge.
There are issues of fact and issues of law. That is a potential in any legal case.
Well in some legal cases, human rights for example, issues are decided by a single party; the Tribunal members hearing the facts and the law are on their own without a jury of peers. Of course the precedents set are binding only on the tribunal. However, judicial review is the only path upward from there.
In tests for US fair use, there are four major factors, with sub-parts <https://en.wikipedia.org/wiki/Fair_use#U.S._fair_use_factors>
| I believe that for educational purposes a school may copy the entire text | of a play for the drama department, which the students may then use for | their schools production.
I don't think that that is the case. I think that it is wishful thinking. But I might be wrong.
In Canada, there is special fund paid to copyright holders as compensation for certain kinds of educational use. I think that it is organized by Access Copyright (but I could be confused) <https://www.accesscopyright.ca/>
I may be wrong. I was a member of an amature theatre group, we photocopied the stuff anyway. I think it was one of the teachers in that heritage group who put it that way to me, as a cultural right. I'm not sure that Brendan Behan would object to the Toronto Irish Players copying the script of Borstal Boy to introduce it to the citizens of Toronto, but I might be wrong about that as well.
| This might be why this case took ten years to settle. There were quite a | number of equitable factors to be considered.
Appeal after appeal and then a retrial and more appeals seems a more likely reason for delay.
Well that is how the legal system works, argument, decision; argue the decision in appeal according to a reasonable/correct standard of whether the decision was in error in fact or in law or both and finally; heard at the supreme court where all rights to change the decision are stopped. The final estoppel of law; it is ratified, codified and absolute.
| There is the concept in natural law that just because you have an idea, | that doesn't necessarily make it only your own.
"Intellectual Property" is an invention of mankind. It is not natural law.
Sorry I mis-stated I meant to say natural justice.
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
-- Russell

| From: Russell Reiter via talk <talk@gtalug.org> | I may be wrong. I was a member of an amature theatre group, we photocopied | the stuff anyway. I think it was one of the teachers in that heritage group | who put it that way to me, as a cultural right. I'm pretty sure that that's wishful thinking. Rationalization. The copyright law is quite draconian. People violate it on a regular basis (well documented in many articles). That's the only way it becomes bearable. DRM is so uncomfortable because (parts of) copyright law are enforced automatically. (Not to mention that all kinds of bizarre other things being enforced, like watching FBI warnings.) Rationalization is a natural part of internalizing laws. Judging from our traffic, most people believe in speed limits, but increase the numbers by perhaps 20%. This impulse to rationalize is a problem when applied to natural laws. That's one reason why COVID hygeine rules are hard to follow. (I cheat at solitare. But I have rules about cheating.) | I'm not sure that Brendan Behan would object to the Toronto Irish Players | copying the script of Borstal Boy to introduce it to the citizens of | Toronto, but I might be wrong about that as well. Since he is dead, you can be sure that he wouldn't object. (His body is probably well-preserved due to its alcohol content.) Being a Borstal boy, he probably wasn't particularly concerned with laws. More generally: a certain amount of copyright leakage is actually good for the creator. Microsoft dominates in the third world due to piracy. If copyright were enforced, Linux would dominate.

On Wed, 7 Apr 2021 10:41:22 -0400 (EDT) "D. Hugh Redelmeier via talk" <talk@gtalug.org> wrote:
The copyright law is quite draconian. People violate it on a regular basis (well documented in many articles). That's the only way it becomes bearable.
Hugh, Here is a nice article from Web Pages that Suck... http://www.websitesthatsuck.com/no-music-files-on-web-sites.html -- Howard Gibson hgibson@eol.ca jhowardgibson@gmail.com http://home.eol.ca/~hgibson

On Wed, 7 Apr 2021 at 10:42, D. Hugh Redelmeier via talk <talk@gtalug.org> wrote:
| I'm not sure that Brendan Behan would object to the Toronto Irish Players | copying the script of Borstal Boy to introduce it to the citizens of | Toronto, but I might be wrong about that as well.
Since he is dead, you can be sure that he wouldn't object. (His body is probably well-preserved due to its alcohol content.)
Since copyright terms exist for many years after the creator's death, that fact is far less relevant than one might think. Marvin Gaye may well have been fine with the song "Blurred Lines" copying the style of "Got to Give it Up" (no melody or lyrics were copied, just the style <https://www.youtube.com/watch?v=ziz9HW2ZmmY>). But his heirs were not, and successfully sued for infringement. Being a Borstal boy, he probably wasn't particularly concerned with laws.
More generally: a certain amount of copyright leakage is actually good for the creator. Microsoft dominates in the third world due to piracy. If copyright were enforced, Linux would dominate.
I can vouch for that particular comment based on first-hand experience. Over the last while, MS has even been making it easier for savvy users to legally(*) use its wares for a fraction of published prices. One such policy is enabling licenses for retail (not OEM) Windows 10 to be fully transferable, enabling niche services that extract license keys from trashed PCs and resell them for less than $ <https://www.aliexpress.com/item/1005002410266483.html>3. (I can verify that it works.) And then there's the "Home and Student" version of MS Office that of course will never be used for small businesses or WFH. - Evan (*) The legalities have never been confirmed or denied and likely never will, because there are no instances of MS pursuing perceived abuse in these cases. At worst they're a contravention of T&C rather than piracy, contract issues rather than copyright infringement.

| From: Evan Leibovitch via talk <talk@gtalug.org> | Since copyright terms exist for many years after the creator's death, that | fact is far less relevant than one might think. Absolutely correct. I was trying to be funny, responding literally to what was said. The work is now in the public domain since Brendan Behan died in 1964 and the copyright term is death + 50 years. Behan was in jail a bunch of times, but mostly for IRA activities. He was in Borstal for an attempt to set off a bomb at the Liverpool docks. His punishment was pretty mild considering that this was in 1939, when World War II started (he was 16 at the time).

On Wed, Apr 7, 2021, 2:11 PM D. Hugh Redelmeier via talk, <talk@gtalug.org> wrote:
| From: Evan Leibovitch via talk <talk@gtalug.org>
| Since copyright terms exist for many years after the creator's death, that | fact is far less relevant than one might think.
Absolutely correct. I was trying to be funny, responding literally to what was said.
The work is now in the public domain since Brendan Behan died in 1964 and the copyright term is death + 50 years.
I think that depends on the jurisdiction. Lifetime against all persons +70 years after death in the US. Of course there is no international copyright protection. The rights must be registered in every jurisdiction which supports the concept and may be extended a further 25 years after that on special request of the estate holder.
Behan was in jail a bunch of times, but mostly for IRA activities. He was in Borstal for an attempt to set off a bomb at the Liverpool docks. His punishment was pretty mild considering that this was in 1939, when World War II started (he was 16 at the time). --- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
Russell “Th’ newspaper does ivrything f’r us. It runs th’ polis foorce an’ th’ banks, commands th’ milishy, controls th’ ligislachure, baptizes th’ young, marries th’ foolish, comforts th’ afflicted, afflicts th’ comfortable, buries th’ dead an’ roasts thim aftherward.” F. P. Dunne

I prefer Oracle to win. Then, Google would be forced to dump Java and find replacement. On 4/6/21 1:06 PM, Russell Reiter via talk wrote:
On Tue, Apr 6, 2021, 12:31 PM D. Hugh Redelmeier via talk, <talk@gtalug.org <mailto:talk@gtalug.org>> wrote:
Oracle sued Google, claiming Android infringed Oracle's patents on Java. Somehow. That failed.
So they sued for copyright infringement based on the copying of the API declarations.
The computer community had been very scared that APIs could be copyrighted, something nobody had expected.
The US Supreme Court decided that this particular case came under "fair use". and was no infringement. This was NOT a general decision about APIs.
This is very good news of Free Software. And consumers.
https://www.techdirt.com/articles/20210405/09243546552/supreme-court-sides-w...
I read that article with interest after I had used a pharmacological/health sciences metaphore about copyright in another thread. This description of how the courts view a value added proposition, is closer to the crucible of linux topicality, but the principal is the same.
Shame on Oracle for not sharing what they conceptually borrowed elsewhere for their product.
You may use other copy protected work under fair use if it adds value to the proposition. I think this decision makes that pretty clear.
--- Post to this mailing list talk@gtalug.org <mailto:talk@gtalug.org> Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk

On Tue, Apr 06, 2021 at 02:30:14PM -0400, William Park via talk wrote:
I prefer Oracle to win. Then, Google would be forced to dump Java and find replacement.
The result on the entire industry would not be worth it. If you don't want them to use java, you don't have to use android. Apple seems to prefer objc instead. I would love for java to not exist at all, but that doesn't appear to be happening no matter how much oracle tries to make it unappealing to everyone. -- Len Sorensen

On 2021-04-06 4:15 p.m., Lennart Sorensen via talk wrote:
On Tue, Apr 06, 2021 at 02:30:14PM -0400, William Park via talk wrote:
I prefer Oracle to win. Then, Google would be forced to dump Java and find replacement. The result on the entire industry would not be worth it. If you don't want them to use java, you don't have to use android.
Apple seems to prefer objc instead.
I would love for java to not exist at all, but that doesn't appear to be happening no matter how much oracle tries to make it unappealing to everyone.
I could be wrong, but I seem to recall that Sun made Java available and encouraged it's use. Then when Oracle bought Sun, they tried to rein it back in. They did the same with OpenOffice. So, this boils down to Oracle retroactively and unilaterally changing the terms for using Java.

On Tue, Apr 6, 2021 at 4:27 PM James Knott via talk <talk@gtalug.org> wrote:
On 2021-04-06 4:15 p.m., Lennart Sorensen via talk wrote:
On Tue, Apr 06, 2021 at 02:30:14PM -0400, William Park via talk wrote:
I prefer Oracle to win. Then, Google would be forced to dump Java and find replacement. The result on the entire industry would not be worth it. If you don't want them to use java, you don't have to use android.
Apple seems to prefer objc instead.
I would love for java to not exist at all, but that doesn't appear to be happening no matter how much oracle tries to make it unappealing to everyone.
I could be wrong, but I seem to recall that Sun made Java available and encouraged it's use. Then when Oracle bought Sun, they tried to rein it back in. They did the same with OpenOffice. So, this boils down to Oracle retroactively and unilaterally changing the terms for using Java.
Reverse engineering C[hash:hash] style. Double your money perhaps?
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
-- Russell

On 2021-04-06 4:27 p.m., James Knott via talk wrote:
I could be wrong, but I seem to recall that Sun made Java available and encouraged it's use. Then when Oracle bought Sun, they tried to rein it back in. They did the same with OpenOffice. So, this boils down to Oracle retroactively and unilaterally changing the terms for using Java.
I was there at the the time, and Sun absolutely did: Java was once a pretty little language called Oak, designed for tiny embedded devices, like set-top boxes and smart cards. It grew up, and then caught elephantiasis. Android therefor seem to me like the kind of device an adult Oak was designed for. Changing the subject slightly, the US Supreme court said "even if we assume you can copyright an interface, your suit will fail because it meets one (actually two) of the fair-use criteria". That means the question of copyrighting interfaces didn't get addressed. I don't know US law, so interfaces might still be copyrightable in the western court-region, but I rather suspect that the next time Oracle wants to claim copyright on an interface, they'll have to start /all over again/ and try to fool the next trial judge. They one in the Java case was a programmer, and didn't fall for it. --dave -- David Collier-Brown, | Always do right. This will gratify System Programmer and Author | some people and astonish the rest davecb@spamcop.net | -- Mark Twain

| From: David Collier-Brown via talk <talk@gtalug.org> | | On 2021-04-06 4:27 p.m., James Knott via talk wrote: | | > I could be wrong, but I seem to recall that Sun made Java available and | > encouraged it's use. Then when Oracle bought Sun, they tried to rein it | > back in. They did the same with OpenOffice. So, this boils down to Oracle | > retroactively and unilaterally changing the terms for using Java. | > | I was there at the the time, and Sun absolutely did: Java was once a pretty | little language called Oak, designed for tiny embedded devices, like set-top | boxes and smart cards. It grew up, and then caught elephantiasis. Android | therefor seem to me like the kind of device an adult Oak was designed for. I wasn't there, but... Background: I think Sun was a great proponent of open standards. They won for a long time by introducing new ones and always being a step ahead of the other workstation and server vendors. The idea seemed to be that a standard and the code were a bit tied together. If other companies wanted NFS, they licensed the code. For quite reasonable rates, I think. The first stumble was with their Windowing system NeWS. Nobody adopted it because they thought it would make Sun too powerful. But I think that it was a good system -- better than X. The Windowing system on NeXT seemed to me to be, to a first approximation, inspired by NeWS. NeWS used a language a lot like PostScript (Forth); NeXT used Display PostScript. Eventually, almost all competitors refused to have anything to do with Sun initiatives. Sun got in partnership with ATT in a way that alienated all other UNIX vendors. End of Background. Sun released Java and pushed it hard. Introducing a new platform takes a lot of promotion. It was open but there was only one implementation. Amazingly, it took off. - for embedded systems - for terminal servers (not completely successful, but a good run) - for client-side programs (in the browser). This started out well but JavaScript has completely replaced it. I'm not sure that this this replacement was a Good Thing - for server side-programming (this surprised me) - lots of general corporate programming. For example, Bank software is written by large armies of programmers, usually in Java IBM had an implementation of its own, but I think that they paid royalties (I'm not sure). Sun got in financial trouble. Their one clearly winning product was Java. How could they monitise it. Especially since this was against their previous ethos. They struggled. Oracle bought them and the culture changed. Fetters were released. Doing unconscionable things seems to come naturally to Oracle. Why is Java so fat? Because the original libraries didn't do enough and a replacement was needed in a hurry. And a replacement for the replacement. A do-over would be great but the amount of legacy code makes this unlikely. Java seems to be hated. But there's a lot good about it. It prevents a wlot of bugs that come naturally to C. (I don't use it.)

On Tue, Apr 06, 2021 at 06:10:25PM -0400, D. Hugh Redelmeier via talk wrote:
I wasn't there, but...
Background:
I think Sun was a great proponent of open standards. They won for a long time by introducing new ones and always being a step ahead of the other workstation and server vendors.
The idea seemed to be that a standard and the code were a bit tied together. If other companies wanted NFS, they licensed the code. For quite reasonable rates, I think.
Oh yes the "wonderful" things sun gave us like nfs, portmap, nis, etc. I am trying to think of something they gave is that I would actually like to see on my system these days. They did try though.
The first stumble was with their Windowing system NeWS. Nobody adopted it because they thought it would make Sun too powerful. But I think that it was a good system -- better than X.
There is certainly a lot wrong with X, so it could have been better.
The Windowing system on NeXT seemed to me to be, to a first approximation, inspired by NeWS. NeWS used a language a lot like PostScript (Forth); NeXT used Display PostScript.
Eventually, almost all competitors refused to have anything to do with Sun initiatives. Sun got in partnership with ATT in a way that alienated all other UNIX vendors.
End of Background.
Sun released Java and pushed it hard. Introducing a new platform takes a lot of promotion. It was open but there was only one implementation. Amazingly, it took off.
- for embedded systems
- for terminal servers (not completely successful, but a good run)
- for client-side programs (in the browser). This started out well but JavaScript has completely replaced it. I'm not sure that this this replacement was a Good Thing
At least javascript you can see and potentially debug or do something about. Not so with the dreadful java browser apps.
- for server side-programming (this surprised me)
- lots of general corporate programming. For example, Bank software is written by large armies of programmers, usually in Java
IBM had an implementation of its own, but I think that they paid royalties (I'm not sure).
Sun got in financial trouble. Their one clearly winning product was Java. How could they monitise it. Especially since this was against their previous ethos. They struggled.
Oracle bought them and the culture changed. Fetters were released. Doing unconscionable things seems to come naturally to Oracle.
Yes Oracle is very good at that.
Why is Java so fat? Because the original libraries didn't do enough and a replacement was needed in a hurry. And a replacement for the replacement. A do-over would be great but the amount of legacy code makes this unlikely.
Certainly compatibility was a huge mess early on and of course java developers could never be bothered to tell you what version their code required to run (they apparentlty assumed everyone would always use the newest one like they did).
Java seems to be hated. But there's a lot good about it. It prevents a wlot of bugs that come naturally to C. (I don't use it.)
Many languages (probaby most of them) prevent many of the bugs C makes easy to create. Many of them are better than java. -- Len Sorensen

| From: Lennart Sorensen via talk <talk@gtalug.org> | Many languages (probably most of them) prevent many of the bugs C makes | easy to create. Many of them are better than java. 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. Why, in particular, do you think JAVA is a bad general purpose language for ordinary programmers? Note: I don't actually know JAVA. I know reasons why you or I might dislike it: - essentially cannot be statically compiled - uses UTF-16 (I think). The worst representation of UNICODE. - 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.

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

On 4/7/21 5:44 PM, Lennart Sorensen via talk wrote:
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. While I would agree with your other points. The problem is you have two choices either a) people have to learn a newer way of doing OO or b) keep doing the same thing for the most part. Unfortunately, when designing a new language you kinda have the advantage of being more popular if you do a). Granted one thing that is much better about C++ is templates and now concepts are expanded at compile time in Java it seems that generics aren't. This can run into a runtime penalty, through C++ has the issue with try and catch which is a problem in the embedded or real time world. I would through not that I like C++'s OO if you've used C++20 considering some of it's changes like concepts.
Nick
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)

On Thu, Apr 08, 2021 at 12:46:49AM -0400, Nicholas Krause via talk wrote:
While I would agree with your other points. The problem is you have two choices either a) people have to learn a newer way of doing OO or b) keep doing the same thing for the most part. Unfortunately, when designing a new language you kinda have the advantage of being more popular if you do a). Granted one thing that is much better about C++ is templates and now concepts are expanded at compile time in Java it seems that generics aren't. This can run into a runtime penalty, through C++ has the issue with try and catch which is a problem in the embedded or real time world. I would through not that I like C++'s OO if you've used C++20 considering some of it's changes like concepts.
The state of C++ today is not what it was when Java arrived. There were no templates, namespaces or STL. Just a language somewhat based on C with a bad class inheritance design. C++ has improved quite a lot, especially in the last decade. If I had my way, functional languages would be what is used, and definitely not any that were object oriented, at least not in the way C++ and Java are. Multiple inheritance should not exist. -- Len Sorensen

On 4/8/21 11:37 AM, Lennart Sorensen via talk wrote:
If I had my way, functional languages would be what is used, and definitely not any that were object oriented, at least not in the way C++ and Java are. Multiple inheritance should not exist. Can you throw few names of "functional languages" at us non-compsci folks?

Haskell, Scheme, Lisp, Elixir (mostly), Elm, Clojure Static OO is kinda an oxymoron. Smalltalk, Ruby, Python are good OO (in my highly opinionated opinion). ../Dave On Apr 8, 2021, 12:29 PM -0400, William Park via talk <talk@gtalug.org>, wrote:
On 4/8/21 11:37 AM, Lennart Sorensen via talk wrote:
If I had my way, functional languages would be what is used, and definitely not any that were object oriented, at least not in the way C++ and Java are. Multiple inheritance should not exist. Can you throw few names of "functional languages" at us non-compsci folks?
Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk

On Thu, Apr 08, 2021 at 12:29:18PM -0400, William Park via talk wrote:
Can you throw few names of "functional languages" at us non-compsci folks?
ML (and hence CAML and OCAML), F#, LISP (and hence Scheme and such), SML, Haskell, Scala, Clojure, Erlang and many more. Main idea (to me at least) is that you have data, and then you say what to do with the data (but not how) and you get back data that has been worked on. Everything is pass by value (although the code is allowed to reuse the storage if it wants of course as long as the result is what you asked for), and you don't care what order the work gets done, just that it does the work you requested and return the result. It lends itself well to code that is automatically paralleized by the language as well as automatically handling memory in a way that doesn't need to use garbage collection. -- Len Sorensen

On 2021-04-07 11:21 a.m., 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.
That would have been a hard sell, considering that WatFiv was a locally-developed project designed specifically for university use. It produced good-enough code but very quickly, while IBM's compiler would produce great code but bog down the machine because it was quite slow. Algol-W seems like it was pretty fast too. I was surprised to find that there's a (somewhat) maintained Algol-W compiler for Linux: https://tiddly-pom.com/~glyn/ It's partly written in ocaml, and is really an Algol-W to C filter. It seems to have some minor issues building with ocaml > 4.05, but you can force it to work with OCAMLPARAM="safe-string=0,_" make The few times I need the speed of a compiled language, I'll still reach for Fortran. C just wants to crash when I'm near it, and having to remember to start arrays at zero just doesn't work for me. The only functional languages I've ever used (if openscad doesn't count) were DSSSL (Scheme with an embedded CSS engine for document processing in SGML) and XSLT (Scheme [except it's in XML syntax] with an embedded CSS engine for document processing in XML). Both were utterly dismal and I only used 'em because I was paid to. Not being able to use loops but having to write functions that called themselves recursively seemed a huge amount of faffing about and possibly constituted cruelty to programmers. cheers, Stewart

On Thu, Apr 08, 2021 at 02:46:01PM -0400, Stewart C. Russell via talk wrote:
The only functional languages I've ever used (if openscad doesn't count) were DSSSL (Scheme with an embedded CSS engine for document processing in SGML) and XSLT (Scheme [except it's in XML syntax] with an embedded CSS engine for document processing in XML). Both were utterly dismal and I only used 'em because I was paid to. Not being able to use loops but having to write functions that called themselves recursively seemed a huge amount of faffing about and possibly constituted cruelty to programmers.
But using a loop means you are telling the system how to do things, rather than telling it what you want done and letting it (usually) do a better job at the how. After all with a loop you are controlling the excution order of the processing. If done right you usually shouldn't need to care. But yes functional languages require a different philosophy. Functional languages are not for people that want to micromanage the computer. -- Len Sorensen

On Apr 9, 2021, 11:51 AM -0400, Len Sorensen via <talk@gtalug.org>, wrote:
But using a loop means you are telling the system how to do things, rather than telling it what you want done and letting it (usually) do a better job at the how. After all with a loop you are controlling the excution order of the processing. If done right you usually shouldn't need to care. Another fine example of this is with Rust where you can write very natural, idiomatic, safe, code and then trust the compiler to mostly optimize most perceived overhead away. In fact there are often optimizations that Rust can do that C compilers can’t do.
Here is a very interesting series of articles where someone takes a heavily optimized C program, converts it to Rust - with progressively more idiomatic versions, and ends up with a Rust program 3% faster than C (clang) and 20% faster than C (gcc), then rewrites it using the natural Rust iterators rather than indexing loops and it’s now 27% faster than clang!! http://cliffle.com/p/dangerust/
But yes functional languages require a different philosophy. Functional languages are not for people that want to micromanage the computer. The point is, apart from academic exercises, the percentage of people who *need* to micromanage the computer is getting vanishingly small. I would say measured in the low thousands, but hundreds is probably more accurate. Unless you’re writing a compiler, interpreter or for an application where the computer has to add no more than $0.25 to the cost of the product, you really shouldn’t care.
It really is time for C to go away! But TIOBE doesn’t agree https://www.tiobe.com/tiobe-index/ with C back to #1 and assemble up to #14!!!! (While Rust is #29) Just shows how important my opinion is!! ../Dave

Hello Everybody, On Fri, Apr 9, 2021 at 12:52 PM David Mason via talk <talk@gtalug.org> wrote:
On Apr 9, 2021, 11:51 AM -0400, Len Sorensen via <talk@gtalug.org>, wrote:
But using a loop means you are telling the system how to do things, rather than telling it what you want done and letting it (usually) do a better job at the how. After all with a loop you are controlling the excution order of the processing. If done right you usually shouldn't need to care.
Another fine example of this is with Rust where you can write very natural, idiomatic, safe, code and then trust the compiler to mostly optimize most perceived overhead away. In fact there are often optimizations that Rust can do that C compilers can’t do.
Here is a very interesting series of articles where someone takes a heavily optimized C program, converts it to Rust - with progressively more idiomatic versions, and ends up with a Rust program 3% faster than C (clang) and 20% faster than C (gcc), then rewrites it using the natural Rust iterators rather than indexing loops and it’s now 27% faster than clang!! http://cliffle.com/p/dangerust/
But yes functional languages require a different philosophy. Functional languages are not for people that want to micromanage the computer.
The point is, apart from academic exercises, the percentage of people who *need* to micromanage the computer is getting vanishingly small. I would say measured in the low thousands, but hundreds is probably more accurate. Unless you’re writing a compiler, interpreter or for an application where the computer has to add no more than $0.25 to the cost of the product, you really shouldn’t care.
It really is time for C to go away! But TIOBE doesn’t agree https://www.tiobe.com/tiobe-index/ with C back to #1 and assemble up to #14!!!! (While Rust is #29) Just shows how important my opinion is!!
This is simply an attempt to inform and educate ( i am not trying to start any flame wars ). This article I feel describes aptly why C will not go away. https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html Thanks - Aruna :: ../Dave
--- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk

On Apr 9, 2021, 2:55 PM -0400, Aruna Hewapathirane <aruna.hewapathirane@gmail.com>, wrote:
This is simply an attempt to inform and educate ( i am not trying to start any flame wars ). This article I feel describes aptly why C will not go away. https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html Thanks - Aruna ::
Thanks, Aruna. It’s a good article. I don’t necessarily agree with all the premises, nor conclusions - most particularly the “we don’t need no parallelism” part - but there is legitimacy in the argument that Rust is more a C++ replacement than a C replacement. I think the lifetime analysis is a game-changer. I’d much rather program in Rust, even with the “cruft” than in C (for the record I have written C compilers and have well over 100K lines of C code under my belt), because I think the safety and concurrency are critically important. Go is interesting, but has never caught my interest, partly because it has a garbage collector (not that I have a problem with garbage collection…. just if I’m going to use a GC’ed language I have a lot better options than Go). Perhaps the eventual C replacement is a stripped-down Rust - lifetimes, type inference, safety + concurrency, but not much more. ../Dave

On Fri, Apr 09, 2021 at 02:55:02PM -0400, Aruna Hewapathirane via talk wrote:
This is simply an attempt to inform and educate ( i am not trying to start any flame wars ). This article I feel describes aptly why C will not go away. https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html
I certainly agree there are things C is the best choice for. But it is probably a lot less than it is being used for. No idea what Rust is good at, having never used it or looked at it. I have encountered go code, and it seems OK so far. Good article. -- Len Sorensen

On 09/04/2021 16:09, Lennart Sorensen via talk wrote:
On Fri, Apr 09, 2021 at 02:55:02PM -0400, Aruna Hewapathirane via talk wrote:
This is simply an attempt to inform and educate ( i am not trying to start any flame wars ). This article I feel describes aptly why C will not go away. https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html
I certainly agree there are things C is the best choice for. But it is probably a lot less than it is being used for. No idea what Rust is good at, having never used it or looked at it. I have encountered go code, and it seems OK so far.
Experimental Rust support is in linux-next: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Doc... Here's an example driver: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/dri... Work is ongoing to prove the integration can work longer term. I think quite a bit has to do with supported architectures when using GCC or Clang. Cheers, Jamon

(oops, don't you hate it with the mail client silently assumes you only want to reply to the sender?) On Fri, 9 Apr 2021 at 11:51, Lennart Sorensen <lsorense@csclub.uwaterloo.ca <mailto:lsorense@csclub.uwaterloo.ca>> wrote: But using a loop means you are telling the system how to do things, rather than telling it what you want done and letting it (usually) do a better job at the how. 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. After all with a loop you are controlling the execution order of the processing. If done right you usually shouldn't need to care. 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. I've had to process utility time series power generation data in XSLT. That was horrid. Order matters a lot there, too. But yes functional languages require a different philosophy. Functional languages are not for people that want to micromanage the computer. 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. cheers, Stewart

On Apr 9, 2021, 1:45 PM -0400, Stewart C. Russell via talk <talk@gtalug.org>, wrote:
After all with a loop you are controlling the execution order of the processing. If done right you usually shouldn't need to care.
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.
The key part of what Lennart wrote is “if done right”. How could you imagine that the functional program would return the results out of order? Compilers/interpreters are allow to make whatever optimizations they want, as long as time and memory consumption are the only things that change from the original!
I've had to process utility time series power generation data in XSLT. That was horrid. Order matters a lot there, too. XSLT is a very specific functional language, designed for a very particular job, which (from my limited experience) it does somewhere between “adequately" and “very well”. But while it may be Turing complete, it is not a general purpose language and I would not want to program such problems with it!!! Pure lambda-calculus and Turing machines are also Turing complete, but you sure wouldn’t want to be programming in those either.
Haskell, Scheme, OCaML, Erlang/Elixir, Scala are much, much friendlier languages for general purpose programming. All the ML dialects, as well as Scheme and Scala support more imperative programming as well, that can help with the transition. ../Dave

On Fri, Apr 9, 2021 at 10:58 AM David Mason via talk <talk@gtalug.org> wrote:
On Apr 9, 2021, 1:45 PM -0400, Stewart C. Russell via talk <talk@gtalug.org>, wrote:
After all with a loop you are controlling the execution order of the processing. If done right you usually shouldn't need to care.
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.
The key part of what Lennart wrote is “if done right”. How could you imagine that the functional program would return the results out of order? Compilers/interpreters are allow to make whatever optimizations they want, as long as time and memory consumption are the only things that change from the original!
I probably misread your statement. Compilers also routinely reorder memory accesses as well, as long as the end result will not change. Sometimes the cause for some fun to debug issues (in C/C++).

On Fri, Apr 09, 2021 at 01:58:02PM -0400, David Mason via talk wrote:
The key part of what Lennart wrote is “if done right”. How could you imagine that the functional program would return the results out of order? Compilers/interpreters are allow to make whatever optimizations they want, as long as time and memory consumption are the only things that change from the original!
Certainly if I have a list of numbers 3 6 4 9 2 and I say, add 2 to each thing in this list, I don't really care what order that is done it, how many threads are working on it, as long as the result is 5 8 6 11 4. If the order was different, then the language is broken. I don't think any of the functional languages woudl mes that up.
XSLT is a very specific functional language, designed for a very particular job, which (from my limited experience) it does somewhere between “adequately" and “very well”. But while it may be Turing complete, it is not a general purpose language and I would not want to program such problems with it!!! Pure lambda-calculus and Turing machines are also Turing complete, but you sure wouldn’t want to be programming in those either.
No kidding.
Haskell, Scheme, OCaML, Erlang/Elixir, Scala are much, much friendlier languages for general purpose programming. All the ML dialects, as well as Scheme and Scala support more imperative programming as well, that can help with the transition.
I haven't used any of them very much, but the bits I have done was very nice. ML's polymorphism is such a neat way to handle things. -- Len Sorensen

On 2021-04-09 1:58 p.m., David Mason via talk wrote:
The key part of what Lennart wrote is “if done right”. How could you imagine that the functional program would return the results out of order?
Well, this particular DSSSL thing did occasionally put lists out of order, and didn't have a good way of peeking at items before or after in the list. You sometimes need to do that in setting books.
XSLT … is not a general purpose language and I would not want to program such problems with it!!!
The input data was in XML, so XSLT was the perfect language (supposedly) for the task. I think the agency responsible for generating the data spent quite a bit of money making it as hard to use as possible - it was data that was required by law to be published, but Difficult Questions might be asked of the agency if it were ever closely analyzed. So they wrapped it up in quite the worst XML format I've ever seen. I realize that these are domain-specific examples, but my experience of functional languages was of unnecessary complexity and putting rules in the way of getting results. cheers, Stewart

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.
Ha, and many programmers I know these days want the computer to get out of the way, and functional programming gives them a way to do that. I think there are "niches" for both styles, and as pointed out elsewhere, it does take a paradigm shift to do proper functional programming. I could never achieve that, though I know folks who did, and their code was quite elegant (in functional paradigm). Did make me jealous at times when I had to write lots of procedural code. But, hey, at least I knew exactly what happened and why and how (well, OK most of the time) and functional programming was all magic to me. Dhaval

On Fri, Apr 09, 2021 at 11:07:35AM -0700, Dhaval Giani via talk wrote:
Ha, and many programmers I know these days want the computer to get out of the way, and functional programming gives them a way to do that.
I think there are "niches" for both styles, and as pointed out elsewhere, it does take a paradigm shift to do proper functional programming. I could never achieve that, though I know folks who did, and their code was quite elegant (in functional paradigm). Did make me jealous at times when I had to write lots of procedural code. But, hey, at least I knew exactly what happened and why and how (well, OK most of the time) and functional programming was all magic to me.
https://fsharp.org/testimonials/ has some interesting stories. Seems F# is very useful for implementing data analysis and making the code fast due to the automatic parallelization it can do and the code looks more like the data model than C# code would. And the code tends to be a lot shorter too. F# is based on ML syntax but of course with the ability to easily interact with C# code. -- Len Sorensen

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

On Tue, Apr 6, 2021 at 4:16 PM Lennart Sorensen via talk <talk@gtalug.org> wrote:
On Tue, Apr 06, 2021 at 02:30:14PM -0400, William Park via talk wrote:
I prefer Oracle to win. Then, Google would be forced to dump Java and find replacement.
The result on the entire industry would not be worth it. If you don't want them to use java, you don't have to use android.
Apple seems to prefer objc instead.
I would love for java to not exist at all, but that doesn't appear to be happening no matter how much oracle tries to make it unappealing to everyone.
Oracle tries to make it unappealing. +1 on that. --
Len Sorensen --- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
-- Russell

The actual ruling document <https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf> should be quite readable by most participants here; I recommend a look. It actually reads more like tech speak then legelase, and appears to do a thorough job of laying the foundation for the decision. It indeed goes back to the history and Sun's intentions before the Oracle purchase. The really good news goes beyond the specifics of the case, as most Supreme Court rulings do. It provides a conclusive ruling, unlikely to be challenged again in our lifetimes, that APIs as a category of software cannot be protected as intellectual property. While Google was acknowledged to have copied Sun/Oracle's API code, such copying was confirmed to fall under "fair use" exceptions to copyright infringement. Different variations of fair use allow for legal (ie, "infringing" but exempt from action) copying of works for the purpose of satire, education, home backups etc. (This case, before the ruling, took up one of the weekly lecture sessions of the Harvard CopyrightX course <https://online-learning.harvard.edu/course/copyrightx> I am currently taking. In a straw poll of the class a few weeks ago I was one of the few who argued that and why Google should prevail. Much of the rest of the class sided with Oracle. The next session will be fun.) Evan Leibovitch, Toronto Canada @evanleibovitch / @el56 On Tue, 6 Apr 2021 at 12:32, D. Hugh Redelmeier via talk <talk@gtalug.org> wrote:
Oracle sued Google, claiming Android infringed Oracle's patents on Java. Somehow. That failed.
So they sued for copyright infringement based on the copying of the API declarations.
The computer community had been very scared that APIs could be copyrighted, something nobody had expected.
The US Supreme Court decided that this particular case came under "fair use". and was no infringement. This was NOT a general decision about APIs.
This is very good news of Free Software. And consumers.
https://www.techdirt.com/articles/20210405/09243546552/supreme-court-sides-w... --- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk
participants (14)
-
Aruna Hewapathirane
-
D. Hugh Redelmeier
-
David Collier-Brown
-
David Mason
-
Dhaval Giani
-
Evan Leibovitch
-
Howard Gibson
-
James Knott
-
Jamon Camisso
-
lsorense@csclub.uwaterloo.ca
-
Nicholas Krause
-
Russell Reiter
-
Stewart C. Russell
-
William Park