Posted in Deception, GNU/Linux, Microsoft at 1:15 pm by Dr. Roy Schestowitz
Lust for money can also be a nonprofit’s Achilles heel
Summary: The Linux Foundation has just announced a new Microsoft-funded initiative that’s pushing GitHub and CLAs (passing copyrights on code to corporations)
THE Linux Foundation makes us increasingly cynical about its use of the brand “Linux”, hence the scare quotes in the headline. Its adherence or commitment to Free software was never a big thing, but at least it was more or less loyal to GNU/Linux about a decade ago.
“Does the Linux Foundation want Linux to actually succeed? Or does it just want the Linux Foundation to succeed (in financial terms)?”Things have changed.
Earlier this year we began examining pertinent bits of evidence, based on pointers sent to us from people with connections (not necessarily insiders). The more we started digging, the more worried we became. Does the Linux Foundation want Linux to actually succeed? Or does it just want the Linux Foundation to succeed (in financial terms)? It certainly seems as though, over time, it’s more and more of the latter. Microsoft couldn’t be happier!
By paying companies like Novell and Canonical (through Azure for example) Microsoft has created the financial conditions that cultivate abandonment of GNU/Linux as a desktop platform. “Stay out of our turf,” they implicitly suggest or signal, “and you shalt be paid…”
“By paying companies like Novell and Canonical (through Azure for example) Microsoft has created the financial conditions that cultivate abandonment of GNU/Linux as a desktop platform.”Look at Linux.com’s front page. It’s full of Microsoft propaganda and anti-Linux FUD. I posted lots of complaints about it yesterday, as did some readers. For instance, they’re painting the company that actively attacks FOSS in election platforms as “Open Source” (in the elections context). By doing so the Foundation becomes an active participant in what PR agencies of Microsoft hope to spread. I’ve put remarks in daily links’ latest or here in Tux Machines (down the middle). I am disgusted, disappointed but not surprised (anymore) by the Linux Foundation becoming a Microsoft front (more and more over time). “They hijacked the Web site Linux.com,” one reader said to me this morning. This reader hates the site now. After 6 years reading it daily. “Eventually they are just going to promote Microsoft,” the reader said, “but we just noticed it first…”
So what’s the latest worrisome example? Well, the Foundation published this page entitled “Project Maintainers: Reduce Your CLA Administrative Headaches Today” (sounds benign, right?).
This is proprietary software for CLA (no friend of real FOSS). The Foundation is actively attacking, on Microsoft’s payroll, a key tenet of Free software, suggesting that people should assign copyrights (on their code) to large corporations like those which fund the Foundation. As a reminder, the Foundation actually recommended a site for job applicants (for leadership of this) which is linked to Microsoft's LinkedIn.
Is it the Linux Foundation or the Microsoft Foundation?
“Is it the Linux Foundation or the Microsoft Foundation?”But here’s the even more troubling point: The Foundation has basically just promoted proprietary software funded by Microsoft. Yes, the above is funded by Microsoft through GitHub. “Any project hosted by the Linux Foundation and using either GitHub or Gerrit can use EasyCLA,” says the Linux Foundation, embedding just a GitHub logo in the diagram/schematics. Microsoft GitHub is funding this thing for the ‘Linux’ Foundation to be acting like a Microsoft marketing/recruitment front. ISV? Channel partner? Call it whatever, but we know who’s being served.
We’ve meanwhile noticed today’s article from OpenSource.com in which an employee of IBM (not Red Hat) promotes GitHub. What’s going on here? Is IBM on the same boat as Microsoft? “Now, I am living in Munich, Germany and working as a Software Developer at IBM,” the author said. It’s all about GitHub. We’ve begun worrying that a proprietary software giant that lobbies for software patents now completely owns and controls the domain OpenSource.com. IBM and Microsoft cross-license their patents, so why worry? Remember when Microsoft apologists denied the argument about Mono being a ruinous Trojan horse until Microsoft took de Icaza ‘in-house’ (paying him millions of dollars for attacking FOSS)? Microsoft is still suing OEMs over patents. It’s nowadays trying to put more patent traps inside the Linux kernel itself (exFAT). Will Linux users be safe only on Microsoft platforms such as Azure? Is Linus Torvalds paying attention? Can he still comment on it without being blasted? In many people’s minds his younger baby, Git, is just Microsoft proprietary software with surveillance (a site/API called GitHub). Nowadays Microsoft goes after his firstborn, Linux, with WSL and Azure. Does he mind? EEE works if they throw money at it. At what point, if any, might Canonical decide that Ubuntu is used more in WSL form than standalone (‘secure boot’ makes installation hard) and then decide to just become a Windows ‘app’ developer (Ubuntu as an ‘app’)? Even if Microsoft doesn’t buy Canonical..
“GNU/Linux users everywhere will gradually come to the realisation that this thing called the “Linux Foundation” doesn’t work for them but against them.”Earlier today we saw a new article about Ceph in Linux 5.3. Notice how with Ceph development people are now throwing Microsoft GitHub links at Torvalds.
Since I was about 20 I’ve studied Microsoft’s tactics and crimes against its competition. It’s very crystal clear to me what plans they have for Linux. Did Microsoft change? No. It changed perceptions. A PR campaign such as “Microsoft loves Linux” facilitates infiltration and it seems to be working. We don’t expect the Foundation to put an end to it, but will Torvalds do something? Can he still? GNU/Linux users everywhere will gradually come to the realisation that this thing called the “Linux Foundation” doesn’t work for them but against them. It is very successfully ‘monetising’ a sellout or a passage of Linux from what remotely still resembles a community… to few large corporations. █
Permalink
Send this to a friend
Posted in Courtroom, Europe, Law, Patents at 5:41 am by Dr. Roy Schestowitz
“True peace is not merely the absence of tension: it is the presence of justice.”
–Martin Luther King Jr.

