While I do not like that Lauren Mendoza frames her argument as an attack on coding, she has a point. She seems to be operating under a different definition of coding. It appears she has noticed an over emphasis on syntax in the field and that has lead to a very negative perception of code. I concur with a lot of what she says. I find the nuances of syntax a bit annoying myself. I also prefer to use a graphical user interface [GUI]. I also believe coding should be about solving new, interesting problems and not an assembly line of redundancy and syntax. But I do not believe that coding itself should be a thing of the past. I would not say that GUI and coding are mutually exclusive. You can code using a GUI and coding can allow users of different skill levels to use the same interface.
GUIs can help you learn to code. I would tell everyone to start coding on on a GUI like Scratch or code.org or play the Foos. As Lauren Mendoz explains in her article, a GUI can help you develop a better understanding of the processes at hand. They are great tools for beginners. You might develop Scratch Cat Fever and become an avid programmer after using Scratch. You might even have trouble moving on from Scratch and learning other languages. I am definitely guilty of that.
I agree with Lauren Mendoza that syntax can be a bit tedious and trying. That is one reason I would suggest that beginning programmers use a GUI to begin with. In the beginning, it is more important to learn the processes of programming and computing than learning syntax. Learning with GUI can help beginners learn the process of coding without getting bogged down with the syntax.
Coding can be tedious and redundant, but when a coder sees a tedious and redundant task, they think of ways to automate that tedious and redundant task. So no, I don’t think Lauren Mendoza‘s assessment of the web development world means that coding is over. It means that despite her dismal view of coding, she’s thinking like a real coder. She’s looking for ways to make what she does better. That is the real skill of coding. Knowing syntax is not a coding skill.
Yes, we should find ways to do redundant tasks better and develop ways to take advantage of machine learning to improve the way web design is done. That does not mean coding is over. I agree with Lauren Mendoza‘s assertion that “Engineers should be solving new and interesting problems, not rebuilding the same apps over and over. That is a job for robots.” But that is what coding should be. It should be function oriented. It should be about developing code that can be reused.
Lauren Mendoza is correct that we should be using technology better for web development and that we should encourage web designers and web clients to use a design that naturally flows and does not require users to relearn how to navigate a web site to get the information they need. Most of my frustrations with software is when they move things around after I have already learned how to use it. That’s why I hate Facebook updates and the ribbon on Microsoft Office. (Of course, there are also privacy concerns, and the odd way that they allow any friend to add you to a group without your approval.)
But no matter how awesome a GUI is, there is a limit to what you can do with it. The more features you throw into a GUI, the more confusing it becomes for new users. Yes, you can build a website using interfaces at Wix and Word Press and not need to know a bit of code. However, there’s always going to be web elements that are not used often that won’t be featured on these sites.
For example, while working on the Table of Contents for the Adam Kokesh FREEDOM! book, I noticed that unordered lists without bullets is not a feature on the Word Press toolbar. However, since I know the basics of HTML, I can look it up at W3Schools and go into the HTML and change that myself.
Also, the id tags used to link to sections within a page are not included in the Word Press toolbar. I wouldn’t necessarily say that Word Press should add these features. I do not think enough people use unordered lists without bullets to make such a button worthwhile. I suppose that Word Press could add a feature that generates an id tag when you set a header, but I am not sure it would be that useful. To make it useful, they would need to add headers to their list of things to link to. That list is already pretty cluttered. I suppose they could include a header tab in the link pop up, but that might confuse more people than it would help. I just do not think it is a feature that would be used very often.
Word Press needs to be a site for both beginner web publishers and more advanced web publishers. It makes more sense to have the advanced users use the HTML than add features that would confuse beginners. If it doesn’t make sense to me, a supporter of GUI coding, to completely gut the need for code on Word Press, I don’t think it’s feasible to completely gut the need for code in the entire web development field.
There’s never going to be a GUI that will solve every computational issue. Despite all the work that the Linux community puts into developing GUIs, there is minimal consensus on how to develop the best GUI. A lot of people do not like Ubuntu Unity OS which does not allow for much customization. Canonical seems to think that a lack of customization will help new users feel more comfortable with the system.Whereas, I have this strong urge to try to make my Linux desktop look like Windows [Ubuntu MATE Redmond TWEAK] and I do not like the orange highlight color for some reason. I think the main reason I do not like it is I cannot change it.
There will never be a perfect GUI for an operating system. There will never be a perfect GUI for web development. There will always be ways to make everything better or at least better for different subsets of users. That means there will always be coding. Sure, maybe we should develop more graphically based coding languages like Scratch. I am all for that. However, there will still be coding. And the limitations of GUIs and screen space will probably mean we will always have some sort of text-based coding language. You can only include so many commands before your GUI is cluttered beyond usefulness.
Even with machine learning, the computer needs to be told what it is supposed to be learning and how to rewrite the code that it runs on. Sure a program that learns to play Mario can find a way to beat a level in a way that no human will ever think of, I wouldn’t use that as a way to generate a walkthrough for Super Mario World, as it wouldn’t be a preferable way for a human player to play it. Yeah, we should have some sort of machine learning sorting databases and generating web pages. But it’s going to take real coding skills to get those goals accomplished. We need software engineers like Lauren Mendoza that have the drive, imagination, and real coding skills to make that happen. But it’s going to take code, a whole lotta precious code to do it right. It’s going to take patience and time to do it right.