Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Tuesday July 02 2019, @04:39PM   Printer-friendly
from the lawns dept.

"Front-end" developer, Pete Lambert, writes about why front-end "web" developers should start to learn HTML. More and more developers are using only pre-made frameworks and quite unfamiliar with the fundmentals of the technology they are using, such as semantic markup. He notes that the continued failure to pay attention to the basics of semantics is slowly breaking what's left of the World Wide Web and suggests reasons to correct that and has some pointers to learning resources.

I’m a ‘frontend of the frontend’ kind of guy. My expertise is in HTML and CSS, so it’s easy for me to wax lyrical about why everybody should learn what I already know (for the record, I don’t know it all - we still have heated debates in the office about what the best way to mark up a certain component might be). This isn’t about ‘my job’s more important than yours. If you’re writing code that renders things in a browser, this is your job.

It’s about usability and accessibility. If you don’t think the semantic structure of your Web page or app is important then you’re essentially saying “Well, it works for me in my browser, ship it”. I don’t think you’d do that with your Javascript and you certainly shouldn’t be doing it with your CSS. Search engines need to read your content, not enjoy your swoopy animations or fancy gradients. Screen reader software needs to read your content. Keyboard users need to read your content. Who knows what technology will come next and how it will consume your app but I’ll bet my bottom Bitcoin it’ll work better if it can easily read, parse and traverse your content. The way these things read your content is that they know it’s actually content and not just strings of text wrapped in meaningless tags. They know what’s a table and how to present it, they know what’s a list and how to present it, they know what’s a button and what’s a checkbox. Make everything from divs and they’re going to have to work bloody hard to figure that out.