The Chairman of the Enlarged Board, Carl Josefsson
Part 1: EPO Looney Tunes – Part 1: Is D-Day Approaching for Battistelli’s “Difficult Legacy”?
Part 2: EPO Looney Tunes – Part 2: The “Difficult Legacy” and Its Dark Historical Shadow
Part 3: EPO Looney Tunes – Part 3: The Legal Line-up for G 2/19
Summary: “Josefsson needs to bring in the “desired result” for his political masters in the Administrative Council if he wants to be in with a chance of reappointment.”
The Chairman of the Enlarged Board, Carl Josefsson, is generally reckoned to be a “safe pair of hands” who does his best to please his political masters.
Most insiders are of the opinion that he is unlikely to advocate or support any course of action which might risk upsetting the apple cart (António Campinos has partial control over his position).
“The decisive question seems to be whether or not Josefsson can persuade a majority of the Board to row in behind him or whether the “contrarians” will carry the day.”So it seems like a safe bet that he will do his best to guide the proceedings in a direction that will enable the Board to dodge the awkward third and final “Haar question”.
Failing that, he can be expected to do his best to secure a decision confirming that the holding of oral proceedings in Haar is in compliance with the EPC.
The decisive question seems to be whether or not Josefsson can persuade a majority of the Board to row in behind him or whether the “contrarians” will carry the day.

The internal members of the Enlarged Board.
Top row: Legally qualified members, Ingo Beckedorf and Gérard Weiss
Bottom row: Technically qualified members, Gunnar Eliasson (no photo) and Pascal Gryczka
As far as the internal members are concerned, Josefsson can probably safely count on the support of his fellow Swede, the elusive Gunnar Eliasson.
“Eliasson is the Chairman of the Technical Board of Appeal 3.4.03 which is reputed to take a relatively “soft” and “customer-friendly” line on software and business method patenting.”Eliasson acted as ad interim Chairman of the Enlarged Board (warning: epo.org
link) during the interregnum following the departure of the former Vice-President of DG3, the Dutchman Wim “the Wimp” van der Eijk, who had is reported to have fallen out of grace with Battistelli. In this role Eliasson liased closely with Josefsson during the “handover” period when the latter assumed office as “President of the Boards of Appeal”.
Eliasson is the Chairman of the Technical Board of Appeal 3.4.03 which is reputed to take a relatively “soft” and “customer-friendly” line on software and business method patenting. By all accounts he seems like another managerially compliant “safe pair of hands” who can be depended on to dance to the Chairman’s tune.
The support of the other internal members for Josefsson’s line is less certain because at least some of them are known to have taken management-critical stances in the past.
“As far as the external members are concerned, they are “dark horses” and it is difficult to make any reliable prediction about the position which they might take.”Ingo Beckedorf joined the EPO in 2007 and has been a regular legally qualified member of the Enlarged Board of Appeal since 2012. Before joining the Boards of Appeal, he was an attaché de presse and deputy head of the Office of the European Parliament in Germany (2001-2003) and a judge at the Hanseatic Higher Regional Court of Hamburg (1997-2006).
Gérard Weiss, from Alsace, joined the EPO in 1982 as a legal advisor in the Patent Law Department. From 1990 to 2000 he was head of the Administrative Council Secretariat. He moved to the Boards of Appeal in 2001 and has been a legal member of the Enlarged Board since 2010.
Pascal Gryczka, who comes from Freyming-Merlebach in the Moselle region of France close to the German border, is a graduate of the University of Strasbourg (Battistelli works at CEIPI in Strasbourg now) and has been a Chairman of a Technical Board of Appeal since 2011.

