BASIC for Android
play.google.com
play.google.com
What touchscreen programming needs is a really polished touchscreen UI, and that challenges the whole assumption of a text editor being ergonomically optimal.
https://itunes.apple.com/us/app/lisping/id512138518?mt=8
I am yet to find something similar on Android.
Unfortunately, the development seems to have completely stalled and the site's partially dead, but it's still in the Play Store: https://play.google.com/store/apps/details?id=de.fau.cs.mad...., and the source's on Bitbucket: https://bitbucket.org/mad_fau/fasl
Check the iPad screenshots, https://itunes.apple.com/us/app/lisping/id512138518?mt=8#
However I never tried it, just saw a demo of it a while back.
Structuring, wrapping an navigating code bodies is very easy, thanks to the simple syntax structure of the language, and you need very few uncommon characters (parens, quotes and dashes being the most common ones), buttons for which would easily be fitted into the touchscreen UI.
auto-completion is also pretty simple, since most of the time the first entry of a non-quoted list will be a function listed somewhere near in a defun, and other entries will often be an identifier nearby. Other cases, such as constants, new identifiers or unknown functions, will need more input work from the user, but this is still feasible.
Just writing down as one would be on a piece of paper.
Many tablets have their algorithms quite good nowadays and yet developers use them to create ToDo list apps.
There is just a few Android apps I know that make use of it for drawing diagrams.
In the interim, I've found hacked (https://play.google.com/store/apps/details?id=com.hackedapp), while a game, I think actually does a pretty good job as an interface. It's largely pleasant to work with, save that I would prefer to be able to name my own vars. The game itself jumps in difficulty rather quickly though, by chapter 3 or 4 you are already asked to write a sort algorithm in what is a pretty restricted language.
On Windows Phone I was also really impressed with Touch C (https://www.microsoft.com/en-us/store/apps/touch-c/9wzdncrdr...) as an interface, it's just a shame that the implementation was so buggy and incomplete.
The trouble I always wind up having with these though is you quickly discover that it's a huge pain in the ass trying to type code on an Android touch keyboard. Even in the days you could still get physical keyboards it was hardly pleasant. I just wind up writing a couple basic "Hello World" programs and get bored.
As a bit of a bonus there's an extension app for Termux that gives you access to some phone features like SMS receiving and sending, the accelerometer and GPS. https://play.google.com/store/apps/details?id=com.termux.api
But yes, being unaware of the 89, I was talking about the Z80 calculators that make up the rest of the TI-8x range, which are still used in schools to this day, which are programmed in a rubbish version of BASIC called TI-BASIC. It sucks. The 68k calculators, like the 89 and the nspire are programmed in a completely different and much better version of BASIC. This is also called TI-BASIC. This leads to much confusion, and to make it worse, there is a third TI-BASIC, which is also completely different, and was used in the computers made by TI.
Is this intentional?
http://dl.bintray.com/rfo-basic/android/v01.78/Basic.apk
(Don't take my word for it though - that would be a security risk. I could be a malicious actor! Poke around on the site and you'll find the link.)
Incidentally, I always do this (or use F-Droid). Google Play gives me the creeps. It angers me when supposedly "free" (as in libre) software only offers binary downloads through Google Play, or makes the .apk difficult to find. Prominent links to a downloadable .apk, people!
(I have done no verification of the contents here, merely added an 's' and checked that the download still works).
EDIT: EWD498 - https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF
Another point of view is that expecting beginners to adhere to a rigid set of rules and design principles is both unrealistic and makes the learning process dull.
Pretty much an entire generation of programmers cut their teeth on the BASICs in the early microcomputers, and we have all kinds of whizzy stuff now.
Where's the modern equivalent? I would argue that it's HTML/Javascript/CSS ecosystem. It has many features in common with the early BASICs.
It's on every machine (well, every machine with a brower, which is pretty close to every machine) It's there as soon as you start up. It lets you tinker around with graphics and sound out of the box. It doesn't require any tedious and confusing (to a beginner) compile/link process.
It's danged-near as messy as old school BASIC, too, yet it's also where most of the innovation seems to be occurring. Personally, I do not think this is a coincidence.
This is what Dijkstra was commenting about. It's related to his "Go to statement considered harmful" (1968) paper and his text (with Hoare and Dahl) Structured Programming (1972).
EDIT: I was looking for something like this.
https://en.wikipedia.org/wiki/Dartmouth_BASIC
Version 6 saw the introduction of separately compilable
procedures with parameters. In 1976, Steve Garland added
structured programming features to create Dartmouth SBASIC,
a precompiler which produced version 6 output (and which
formed the basis of ANSI BASIC).
Structured programming was introduced into at least this version of BASIC after Dijkstra's statement about BASIC causing brain damage.There is no reason why "language suitable for building gigantic, uber-complex, mission-critical systems" and "language suitable for fooling around with as a beginner" should be the same, and many reasons why they shouldn't.
As for python, I believe you can do division just by using the / operator, just like most other languages. Unless I misunderstood what you meant by "proper" division. Even so, what's so bad about having to load a library to do division? It's not great, sure, but it's not awful, and it's a good deal better than the many sins of BASIC.
I know that it's quite common at HN to complain about android permissions but this is probably a wrong context to do so.
Android 6 on-demand permission requests should somewhat fix this, but is still not a remedy. I've yet to see any scripting/automation tool that's able to run scripts properly sandboxed (generate APKs for them or otherwise obtain different UIDs with restricted just-enough permissions).