|
|
|
|
|
by wdanilo
1805 days ago
|
|
Hi, thank you for the nice words! We believe in the same vision. Visual languages are amazing for some applications, however, text-based development is superior in many cases, like low-level algorithm development, API connections, compatibility with version control systems (GIT), etc. I am really happy that we were able to overcome all design problems and make these two representations 100% compatible. TBH, when we were starting Enso, we were not aware how many corner cases and tricky technical details we would need to solve in order to bring it to the world! |
|
Certainly. I was struck by it a few years back, around the same time as Luna was in early alpha stage. In fact I found it while doing research for my thesis, based on this vision. I was naive enough to think I had an original idea when I started.
> Visual languages are amazing for some applications, however, text-based development is superior in many cases, like low-level algorithm development, API connections, compatibility with version control systems (GIT),
And the only sensible way around these problems is to integrate both. Just this idea addresses most of the relevant criticisms of visual programming languages. A list of these I compiled at the time was:
• There is a barrier of entry for programmers used to text-based languages. • Essential programming tools are unavailable or cannot be applied: version control, side-by-side (or diff) comparison, change tracking, testing frameworks, build systems. • Visual primitives take up significantly more space than text. • Existing tools are of low quality. • Performance is overall slow. • There are no extensibility mechanisms. • The target group seems to be novice users. • There is no universal visual representation. • VPLs create closed ecosystems.
You might be about to tackle these pretty well. ;)
> I am really happy that we were able to overcome all design problems and make these two representations 100% compatible. TBH, when we were starting Enso, we were not aware how many corner cases and tricky technical details we would need to solve in order to bring it to the world!
I bet. Especially at the level of integration that you're aiming for. My own humble prototype was as simple as I could come up with and already revealed some major issues that a real-world implementation would have to grapple with.
Would you say performance was one of the tricky bits? What was the most tricky?