You wouldn't run your test suite against a production database, so why would you develop in a REPL that touches it?
Why not?
Shapir-Whorf. Today, running something like that against production is unimaginable. Security, performance, ... But why not?
Bridge builders cannot experiment with live bridge for resource reasons. Yet all big construction efforts at some point or other built 1:1 replica. So why shouldn't we? It's much easier to do it with software than it is with bridges.
And yet - there's a work machinery company. Engineers have "REPL" for trucks. When they make a modification, they get high-end, supercomputer-based virtual truck they then put through paces in real (simulated) environments in real time. They went from drawing boards to instant feedback in 2 decades. They don't see a problem in testing on live data.
In software, we take a 10:1 scale of a wheel, then play with it on the desk and conclude that new truck is a good fit for 15 years of service in coal mine.
Why shouldn't I experiment with live data. Best way to ensure my work is correct is to use actual data set.
Common Lisp, Scheme, Smalltalk, Clojure, Ruby and Python[/quote]
First 3 are natural fit and have solved this problem long ago, there's little to say, it was so easy it was forgotten 30 years ago.
But majority of work today relies on external APIs which are not a good fit for most cases. For pure data mangling, where web apps fall into, it's somewhat easier. Doing desktop or native development is much more difficult for general case.
I assume you mean either scale to large programs or scale to large teams.[/quote]
Yes, as well as coping with project lifecycle. Stuff that was modelled upfront worked OK since it took limitations into consideration. But as requirements changed, they couldn't cope.
Simple examples - visual parts were eventually copied by hand and maintained by hand. So instead of doing find/replace/sed/grep/etc., people had to manually replicate connections on copy-pasted forms, since there was no natural mechanism to deal with it.
"Easy-for-nonprogrammers". It was. But as soon as real world requirements and constraints hit, it was much cheaper to just pay original team to implement the specs the old way. Even for trivial customization, none of it stood the trial of fire. It looks easy, just add this component, but in reality there were hundreds of edge cases.
Existing APIs. VA worked OK-ish for what was provided. But APIs (some as big as CORBA) weren't made for them. So for most part, they couldn't be used. Platforms - not languages matter. That is where the value lies.
In either case, I'd argue that textual languages don's scale particularly well either.[/quote]
Everything we have today is written in those.
Nothing of comparable scale is written in visual languages.
Regular 9-to-5 programmers these days work with 1MLOC codebases or larger without much effort. It's essentially a solved problem. There are inefficiencies, but work is getting done on schedule by several million people.
For reference, the project in question was probably some 400 people across multiple continents with some 300MB of code.
There are projects orders of magnitude bigger being in completely non-problematic production these days using conventional methods.
When I left the project, it probably involved around 1200 people working multiple releases, from test to production with codebase at 800MB. Core engineering team at the time was split into three parts with a total of 30 people, it simply became so much easier.
All of these things can be done equally well with visual languages.[/quote]
Can they?
flaws which could be fixed (like providing a richer set of data types).[/quote]
Could those fixes be made in visual language? If not, why isn't the platform itself written in these?
it quite literally was spaghetti code.[/quote]
Yes. This is how people program.
Before you go after improvements, first accept that as a fact.
Today's languages work with that, quite effectively.
Living in OSS and github world can give you a skewed perspective on what programming is. Vast majority of programs are broken to the degree that platform/compiler will allow it. Change one comma and it all falls apart.
Far from ideal or inspiring, but it's what keeps the world running. Good programmers write good code, bad programmers don't. Regardless of language.
What matters is that language works for both.
but I do feel it is something that could improve certain areas of programming for a lot of people and is worth exploring more.[/quote]
It is.
But also depends on the domain. Music production has traditionally been a good fit for alternative models. Much of more mundane work isn't.
It definitely helps if you can make your own little sandbox. Flash would be a mainstream example.