1. 41
  1. 14

    I still can’t get over the fact that someone got an idea to refresh HTML document tree 60 times per second and make HTML document viewer render it over and over and call it as “application”.

    It’s so wrong on just too many levels that I don’t even know where to start, and people basically just don’t even notice that.

    1. 11

      But it doesn’t actually work the way? In AJAX apps, DOM is only updated on events (e.g. click, user network data received). You would have to have a timer to actually update it regularly in the background.

      Probably the place it gets close to that is when they hijack the scroll event, which is horrible. But even that’s not changing the DOM if you’re not scrolling.

      FWIW I agree with the premise of the OP, but I don’t think your criticism is accurate.

      1. 7

        It’s not the first time that someone got an idea to build GUIs by just extending existing document-rendering technology…

        1. 9

          DPS is a little bit different, because postscript is a programming language (specifically, a forth dialect with logo/turtle-style pen control). It’s relatively sensible to do widget-drawing with a language optimized for drawing arbitrary line graphics. A web app is more like trying to use dot macros to modify an MS word document at 30fps.

          1. 9

            A web app is more like trying to use dot macros to modify an MS word document at 30fps.

            That reminds me, years ago my dad, who was a chemical engineer in a large company, showed me a simulation he’d gotten as an email attachment from a colleague. It had a pretty decent graphical animation entirely within an Excel spreadsheet. Part of the sheet was a “normal” spreadsheet with the actual formulas, but another part had cells resized to be small and rectangular, and their colors were changed a few times a second by macros, producing a medium-resolution raster-graphics display basically. This was apparently relatively common, because it made the graphical output self-contained within the same spreadsheet that you could mail around.

        2. 7

          I am not actually that offended by this idea, because most GUI applications are enhanced document viewers. But I do think that when your application requires to be run at 60 fps, you should use something else.

          For example: The interoperability problem has already been solved with Java and if you really need something with more performance than that, you’d basically have to resort to lower level code like C/C++.

          But if “a glorified document viewer and/or editor” all your application is, then an web-application will more than suffice.

          1. 3
            1. 5

              Web apps are a cool hack, and I absolutely love the perverse joy one gets from making something impressive using the absolute wrong tools for the job. But, the point of a cool hack is that the idea that somebody would use it seriously or for important tasks is absurd.

            2. 3

              A developer equivalent of https://xkcd.com/763/

              1. 2
              2. 7

                Is the problem OP complains about (professional front-end devs who don’t know HTML) real? When I was a kid, there was nary a middle-school student who didn’t know HTML…

                My biases make me want to believe him, but if I want to believe something, that’s a red flag that I should be extra careful to make sure it’s really true.

                1. 10

                  It is absolutely real. Many devs learn a framework and only speak and think within that framework, not realizing it’s a pile of code that sits on top of the ‘native’ html/css/js stack. I’ve worked with several. It’s a dangerous mindset to take but it isn’t all bad. Those frameworks exist to increase productivity, so some amazing stuff gets built quickly. But sometimes, without that lower-level knowledge (and I kind of smirk at the idea that html/css/js is ‘low level’), weird things happen.

                  1. 6

                    Wow. I’ve run into some folks who are afraid to write vanilla javascript, but I’m lucky enough to have never run into somebody who can’t at least generate HTML.

                    1. 2

                      I was reading this and waiting for the point where it would say something that wasn’t blindingly obvious (to me), but it never happened. But I suppose there must exist people to whom this is news, otherwise how would you explain the existence of so many bad web apps?

                    2. 2

                      I’ve been learning webdev recently (I have experience with embedded & IoT programming, but not much actual web stuff) and I find it sort of unfathomable to not learn anything about such a fundamental technology…

                      1. 3

                        Right? Though, to be fair, when I started coding it was also pretty normal for people to learn assembly – the expectation to understand history & the system as a whole has gone down as entry-level wages have increased.

                        1. 2

                          But then again assembly is one or two levels of abstraction above literally thinking about voltages and transistors, which are incredibly complex and basically require abstraction to do any sort of productive work!

                          Is the same thing true about HTML and CSS? Maybe, but definitely not to the same degree. I think you could draw the line at Single-Page web applications, which is where I believe relying only on vanilla JS makes things difficult. But a lot of websites don’t need to be SPAs, and creating something simpler would make the web significantly more accessible.

                          1. 5

                            I wouldn’t say that assembly is one or two levels of abstraction above voltages. Assembly is one level of abstraction above microcoded machine language. Beneath that, you’ve generally got people thinking in terms of gates. In college, as part of a sophomore-level class, we were supposed to design a 4-bit CPU from gate level to opcodes & then write assembly for it – something that wasn’t terribly difficult & gave some insight into how CPUs work, but also didn’t teach me a damned thing about electrical engineering.

                            HTML & CSS are document-formatting systems, and they require workarounds and abstractions in order to be borderline usable as application GUI libraries. Even then, there’s enough abstraction leakage that I would expect everybody who does web app development, even if they primarily use a big framework, to occasionally need to write some plain javascript that injects plain HTML into the DOM.

                    3. 6

                      A WWW developer not knowing HTML, while amusing, is merely a symptom of popularity damaging the WWW. The rest of it is that the WWW was fundamentally poorly designed from the beginning.

                      The maximum that a format permits is rather important, as it dictates exactly how much the format can be abused. The WWW has already killed itself with JavaScript, which ties into this very article.

                      In any case, HTML is awful and weak, CSS is complicated, and if you need any further evidence the WWW was broken from the beginning, then considered that HTTP is a textual protocol with misspelled words. It’s garbage from the start.

                      Still, the old garbage that was the WWW was better than this new garbage, sure.

                      1. 1

                        Is popularity the biggest source of damage, or is it orthogonal to it? I feel like the excessive commercialisation of the web is a lot more harmful: there are ads and tracking almost everywhere you go, laser-targeted SEO is bringing less-than-useful articles to the forefront (and I am being polite here, try finding any sort of cooking recipe nowadays), and probably the worst offender is ads that disguise themselves as content. I’m sure a bunch of the latter are regularly shared here!

                        You could say that the reason people are trying to make money off of the web is because it’s popular, but I don’t believe that there is something innate about popularity that makes its commercialisation necessary.

                        1. 4

                          I find a physics metaphor helpful: popularity exerts a cultural force in the direction of commercialisation, which requires a continual opposing force to hold back, in the same way that water will flow downhill unless stopped.

                      2. 4

                        I feel him, even though this article is just wishful thinking.

                        HTML is classic case of n-gate’s criticism: nerds re-inventing X from first principles: It started with an inadequate semantic toolset (tables, lists, headers)–which was then supplemented in a million different ad-hoc and non-semantic ways with div/span, CSS, and javascript. And purity tests be damned–our div-and-script accretions were more impressive to the public than accessibility. So now, the exact same approach is taking over desktop and mobile.

                        Even if that semantic toolset had been richer and better implemented, we’d have probably still ended up right where we are. The allure of dickbars and popovers is just too strong to resist! Can anyone imagine TBL or any of his more like-minded brethren at the W3C accommodating any of that?

                        A librarian, an intellectual, or some other believer in civilization wants consistency that can be categorized, cross-referenced, and retrieved. If we’re being honest with ourselves, most of us like money too much to join that church. I can’t make a dewey decimal or a standard semantic element (even if it’s a very good semantic element) scream “HEY, LOOK AT ME!” as easily as I can with CSS and a load of divs and spans. The semantic element, by it’s very nature, is going to have unwanted restrictions.

                        1. 1

                          I think there are examples where this has always sort of been the case:

                          • I’m a web developer, but I don’t know C - is using Perl any worse than using Vue and not knowing C? (OK, perhaps this is a bit different, but still…)
                          • When Frontpage and Dreamweaver were things, a lot of devs didn’t know HTML then, either
                          • “Save as HTML” in Word when you don’t understand HTML, seems to be the same thing
                          1. 1

                            The difference between the last two and the people the author is talking about is that the people the author is talking about are supposed to be professionals at “Web technology”. The author’s point is that HTML is included in that. By contrast someone using “save as HTML” in Word isn’t expected to be a professional in HTML.

                            As for the first point, did you mean “worse than using Vue and not knowing HTML?” If that’s the case I would argue that that’s different as well, because ultimately no matter what the final product with Vue, React, Backbone, whatever, is some HTML (well, DOM elements, but that’s close enough). But it’s not like Perl code renders out to C. Nobody’s expecting Perl coders to understand (much of) the internals of the Perl runtime just like nobody’s expecting web developers to understand (much of) the internals of web rendering engines.