Heater
Posts: 12660
Joined: Tue Jul 17, 2012 3:02 pm

Re: General language discussion.

Thu May 16, 2019 6:16 am

ScriptBasic,
No one owns the languages but are just users. There is nothing to protect or defend.
What made you say so? Nobody here has implied there was. Yet...

Now that you mention though ... People have certainly tried to own languages sometimes successfully:

Back in the day Microsoft implemented Java for Windows and Java applets for Internet explorer. Sun Microsystems sued Microsoft over that. Which I suspect is why MS went on to implement their own ideas about a Java style VM based system, C# and .Net.

There is still an ongoing legal dispute between Oracle and Google over Google's use of Java. All of which is a reminder that we should not be using Java for anything. Not for any language feature reasons but to avoid any legal issues over ownership.

Many will point out the the instruction set architecture of a processor is the language by which software, i.e. programmers ultimately, talks to hardware, the processor. Well, you try shipping a hardware product that implements the ARM ISA language or the Intel ISA language. I think you will find Intel or ARM suing you soon enough, claiming ownership of their ISA language.

Which is why the world needs RISC V.
Just because someone says they like a feature of some language doesn't make them biased.
That sounds reasonable. Often it looks like bias.

At the end of the day all programming languages are equivalent. They are all Turing complete, any problem that can be solved with one can be solved by all.

Of course high level languages are supposed to make creating solutions easier for humans. To that end the majority of modern HL's are on an fairly equal footing. Although they differ in syntax and the semantic luxuries they afford.

So, we might conclude that there is no logical, technical reason to prefer one HL language over another. A competent programmer should be able to get the job done in most of the high level languages available. from modern BASIC to Haskell.

Why then do otherwise intelligent, rational, skilled software people get so heated in the defense of their preferred programming language? Why language wars all over the net?

Clearly a lot of this comes down to personal preferences. To what people are used to. To the approach they have to programming. Etc.

They are biased by their knowledge and past experiences to a large extent.

Then there are advantages and disadvantages to using this language or that depending on things that are not strictly part of the language definition:

Is there an implementation that even runs on the platform (hardware/OS) I'm using.
Are there implementations for many other platforms so that I can create cross-platform solutions?
Is there a stable standard for the language so that I can be confident of the future of my creations?
Does it have lots of libraries, modules, etc available so that I don't have to write stuff from scratch?
Do the implementations of the language available meet my performance requirements?
Is there a lot of excellent documentation, blogs, tutorials, books, other support out available? A big user community to help out?
Etc, etc,

These are all practical matters that heavily influence language selection. Despite not being much to do with the actual languages them selves.

User avatar
bensimmo
Posts: 4071
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: General language discussion.

Thu May 16, 2019 6:45 am

ScriptBasic wrote:
Thu May 16, 2019 5:11 am
Let me start off.

I dislike the ridged formatting requirements of Python. It's tough enough getting your own code to run to be dinged by an indentation mistake.

Is that a pain point you just learn to live with?

How do Python users know an extension is available for what they just wrote natively?
We don't know of an extension just like most languages*.

We do have a large Python website that lists them all as the 'manual'.
It's very long and has the keywords, the modules that must be with it and the optional modules.
It also lists which revision they came with and when or if they are deprecated and you can lock it to a specific version
e.g. 3.5 for RPi

Of course there are other versions of Python that don't support everything as they target specific usages. But Python (CPython) is the Bible.

There is also a website to search for user modules.

*the IDE may give you hints of course.


White Space, you get used to it.
Though you can get annoying bugs that takes ages to figure out because the spacing is not wrong w.r.t. program working.


How the big boys deal with it, I don't know.

Many use Python as a glue to bolt other bits together.
Fast C code, multiprocessor science stuff where it works best, using python to make it all make sense and talk to other things where it works best.

User avatar
PeterO
Posts: 4727
Joined: Sun Jul 22, 2012 4:14 pm

Re: General language discussion.

Thu May 16, 2019 6:58 am

