BASIC. It's still a fun language for toys and prototypes, and Dijkstra is a moron for saying it ruins programmers, but on the other hand, it is kind of rubbish.
EDIT: EWD498 - https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF
31–40 of 45 posts
BASIC. It's still a fun language for toys and prototypes, and Dijkstra is a moron for saying it ruins programmers, but on the other hand, it is kind of rubbish.
EDIT: EWD498 - https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF
There's also this one, which seems to be a bit more of a structured approach: https://play.google.com/store/apps/details?id=com.mobilebasi... 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…
I've used Termux ( https://play.google.com/store/apps/details?id=com.termux ) with a Bluetooth keyboard on my Nexus 6P to write a few nodeJS apps. I'd say it's about as good as writing code over SSH. All the important stuff works - serving on localhost, npm, git, etc. Actually, the most annoying thing about it is switching between windows. As a bit of a bonus there's an extension app for Termux that gives you access…
BASIC. It's still a fun language for toys and prototypes, and Dijkstra is a moron for saying it ruins programmers, but on the other hand, it is kind of rubbish.
Earlier quoted context omitted.
Lisping is a very good example on iOS of coding with touch. https://itunes.apple.com/us/app/lisping/id512138518?mt=8 I am yet to find something similar on Android.
I think LISP is an excellent fit for the poor text input facilities that touchscreens offer. 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 m…
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.
I remember trying this one and thinking that the language was fine(it is literally an update from the makers of the Atari 8-bit BASIC) but the UI is unsuitable as it uses generic Android text input, the same flaw shared by most every other on-device IDE I've tried. That doesn't just mean that it's crude, it's also buggy - the view desynchronizes when editing large bodies of text using that text control. What touchscr…
Lisping is a very good example on iOS of coding with touch. https://itunes.apple.com/us/app/lisping/id512138518?mt=8 I am yet to find something similar on Android.
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.
BASIC. It's still a fun language for toys and prototypes, and Dijkstra is a moron for saying it ruins programmers, but on the other hand, it is kind of rubbish.
That letter by Dijkstra was certainly hyperbolic. But he was also referring to a version of BASIC where unstructured programming was the norm. To say that that ruins programmers is not entirely wrong. Consider the developer who has to unlearn years of habit involving the use of numerous global variables and temporary variables that produce unreasonable code. What does t1324ab123 mean?!? Seriously. What does it mean?…
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.
Earlier quoted context omitted.
That letter by Dijkstra was certainly hyperbolic. But he was also referring to a version of BASIC where unstructured programming was the norm. To say that that ruins programmers is not entirely wrong. Consider the developer who has to unlearn years of habit involving the use of numerous global variables and temporary variables that produce unreasonable code. What does t1324ab123 mean?!? Seriously. What does it mean?…
That's certainly one point of view. 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/…
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.Earlier quoted context omitted.
That's certainly one point of view. 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/…
That same generation of programmers also moved us out of the GOTO hell that they existed in with more reasonable structured languages. There's a reason, and it's not just coincidence, that old school Fortran and BASIC and assembler written in an unstructured manner is difficult to maintain and reason about, while software written in more structured language is easier to maintain and reason about. This is what Dijkstr…
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.