DEV Community

Discussion on: Why You Shouldn't Use A Web Framework

Collapse
 
gtanyware profile image
Graham Trott • Edited

David, you seem to be one of too few who really understand the KISS principle, and I salute you for it. You make several valid points in your article, and quite a few more topics pop up in the huge discussion that follows it, so because I haven't been through the whole lot I may be repeating someone - apologies if so.

I don't use frameworks. Never have done. Admittedly, I don't work in a software factory - I tried it a couple of times and it's not for me. What I do best is self-contained front-end projects, and most of these recently have been web apps that are 100% browser based with a small REST server to handle the outside world.

The coding language I use has no need for frameworks - in fact it's an alien concept - but it manages to cope well with anything I throw at it. What's that language? English.

There are few user interfaces or business rules that can't be described clearly in English. If you can't describe a UI in English it's probably too complex for anyone to use. It'll also be too complex to maintain economically, so for me the key starting point is a good understanding of the requirements, expressed in my mother tongue. The other advantage of English is you can speak it out loud with a good chance your listeners will understand. Just try that with JavaScript.

When we encounter a new, strange concept in English we invent a new vocabulary for it. Words like laser or smartphone are instantly understandable. I suppose it's kinda like having library functions except it's seamless.

OK, so if English expresses the problem perfectly why don't we code in English? The answer is partly because the industry is hooked on complexity and isn't looking for simple solutions. If the effort currently going into designing new frameworks were applied to creating variants of English that can express the essence of any website then compile and run it - preferably all in the browser - we'd see a lot more productivity. You commented somewhere that relying on the most talented of coders is not a good thing, and I completely agree. We should be broadening the base of coders, not narrowing it. There's a world shortage of programmers, folks, so why do we go on making it harder and harder to become one?

Soon after Apple launched the Macintosh they also created HyperCard and its English-like HyperTalk programming language. Suddenly, anyone could program a Mac, so we did, and created some amazing stuff. Sadly, since then the whole idea of inclusivity seems to have fallen out of favor but for some of us those times left an indelible impression, one that runs completely counter to the idea that things are only good if they're complicated.

JavaScript is blazingly fast; so much so that it's now a viable system language with which to write higher-level, domain-specific languages that remove the need for most of the bloat we currently have to endure. I've done it for my own needs without being a professional compiler writer, and there are people out there far cleverer than I am. So instead of churning out variations on a tired theme, can we not move on, to a new level where software is really language and language is software?

The problem is not one of structure; it's one of language, which successfully underpins our entire society. It's about time computers were taught to speak OUR language rather than forcing us to train as machines, as we do now.

And that's my strong opinion.