ScriptBasic wrote:
Thu May 16, 2019 1:52 am
I'm trying to find the sweet spot for ScriptBasic so I know where to spend my time.
Just take a few minutes off from pushing your pet project at every opportunity and have a look around in some of the other parts of these forums to see what the rest of us are doing.

PeterO
Last edited by PeterO on Thu May 16, 2019 7:18 am, edited 1 time in total.
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

Heater
Posts: 12660
Joined: Tue Jul 17, 2012 3:02 pm

Re: General language discussion.

Thu May 16, 2019 7:00 am

ScriptBasic,
How do Python users know an extension is available for what they just wrote natively?
Same like everyone else, stackoverflow :)

But really, when one wants to do something non-trivial one goes to google for a quick search to see if a solution for that as already been created by someone before.

In the past few days I decided I needed to use the 32MB SDRAM on my DE0-Nano FPGA board. An SDRAM interface in Verilog is quite a bit of work so I googled and found some out there.

User avatar
PeterO
Posts: 4727
Joined: Sun Jul 22, 2012 4:14 pm

Re: General language discussion.

Thu May 16, 2019 7:01 am

ScriptBasic wrote:
Thu May 16, 2019 4:39 am
Heater wrote:
Thu May 16, 2019 4:25 am
Because it's fascinating and educational.
Does that mean this is going to become a tutorial thread about obscure languages?

I think it would be more interesting if people would share what they dislike about popular languages. It could save others going through the same frustration.
Why are you so intent on stiriing up a language war ?

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
PeterO
Posts: 4727
Joined: Sun Jul 22, 2012 4:14 pm

Re: General language discussion.

Thu May 16, 2019 7:16 am

Heater wrote:
Thu May 16, 2019 7:00 am
ScriptBasic,
How do Python users know an extension is available for what they just wrote natively?
Same like everyone else, stackoverflow :)
But really, when one wants to do something non-trivial one goes to google for a quick search to see if a solution for that as already been created by someone before.
Case in point.... I'm working on a project where I wanted to add a "comments" column to the rows in a GtkTreeView. This is not provided by the set of "cell renderers" provided in Gtk3. Google eventually found me a page where someone asked about "Scrollable Multiline text editing in GtkCellRendererText" and some python code that does exactly what I wanted.

I think having good "Google Fu" is the most important skill for developers these days. This includes sorting the good information from the poor information that Google finds.

PeterO
Attachments
803CodeViewer1.png
803CodeViewer1.png (37.45 KiB) Viewed 550 times
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
PeterO
Posts: 4727
Joined: Sun Jul 22, 2012 4:14 pm

Re: General language discussion.

Thu May 16, 2019 7:21 am

Heater wrote:
Wed May 15, 2019 6:43 pm
PeterO,

That is quite a trophy you have there.

Tony Hoare has been in my personal hall of fame since I discovered he originated Communicating Sequential Processes (CSP) whilst I was getting to grips with Occam. Ideas implemented in languages in recent times with Go and XC from Xmos.
The whole manual is online at http://www.billp.org/ccs/A104/index.html
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
Gavinmc42
Posts: 3168
Joined: Wed Aug 28, 2013 3:31 am

Re: General language discussion.

Thu May 16, 2019 7:45 am

I think having good "Google Fu" is the most important skill for developers these days.
Yep, google has all the answers ;)
No benchmarks, that's been done and dusted.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
Gavinmc42
Posts: 3168
Joined: Wed Aug 28, 2013 3:31 am

Re: General language discussion.

Thu May 16, 2019 7:48 am

Test to see if every single example works on Pi's?
http://rosettacode.org/wiki/Rosetta_Code
Start with Wumpus hunting?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

Heater
Posts: 12660
Joined: Tue Jul 17, 2012 3:02 pm

Re: General language discussion.

Thu May 16, 2019 7:56 am

I was wondering about that "bias" thing...

