4 ms·
I don't understand the use-case for an programming environment where the program looks like a text file, but I need to click on a while loop and then click on t
by jitl 2y ago
I don't understand the use-case for an programming environment where the program looks like a text file, but I need to click on a while loop and then click on the "condition" field in the details column to edit the condition code with my keyboard, rather than just select the condition code in the main view and type there.
I guess the program in the main view is always syntactically correct? But I can still have a syntax error in my condition, so on what dimensions is this a net improvement vs just... typing the code?
I am a big fan of flow-based visual programming for signal processing domains (like GNU Radio), music and generative art (like Max/MSP). In those domains where there's a lot of data flowing through confusing but pure transformations, and having a GUI and being able to effortless inspect intermediary products and creatively try different pipelines of patches can be much more convenient than text programming.
But if you're just putting a lot of extra steps around a typical looking procedural scripting language, what's the win?
- PittleyDunkin 2y ago> But I can still have a syntax error in my condition, so on what dimensions is this a net improvement vs just... typing the code? To me this is a massive win. Structural editing solves so many problems we face as coders. Imagine not being able to save a file with invalid syntax! Imagine if changes were defined in structural or semantic terms rather than through text! The man-hours saved are mind-boggling to even consider. Anyway intellij + java is already pretty close to this and java syntax is certainly not LESS ugly of an interface. I really just want my editor to not allow persisting anything but a coherent program....
- andylynch 2y agoSpecifically for Java (though earlier versions were LISP) - I had the pleasure or using SeeBeyond‘ eGate , which did almost exactly this. It was a horrible, slow ordeal. IntelliJ’s structural search / editing is very powerful, but also arcane enough that few people I know actually use it.
- PittleyDunkin 2y ago> It was a horrible, slow ordeal. So is editing text. When you manage stacks of text (e.g. a VCS) text becomes even more of a nightmare.
- deleted 2y ago[deleted]
- RestartKernel 2y agoI get what you're saying, but syntax is the least of my concerns. With a modern IDE, or even just a decent language server, I run into syntax error very, very rarely. Everything else is the hard part.
- smokel 2y agoThis particular implementation doesn't strike me as extremely useful, but stepping away form text based files opens up quite a lot of possibilities. For one, identifiers could be replaced by UUIDs, making some refactoring operations trivial. And as someone else points out, the system could reject syntactical errors at an early stage. Smalltalk implementations such as Squeak [1] show a lot of potential. Unfortunately, the programming ecosystem at large seems to be quite conservative. [1] https://squeak.org/ https://squeak.org/
- MahmoudFayed 2y ago>> "This particular implementation doesn't strike me as extremely useful, but stepping away form text based files opens up quite a lot of possibilities" The visual representation could be improved and made easier to customize over time. What truly matters is the concept and the interaction approach, which enable the creation of a general-purpose VPL that can be used for any programming task.
- MahmoudFayed 2y ago>> "I don't understand the use-case for an programming environment where the program looks like a text file, but I need to click on a while loop and then click on the "condition" field in the details column to edit the condition code with my keyboard, rather than just select the condition code in the main view and type there" In PWCT2, just click the (Start Point) and press CTRL+L and all of the interaction pages will be opened to quickly modify the input for any component. PWCT2 is designed to be used in different ways based on the context. 1- If you like writing code, just write code, and PWCT2 will convert it to a visual representation. 2- If you want to explore the environment and learn about the visual components, you can use the mouse to discover and use any component. 3- If you know the component name, just use keyboard shortcuts to create programs quickly. 4- Using the Time Machine and playing programs as a movie, you can read large programs without touching your mouse or keyboard. Just watch while drinking your coffee. 5- The advantages of interaction pages (data-entry forms) become apparent when using large components, such as those representing GUI classes. 6- Using the steps tree, we have drag-and-drop functionality, allowing us to quickly organize the logic of our programs.