5 ms·
Visual programming languages will only take you so far, but often that is far enough. What the author misses is that we as professional programmers miss the suc
by topkai22 8y ago
Visual programming languages will only take you so far, but often that is far enough. What the author misses is that we as professional programmers miss the success stories, because we only get called in when the boundaries have been reached.
In my career I’ve often been asked to rewrite Access DBs, InfoPath forms, or SharePoint sites developed by amateurs into something more usable. My early reactions where along the lines of “what insane person tried to do this in Access.” I realized at some point that was the wrong approach in my thinking. These systems are working software delivering value. I now say “wow, congrats on doing so much on your own. Let me help you take this further.”
- jfolkins 8y agoThat is a awesome attitude to have.
- barberousse 8y agoI think the broader, opposing point you bring out is that visual programming is perfectly suitable for specific scopes of computational modeling, and that's just because they're DSLs, and we already know DSLs are the right choice for a number of problems. I'd like to know who the author things they're engaging with on the points they're making.
- kpil 8y agoI disagree that DSLs are the right choice unless it's an extension to the suitably flexible implementation language itself. Actually, the perceived need for "dumb" DSLs is sprung from the same misconceptions as mentioned in the article and the end result is inevitably that simple problems are made somewhat simpler and complex problems turn into impossible problems. A proper DSL extension in an unobtrusive host language is another thing but also hard to find. If a Lisp syntax is acceptable then that's the canonical example. I don't want to get depressed overe all misconcieved excuses for test automation languages, process automation, configuration templating systems, etc, so I'll just stop here.
- jakelazaroff 8y agoObviously these are sweeping statements, but the problem with this generalization is that successful DSLs become invisible because we take them for granted. Regular expressions are a DSL. SQL is a DSL. LaTeX is a DSL. The Wikipedia page on domain-specific languages even lists HTML as an example: https://en.wikipedia.org/wiki/Domain-specific_language#Examples https://en.wikipedia.org/wiki/Domain-specific_language#Examp... With regard to LaTeX or HTML, you could even argue that their goals could be better accomplished with some sort of graphical interface, which sounds a lot like… visual programming!
- henrikeh 8y agoGeometric constraint solvers are essentially graphical, declarative domain-specific languages for mechanical/physical design. As an example: http://solvespace.com/index.pl http://solvespace.com/index.pl
- kpil 8y agoI would argue that perhaps with the exception of regex, the examples you mentioned are excellent ideas that are awsome despite their suboptimal DSLs, and they would have been even better if their DSLs had been implemented as extensions in a Lisp-like language.
- DonHopkins 8y agoI agree that it's good for a DSL to give not just unfiltered but well integrated access to the underlying implementation language, instead of trying to replace it with a dumbed down domain specific language. It should be possible for implementation language programmers to create new primitives, that visual language programmers can easily use without learning the implementation language. And that extension interface should be part of the visual programming language from day one, good enough for the visual language to use itself for most of its built-in primitives, not an afterthought nailed onto the side.
- baldfat 8y agoI think the future is General Purpose Languages that make DSL. Right now we have Racket and that is such a powerful thing to create DSL simply.
- topkai22 8y agoI don’t want to beat the author up too much- the over application of CASE tools in the 90s was a real thing, and I have less than fond memories of being forced to use a VPL when it really wasn’t the appropriate solution. A good professional programmer will feel (and in fact be) constrained and slower by a VPL. That’s frustrating and likely a misuse of resources. I just think the author missed the point that VPLs generally aren’t for “us”, they are for people who something else for a living.
- AnIdiotOnTheNet 8y agoIndeed. I once thought as the author did, and as I'm sure many programmers do, that things like VB and Flash and Excel macros were a blight upon the world. But a lot of useful work got done with VB, careers were launched from humble beginnings on Newgrounds, and Excel is one of, if not the most, popular tools in all of business. I think John Ohno does a good job of articulating what's so great about these tools in his article "Big and small computing" [0]. [0] https://hackernoon.com/big-and-small-computing-73dc49901b9a https://hackernoon.com/big-and-small-computing-73dc49901b9a
- enobrev 8y agoBack when I was doing tech-work in the financial districts of Chicago and NYC (late 90s, early 00s), some of my very favorite people were salesmen and analysts who had built these intricate and complex applications on top of Excel or Access or FoxPro or whatever. I was just starting out as a programmer (professionally) myself, and once I was finished doing whatever I was sent to their office to accomplish, they would pull me to the side and show me their applications and pick my brain about ideas and ways to improve them or if it made sense to try a "more serious" programming language. I was always completely floored by how much they had accomplished with every-day tools that people generally slog through out of necessity. Some of these guys were selling their applications for a solid slice of monthly income and support as well. "Normal" people building real, and truly useful applications with real domain knowledge are an absolute inspiration for me. It reminds me a lot of web development, actually. Because everyone in their potential client-base had Excel, just as we all have browsers now. So building in Excel made perfect sense. I see the same thing happen with Wordpress or Shopify these days. Building these amazing applications that extend far beyond the purpose of the underlying application. My early interactions with those people them helped me immensely when I went on my own full time, where I would walk into a small business and see this complicated app built upon - something - by an overworked "tech person of the office", who was clearly a bit sad that their creation was about to be replaced by some stranger. That was the person I was going to get to know and work with daily to get the application right, and I made sure they were part of every conversation. Most of my projects are greenfield these days, but I still hold those programmers - in the truest sense - in the utmost highest regard. I still love to discuss their projects with them in the rare cases that I get the opportunity.
- mmsimanga 8y agoTo add, can you imagine if IT had to develop every single application the business thought up? They would never cope. I think Access, InfoPath and CMS systems like Drupal allow business to create prototypes. Once the application has been validated and becomes business critical then IT can take over and develop a "proper" application. It makes sense to use a visual programming language to create basic CRUD applications. A central task list with fields that are specific to the business process can go a long way in improving operational efficiency in a business unit. Beats an excel spreadsheet.
- sigsergv 8y agoPrototype is not enough. Prototype is backed by some analytics that usually hidden or omitted. And “decoding” prototype app to create “real” app may take a lot of time.
- mmsimanga 8y agoIn my experience, people have more ideas than we have developers to implement every idea. It is very hard to work out if an idea is a good idea or not before you implement it. You cannot implement a system for every idea because you will not have enough developers and you will waste time implementing ideas that sound good but are useless. Visual Programming applications like Access allow less technical users to implement their ideas. Some of these ideas will go nowhere. This is fine because you will not have wasted developer resources. Some of these Access applications will solve genuine business problems. It may be difficult to decipher them but it is no more difficult than trying to figure out what users want. At least in this instance, you have an application you can test against.
- lozaning 8y agoAs a non professional programmer I much prefer the way you think about this than the author. Rarely ever do I find myself programing for the sake of programming, it's always to serve some goal, to make some thing, fix some problem. If I write the worst code, in the worst way, and it still makes the light flash or the robot arm move, etc, then i succeeded. I make heavy usage of the MIT Android app maker thing in my arduino and esp32 projects, and I'll be the first to admit that I use it so heavily because I have some minimal grasp of it and I've wrapped my head around most of its paradigms. I'll admit that because I've only got a hammer, every problem is a nail, but taking away my hammer because im using it wrong just means I cant build anything.
- PavlovsCat 8y agoIf it doesn't itch, don't scratch. If it itches and scratching with your finger makes it go away, you may not not need a "professional scratching device". Also, if people can build computers in Minecraft that don't achieve anything and get praise for it, people who solve real problems with creative (ab)use of something really should get kudos, too. You're not even using anything "wrong".
- wdanilo 8y agoTopkai22, I love your attitude. This is exactly how we should look at visual programming languages. They allow people to create something, which was so far not accessible for them. In surprisingly many cases, it's completely enough! I also understand why people dislike this idea. In many cases, it's really hard to extend something created by non-professional-programmers. I'm one of the founders of Luna ( http://luna-lang.org http://luna-lang.org ), which is a visual programming language blending the boundaries between visual data-flow designing and conventional textual programming. As a contrast to the mentioned article in this topic, I'd encourage people to also read our blog post about why visual programming could actually be very useful: https://medium.com/@luna_language/luna-the-visual-way-to-create-software-c4db520d6d1e https://medium.com/@luna_language/luna-the-visual-way-to-cre...