4 ms·
> HTML and CSS are not clean, intuitive, or efficient beyond simple examples. They do have a steep learning curve. The web is polluted with tutorials and Stack
by galoisgirl 6y ago
> HTML and CSS are not clean, intuitive, or efficient beyond simple examples.
They do have a steep learning curve. The web is polluted with tutorials and StackOverflow answers from people who haven't learned them yet, like this atrocious thread where most upvoted answers are plain wrong: https://stackoverflow.com/questions/4814398/how-can-i-check-if-a-scrollbar-is-visible https://stackoverflow.com/questions/4814398/how-can-i-check-...
> Masters of these tools sadly have their heads full of legacy hacks and trickery needed to get content to display properly.
The trickery is not needed anymore. I started in 1996 and I remember the table and float layouts. You can forget all this stuff now. IE11 supports flex-box well. Clean up your code and move on.
> Contrast this with algorithms, the middle-tier, and databases. These tools, while not perfect, are far better able to express developer intentions and therefore be maintained.
Well, I did understand flex-box after thinking in terms of layouting algorithm instead of a bag of properties and values. [1] But you're dangerously close to comparing apples to oranges here: front-end technologies are all about the user's experience, not the developer's intent. If you feel that strongly about them, consider sticking to the back-end.
> Sadly, the Web stack has largely become popular due to OS politics
No, the web stack has become popular because of the people from your first paragraph: the ones paying the bills. The ones who couldn't afford to lose customers by requiring a plug-in, nor building multiple versions of the same product.
> The concepts of types, intellisense, async/await, and other efficiencies are great examples of historically native benefits brought to the Web.
Types? JavaScript is typed, always was. Ajax was always asynchronous - do you mean the syntactic sugar?
[1] I then wrote that: https://dev.to/galoisgirl/how-to-finally-understand-css-flexbox-2chb https://dev.to/galoisgirl/how-to-finally-understand-css-flex...
- drknow007 6y ago>> They do have a steep learning curve. The web is polluted with tutorials and StackOverflow answers... Agreed. >> The trickery is not needed anymore... This isn't needed (as much) today because of browser consolidation. The point is that these Web technologies were too difficult for browsers to maintain. The tech didn't get better. Instead, we had to minimize the # of containers in order to control the havoc. >> ... But you're dangerously close to comparing apples to oranges here... I'm not trying to directly compare layer tech here. Rather I'm comparing how well each layer's tools serve the developer and project. I'm not interested in a career move, thank you - lol. This thread is about best software strategies that have the responsibility of serving the world. Far more important stuff than me. It matters and is worth continuous re-assessment. >> No, the web stack has become popular because of the people from your first paragraph: the ones paying the bills. The ones who couldn't afford to lose customers by requiring a plug-in... Just not true. Historically, Web dev meant crazy amounts of code hacks in order to target different browsers. Again, it wasn't better tech - it was far worse and costly. Remember Flash, ActiveX, Silverlight, etc? Lots of successful sites and web apps used them to work around this problem. Just stop and think about this. Flash devs didn't have to adapt their projects to their host container. It just worked. HTML/CSS/JS required lots more effort because of their intrinsic deficiencies. My point isn't that Flash (or anything else is better), its that HTML/CSS/JS is not where it needs to be, yet it still exists! And the reason it exists is because it runs on port 80! It's that simple - HTML/CSS/JS is one big loophole into x-platform development. Without this loophole, it loses much of its strategic appeal. Again, I argue that devs really want to just use the tools they know and have their bits run everywhere. And 'everywhere' is a tall order because for today's consumers, this means total cross-platform on desktop, mobile, and web. Fast and fluid. >> Types? JavaScript is typed, always was. Ajax was always asynchronous - do you mean the syntactic sugar? Yes, I mean getting rid of the hacks and plethora of libraries needed to accomplish simple, age old software goals. Imho, the Web stack has a real opportunity now to get focused and become a tech stack that most devs can love because it offers a x-platform strategy (although, importantly not because of HTML/CSS/JS - but because of port 80). But it needs to get better. It needs to get closer to the efficiencies and focus that native devs have been experiencing for decades. Cheers!
- galoisgirl 6y ago> Rather I'm comparing how well each layer's tools serve the developer and project. CSS and algorithms? Come on. > Just not true. Historically, Web dev meant crazy amounts of code hacks in order to target different browsers. Again, it wasn't better tech - it was far worse and costly. Remember Flash, ActiveX, Silverlight, etc? Lots of successful sites and web apps used them to work around this problem. I absolutely remember those, and they didn't work around the problem at all. You could not use Silverlight on Linux, you could use neither in text browsers nor on old machines, they weren't accessible,... The plug-in requirement itself scared many users away. I am so grateful to Steve Jobs for effectively killing those technologies. > Yes, I mean getting rid of the hacks and plethora of libraries needed to accomplish simple, age old software goals. Libraries are good, though JavaScript is in great need of a rich standard library, as problems with npm show. Hacks are arguable: how many were really necessary, and how many came from people who refused to learn the language well but pasted code samples from the web.
- drknow007 6y ago>> CSS and algorithms? Come on. I'm not sure what you are missing here - I'm not directly comparing CSS and algorithms. Rather, I'm pointing out that the lower layers have tools that better allow their devs to express their intentions. The front-end does not do this well. >> I absolutely remember those, and they didn't work around the problem at all... For who? You? They absolutely solved several problems that existed with the Web stack. Why do you think they were created and used? I agree, the download requirement sucked, but that was because the plugin model of the browser sucked. Your perspective seems too narrow here. Imagine if someone told you that you could build sites with your vanilla Web stack (HTML/CSS/JS), but you were not allowed to use 3rd party packages? Trust me, if Steve Jobs could close your Web stack too, he would. He would also close your hardware stack if he could. They are the least open company of them all for devs. Again, thank goodness for port 80! >> I am so grateful to Steve Jobs for effectively killing those technologies... Wow. Who are you to make a blanket statement like that? Are you suggesting that all the devs and projects that used those plugins simply didn't have a strategy and rather were too lazy to just learn the HTML/CSS/JS stack properly? Btw, many of these devs have a background in native development, which is typically a much more rigorous CS training - HTML/CSS/JS is not beyond them. >> Libraries are good, though JavaScript is in great need of a rich standard library... Agreed. You're making my point further. The Web stack is far behind native development in so many ways. However, port 80 is such a big deal (for bypassing OS politics), that it remains crucial that we try to embrace and improve upon it. >> Hacks are arguable: how many were really necessary, and how many came from people who refused to learn the language well but pasted code samples from the web. You're still making my point. This is an issue largely unique to Web development. With proper libraries and a more organized dev stack, these issues haven't existed for decades in native development. However, it does mean the Web community has conducted some really great experiments, which the original poster discusses. Look... If you want to argue that the Web is great for static web pages, I will give you that. But only because its largely not complicated. However, if you want to argue that the Web is great for Web apps and positioned well for future software projects, then I would suggest you spend more time in the native world to gain a better appreciation for how much worse Web dev can be. Finally, I believe front end development is not great no matter where you look. It's clearly a difficult layer to get right. This is why I stand with the intentions of the original post. The Web can build some great user experiences. But they are difficult to build, lack a consistent dev experience, and too often are full of hacks to get them to work.