Hacker News new | past | comments | ask | show | jobs | submit login

Some people say there is a reason for text being used in programming, of course there is a reason: the terminal, that evolved from the teletype, that evolved from the typing machine and morse codes.

For someone to make a new system you need two things:

1- Completely rethink and redesign how things are done.

2- Modify all the tools in use today. This is the biggest part by far. The amount of work you have to do is so much that most people will just choose to continue evolving over the current system.

E.g for making your own visual language you not only have to develop the language itself, but make the compiler also visual, and the debugger also visual, but the tools you could modify, like llvm are text based and terminal based. Modifying llvm for it is hell. And consider yourself lucky if you have to modify llvm, because in the past it was gdb with monolithic design and no libraries.

An example of a redesign was Xerox PARC GUI. Instead of one input-one output development system in the terminal they added 20 or 30 inputs and 20 or 30 outputs. For this they had to use a new programming concept, so they had to use object oriented programming(without it handling 20 inputs-outputs at the same time becomes so hard it is in practice impossible), that at the same time forced them to develop their own tools in order to see object oriented data structures and methods.

Any modern UI development inherits from Xerox design.

Another paradigm change was the Iphone: it forced every smartphone to have hardware acceleration video and touchscreen and used it as input methods.

People like Bret Victor and MathBox creator are trying to redesign the whole concept using new tools like GPU programming and video displays. I agree with them. The current system is so wrong , even when it is the only thing we have.

It's not just about VT100s. It's that text is far and away the go-to format for recording any information that's abstract or has narrative structure. It has been for a very long time.

There are graphical techniques, but they all work in very specific and limited domains. In the wild, even flowcharts that aren't meant to represent a process that has dynamic state are frequently tagged with annotations for explaining important details that are difficult or impossible to convey within the strictures of a flowchart's graphical language.

That's not to say that the idea of a visual programming language is not intriguing, or that it's a waste of time to explore them. But the reasons why it's an uphill battle go far beyond mere inertia.

I am coding since the mid-80's and after my GNU/Linux zealot phase I went back to the GUI worlds of Mac and Windows, because although they have their own set of issues, they are closer to the Xerox PARC ideas than any other UNIX clone.

After becoming a big Oberon and Smalltalk fan during the university, I started collecting Xerox PARC papers and imagining how the IT would have looked like if those ideas managed to win the market the first time they tried to go commercial.

Instead we had to wait for Bret Victor and MathBox creator as you say, for bringing those ideas back.

> 2- Modify all the tools in use today. This is the biggest part by far. The amount of work you have to do is so much that most people will just choose to continue evolving over the current system.

One thing I learned from the explosion of JavaScript ecosystem is that this is a bit simpler than one may think - you just need to create a stable minimum base with a good selling point, and let the fans do the rest. If it gains initial momentum, the rest will get developed simultaneously by the world at large.

(A lesson from languages like Erlang or Scala would also be that having a company dedicated to marketing the living shit out of the language also helps.)

Try to draw a diagram that conveys exactly what you have written above. Text is a powerful medium for conveying abstract thought.

The problem is that we are missing a sufficiently expressive visual language. Given such a language, my guess is that OP could have conveyed his thoughts more clearly and concisely.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact