3 ms·
Ideally we should have a modern programming language and environment that a) is very easy to use for new comers and people that aren't professionals to build s
by DeathArrow 4y ago
Ideally we should have a modern programming language and environment that
a) is very easy to use for new comers and people that aren't professionals to build small functionalities and link different functionalities together
b) has visual components (so this disqualifies Python)
c) it is flexible and can be used by seasoned professionals to build complex things
The complexity of the programming should be gradual, i.e. if you are a beginner, if you are learning, if you don't plan to be a full time programmer but you need to build something very simple, it should be possible.
When I studied programming in highschool, the tool of choice was at first Turbo Pascal. Using Turbo Vision it was easy for US to construct simple text-based UIs and using BGI allowed us to dabble with graphics and draw simple things in a simple and straight forward way.
Now, if I have to explain to a potential beginner that in order to build a simple to do app he should learn: HTML, CSS, Typescript, React, install VS Code, install VS Code extensions, linters, NPM, sass, less and tens of packages, just to be able to start, he might feel a bit discouraged and want to become a cab driver instead.
But if I, in a totally unmodern, uncool, unwelcomed by community way I tell him to open Notepad and show him a few bits such as <button onclick="myFunction()">Ok</button> and alert("Ok") he might discover a taste for programming, and start to learn his way up to building something.
- lproven 4y agoI think you're right. And there were things in this general direction... Smalltalk and Logo spring to mind. But there is a lot of culture in computing, and a big problem that isn't recognised let along acknowledged is that today, there are basically only 2 surviving branches on one tree, when 30-40 years ago there was a whole forest. The branches are Windows (which now means NT) and Unix (which now means Linux and macOS). They both grow out of the same stump: DEC's minicomputers, specifically DEC's 16-bit line. DEC also had 12-bit, 18-bit, 20-bit, 24-bit and 36-bit lines, all profoundly deeply unlike anything that ever ran C. And of course there were lots of other minicomputer and mainframe brands that were far far more different than that: Burroughs, UNIVAC, NCR, Control Data Corporation (CDC), RCA, General Electric, and Honeywell. Once known as "IBM and the seven dwarves". All we have left descends from one branch: DEC 16-bit machines. The rest is mostly gone. Some are still around, emulated and in maintenance mode, because they run the world's banking systems and air-traffic control and things. Kinda important. There are whole families of languages and OSes that never used a single line of C or involved any Unix code at all at any point. Whole types of OS and GUI and editor and filesystem and so on more different from Unix than Unix is different from Windows NT. Whereas today, the traditional Mac is totally gone, replaced by Unix. And Windows is getting more Unix-like all the time and now includes a choice of Unix and two different Linux runtimes. Suggest that, hey, let's run Smalltalk on the bare metal and teach kids on that, so that they don't even have to ever know what "a file" is or means, and people will say "that's crazy talk!" Remember the Blues Brothers? "We got both kinds of music! Country AND Western!" Well, we got both kinds of software today! Unix AND Windows! They are the same damned thing, and gods help you if you are some heretic that says hey, you know, there are other things out there...
- DeathArrow 4y ago>But there is a lot of culture in computing, and a big problem that isn't recognised let along acknowledged is that today, there are basically only 2 surviving branches on one tree, when 30-40 years ago there was a whole forest. I guess 30-40 years ago computing was much newer, there was a lot more enthusiasm and people were willing to try many new things and do things in many different way. At a conceptual level, Go isn't very different from Java which isn't very different from Python. LISP is quite different from Smalltalk and Smalltalk is quite different from ML and ML is quite different from Prolog. As for small, home operating systems, BeOS was quite different from both Mac and Windows. :) > Suggest that, hey, let's run Smalltalk on the bare metal and teach kids on that, so that they don't even have to ever know what "a file" is or means, and people will say "that's crazy talk!" A file is just an abstraction, and so are Unix pipes. I don't see while there can't be other valid concepts to hold data than files.
- MrJohz 4y agoI mean, the notepad method still works, and there's nothing stopping you from going down that route. Hell, you can probably make it easier: open up a browser on any page, open up the inspector console, and you've got a REPL and semi-visual environment right there at your fingertips. A combination of that and using notepad to "save" your progress would probably be a pretty potent learning tool. I don't really know what your point here is. Professionals use different tools to beginners to program? Yes, obviously this is the case. I started making videos with Windows MovieMaker, but that is unlikely to be the favoured tool when editing together a Marvel blockbuster. But you can learn a lot just by using more simple tools and then graduating to the more complicated ones when you find you need them.
- follower 4y agoOne of the leading contenders for being a modern equivalent IMO would be the Godot game engine. The Godot editor is less than 100MB to download for many platforms--the recent Godot 4 release also supports running the editor on the web[0] and on Android. Its packaging/distribution story for GUI-based applications is easier & stronger than any other modern programming environment of which I'm aware--in a large part due to the (IMO inspired) architecture of using per-platform pre-built application templates/shells paired with per-project "data" files that contain assets & script byte code. Godot's modularity, ease of development & distribution has led to it being adopted for non-game applications too: "Apps & Tools - 2022 Showreel" <https://www.youtube.com/watch?v=9kKp0oguzr8 https://www.youtube.com/watch?v=9kKp0oguzr8> I do think the initial "complexity of the programming" for an absolute beginner is probably still at least a little bit higher than drag-and-drop GUI environments like classic VB, REALbasic, VBA or Hypercard. (Primarily from a UI/UX point of view because Godot doesn't directly have the "drag button from toolbar" workflow which I think was key in earlier systems. But it is extremely modular by way of configuration & extension--one intended use case being e.g. specialized feature-subsetted tools for artists.) In my experience it also works really well for iterative development where you can just hack around (from visual & code perspectives) to get something working & then refine it (and using Godot's "Scenes" paradigm for encapsulation). Anyway, you might like to consider suggesting Godot next time you're riding in a cab & discover that the driver is a beginner who would like to learn. :) [0] <https://editor.godotengine.org/releases/4.0.stable/godot.editor.html https://editor.godotengine.org/releases/4.0.stable/godot.edi...>