The external members of the Board.
Jochem Gröning (Germany) and Michael Sachs (Austria)
As far as the external members are concerned, they are “dark horses” and it is difficult to make any reliable prediction about the position which they might take.
These “external members” are members of a national judiciary of an EPO contracting state who are appointed to a panel for a (renewable) term of three years.
“Sachs has a reputation as a bon viveur and is a well known figure among the “champagne set” of Viennese High Society.”Jochem Gröning is a judge at the German Federal Court of Justice in Karlsruhe with a solid reputation in legal circles in his home country. He gives the impression that he can be relied upon to weigh up matters in a neutral manner and that he is unlikely to allow himself to be swayed too much by purely political considerations.
Michael Sachs is the Vice-President of the Austrian Federal Administrative Court in Vienna. Sachs has a reputation as a bon viveur and is a well known figure among the “champagne set” of Viennese High Society.

Judge Michael Sachs enjoying the good life at a champagne-tasting reception in Vienna
Austrian judicial appointments are notoriously political and the Federal Administrative Court which was established in 2014 is no exception to this general rule.
Michael Sachs is politically connected to the conservative Austrian Peoples’ Party (ÖVP) currently led by the “Wunderknabe” Sebastian Kurz. His colleague Harald Perl, the President of the Federal Administrative Court, is an appointee of the other main political party in Austria, the Socialist Party (SPÖ).

