> Visual Basic was phenomenally successful as an end-user programming tool.
Was? So what happenened, where did it go, why isn't it still filing the role you are aiming at?
Another example, held in somewhat better regard by programmers, of a phenomenally successful tool that let end-users build working programs, is Hypercard. Which definitely isn't around anymore.
Looking at the prior art of tools that have succeeded at letting end-users build programs is probably a good bet. What they did right, what they did wrong, why they don't exist anymore even though they were succesful, if they don't exist anymore.
> Was? So what happenened, where did it go, why isn't it still filing the role you are aiming at?
The last proper version of Visual Basic was released in 1998 -- Microsoft discontinued it in favor of VB.NET. If they continued to develop VB, I think it would still be a heavily used platform.
Hypercard is not the same thing. People didn't build real applications in Hypercard -- it was a toy. I spent a lot of time playing with Hypercard and it was very VB-like when programming for it but the UI was more like Flash. It's best use was making simple games.
The real problem with simple tools is that they solve simple problems. Once you have to start doing something outside of the tools range, you're stuck. This happens with every tool but more complex tools have a bigger range.
> People didn't build real applications in Hypercard.
Remarkably, they did! Wikipedia:
>A number of commercial software products were created in HyperCard, most notably the original version of the interactive game narrative Myst, the Voyager Company's Expanded Books, and multimedia CD-ROMs of Beethoven's Ninth Symphony CD-ROM, the Beatles' A Hard Day's Night, and the Voyager MacBeth.
It's true that Hypercard was not an ideal platform for development. Apparently, Myst developers had trouble making the high resolution images load quickly on machines of the time.
As I said, Hypercard was like Flash -- so it's not surprising that all these commercial products are sort of point-n-click multimedia projects. But you couldn't, for example, build an email application in Hypercard. You could, however, build one in Visual Basic.
Sure, you could build an email application in HyperCard. I'm pretty sure there actually were several. TCP/IP was available via HyperCard plugins or extensions or whatever they were called. HyperCard's card/stack data model would work fine for email. Making the list view would kind of suck, as lists always did in HyperCard, but you could use a plugin like WindowScript.
I wrote several commercial software products in HyperCard and SuperCard back then. It provided awesome tooling leverage. I worked on an EDI application that was written in SuperCard (with the EDI processing running in a C plugin) which was working, but later the company's president decided we needed to re-write the whole thing in C++ with the MacApp framework (http://en.wikipedia.org/wiki/MacApp) because C++ was a "real" programming language. This was the cfront era -- build times were long, debugging meant manually de-mangling names, etc. Crazy slow. We spent a long time on it but the schedule slipped long past the end of my time there.
The reason HyperCard couldn't support applications that advanced wasn't due to its concept or scope, but that Apple never really supported it well, and the last real major update to it came in 1990, before the internet exploded. HyperCard actually had decent support for AppleTalk networking (I wrote some network games and a network email client/server system in HyperCard as a kid, all solely over AppleTalk). I'm convinced that if Apple kept supporting HyperCard that it would support TCP/IP and anything else required to be competitive.
The common knowledge about why Apple never supported HyperCard whole-heartedly is that they didn't know what it was - it wasn't a programming environment, it wasn't a database, it wasn't a paint program, it wasn't a multimedia environment. Yet it was still all of the above.
The article I linked explains it pretty well. A small but vocal minority of users wanted more power. MS gave it to them in VB.NET, and with that power came complexity. The huge majority of people who just wanted to do simple CRUD stuff stuck with VB6 (which is supported to this day).
> Was? So what happenened, where did it go, why isn't it still filing the role you are aiming at?
VB6 still runs an astounding amount of apps that are used by millions of people every day.
I know you're not implying anything, but, there's several hundred billions of dollars done in the US annually with just VB6, excel macros, and shitty Access DBs. It's incredible, really.
Was? So what happenened, where did it go, why isn't it still filing the role you are aiming at?
Another example, held in somewhat better regard by programmers, of a phenomenally successful tool that let end-users build working programs, is Hypercard. Which definitely isn't around anymore.
Looking at the prior art of tools that have succeeded at letting end-users build programs is probably a good bet. What they did right, what they did wrong, why they don't exist anymore even though they were succesful, if they don't exist anymore.