5 ms·
Round and round we go. Textual code looks like the barrier when you start learning, but it's a boon when you've gotten past it. The big barriers to quality so
by reificator 9y ago
Round and round we go. Textual code looks like the barrier when you start learning, but it's a boon when you've gotten past it. The big barriers to quality software are not typing or syntax, they're just the most visible from the outside.
Despite the goal being to "let anyone program", these tools rarely end up as more than toys. Why is that?
It's because learning to program is not a matter of learning syntax. If that was the barrier we'd have just put more effort into NLP and been done with it.
But traditional spoken/written languages are inadequate for the precision needed in programming, so we use more precise alternatives. The language is a tool that makes it easier to program, despite looking more intimidating from the outside.
That said, when you limit your domain you can make quality "codeless" tools. Shader Blueprints in Unreal come to mind as a good example. But a lot of the value they provide is in seeing the previews at every step because it's a very visual thing that you're making. And if you're hitting performance barriers, you'll probably need to rewrite it in text anyway.
Just because programming languages look scary from the outside does not mean that removing them will make programming easier. Most of the time it will make programming harder.
- braindouche 9y agoPrecisely. As I frequently like to remind those around me (because I'm a total drag), "Coding isn't easy, but it's also not the hard part of programming".
- kickopotomus 9y agoI think this is the important distinction. These "codeless" tools really just shift the inherent complexities of software development instead of getting rid of them. Anecdotally, I had much harder time learning how to read/understand LabVIEW graphical "code" than I did learning C.
- reificator 9y agoI used Unreal's Shader Blueprints as a positive example, but the more procedural Blueprints used in gameplay boggle my mind. I find them harder to read and much harder to write, and that's when they're well formatted. Another point that I forgot to bring up is that graphical tools don't always let you setup functions, and when they do the added indirection usually makes them even more confusing. It makes it difficult to break out repeated logic and confusing to follow the code after you do break it out.
- DonaldFisk 9y agoLabVIEW isn't a "codeless" tool. It's a programming language. It's very different from C (dataflow instead of imperative) and requires a different way of thinking.
- reificator 9y agoI think they recognize that, which is why they said code in quotes. It's still related to the topic, as that's one of the first places people go when trying to take the code out of programming.
- ravenstine 9y agoEven simpler than that, most people simply aren't interested in programming. A lot of programmers seem to have difficulty comprehending this. As you say, there are of course barriers for many, but we can't continue with the premise that everyone could be a coder and would be a coder if X and Y were met. I argue that programming languages are not complicated. Although most people butcher the English language, it's a far more complicated language than C, which has relatively few keywords and an unambiguous syntax. But programming languages, especially C, are tremendously repetitious and lack nuance because of the fact that they are so simple. Simplistic units in principle are really good at building different complex things, whereas things that are more complicated are usually better at articulating simpler ideas. No wonder nobody programs computers in English! A programming language that tries to meet parity with English, or any spoken language, would be an utter nightmare to deal with. My point is that someone who has any innate interest in programming can make their way past the layer of intimidation, especially now more than ever with the sheer amount of information that didn't exist when I started coding. I remember when looking at code was intimidating because it didn't match my understanding of what a language was, and it was in the era of "Just F###ing Google It" when nobody on forums would help you, online documentation was terrible, and there was no Stack Overflow. Now, there is really almost nothing holding anyone back besides the will to do so. There is a limited amount of things that most people are willing to learn. When one is hardly autodidactic, they will choose the path of least resistance and only learn when it is a necessity. When programming to any degree isn't a necessity for someone, they're not going to want to do it. Heck, sites like Wix and Squarespace are insanely easy to use, and I know people who want to make their own site for their business and drag their feet in using site builders because they find it annoying to understand what it even is they're doing when they're dragging around components. They don't want to have to learn, and would rather someone who is interested in building sites do the work for them. Hence, why there are still programmers.
- geebee 9y agoWhat you describe certainly has been my experience. Many of the markup languages that were designed to make it possible for "non coders" to write interfaces just turned into another programming language, only clunky and irritating. For example, tag libraries like the JSTL were designed to split the programming between interface and back end, allowing designers to manage the programming logic in the interface. HTML and markup tags were fine, but in my experience, once you get into loops, conditionals, and so forth, the designers almost always send it back over to the programmers, who now have to learn a new (and generally half assed, in my opinion) set of tags to implement programming logic. As I remember, they pushed this pretty hard (the head first books even devised a mock scenario where a corporate memo banned the use of JSP code in a page). Ruby on Rails went with ruby code and helpers, and I think it was vastly more successful. YMMV of course, but the experience led me to believe that if you're going to program, just use a programming language[1]. As for this article? Well, the sub title is: "It's accelerating how businesses are able to impact their strategy." So, we have a sense of what we're in for if we choose to keep reading. Beyond that? Actually, I do think that things we used to write code for will be handled differently, and may not require programmers. This is nothing new for the industry. There was a time when a spreadsheet required a computing expert. Same for calculations, servers, publishing an article on what is now a "blog". Blogging engines totally accelerated how writers impacted their strategy. [1] a lot of people don't quite understand the hype and, yeah, attitude of ruby and rails programmers in the early days. I do think this community went too far with it, but the scenario (a corporate memo banning something) does get at why. The java world had gotten sort of insane, and ultimately was starting to rely on things like memos from above because that was the only way to imagine why anyone would actually write the way the spec said. There really was a massive cheer when someone (DHH in this case) just finally put up a giant screen at a conference saying, literally, "fuck you". Although I think you can achieve with more civility, that kind of bluntness is necessary to beat back the insanity in this field every now and then.
- emodendroket 9y agoYou remind me of the old article about "Soft Coding": https://thedailywtf.com/articles/Soft_Coding https://thedailywtf.com/articles/Soft_Coding > The reason we find ourselves Soft Coding is because we fear change. Not the normal Fear of Change, but the fear that the code we write will have to be changed as a result of a business rule change. > It’s a pretty silly fear to have. The whole point of software (hence, the “soft”) is that it can change that it will change. The only way to insulate your software from business rule changes is to build a completely generic program that’s devoid of all business rules yet can implement any rule. Oh, and they’ve already built that tool. It’s called C++. And Java. And C#. And Basic. And, dare I say, COBOL.
- commandlinefan 9y ago> Textual code looks like the barrier when you start learning The fact that, hundreds of years after Newton, mathematicians still use symbols to convey concepts strengthens your argument here.
- dragandj 9y agoNot only that, but writers around the world still use text to express their thoughts. And, 5000 years ago, they started with drawings. But, smart as they are, they realized it sucks, and that for anything beyond simple concepts, text is da best.
- noxecanexx 9y agoI second this. Programmong languages where made to be precise enough for computers to understand and ambigous enough for general computing
- digorithm 9y agoInteresting! That's a point of view I've never thought about and it makes sense, thank you!