I might speculate that humans brains all work differently in many ways. Some people can remember numbers well, other not so much. Some have a much easier time getting an idea visually than textually. I heard mathematicians speak of how they "see" solutions in some kind of geometric way rather than think about the symbols and equations they eventually use in the proof they write. Some can concentrate on what they are doing in a noisy room whilst it distracts others badly. And so on and so on.

How does that relate to programming languages?

An example: Some people like to put multiple statements on a line, separated by semi-colons or whatever. They claim it's more succinct, it saves vertical space, all kind of things. Apparently they find it easy to read. Well, it drives me nuts. When I see that my brain stalls, my eyes can't scan the line comfortably, I have to stop and think, point my finger at the screen to trace out what's going on, like a young child learning to read. Often I find myself breaking it up with newlines so can see it properly. I'd be very happy if language syntax did not allow people to do that.

Similar example: Block delimiters. I like my curly braces, BEGIN/END or whatever putting a frame around things. They immediately show the structure of the thing. They make the authors intent clear. The notorious white space delimiting, with code disappearing into the void as you look at it leave me hanging wondering what went wrong.

Well, what if these kind of reactions are the result of the way peoples brains function, the way they are wired, be it from birth or from experience? No amount of saying they will get used to something that gives them such difficulties will help. Any more than expecting a colour blind person to get used to colours.

Is it just "bias" or "preference"? Is it more fundamental to actual differences in brain function between people?

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 22726
Joined: Sat Jul 30, 2011 7:41 pm

Re: General language discussion.

Thu May 16, 2019 8:27 am

ScriptBasic wrote:
Wed May 15, 2019 9:28 pm
Is there any way to find out what language is used most with the RPi? I'm guessing it's Python but would like to know how C ranks among this group.
C.

Because the OS is written in C and that is on almost every Pi, and I suspect the baremetal people who make up the rest also use C.

If you mean used by people over and above the OS, then I would probably still go for C. An enormous number of Pi's are sold in to industrial or commercial usage, many more than are sold educationally, and that still tends to be C or C++ oriented to get the required performance. Note that things like Javascript tend to be used on web stuff, which isn't a Pi strongpoint, so despite that being the most popular language, is not particularly applicable to the Pi, although it is certainly usable.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

jahboater
Posts: 4451
Joined: Wed Feb 04, 2015 6:38 pm

Re: General language discussion.

Thu May 16, 2019 8:30 am

Heater,
Heater wrote:
Thu May 16, 2019 7:56 am
Often I find myself breaking it up with newlines so can see it properly. I'd be very happy if language syntax did not allow people to do that.
I think its long experience.

You, as an experienced software engineer, "just know" that in practice squishing multiple statements onto a single line rarely helps readability. It is also commonly frowned upon in coding standards.
I have the same dislike by the way.
Heater wrote:
Thu May 16, 2019 7:56 am
Similar example: Block delimiters. I like my curly braces, BEGIN/END or whatever putting a frame around things. They immediately show the structure of the thing. They make the authors intent clear. The notorious white space delimiting, with code disappearing into the void as you look at it leave me hanging wondering what went wrong.
Even better than BEGIN/END or curlys, are "closed" control constructs, IF ... FI DO ... OD etc.
They include a little redundant information that can help detect nesting errors.

jahboater
Posts: 4451
Joined: Wed Feb 04, 2015 6:38 pm

Re: General language discussion.

Thu May 16, 2019 8:39 am

Heater wrote:
Thu May 16, 2019 6:16 am
Then there are advantages and disadvantages to using this language or that depending on things that are not strictly part of the language definition:

Is there an implementation that even runs on the platform (hardware/OS) I'm using.
Are there implementations for many other platforms so that I can create cross-platform solutions?
Is there a stable standard for the language so that I can be confident of the future of my creations?
Does it have lots of libraries, modules, etc available so that I don't have to write stuff from scratch?
Do the implementations of the language available meet my performance requirements?
Is there a lot of excellent documentation, blogs, tutorials, books, other support out available? A big user community to help out?
Etc, etc,

