5 ms·
Can we please just let this idea die. Almost since the day programming was invented there has been at least one person out there trying to dumb it down to work
by orclev 10y ago
Can we please just let this idea die. Almost since the day programming was invented there has been at least one person out there trying to dumb it down to work for the average person and it always fails. Computers are hard to program because they're complicated. Programming languages strike a balance between simplifying some aspects of that complexity and exposing enough of the inner workings to efficiently implement algorithms. Different languages strike different balances but ultimately they all are more complicated than the average person can handle because at the end of the day the computer itself is more complicated than the average person can handle. No amount of dumbing down or simplifying things is going to create a programming language that you're going to want to write serious programs in but that the average person is going to be able to understand.
- inimino 10y agoIt sounds like you really want programming to continue to be difficult.
- orclev 10y agoOn the contrary, I want programming to be easier where possible, but the goals of this manifesto (and all the similar ones before it) are trying to fix the wrong thing. Better and more powerful abstractions are always good, I'll always welcome a new tool that makes my job easier. However the goal of this project is to make a tool that's explicitly designed to make code that's easier to read for the average person, not easier to program in. This is in many ways a set of opposing goals. Things that are easier to understand tend to lead to more verbose code and vice versa. Look for instance at assembler. Conceptually assembler is very simple but because of that simplicity implementing anything non-trivial in assembly tends to be very verbose. On the other extreme languages like APL and Haskell are very concise but they're hard to understand because they're very complex and leverage a lot of very powerful concepts. What I want are new tools that leverage powerful concepts to allow me to efficiently express complex ideas. These tools by their very nature are hard for the non-programmer to understand. Look at what's being proposed in this manifesto. They're advocating for what is in essence internet enabled Excel. Do we really want to start trying to write applications in Excel? Can you imagine the horrible spaghetti code that would result in? Imagine how much code you're going to have to write to express even mildly complicated concepts? Imagine trying to maintain one of these beasts. Further more, for this idea they propose to get off the ground, the vast majority of programs would need to be written in this new language they're proposing, which is, quite frankly, not going to happen anytime in the next 20 years at least. We're still using C and assembly, and they don't look to be going anywhere anytime soon (although maybe Rust can dislodge a little of the C). I do think it would be good for more of the population to at least have a passing understanding of basic programming concepts, at the very least learning how to solve problems using abstract thinking would be useful, but I don't think trying to create some kind of "simple" programming language is the way to do it. There are "simple" programming languages out there, just look at any of the toy languages designed to teach children how to program. But that's the thing, they'll always just be toys, they expose a very limited subset of capabilities for solving a limited subset of problems (mostly they focus on making it easy to draw on the screen since it allows for simple games that provide positive feedback for children learning).
- inimino 10y agoI can't tell from the manifesto what this supposed to do, but the goal of making programming more accessible seems worthwhile. An Internet-enabled open source Excel would be, well, at least better than Excel, which runs more of the world than we'd probably like to admit. Of course, the chances of that happening are effectively zero. It looks more like Smalltalk, which actually isn't known for being easy to read. So I'll reserve judgment for now, but I support the ambitious effort.
- orclev 10y ago> It looks more like Smalltalk, which actually isn't known for being easy to read. That's sort of one of my points though. They're going to come up with basically one of two things: A) Something that's conceptually simple (so the average person can understand it without needing to take a bunch of programming classes) but which leads to most programs being very hard to read because they have to implement all the complexity in the program. or B) Something that's conceptually complex (and which will require a bunch of programming classes to understand) but allows for simple and easy to understand programs (once you understand the language). All the horrible Excel and Access code out there (not to mention some of the worst Javascript out there) are basically the first category, while most serious programs and programming languages are the second category, or somewhere in-between the two. Smalltalk is somewhere between the two. It uses a number of relatively complex concepts but tries to hide them behind some fancy tooling. It was a hugely influential language and pioneered a number of interesting, although perhaps ultimately misguided, concepts and abstractions. Personally I think the message passing concept Smalltalk pioneered (the predecessor to todays actor model and one of the originators of the OO concept) is going to go down as an evolutionary dead end that's poorly suited as a model for general purpose programming (it has certain niche uses that it's very well suited for but shouldn't be applied to the general case).
- inimino 10y agoThere is a ton of low-hanging fruit in just making the basic logistical details of programming more accessible. (Try to imagine explaining npm to the average Excel user.) Now this project may go after that and produce an incremental improvement that finds a niche in education or wherever, or it may pursue a re-invent computer science, boil the oceans strategy and end up with a smoldering heap of nothing after much effort.
- rtens 10y agohttps://youtu.be/8pTEmbeENF4?t=93 https://youtu.be/8pTEmbeENF4?t=93
- cr0sh 10y ago> Almost since the day programming was invented there has been at least one person out there trying to dumb it down to work for the average person and it always fails. In a manner, one person succeeded - and he did it without "dumbing it down" - but rather by understanding and utilizing what was then known about how we learn things - particularly as children: https://en.wikipedia.org/wiki/Mindstorms_(book) https://en.wikipedia.org/wiki/Mindstorms_(book) Sadly, it seems that Papert's work is mostly forgotten by those who seek to re-implement it - and generally poorly in most instances, with few exceptions. One of course being MIT's Scratch: https://scratch.mit.edu/projects/117504922/ https://scratch.mit.edu/projects/117504922/ Though I still think Papert's language to be superior, as it is like LISP, is functional, and is a real language you type in an editor (vs "drag-n-drop" programming). In other words, it approaches programming closer to how programmers code.