Tweedledum and Tweedledee?
President of the Federal Administrative Court, Harald Perl (SPÖ)
and Vice-President Michael Sachs (VPÖ)
Since its inception in 2014, the Federal Administrative Court has been dogged by allegations of endemic cronyism and questionable appointments.
“In at least one case, it was confirmed that the Office of the Public Prosecutor in Vienna had opened a formal investigation into allegations of official misconduct.”Some disgruntled staff, including judges and lawyers, were sufficiently irritated to set up an “Association against Cronyism” (“Verein gegen Freunderlwirtschaft”) and even went so far as to file a number of criminal complaints about various goings-on which upset them.
In at least one case, it was confirmed that the Office of the Public Prosecutor in Vienna had opened a formal investigation into allegations of official misconduct.
In another case, allegations of abuse of office were raised against members of the Presidium of the Court who had proposed the judicial appointment of Hubert Keyl, a member of the far-right populist Freedom Party (FPÖ) founded by the controversial Jörg Haider and currently led by the equally controversial Heinz-Christian Strache. In that case, allegations were made against both Sachs and Perl who are members of the Presidium.
Coming from an environment where cronyism, intrigue and machination seem to be on the daily menu, Sachs gives the impression of being a much more “political animal” than Gröning who seems to be more of the “legal scholar” type.
“Coming from an environment where cronyism, intrigue and machination seem to be on the daily menu, Sachs gives the impression of being a much more “political animal” than Gröning who seems to be more of the “legal scholar” type.”If this impression is correct, then there is a greater probability that Sachs – in contrast to Gröning – might be more susceptible to the influence of political as opposed to strictly legal considerations.
All in all, it would seem to be an easier task to persuade Sachs to row in behind the Chairman and to refrain from supporting any “contrarian” course of action.
Assuming that Josefsson can get the internal member Eliasson and the external member Sachs on his side, then all that he would need for a majority would be to “flip” one of the undecided internal members.
Internal sources suggest that Beckedorf is very much his own man so in the end it all seems to come down to what position Weiss and Gryczka are going to take and whether or not Josefsson can persuade one or both of them to row in behind him.
“Internal sources suggest that Beckedorf is very much his own man so in the end it all seems to come down to what position Weiss and Gryczka are going to take and whether or not Josefsson can persuade one or both of them to row in behind him.”If he can, then he will have it in the bag and the “Haar question” can at least be avoided for the time being or – in the best case scenario for Josefsson – if he plays his cards right he might even manage to bury it entirely.
As he is about half-way through his current five-year term of office, it’s clear that Josefsson needs to bring in the “desired result” for his political masters in the Administrative Council if he wants to be in with a chance of reappointment.
This brings the current mini-series of EPO Looney Tunes to a close but we hope to be back with an update in the not too distant future after the Enlarged Board of Appeal has delivered its decision on referral G 2/19. █
Permalink
Send this to a friend
Posted in Europe, Law, Patents at 4:45 am by Dr. Roy Schestowitz
Keep out, journalists…
Summary: The EPO spreads patent injustices to other countries and courts; the media is miraculously enough not interested, almost as though there’s a coordinated blackout
NOT a single patent blog is writing about G 2/19 at the moment. Nothing. We’ve checked. We’re not surprised, either.
It’s like media access is being obstructed (it isn’t, as we clarified earlier this week and I’ve urged some local bloggers to attend) or media is instructed not to deal with it anymore. IP Kat was sanctioned by the European Patent Office (EPO) after it had covered the attacks by Battistelli (and now António Campinos) on judges. How can these judges stop European software patents later this year? They cannot. We don’t expect a ‘European Alice’ or 35 U.S.C. § 101.
“Will EPO bring patents on life and nature to the UK as well?”A new comment from IP Kat (posted in the blog by Kant) said: “Apparently, Haar is indeed in Munich.” So says a rigged panel? We shall see. We are going to publish the final part of our series in a moment (see Part 1, Part 2 and Part 3).
It is meanwhile being reported that the UKIPO is cooperating with the EPO. Is this the effect of Rowan? Recall "Stephen Rowan: From UK-IPO to Operation Coverup of Team António Campinos" (published recently).
Ben Wodecki (IPPro Magazine) wrote: “The EPO is able to help under its bilateral cooperation agreement with UKIPO, which entered into force in July 2018.”
The ‘Rowan effect’? Will EPO bring patents on life and nature to the UK as well?
To quote Wodecki:
The European Patent Office (EPO) has agreed to conduct some biotechnology patent searches for the UK Intellectual Property Office (UKIPO) to help tackle its large backlog of applications.
UKIPO said it has recruited and trained patent examiners in this area, but “remain[s] unable to deliver the timeliness that we want for our customers, particularly in relation to searches”.
The EPO is able to help under its bilateral cooperation agreement with UKIPO, which entered into force in July 2018.
IP Kat is meanwhile reporting on Richard Arnold’s promotion in “Mr Justice Arnold to become Lord Justice Arnold: congratulations!“
“…external members of the Enlarged Board of Appeal can be problematic and help form a biased, rigged, stacked panel of judges. The final part of our series is about it and will be out soon. External members of the Enlarged Board of Appeal of the EPO can be hand-picked for ‘favourable’ (to Office management) outcomes.”So British courts will soon have a connection to the EPO as well. Wodecki (IPPro Magazine) noted: “In March 2016, he was appointed as an external member of the Enlarged Board of Appeal of the European Patent Office (EPO)…”
As we shall show in our next post, external members of the Enlarged Board of Appeal can be problematic and help form a biased, rigged, stacked panel of judges. The final part our series about it will be out soon. External members of the Enlarged Board of Appeal of the EPO can be hand-picked for ‘favourable’ (to Office management) outcomes.
From Wodecki’s article:
Her Majesty Queen Elizabeth II has approved the appointment of judge Richard Arnold to the UK Court of Appeals.
Arnold served as a High Court of Justice judge in the Chancery Division from 2008 and was appointed to be judge in charge of the Patents Court in April 2013.
In March 2016, he was appointed as an external member of the Enlarged Board of Appeal of the European Patent Office (EPO).
During the high profile patent dispute between Warner-Lambert and Mylan/Actavis, it was justice Arnold’s rejection of Warner-Lambert’s arguments on the basis of lack of an inventive step that the Court of Appeal’s ruled as correct.
Going back to IP Kat, earlier this week Rose Hughes write about a Board of Appeal decision, but still said not a word about the more important Haar case that started yesterday and had a seemingly stacked panel of judges to render the case inadmissible. Hughes wrote about T 0439/17 instead:
In T 0439/17 (published online 1 July 2019), the Board of Appeal of the EPO considered the circumstances under which a third party may intervene in an opposition. In general, a third party may intervene in opposition proceedings, after the opposition period has expired, if infringement proceedings relating to the patent have been started against the third party (Article 105(1)(a) EPC). The meaning of “infringement proceedings” under this provision has presented some difficulties, given the diversity of potential “patent infringement” related court proceedings (civil and criminal) throughout EPC member states.
[...]
KCC also argued that the admissibility of the accession need not necessarily be assessed at the precise time of the submission. Other subsequent events (e.g. the bringing of an infringement action), should also be taken into account. KCC pointed to Rule 89 EPC as providing the possibility for ex tunc assessment, in particular the wording “the [statement to initiate proceedings] is only deemed to have been made when the [fee] prescribed has been paid”. The Board also dismissed this argument (r. 13). The Board commented that the wording used in Rule 89 EPC was used throughout the EPC and was not considered to have a retroactive legal effect. The appeal was dismissed.
T 0439/17 therefore confirms that pre-infringement evidence procurement procedures in national courts are not considered sufficient to allow a third party to intervene in opposition proceedings. The Boards of Appeal maintain that the intervention under Article 105(1)(a) EPC is to be considered “a procedurally exceptional situation, which is justified only by a substantial legitimate interest of the assumed infringer to enter the opposition proceedings” (T 1713/11, r.2.2). The BA thus seeks to prevent the definition of “infringement proceedings” in Article 105(1)(a) EPC from being elaborated to encompass national procedures beyond an infringement action per se. The onus is thus on potential infringers wishing to avoid lengthy and expensive national revocation proceedings to pay close attention to newly granted European patents, such that they can file timely oppositions of their own. The BA stresses that there can be no benefit of hindsight.
T 0439/17 and every other decision very much depend on G 2/19, which questions the legitimacy of all decisions issued in recent years, just like one single ILO-AT judgment rendered perhaps hundreds of others ‘invalid’ (Battistelli ignored that anyway).
We don’t suppose the EPO will say anything at all about G 2/19; it hasn’t mentioned it for a long time (probably months) and yesterday it wrote: “The EPO’s #SocialReport2018 is out! Our multinational staff, based in 4 amazing cities is what makes the EPO such a success story! Read all the facts and figures here: http://bit.ly/2Sgn3Hw pic.twitter.com/p2aoSf8mui”
As we explained before, the EPO bombarded with puff pieces the very moment G 2/19 started, painting itself with “ethics” and “peace”. These puff pieces were perfectly timed to distract… or to divert attention away from the violation of the EPC (and stacked panel chosen to thwart justice). It is abundantly clear that the location of the judges is outside the EPC’s geographical scope:
The EPO’s PR people keep dictating to European media what to do/say about the EPO (or avoid covering). Not too hard a task when there’s so much bribery money at their disposal and they indeed use it all the time to bribe publishers in creative, “innovative” ways…
The UPC Preparatory Committee and Alan Johnson (Bristows LLP) are once again desperately trying (yes, again!) to create an illusion of UPC ‘progress’ as they recently admitted to FT (they admitted they try to create a false impression). How can they justify advertising false job ads almost 4 years ago? For jobs that will never exist…
“For the 2016 applicants,” Johnson wrote, “the Preparatory Committee stated in a Press Release of 19 December 2018 that ‘Those that have applied for judicial positions in the Unified Patent Court are being contacted separately’ to enable applications to updated or withdrawn, as necessary.”
Put that on bus, Johnson! What liars and charlatans. As we’ve said many times over the years, how is it not an offense to publish false/fake job ads? █
Permalink
Send this to a friend
Posted in Free/Libre Software, Interoperability at 3:10 am by Dr. Roy Schestowitz
Guest post by figosdev
Summary: Historical perspective on computer languages and how to do better
I have stayed interested in friendly programming languages for decades now. My favourite language, fig, came from another language inspired by the way people talk to the computer on Star Trek. On the Enterprise, people create “programs” used in places such as the holodeck, though most of the lines from the show remind me more of search queries and similar parameters:
“Alexa, please stop spying on us.”
“Unable to comply, authorisation from a CEO or higher is needed.”
“Alexa, initiate self-destruct sequence, authorisation Bezos-Four-Seven-Alpha-Tango.”
This could also be looked at as a command line sequence, with three parts:
1. [ So-called "Wakeup" Command ]
2. [ Initiate command | command parameters ]
3. [ Password syntax | parameter (the password itself) ]
In GNU Bash this might look something like:
# sudo systemctl selfdestruct
Password: Bezos-Four-Seven-Alpha-Tango
systemctl: self-destruct sequence unnecessary, Systemd already running
Most (not all) common and/or friendly programming languages have a simple convention of:
1. a command name
2. command parameters after the name
3. some symbol that goes between commands (or just a newline)
For example, to say “Hello, world” on the screen in Bash, Python, and BASIC:
echo “Hello, world”
print “Hello, world”
PRINT “Hello, world”
First comes the command, then the parameters– the things you want the command to know or work with.
To the computer, this is all translated into instructions that can be expressed as a long numeric sequence. To simplify this a bit, you can think of the command to put text on the screen as a the number 8:
8 “hello, world”
Of course to the computer, there is no such thing as “put text on the screen.” The screen shows the display buffer, the display buffer to the computer is a series of numeric locations, the real job of the computer is to copy certain numeric values to these locations. It doesn’t matter whether you’re listening to music or running an interactive online 3d simulation, the computer is just a glorified calculator moving numeric values around– to and from numeric locations.
The job of a compiler author (especially the first of them) used to be to worry about getting simple instructions like “print” translated to these simpler numeric routines (simpler to the computer, more complicated to many of us.) Someone still has to worry about that, but most people don’t. Thanks to decades of innovation, if you implement or create a conventional programming language, you will probably use another existing computer language to do so.
For example, CoffeeScript is implemented in (and has since influenced development of) JavaScript. JavaScript was originally written (implemented) in the C language. V8 is a JavaScript implementation in C++. These languages are in many ways easier to work with than the native, numeric “machine language” the computer actually uses.
The pioneer of compiled languages, Grace Hopper, taught university level mathematics– yet still decided that computer languages would be more useful to a greater number of people if they were based on words, rather than “symbols.”
This is a great boon to the general understanding of computing, because these “words” can perfectly abstract the computer hardware itself. How well can they do that? Alan Turing mathematically proved they can do so, but in more practical terms, an emulator program like Qemu that lets you run a second operating system in a window from a “host” operating system is better proof for most people. If we can teach more people to code, we will have more people who are happy to say they are computer literate. We must offer greater computer literacy to everyone, if we are going to make informed political decisions about life and liberty in the 21st century.
The history of the GUI is one of creating a clumsier, more vague language for certain tasks. A GUI is very useful for things that require pointing or drawing, and sometimes very useful for other tasks (such as managing term windows.) But just like when you try to use a hammer for every carpentry task, sometimes our workarounds for not using the command line are a cure worse than the disease. Teaching a GUI is closer to application training– next year, Microsoft or Apple or IBM will move things around and you’ll need to retrain again. You probably won’t understand computing by poking at things on a menu. But you can, from learning just the basics of coding.
Believe it or not, the first code written by Linus Torvalds was not in C. His first program went more like this:
10 PRINT “Sara is the best”
20 GOTO 10
This example from the Basic programming language includes the much-maligned GOTO statement. This statement corresponds to the JMP command, one of those numeric instructions mentioned earlier. JMP is a “mnemonic” (useful imaginary association) of the number reserved for that fundamental computing task. Most modern languages avoid use of this command, because it makes it more difficult to maintain larger programs.
Again we see the command name followed by the parameters, and we also see the line numbers that the Dartmouth Time Sharing System (DTSS) used to mark each line of text, or code. Dartmouth is the university where Basic was developed in the early 1960s.
Prior to the existence of Basic for teaching, Grace Hopper influenced the design of COBOL that contained TERSE-ENGLISH-PHRASES that were JOINED-BY-DASHES. Some early computers, even some from Apple, Inc., relied on character sets that did not include lower case letters. Some of the earlier languages (such as Basic) tended towards commands and other text expressed in ALL UPPER CASE.
Around the same time as Basic, the language known as Logo was developed as part of an entire philosophy of teaching. In Massachusetts, the MIT Media Lab continues to explore applications of languages in the same family as Logo, such as AppInventor, Lego Mindstorms and Scratch.
The feature of Logo that is best known, as (like Basic) it was used to introduce many children to coding, is Turtle Graphics. Apart from not requiring graphics initialisation commands like the SCREEN command in Microsoft QuickBasic, Turtle Graphics does not (in many implementations) require much or anything in the way of punctuation in its syntax.
To draw a square is this simple:
UP 5 RIGHT 5 DOWN 5 LEFT 5
There is no symbol required between commands, it simply follows from left to right and continues taking parameters until it finds another keyword. (as with math, statements put in nested parentheses might change this.)
So in Logo, this text:
UP 5 RIGHT 5 DOWN 5 LEFT 5
Translates (conceptually) into English instructions such as:
“Draw upwards 5 points in length, then draw to the right 5 points in length, then draw downwards 5 points in length, then draw to the left 5 points in length.”
Other dialects may offer additional options or simply different commands:
TURN 90 FWD 5 TURN 90 FWD 5 TURN 90 FWD 5 TURN 90 FWD 5
This violates a useful convention in coding known as D-R-Y or “Don’t Repeat Yourself.” A better way to code the same task is:
REPEAT 4 TURN 90 FWD 5
You can change this from a square to a diamond simply by turning 45 degrees first:
TURN 45 REPEAT 4 TURN 90 FWD 5
One of the things that truly limited Basic in the 1980s and early 90s, when the PC revolution was taking place, was not just the lack of processing power but the constraints on RAM and what size a program could be. As the PC moved from 8 and 16-bit platforms to 32-bit, it was more trivial to access large amounts of RAM and have larger programs with larger units of information handling.
For example, a string of characters such as “Hello, world” in the 80s was limited to somewhere between 256 characters and 32,768 characters. You could have string arrays, which are collections of strings with a common name, but loading a large file into an array was costly. Basic traditionally has very rudimentary commands for dealing with strings.
Python deals with strings in a more flexible, modern fashion. A “list” in Python, similar to an array in Basic, can for starters mix types of data– instead of having to initialise an array as being for strings or numeric data, Python lists can contain one or both at once. Basic has a MID$ function to get part of a string, but Python has a syntax that lets you get part of a string a list.
With increases in RAM and ease of addressing it came a greater use for more flexible commands, which were more practical to implement.
This does not mean Python is easier to learn than Basic– one of the nice things about Basic is that you could master a good portion of the entire language, and feel like you definitely knew how to write programs in it. Sure, you wouldn’t actually learn every command. But you probably knew which commands did something you didn’t need for your programs.
Python has in many ways supplanted Basic in education, while Logo continues to provide inspiration for new languages that are easy to learn as a first language. Python can also be taught as a first language, although probably in later school years than Logo-based languages.
Getting back to the earliest languages designed for general education, Basic and Logo both had strengths. Basic was more obviously practical, being used to create video games, accounting programs and even point-of-sale software. There were often better languages (such as C++) for creating commercial software, but Basic enjoyed notoriety from both its success via Dartmouth and its inclusion in chips on board 8-bit computers.
Logo was an easier language, but typically wasn’t used (by most of its users, that is) to do anything very practical. Today, it is a good foundation for creating mobile apps or controlling robots, or animating a cartoon cat– but Logo-based languages (though Logo was originally a general purpose language) are not typically used for a multitude of tasks.
As a teen, I often wondered what a cross between BASIC and Logo would be like, or if such a thing was even possible. To this day, I believe exploring this question and similar questions will make it possible for more people to implement reasonably complex and sophisticated programs, with relative ease. I do not think Python is going to get friendlier, in fact I find it going in a typical direction of expanding until it is much less easy to learn than in the beginning.
Basic too, has grown more complicated than it needs to be. But Python, JavaScript and Logo are all used in education.
For my own efforts added to the pot, I have finally explored the question of combining aspects of Logo and Basic, with fig. Like 1980s versions of Basic, it is case-insensitive. Like Logo, you can avoid most punctuation in syntax. You can also add it optionally.
It goes left to right, demonstrates a variety of tasks such as drawing, array and file handling, getting text from the Internet, and even transitioning to a more feature-rich language such as Python– while allowing you to create native functions that contain inline Python code.
To make an installer less necessary, the fig translator is a single Python script. It takes a program written in fig, translates it into Python, and (as with interpreted languages in general) requires Python to run the output program.
Fig was featured, thanks to much-appreciated help from the late Robert Storey, in the first 2017 issue of DistroWatch Weekly: https://www.distrowatch.com/weekly.php?issue=20170102
But although I enjoy using it (quite often, actually) as a heavily simplified derivative of Python, fig was always an experiment and a prototype. I would be just as happy to see people explore the concepts of fig as an educational language, which I spent many more years thinking about even while I taught myself to code (“You know what would be cool? An array that uses a string index instead of a numeric one!” …Linked lists, hash tables, Python dictionaries) than I would be for them to adopt fig itself.
The core idea of fig is simply this– instead of teaching a programming class, try to sit down everyday people and teach them to code. That’s what fig was designed to make possible– as well as make easier.
I tried doing that with BASIC, it is possible. I tried it with Python, as well as JavaScript. That was harder, though overall I think Python has some advantages over Basic. It has some rough corners too– “SCREEN 9: PSET(10, 10), 5″ draws a dot in early 80s QuickBasic and GW-BASIC. Try doing that in Python, such as you might with Pygame. It’s a bit more to begin with. Of course that particular matter could be solved with a different library– but you still have to learn how to import it.
As you teach more people, and note what it is that gets in the way of them learning, you remove as many unnecessary requirements of coding as possible. I removed Python’s case-sensitivity. Although a fan of indented code (I wasn’t one until I learned Python) I decided to replace Python’s mandatory indentation with Basic-like keywords. It’s easier to implement than you might think– I just use a variable to keep track of the indentation level and increase or decrease it when required.
Before fig, I attempted to create a language with no punctuation at all– so the print command was like this:
todisplay
hello there, world! (you can put any text of any sort on this line)
display
This is tedious, but I was trying my hand at designing a Basic-inspired language to be spoken into a microphone instead of typed on a keyboard.
When I got bored with that effort and focused on fig (then “fig basic”) instead, I still tried to keep punctuation and other syntax minimal. I used “quotes for strings” and # hashes for comments and as I received feedback, I thought it best to allow the option of putting a colon : between commands on the same line.
Ultimately I thought why not do like English, and have several characters available for grouping text together visually? You can teach fig as a way to introduce bash syntax and concepts:
p=5 ; ucase | print
or Basic:
P = 5 : UCASE : PRINT
or Python:
p = 5 ; ucase().print()
I realise these are caricatures, I can write actual code in the syntax of each of these languages.
But “why?” is a question I will answer in three parts:
1. We want more people to understand code, so they can understand computing and help write free software.
2. An educational language didn’t taint Torvalds, and most languages (even Basic) now lack the very problems that caused Dijkstra to moan about them so much. Indeed, many of them took a lot of what he said to heart. We can teach more people, more easily, if we have languages better suited to that task.
3. We can learn more about what makes languages easier to learn if we aren’t afraid to experiment and collaborate more.
This is not a solved problem– like with other tasks related to computing, the solutions are ongoing. Despite its revolutionary contributions to computer education, Basic no longer holds the title for most popular or most useful educational language. That title probably goes to Python now– or perhaps Logo, if you consider it as a language family. Of course I still find great value in Basic as a concept, I would never be happy just switching from existing versions of Basic to existing versions of Logo.
The non-standard, computer language / computer educational philosophy that is Logo may well continue its legacy, but we know the language will continue to change to suit the needs of learners.
Regardless, not everyone is going to learn Python no matter how we try, and some languages are still easier to learn. I think it is trivial to prove (for those who are interested in the idea) that we can make a language that is both easier to teach than Python, and more generally practical than Logo.
I’m very interested in multiple takes on this idea, not just one or two. What kinds of friendly languages with powerful features can we imagine, and perhaps implement? What can we learn from educators in the field (many of whom have their own difficulties with computers and programming.)
This is less about reveling in the past than first learning what we can from historical and contemporary efforts, and hopefully creating greater success in the future.
It is not a requirement, though I really do like the idea of translating to something like Python. You can technically implement a language in almost any other language (provided certain minimal features exist in it) but starting out with a friendly language means the implementation can also be tweaked or inspire a larger number of people. Someone who learns fig can even learn how to implement a similar language. (I have considered, but never gone to the extra trouble, of implementing fig in fig itself. With its inline python feature it is certainly possible.)
License: Creative Commons CC0 1.0 (public domain) █
Permalink
Send this to a friend