Since we're all such fanboys of the likes of Bret ...
# thinking-together
Since we're all such fanboys of the likes of Bret Victor, Alan Kay, Engelbart etc, etc... Are there any interesting critiques out there of these kind of ideas?
I have a "doubt" that also applies to Haskell and other "powerful" programming languages. If a tool provides so much power and "competitive advantage", we would expect someone (like us) to notice the opportunity to use this advanced tools to achieve more, faster and safer with less resources and then become a success story. If that's the case, where are those success stories? if we truly believe in any of them to be the future of programming (the ones that are near term applicable) why aren't we taking this knowledge to our advantage? This applies to Lisps, Smalltalk and other advanced technologies.
👍 4
We sort of are. Lisp is used in Autocad, Forth in embedded, Smalltalk is used in finance, functional programming has been widely used within imperative. We also use spreadsheets, and we use a lot of node-based languages, and a lot of constraint based languages e.g. SQL and CSS. Even universal approximators e.g neural networks have been used for programming for quite a while (fuzzy logic, data mining, automatic decision trees etc). Also time-travelling debugging, that was even in Java enterprise tools looooong before mr Victor made a wooooha about it. All of this is the past and present of programming. Which brings me to my doubt: the doubt that “the future of programming” is just an amalgamation if a slightly different mix of what we’ve seen so far. I’m gonna guess the future is not about new forms of programming, but just that in many fields we’ll just be able to throw cycles at problems and guess universal approximators that will work on GPUs because it will be so cheap. Which in itself is not new, it’s just that we’ll do it a lot more. But then again it will be just a slightly different mix of things that are not new. Perhaps not an exciting answer to “what is the future of programming” but that’s my point I guess.
Lisp and Autocad, Smalltalk in finance, etc... are definitely interesting examples but I'd debate whether those really qualify as "advanced tools to achieve more, faster and safer with less resources and then become a success story". E.g., you could find similar examples for any programming language, even objectively bad ones like AppleScript on macOS. Personally I think the reason we don't have examples that qualify is that frameworks/platforms are far more important to the success of projects than programming languages. With frameworks and platforms you can find examples that unquestionably qualify, my favorite is NeXT. Both the web browser and Doom, two of the most important software applications in history, we're created by tiny teams on a platform with minuscule marketshare (NeXT only shipped about 50,000 workstations).
it becomes subjective whether current LISP/Smalltalk implementations relevant - I think they are. At the same time let’s remember that NeXT became OSX and left us with objective C and “branded types” very well known to thousands of IOS developers (the infamous NSString comes to mind). Hard to find something that became more successful. There is some romantic view of the “future” being the place where better ideas ignored in the present are finally going to find “success”. Kay plays that card a lot. We owe him a lot, and he correctly points out that people don’t know the past. However we don’t need to under-represent the present to enjoy conversations about the future. It still escapes me for example why Kay in his “minimal LOC stacks” slides doesn’t mention the Oberon platform, to my knowledge the only system (you can buy!) where the whole stack (from FPGA CPU definition to compiler and GUI) is completely contained in one book. (Used in banking where one doesn’t want backdoors anywhere in the stack) Why do we need to enshrine the future of qualities we refuse to see in the present?
@robenkleene regarding frameworks/platforms I was thinking something similar, there's this story about the first human powered flight over the English channel, Kay mentions it in some talks and I've heard it in another talks too, he used current technologies and tools, but a process and a fast feedback loop to iterate from idea to implementation really fast. He used current technologies as the framework, but in the right combination and achieved something "futuristic", it may mean two things 1) we can bootstrap the future with current tools but a better framework/platform 2) we need to build the tools to bootstrap the future first, for fast iteration and feedback. /randomidea
👍 1
Also maybe we need a clear objective, MacCready knew his objective pretty clearly, cross the English channel, and that introduces sub objectives and constraints, we keep talking about the future of programming but that's too blurry, I don't think we have a clear vision of what that is, and if that's the case, then we are just building things in random directions with no clear objectives...
👍 1
Englebart, Sutterland, Kay, PARC, ViewPoints and DynamicLand all have clear objectives, you can picture in your mind what's the future they want. Outside of it, it's hard to picture farther than the prototype being presented or the example used to explain it.
I'm not sure PARC had clear objectives or goals. Kay talks about 'visions not goals' as being a key aspect of research back then, an aspect that is missing today. On the point of competitive advantage, I agree with @Mariano Guerra - I don't think these languages as-is provide that much advantage in all applications. Mostly you get advantage out of whatever has good integration with the entrenched system (to @robenkleene's point on frameworks). But I think it's important to distinguish between 'what fits the market today' vs 'research'. These ideas are just points on a research trajectory. Thinking long term, perhaps exploring these ideas have more promise to qualitatively change computing?
I also get the feeling we are building things in random directions, each based on our (moving) vision of what things should be like. If we think of this as research, is it a bad thing?
Programming is a fantastic motivator for kids to learn discrete math. Remember that in all areas of life, Motivation precedes achievement. There are those driven by a helicopter parent, peer pressure, others more blessed by an internal fire drive onward. Montessori who was one of the pioneers of early education in 1900 was a big fan of allowing the natural curiosity and drive to learn the greeks called Entelechy. And let's not forget The fabulous song by Parliament called "Funkentelechy". How many crazy funk songs from the 70's reference greek words? I challenge you to find another!
However, it won't do much to drive an appreciation of abstract math, as that is an acquired taste, and an area where raw aptitude appears to be a major factor in math success. Mathematics is a huge field, but certainly playing with computers makes it loud and clear that Math has very practical purposes.
But as a long-time maker of painting products, i can tell you there are more art-phobic people in our society than math-phobic. Everyone knows math leads to various jobs and money, but people self-select out art participation the second they get their first snicker for their crappy drawing.
🎨 1
😞 1