These are all practical matters that heavily influence language selection. Despite not being much to do with the actual languages them selves.
Exactly! Great list.
Of course popular and established languages tend to tick most of the boxes in such a list, which makes it hard for a fledgling language to make headway.

In addition to the first two questions, I add "how easy is it to get working on each platform".

Raspbian, even Raspbian Lite, includes several languages within the install image, ready to use - which is really great.
Next best are languages available via the package manager.
Worst are languages that have to be downloaded from some obscure web site, hand built, etc. Worse still if they are poorly designed and require all sorts of dependencies that also have to be installed. You have to be really determined or enthusiastic to go to all that effort in order to try or use such a language.

Languages that are commonly "pre-installed" are great for software that is distributed as source code. They obviously save each end-user work and reduce the perceived effort of getting your product into use.

Again, this says nothing about any technical merit of the language.
Last edited by jahboater on Thu May 16, 2019 8:48 am, edited 1 time in total.

Heater
Posts: 12660
Joined: Tue Jul 17, 2012 3:02 pm

Re: General language discussion.

Thu May 16, 2019 8:48 am

jamesh,
Note that things like Javascript tend to be used on web stuff, which isn't a Pi strong point, so despite that being the most popular language, is not particularly applicable to the Pi, although it is certainly usable.
Odd you should say that.

I have deployed many Pi into embedded applications in remote locations where reliability is important that run Javascript under node.js to do the work they have to do. Generally in the vain of monitoring sensors, communicating with other equipment via serial ports, communing with databases and other servers in the cloud. Not a whole lot of number crunching required or tight real-time requirements.

The Pi has plenty enough performance to meet the need, node.js is not orders of magnitude slower than C. The Pi has more than enough memory to accommodate it. It's so much easier to do these things in Javascript than C or C++. Makes juggling lot's external events a breeze with it's event driven programming model rather than messing with threads and such. So that's what I do.

Could as well have used Python or Lua or whatever. But that's my bias :)

User avatar
Gavinmc42
Posts: 3168
Joined: Wed Aug 28, 2013 3:31 am

Re: General language discussion.

Thu May 16, 2019 8:53 am

Python would be better if white space was visible.
It gets lost in some editors I have used, causing me grief I don't need.

Human readability without the need for wasting time commenting?
Clearly identifiable blocks helps and I now prefer Pascal because the begin/end is easier for me to read than {}.
Even when my eyesight was good those brackets got lost sometimes.
Short lines, words, labels, names make for easier reading too.

Easy to use, easy to read and hard to write bad code, those are my biases.
Oh, it must do what I want without stupidly massive, must download, dependencies.
That generally rules out C, at least for Linux stuff.
Lazarus/Free Pascal does have big libraries but it comes with that as standard, usually no dependence libs are needed.

I don't mind learning and exploring new or even old languages these days.
Always useful to check to see if they might be useful.
So easy install to try them helps too, Debian/Raspbian does make that easier than most other OS's.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

jahboater
Posts: 4451
Joined: Wed Feb 04, 2015 6:38 pm

Re: General language discussion.

Thu May 16, 2019 8:54 am

Heater wrote:
Thu May 16, 2019 8:48 am
It's so much easier to do these things in Javascript than C or C++. Makes juggling lot's external events a breeze with it's event driven programming model rather than messing with threads and such.
I would use "select()" (synchronous I/O multiplexing) in C (see man select). I have used it for commercial large scale, fast, network switching software, but its obviously more general. It's trivially easy to use, lighter and faster than threads.

That's my bias :)

hippy
Posts: 5356
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: General language discussion.

Thu May 16, 2019 9:44 am

Heater wrote:
Thu May 16, 2019 6:16 am
At the end of the day all programming languages are equivalent. They are all Turing complete, any problem that can be solved with one can be solved by all.
Not always, not all languages can directly do what a programmer wants done.

