I'm sure there are other factors that contributed to them falling out of use, or being forgotten. What little I know about what affected this comes from some historical commentary I've read from someone who was a computer science researcher during this period that Victor discusses.
Computer science was a small field of research that began as an aspirational goal in the 1960s. Electrical engineers, mathematicians, even psychologists were invited to explore the possibilities of it, wherever their curiosity would take them. It started within an academic community, and it pretty much remained the province of academics for 15 years. That began to change with the popularization of personal computing in the late 1970s, and early 1980s. More and more, computing and computer science became the province of a lower quality outlook, of hobbyists who hadn't read much, if any, of the computer science research that had already been done; who were more interested in what they could show their friends, or could sell quickly into a market that saw the computing phenomenon more as magic than as a medium for discussing powerful ideas.
The main reason this popularization effect shut out these other languages is the computing power in the early microcomputers was so small that they couldn't accommodate what these more powerful languages could do. A lot of the programming that was done on them was in assembly language, because that was the only way to get any computing power out of them. One of the researchers I read about, who worked at Xerox PARC when microcomputers were first becoming popular, said that, for example, the Apple II used a chip for its CPU, the 6502, that they used at Xerox for the keyboard controller on one of their systems. One of the personal computer systems they designed at Xerox, using just semiconductors, had 4 Intel microprocessors, which they considered "barely enough" to run it. The system they started out with for their research in 1970 was a Data General Nova minicomputer. You could run the kind of languages Victor talked about on that back then.
The people who grew up with a microcomputer as their first computer experience could not be exposed to most of these languages on those machines, even if they wanted it. They didn't have the processing power, and they didn't have enough memory. The educational materials published for those machines didn't talk about these languages, except perhaps to mention them by name. When the schools started setting up their own computer labs, they bought these same microcomputers, and the educational materials were of the same quality. By the time a small proportion of these kids got interested in computer science, they had a concept in their heads about what programming was that didn't include these languages, much less these ideas.
I don't know what decisions universities made that also tended to exclude these languages and ideas from discussion, but it seems to be the case that most CS students didn't work with them. I speculate that the popularization of computing, through the expansion of the microcomputer market into the economy likely drove the decision on the part of universities to not put much emphasis on these languages, if they bothered to mention them at all, because industry, with rare exception, also didn't have an understanding of why these alternate programming models would be worth pursuing.
So I am thankful that Victor brought these ideas to public attention, now that we have powerful personal computers that can run these programming models easily.
Because many kinds of experimentation are aimed at finding out things, not to produce tools for others to use. This is especially true in the user interface area, where a large number of different experiments are required with different kinds of users, and there is often never a complete system actually built.
The results of these experiments can be summarized in both writings and videoed talks showing demos. There is almost always enough public information available to allow replication of the experiments.
And, in most cases, every few years, something major and public is released, or put on public view.
A question is often asked, “well why not make the code public anyway?” In practice this is generally completely impractical for many reasons, including just dealing with detailed questions and bug complaints about many obsolete versions, and that the kind of research that e.g. VPRI did is not at all incremental. Quite of bit of the work of this group over the years has been to start from scratch as often as possible. For example, there were 5 complete Smalltalk systems done at Xerox Parc at about 2 year intervals — each one tried different design ideas and required major implementations.
Squeak Smalltalk used the “Blue Book” definitions (which were public and open), but did a completely new “bottom” (which was also made public and open). The tooling needed for others to be able to use the open sources was done carefully enough so this was successful.
The “Etoys” system for children was done in Squeak and also made open source. The Croquet system was done in Squeak and one of the spinoffs was “Open Cobalt” a non-profit open foundation.
Basically, seasoned researchers, especially on the fringes of knowledge, have to decide how to use their limited amount of time on the planet to best advance the research, while still holding to the scientific ideals of sharing what is powerful and interesting about the results. I think Bret Victor, VPRI and many other deep research efforts have done well at finding good balances for this.
Bret Victor’s essays and demos (notably “Inventing on Principle,” “Learnable Programming,” and prototypes like Dynamicland and live coding interfaces) argued for programming environments that are immediate, visual, explorable, and grounded in continuous feedback. Those ideas influenced many researchers and products, yet the world of mainstream software development did not transform into Victor’s vision. The gap results from a mix of technical, economic, social, and institutional reasons:
Core technical constraints
- Legacy complexity: Billion-lines-of-code systems, diverse platforms, backward compatibility and heterogeneous runtimes make wholesale replacement with new interaction models impractical. Incremental tooling changes are far easier than rethinking all existing infrastructure.
- Scalability and abstraction mismatch: Victor’s live, concrete representations work excellently for small-scale examples, visualization, and teaching. Scaling those approaches to large distributed systems, concurrency, performance-sensitive code, or low-level resource management is technically hard and often requires abstraction that reduces immediacy.
- Tooling integration challenges: Providing continuous, immediate feedback requires tight integration between editor, runtime, debugger, build systems and dependencies. Achieving that across multiple languages, libraries and ecosystems is engineering-heavy and brittle.
Economic and product incentives
- Short-term ROI for companies: Commercial tool vendors and platform owners prioritize features that directly increase developer productivity on existing stacks, reduce support cost, or expand market share. Radical interaction redesigns are risky, expensive, and hard to monetize.
- Market segmentation: A large portion of software is built by enterprise teams, contractors, and maintainers who prefer incremental, predictable improvements over radical UX shifts that would require retraining and migration.
- Network effects of existing tools: IDEs, CI/CD pipelines, package managers, cloud platforms and teams’ workflows create powerful lock‑in. A superior interaction model still must interoperate with this ecosystem to gain adoption.
Human factors and workflows
- Cognitive and social practices: Many programmers rely on text, code reviews, diff-based workflows, and version control metaphors that map poorly to live, direct-manipulation interfaces. Organizational processes (code review, auditing, compliance) assume textual artifacts.
- Expertise and culture: Senior engineers are trained on abstractions (types, immutable data, unit tests) that emphasize reasoning away from concrete state. Tools that foreground immediate state challenge deeply held mental models and debugging practices.
- Education and hiring: University curricula, bootcamps, and hiring filters optimize for existing languages and tooling. New paradigms need time and champion projects to change workforce skills.
Product design and scope limitations
- Demonstration vs. product gap: Victor’s prototypes are persuasive as research artifacts and demonstrations, but turning them into robust, maintainable commercial products requires solving many engineering edge-cases, UX flows, and platform interoperability issues.
- Domain specificity: The most compelling Victor-style interfaces shine in domains with strong visual or continuous feedback loops (graphics, simulations, UI design, teaching). Many mainstream domains (systems programming, backend services, ML pipelines) lack comparable immediate visual affordances.
- Trade-offs with correctness and predictability: Immediate manipulation and live execution can make reasoning about nondeterminism, side-effects, transactional boundaries, and performance harder; for mission-critical systems the predictable semantics of compile-run-test cycles remain attractive.
Institutional and organizational friction
- Conservatism in large organizations: Enterprises value stability, observability, audit trails and compliance; migrating to radically different development environments threatens those requirements.
- Open-source ecosystem inertia: Libraries, package managers and build tools evolve through community norms. A paradigmatic shift needs large maintainer buy-in and coordinated migration paths—difficult without a dominant implementing product.
Partial successes and ongoing influence
- Incremental adoptions: Elements of Victor’s vision appear in modern tools: live reload, fast feedback loops (hot module replacement), REPL-driven development, visual debuggers, notebooks (Jupyter/Observable), interactive UIs (React’s fast refresh), and low-code/visual programming tools. These address specific niches rather than replacing general-purpose programming.
- Research and startups: Active projects (e.g., Observable, LightTable, Elm/FRP communities, educational tools like Scratch and Code.org, and academic work on live programming and direct manipulation) carry forward his principles.
- Domain-specific wins: Dynamicland, music and graphics tools (e.g., TouchDesigner, Max/MSP), and game engines (iterative edits with immediate preview) show practical value where Victor’s approach maps naturally.
Conclusion
Bret Victor’s predictions succeeded as a compelling vision and seeded many concrete improvements, but full realization stalled because real-world software engineering entails huge legacy bases, diverse domains, conservative institutions, and economic incentives that favor incremental change. Where his ideas solve clear domain pain (education, visualization, UI design), they’ve been adopted; where they conflict with scale, abstraction needs, or organizational constraints, adoption has been slower. Continued progress is likely to be incremental: more domains will absorb live, explorable tools where the cost/benefit aligns, but a complete, universal transformation of programming remains constrained by the practical realities listed above.
Short term
1. Reduction in Redundancy
There is client side and there is server side programming. This seperation is costly and leads a lot of redundancy - waste work. They will merge. There won't be client and server side programming. There will be programming only.
It is really feasible that in the near future when you build a client mobile or web application it generates the necessary server side for itself automatically. Or server side is just a commodity like ftp, db, etc applications.
Of course, this will be very bad for people who call themselves senior server-side-something architect.
This
Years later the source code for the “Drawing Dynamic Visualizations” tool is still not released, however there is something very very similar:
A hybrid graphics editor and programming environment for creating interactive diagrams
Its source code IS available on GitHub: cdglabs/apparatus
and according to their mailing list, the plan is to create explorable explanations with embedded diagrams from Apparatus, as can be seen on Explorable Explanations.
Here is some video about the tool from one of its main authors:
While it looks very similar to the tool demoed by Bre
I'm not Bret, but I saw this video where he demo'd some work based on one of his guiding principles.
I was blown away watching it, very exciting stuff!!
http://vimeo.com/36579366
As others on this thread have pointed out, you can’t consistently & accurately predict the future. However, I spend a lot of time identifying and analyzing growing trends in order to keep up with demand in the industry (it’s my job to make sure my company has the necessary skills in our developer network). From what I gather, the future of computer programming might look like this:
Artificial Intelligence: AI is becoming a catch-all term (in the way ‘algorithm’ has been for the last few years) but overuse (and often inaccurate use) of the term does not mean its impact is not real! I am also bundling machine learning under this heading, as it is simply a way of achieving AI.
Artificial Intelligence will continue drip feeding into everything we do. One area I am fascinated by is how it is likely to get good enough that you will be able to ‘speak’ a loosely defined design idea to a UI tool, and it will generate the mock designed screens from those requests.
What you should learn to develop AI:
- Python
- R
- Lisp
- Prolog
- Java
Augmented Reality: Talking about the UX/UI space, this has actually been static for a long time. Since the touchscreen revolution really. But the near future should be fascinating for user interface designers as AR is successfully navigating the move from Sci-Fi to reality. This is happening partly because the costs are dropping, which is generally a sign that we are near wider adoption. We are likely to see mobile adopting AR more and more since the two mesh naturally together. This is why I see AR becoming more popular ahead of VR (see next section) - end users don’t need new tech. That and both Apple and Google have released their own AR developer.
What you should learn to develop AR:
- ARCore framework with Java
- ARKit Framework with Swift or Objective C
VR: While we are not seeing many VR projects yet, it is, without doubt, a fascinating area. If it catches on with the wider public, this tech could drive some wildly innovative changes to our daily life. Predicting such change is fraught with difficulty, of course. Like AR, we can’t imagine where it will take us, nor do we know if/how it will mature. What we do know is that it will start with headsets. Now lighter in weight and lower in cost (less than $200), headsets are priced to become mainstream. With the assumption that they don’t suffer the same fate as Google Glass, we may be only a few years away from similar societal changes the iPhone/app store brought.
What you should learn to develop VR:
- JavaScript
- Java
- C++
- C#
IoT is only just starting to come into common parlance. It aims to create a network of connected devices, from keyrings to home appliances, that collect and analyze data so they behave in a smarter manner. Nest is a common example of an IoT device. The roll-out has been slower than expected because of issues with commercializing IoT data. But as these hurdles are cleared, I expect to see the technology used in many Jetsons-like ways. For example:
- Doors that recognize you and unlock.
- Fridges that order your favorite food before you run out, or encourage you to eat healthier.
- Gardens that water themselves
- Devices that won’t let you forget them
The 1st gen devices like Alexa are going to evolve and become ubiquitous. But they will certainly extend beyond the home into:
- Cars
- Cities and Public Spaces
- Healthcare
It’s definitely a growing sector. We don’t see many IoT projects at Scalable Path but I think this is because a lot of it is sitting within Google and Amazon and there is little startup work out there.
What you should learn to develop AoT:
- Python
- JavaScript
Blockchain: Whether or not you buy into the long-term blockchain and crypto space, there is no denying it is a huge and growing sector. You just need to look at the $100 million VC’s just pumped into CoinBase to know there are a lot more developer roles in this area. This is, without doubt, the fastest growing space for us.
What you should learn to develop on the Blockchain:
- Python
- C++
- JavaScript
- Solidity
Not all changes will be as visible as AR and VR though. Much of the ‘magic’ will happen behind the scenes.
Big Data: It’s not all Python and JavaScript. Another skill shortage lies with Hadoop developers. Again this is due to the rapid increase in demand for it. Which in turn indicates it will play a big part in the next few years. It’s closely linked to the increase in big data analysis trends. Businesses will want to analyze more and analyze faster. So these trends will continue to grow as pretty much everything I am discussing in this answer is trying to collect and analyze data to better sell your goods and services.
Quantum Developers: While fascinating, the development in the quantum computing world are unlikely to result in many roles for ‘quantum algorithm developers’ in the near term. That being said, both Google and IBM believe they will hit the ‘quantum supremacy’ milestone this year. This is where a quantum computer processes an algorithm that a traditional computer could not within a human lifetime. How long it will take to bridge the gap between that achievement and full error correction is still very uncertain.
To reiterate, these are ideas based off of what trends seem to be taking off. Who knows what other technological innovations will bring!
I answered something related to this a while back, and tried guessing at the reason that VPRI didn’t release source code, beyond several tools that were developed in the process. I might’ve been in the ballpark in what I said, but something that Adele Goldberg said in a fairly recent interview occurred to me later. She said that Alan Kay used to tell her and others in his research team that the worst thing was to release a product, or be part of a product team, because then you have to spend time supporting it. Kay indicated this in his answer here. She mentioned this in relation to starting ParcPlace Systems (she decided to go into product development).
If your goal is research, then the main thrust is to advance and prove your ideas, not look back and essentially provide “help desk” support as people try to use what you’ve created. That’s for people who want to develop and support products to do. As in a scientific discipline, if others want to replicate the work, based on what has been published, they can do that. It makes for quite a learning experience, which I think is the point. If you’re not learning something new in a scientific pursuit, then there’s something wrong.
Nope.
If you are talking about the STEPS project, the code is not necessarily closed. You can actually download a zip file of a working system, etc. We just did not get around providing a friendly page and links to those materials.
I think it’s fair to say programming will be much more automated: programmers will become more creative and powerful because then they will have more time.
At the same time, newer languages will spring that will make the older ones obsolete. Rust, Go, Scala, Swift, Zig, Nim, V etc. are merely indicators of this drive towards creating much better languages.
Job-wise, what is true today, will hold: better programmers will be in demand, mediocre ones will struggle.
More developers will launch their own games, but not solo—they will form groups, small ones like the team behind The Forest (there were four or five people, all partners). So, entrepreneurial game developers will thrive.
The general outlook is very positive.
It's one of the best presentations on the possibilities of programming that I've seen.
Victor talked about languages that I had heard about for years, but I wasn't clear on what they did (with one exception), or were capable of. The idea of programming to goals sounds exciting to me. I'm struck that computer scientists were thinking about that back then, and I never heard about it, even while I was getting my CS degree many years after this. Perhaps it would have been discussed if I had chosen to study AI.
I agree that programming models need to be developed for distributed computing. They exist, but they're not used much.
I suggest you look at a language designed to be readable and designed to support self-documentation. That language is Ada.
Ada was designed to support the development and maintenance of military software. Military systems often have very long lifetimes. In fact fielded military systems have a lifetime averaging 30 years. An extreme example of this is the B-52 bomber. This weapon system first entered active service in 1955. It has undergone many updates and is still actively in service today.
An introduction to Ada provides some background on how and why the language was developed. Note that the goals of the Ada language include ease of reading and ease of learning.
Ada supports a robust implementation of generic programming, which in turn supports the concept in “Learnable Programming” of “create by abstracting”. See Stack Abstract Data Type using Ada for an example. This example uses preconditions and post-conditions to specify the required behavior of functions and procedures, making the starting and end state of each function or procedure visible to the programmer applying the program interface.
Not to my knowledge. They aren't on his site www.worrydream.com . The closest thing to a code editor like he demoed seems to be Light Table by Chris Granger
There are couple of projects implementing these ideas but I'm not aware of any complete learning solution or course.
On the other hand you can achieve comparable results in environments such as Light Table or Wolfram Mathematica (or better Wolfram Programming Lab) or Project Jupyter.
In approximately 1 year from now the third world war will break out - ref. WWIII. When you see Donald Trump and Vladimir Putin shake hands and promise “peace in our time”, you will know that the war will come in a very short time. The Russians are going to nuke North America and invade Europe with conventional armies, while the Chinese will invade India.
This world war will be the shortest of the 3 world wars, only lasting 7 months, but billions of people will die, and this drastic reduction of the world population will of course affect our world’s economy, administration, culture and science -
How about: The need for security.
Ok, a bit more detail the Insecure Internet of Things will need security measures, leading to home firewall routers gaining multiple zones. It is a bit inconvenient if your remote controlled lights are compromised, but it they are uses a a stage point to turn of alarms and unlock all doors then it becomes a serious problem.
Javascript/node JS is single threaded, the language has many misfeatures, so perhaps this will be replaced by a real language with proper security and zone separation to prevent system compromises via the browser.
Maybe programmes will have to have training in security practices; or at least non-secure by design languages can be retired.
The above are probably not good predictions, so I’ll make this: The Security Now will still be talking about security failures for the forseable future.
My programming course, http://jsdares.com, was also inspired by Bret's work.
Since from the time when the deck of cards is used as a program to assembly language to PASCAL and COBOL to C then OOPS language like JAVA now languages like JavaScript and Python. Programming changed every time the need determines the nature of Programming. As of now, since data is being generated at a very fast pace so the languages like Python and R will be dominating the Programming space.
Also, the future of Programming is quite unpredictable. One Significant development will change entire programming scenario so only future and demand will tell us about Programming
Here are a few more that I've come across:
http://enjalot.com/
http://gabrielflor.it/water
http://danielchasehooper.github.com/CodeBook/
I imagine that at some time in the future, computers will become self-programming (although the computers of the future may not resemble computers of today in any recognizable form).
Writing programs in the future would probably only exist as a special niche work or as a hobby.
Today on hackernews:
http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/
Despite the dramatic shift toward simplification in software interfaces, the world of development tools continues to shrink our workspace with feature after feature in every release. Even with all of these things at our disposal, we're stuck in a world of files and forced organization - why are we still looking all over the place for the things we need when we're coding? Why is everything just static text?
Bret Victor hinted at the idea that we can do much better than we are now - we can provide instant feedback, we can show you how your changes affect a system. And Idiscovered he was right.
From business side it can be no-code/low code programming platforms. From more technical, advanced IT solutions it will be further progress in functional-logic programming languages (something like haskel and prolog in one language all together) also more declarative and concise way of programming. Plus further development of contract languages for blockchain and web3.
We are still away from a language that makes something so easy you do not need to code.
In iOS you can do a lot of basic menu stuff just by some clicks on the guy. If it is a really simple app which might just dislay facts you might be done after you wrote down all the text! So it is very fast. But believe me, if you do not understand the logic behind it, you get always problems you might noch understand.
Furthermore, everything we are doing visually in an interface has been code before. The code was first available, not a designed panel with buttons. So be aware that we will still need 10 years
i think he just wants to clean it up / figure stuff out before making it public.
have you read Additional Notes on "Drawing Dynamic Visualizations"?
also, Light Table exists!