Earlier on SN:
How to Build and Host an Energy Efficient Web Site (2018)
Conservative Web Development (2018)
Dodgy Survey Shows 1 in 10 Believe HTML is an STD? (2014)


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 1, Informative) by Anonymous Coward on Tuesday July 02 2019, @05:49PM (9 children)

    by Anonymous Coward on Tuesday July 02 2019, @05:49PM (#862467)

    Whether you code in C, D, Go, Java, Python, or whatever, you NEED to know assembly language, for at least one CPU. In order to avoid the idiotic assumption that the high-level code you write works by magic, and be ready to restate the inevitable things that compiler goes gaga on, in whatever way that results in usable code.

    Whether you use GTK+, Qt, WxWindow, or whatever, you NEED to know X and WinAPI. In order to avoid the idiotic assumption that the high-level code you write works by magic, and be ready to work around the inevitable bugs and failures, using the lower-level function calls.

    Etc, etc, etc...

    Starting Score:    0  points
    Moderation   +1  
       Informative=1, Total=1
    Extra 'Informative' Modifier   0  

    Total Score:   1  
  • (Score: 2) by takyon on Tuesday July 02 2019, @06:10PM (4 children)

    by takyon (881) <takyonNO@SPAMsoylentnews.org> on Tuesday July 02 2019, @06:10PM (#862473) Journal

    Whether you code in HTML, CSS, or JavaScript, you NEED to know JavaScript and Rust.

    --
    [SIG] 10/28/2017: Soylent Upgrade v14 [soylentnews.org]
    • (Score: 2) by DannyB on Tuesday July 02 2019, @07:01PM (3 children)

      by DannyB (5839) Subscriber Badge on Tuesday July 02 2019, @07:01PM (#862494) Journal

      Why Rust?

      I have nothing against it, but I've never needed it yet. So far.

      Are you thinking of compiling it to code to execute within the browser?

      --
      The lower I set my standards the more accomplishments I have.
      • (Score: 2) by takyon on Tuesday July 02 2019, @07:16PM (2 children)

        by takyon (881) <takyonNO@SPAMsoylentnews.org> on Tuesday July 02 2019, @07:16PM (#862501) Journal

        Firefox's got the Rust inside.

        --
        [SIG] 10/28/2017: Soylent Upgrade v14 [soylentnews.org]
        • (Score: 0) by Anonymous Coward on Tuesday July 02 2019, @08:06PM

          by Anonymous Coward on Tuesday July 02 2019, @08:06PM (#862508)

          The already pathetic marketshare is going down fast, and the toolset is going down with it. Poor Rust, we hardly knew ye...

        • (Score: 2) by DannyB on Tuesday July 02 2019, @08:15PM

          by DannyB (5839) Subscriber Badge on Tuesday July 02 2019, @08:15PM (#862512) Journal

          I understand that FireFox has Rust inside. Rust code is compiled down to platform / os specific code.

          As a web developer, how would knowing the implementation language of some browser(s) be beneficial?

          Are you suggesting that all browsers should implement some kind of Rust layer accessible as an alternative to JavaScript and WebAssembly?

          As it is now, can't Rust and other languages be compiled to either WebAssembly directly or indirectly via LLVM?

          Any clarification or improvement of my mental model appreciated.

          --
          The lower I set my standards the more accomplishments I have.
  • (Score: 3, Insightful) by DannyB on Tuesday July 02 2019, @06:43PM (2 children)

    by DannyB (5839) Subscriber Badge on Tuesday July 02 2019, @06:43PM (#862482) Journal

    It is nice to understand the system at some level from the atoms up to the application software. Understand some basics about the microprocessor. Assembly language. Low level languages. Operating systems. Higher level languages. And beyond.

    Notice that I left out compilers. You can understand assembly language, yet think that compilers are somehow magical in how they translate high level languages.

    At whatever level you work, it is useful to understand the foundations and layers beneath you, because you can reason about how what you do may impact the performance. In terms of memory or disk use, and speed.

    If you write Java (as I do), it is good to understand the JVM.

    If you write Python, for example, it is good to understand how your code is executed. Interpreted or compiled.

    --
    The lower I set my standards the more accomplishments I have.
    • (Score: 0) by Anonymous Coward on Tuesday July 02 2019, @07:00PM (1 child)

      by Anonymous Coward on Tuesday July 02 2019, @07:00PM (#862493)

      And if you write Kotlin, then choke on your avocado toast you effin' hipster.

      • (Score: 2) by DannyB on Tuesday July 02 2019, @07:03PM

        by DannyB (5839) Subscriber Badge on Tuesday July 02 2019, @07:03PM (#862497) Journal

        I have an interest in Kotlin. I haven't used it yet. I work on a large Java codebase. But I also have my own fun projects. So far I've had a lot of fun with Clojure. There's too many fun things to play with and too little time.

        At my age it would be amusing to be called a hipster.

        --
        The lower I set my standards the more accomplishments I have.
  • (Score: 3, Interesting) by Anonymous Coward on Tuesday July 02 2019, @08:36PM

    by Anonymous Coward on Tuesday July 02 2019, @08:36PM (#862524)

    Knowledge of the CPU's assembly language really helped my career at one point. I was part of a group that was subcontracting into a telephone switch manufacturer. They had one small item that was stumping their own programmers and engineers, so they gave the task to our group, and after a couple of our guys failed, they gave it to me.

    Long story short: you could assign phone numbers in memory to keys on the phone's keypad, and choose to sort them into numerical order. The subordinate CPU had a time limit to sort that list, which was in a contiguous array, and it usually failed. Everyone tried every type of sort they could think of: quick sort, merge sort, etc. I finally got it to work, and guaranteed to work every time, with a bidirectional bubble sort.

    Why did that work? Because all the other sorts were comparing non-contiguous items, and moving non-contiquous items, and each time a compare or move was done, the way that particular CPU did pointers meant each compare and swap took 4 CPU cycles. But the bubble sort compared or swapped only contiguous items, operations that took only 1 CPU cycle each. (in other words, an INC or DEC was faster than a JMP) The other sorts were always using too many CPU cycles for the time available.

    The thing was, we weren't coding in assembly, we were coding in a Pascal variant. But I looked at the actual object code generated, and no one else had thought to do that.

    After the onsite meeting where I explained all this to the customer programmers and engineers, and proved it would always work within the time constraints, I got a promotion. Of course, I was still too young to realize that discretion is usually better than publicly rubbing your customers' noses in it, and they didn't renew our contract the following year. (hey, *they* wanted the meeting, not me)