4 ms·
This is slightly perplexing. I love the intention of this post. Some thoughts.. I feel one could argue that there is a chicken-and-egg problem here. Nobody
by sixdimensional 6y ago
This is slightly perplexing. I love the intention of this post. Some thoughts..
I feel one could argue that there is a chicken-and-egg problem here. Nobody could code anything without a reference to start from. But, then, who developed the first language without a reference?
Ah, there - the start of something - those who invented the first programming languages - the very concept of "stored programs" as punches on a card, for example - assembly language, etc. - they did not have a reference. They invented the reference. But, it was also, by today's standards - much "simpler" and a much "smaller surface area" - while probably quite technologically complex and difficult for those at the time.
But after that, everyone else, who didn't invent the technology, but was rather using it.. was therefore - by definition - using a reference. Standing on the shoulders of giants... how else to learn?
For instance, I learned BASIC coding first by studying other people's examples - in magazines, by looking at code that came with my first compiler as samples, reading books. Same way I learned Pascal and C++ - the tooling/IDEs back then couldn't "help you learn" with autocomplete.. you learned when you wrote something, and it either compiled or it didn't. You learned by using "help" or books or talking to people or looking at examples.
I'd argue that even those who invent most things today are inventing it at a higher level of abstraction, and therefore still looking at references for levels below the level of abstraction they work at.
So.. "can you make a basic web app without googling"? Well, actually, yes, sure I can. But that is because I learned HTML, CSS, JS (and supporting languages like Perl, PHP, etc.) when the surface area was still small - from the Internet itself, by looking at examples and reading things like the entire HTML specification when it was smaller. Then I memorized it by doing it.. a lot. Then things changed, but a lot of the basics are still possible to do today and still work. That said - "will that basic web app work in every browser platform or any every server/OS platform that exists"? Well, if you stick to the true basics, possibly yes - but, this raises the question of technology and implementation variability and complexity.
I think the bigger question being posed here, isn't the headline... it would be better to ask, "does it matter if you can't make a basic web app without Googling"? There, I think, is the point of the post - and - yes, it matters in a lot of ways. But if you are coding for the web - presumably you are already using the web.. so.. perhaps that specifically is not as important as the next bigger question...
"Has writing code for modern systems become so diverse and complex, and the surface area so large, that it is difficult to build systems? Has the variability and diversity of our platforms become so large that it is difficult to build once/deploy many with certainty?". There again, I feel, is a much deeper and more interesting question. This too can be answered simply - avoid complexity and choose simpler languages/platforms that accomplish your goals, learn their surface area, and do your work. But, this might be more difficult/non-obvious to those just getting started - and there some good work could be done to make it more accessible.
And here we look to things, for example, like WASM - trying to build simple primitives that can work on nearly any platform, upon which many complex languages can live - engineering solutions to attempt at reducing complexity based on variability and diversity of platforms and implementations.
This question... surely relevant during this time of resurgence of "low/no-code" platforms and in relation to what we might have once thought of as "4GL" (or beyond) programming languages and related implementations/platforms.