Pascal famously had no means of interacting with the outside world apart from through file streams, and Python is still the same. Any Python I/O is through file streams if the OS provides them or through modules which have to be written in C or similar and cannot be implemented natively. That also applies to accessing the VC4 mailbox.

It's not much of a problem for users as someone will likely have written a module to do I/O, RPi.GPIO for a Pi, but, as that suggests, it's platform dependent, there's no standard Python module for doing I/O.

Bottom line is languages fall into two camps, system and computational, those which can directly access I/O and those which cannot.

hippy
Posts: 5356
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: General language discussion.

Thu May 16, 2019 10:18 am

jahboater wrote:
Thu May 16, 2019 8:30 am
Even better than BEGIN/END or curlys, are "closed" control constructs, IF ... FI DO ... OD etc.
They include a little redundant information that can help detect nesting errors.
I really detest that; reversing the name as end constructs. But I'll accept END IF etc.

To me programming languages are like art or music, they all have a style and aesthetic to them, and some people won't like one while some won't like others. That's why I think Basics have proven so popular over the years because they have a certain style which many people appear to like, or at least find acceptable.

It also explains why language preferences can be so polarising. After all, no one is going to convince anyone who, say, doesn't like Jazz, Funk or Punk, that they should just by saying so or even explaining why they should.

No one is ever likely to convince me Van Goth is a great artist. I've spent ages reflecting on his Sunflowers and other works and it's just never clicked. Michael Craig-Martin's "An Oak Tree", Antony Gormley's "Field"; mind-blowing, brilliant, hooked, "got it", the microsecond I encountered them.

Each to their own. It's the telling others they are "wrong" where the problems start, and that gets worse when tribalism is applied.

Heater
Posts: 12660
Joined: Tue Jul 17, 2012 3:02 pm

Re: General language discussion.

Thu May 16, 2019 10:57 am

Gavinmc42,
...begin/end is easier for me to read than {}
That simple thing there is what I was getting at. Logically they are equivalent. There is nothing to argue about technically.

BUT...What if brackets are actually harder for people some to read, because of their eye sight, the way their visual cortex works, the fonts they have on their computers? What if people who have been fiddling with maths for years are quite comfortable with brief notations whilst those that haven't get blinded by the "line noise"?

jahboater,
I would use "select()" (synchronous I/O multiplexing) in C (see man select).
Select is great and all. Especially if you have a small project or all the people on the team get the idea about non-blocking I/O. Basically control of all the code in the project.

It goes sideways when your program uses some pre-existing modules/libraries to talk over serial links, someting else to parse files, someting else that uses the network/data base etc. Then you find life is much easier if you never have to worry about blocking code. Working at the higher level of abstraction of the event driven model, that permeates everything, makes life much easier.

hippy,
Not always, not all languages can directly do what a programmer wants done. Pascal famously had no means of interacting with the outside world apart from through file streams ...
Bottom line is languages fall into two camps, system and computational, those which can directly access I/O and those which cannot.
Yes and no.

I always have this problem that when discussing programming languages, whoever I'm talking to confuses the language itself with actual implementations, compilers, interpreters whatever.

I don't see that Python, the language itself, precludes direct access to I/O registers and such. It would need implementation support. It might be clumsy to use. But even in C hitting memory and address registers directly is an abstraction, which may or may not be able to do what you want.
That's why I think Basics have proven so popular over the years because they have a certain style which many people appear to like, or at least find acceptable.
Given the statistics and can find, and my own personal observations around all kind of programming environments I could say quite the opposite. Numbers indicate the BASIC style is a lot less popular than many others.

Heater
Posts: 12660
Joined: Tue Jul 17, 2012 3:02 pm

Re: General language discussion.

Thu May 16, 2019 11:03 am

hippy,
To me programming languages are like art or music, they all have a style and aesthetic ... Each to their own. It's the telling others they are "wrong" where the problems start,
To a large extent I agree with you.

Problems start when people don't get the choice. Unlike listening to Jazz or Rock, or appreciating this artist or that, people actually have to work with programming languages. They have to spend considerable amounts of time and effort mastering them. Often they don't get the choice unless they want to quit their job. Then one has to work with teams and the team generally has to use the same tools. This can cause a lot of frustration and the ensuing heated debate.

hippy
Posts: 5356
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: General language discussion.

Thu May 16, 2019 11:53 am

Heater wrote:
Thu May 16, 2019 10:57 am
hippy,
Not always, not all languages can directly do what a programmer wants done. Pascal famously had no means of interacting with the outside world apart from through file streams ...
Bottom line is languages fall into two camps, system and computational, those which can directly access I/O and those which cannot.
Yes and no.

I always have this problem that when discussing programming languages, whoever I'm talking to confuses the language itself with actual implementations, compilers, interpreters whatever.

I don't see that Python, the language itself, precludes direct access to I/O registers and such. It would need implementation support.
You are right. The fact that it is impossible to currently do it with any Python implementation which conforms to the current Python standards doesn't mean it couldn't be done if the Python standard provided a means for it to be done.

When, and if, that happens it won't then be possible to say it cannot be done with Python.

All programming languages will be able do anything and everything once they can do anything and everything. That seems indisputable.
Heater wrote:
Thu May 16, 2019 10:57 am
That's why I think Basics have proven so popular over the years because they have a certain style which many people appear to like, or at least find acceptable.
Given the statistics and can find, and my own personal observations around all kind of programming environments I could say quite the opposite. Numbers indicate the BASIC style is a lot less popular than many others.
And yet we cannot escape it. It keeps getting re-invented, re-imagined. It keeps evolving and simply won't die or go extinct. There have been plenty who have encouraged it to go that way, have dug its grave and begged people to throw it in, but they have never succeeded.

For a language which has such little popularity it seems to generate an incredible amount of discussion.

jahboater
Posts: 4451
Joined: Wed Feb 04, 2015 6:38 pm

Re: General language discussion.

Thu May 16, 2019 11:59 am

hippy wrote:
Thu May 16, 2019 11:53 am
For a language which has such little popularity it seems to generate an incredible amount of discussion.
Perhaps because there are so many of them ...
As you said, xxxBASIC != BASIC.

hippy
Posts: 5356
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: General language discussion.

Thu May 16, 2019 12:05 pm

Heater wrote:
Thu May 16, 2019 11:03 am
Problems start when people don't get the choice. Unlike listening to Jazz or Rock, or appreciating this artist or that, people actually have to work with programming languages. They have to spend considerable amounts of time and effort mastering them. Often they don't get the choice unless they want to quit their job. Then one has to work with teams and the team generally has to use the same tools. This can cause a lot of frustration and the ensuing heated debate.
But whose problem is that, where is the cause, and what is the solution ?

It's no different to a DJ working for a station playing music they don't like, exactly like a musician finding themselves in a band playing music they loathe, an artist working on a project they don't see as art.

It's not what they don't like which is the cause of the problem, it's whatever is preventing them from walking out, whatever it is which is leaving them with no choice, and that's usually some external thing.

That heated debate I imagine often goes along the lines of "why am I having to use this @!*& languge?" rather than what it should be; "why do I find myself forced into this situation?".

Andyroo
Posts: 3327
Joined: Sat Jun 16, 2018 12:49 am
Location: Lincs U.K.

Re: General language discussion.

Thu May 16, 2019 12:10 pm

hippy wrote:
Thu May 16, 2019 12:05 pm
That heated debate I imagine often goes along the lines of "why am I having to use this @!*& languge?" rather than what it should be; "why do I find myself forced into this situation?".
QFT
Need Pi spray - these things are breeding in my house...

User avatar
bensimmo
Posts: 4071
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: General language discussion.

Thu May 16, 2019 12:58 pm

Isn't that the advantage of .net, you can use VB, C#, F# whichever of the language families and they are all doing mostly the same thing. Porting between them isn't so bad either.
At least that was the dream.

Return to “Other programming languages”