[HN Gopher] Everything Easy is Hard Again (2018)
       ___________________________________________________________________
        
       Everything Easy is Hard Again (2018)
        
       Author : todsacerdoti
       Score  : 201 points
       Date   : 2021-04-17 17:16 UTC (5 hours ago)
        
 (HTM) web link (frankchimero.com)
 (TXT) w3m dump (frankchimero.com)
        
       | vmception wrote:
       | Everything this author complains about has a purpose.
       | 
       | They don't have to use compiled, minified and obfuscated css,
       | vectorized graphics, and user-agent detected custom fonts
       | 
       | but if you don't, then you are unoptimized for other realities
       | 
       | websites in the past used system fonts, you can still do that.
       | 
       | websites in the past used low quality raster images, or high
       | quality raster images. those websites don't look good at higher
       | resolutions. conditional logic to fix those sites is messy.
       | 
       | you can still make sites like that.
        
       | dmje wrote:
       | Potentially controversial view: it really doesn't matter how you
       | do it and it probably never did. Dya think your audience knows if
       | you're using tables or grid or flexbox or php or React or Flash
       | or Perl or a huge image that looks like a web layout? Nope. If it
       | works in a reasonable way, they're probably happy.
        
       | mk81 wrote:
       | TLDR: there is not _one_ _right_ way to do things and IQ follows
       | a normal distribution.
        
       | hivacruz wrote:
       | > _simply npm your webpack via grunt with vue babel or bower to
       | react asdfjkl;lkdhgxdlciuhw_
       | 
       | Nice summary. While I understand that yarn was a good thing to
       | integrate frontend dependencies management just like we do it for
       | the backend, Webpack is still a mystery to me. Just trying to add
       | a simple JS library to make it work is a headache sometimes
       | (DataTable with Rails for example).
        
         | jwilber wrote:
         | I encountered the same trauma after building a react site and
         | told myself surely there must be something more simple.
         | 
         | Check out parcel! Zero configuration required, just add a
         | couple of commands to a package.json and you're off.
        
         | BiteCode_dev wrote:
         | I fought with webpack for years, then ViteJS came out.
         | 
         | It works out of the box, is uber fast, support Vue + React and
         | does everything webpack did for me.
         | 
         | I stopped thinking about my tooling and could go back to spend
         | those CPU brain cycle on solving my clients problems.
         | 
         | Peace of mind.
         | 
         | Thanks Evan You.
        
           | 5cott0 wrote:
           | ViteJS is nothing short of a revelation. Recently migrated
           | all my webapps from webpack5 to vite and it took considerably
           | less time and effort than migrating from webpack 4 to
           | webpack5 did, just removing babeljs reduced the dependency
           | footprint by orders of magnitude. I just had to change a few
           | filename extensions and even though my apps all use a custom
           | react-like, JSX, css-modules, postcss, tailwindcss, d3.js,
           | etc it just worked, I'm still kind of in shock over it. I'm
           | always the one saying "webpack isn't that bad, stop being
           | lazy" but no longer having so many config files and a 1k line
           | package.json polluting project root is a thing of beauty.
        
       | rossdavidh wrote:
       | I think one driver of this cycle is:
       | 
       | 1) need for capability that old method doesn't meet, so new tool
       | is made
       | 
       | 2) dev working on both simpler and more complex sites, wants
       | everything to use the same tools
       | 
       | 3) even sites with simple needs now get done using tools powerful
       | enough to satisfy needs of complex sites
       | 
       | 4) experienced dev doesn't see a problem, because they are
       | conversant with those more complex tools, and also don't often
       | get assigned to do simple websites anyway, but anyone doing the
       | (considerably more numerous) simpler websites now is getting
       | their groceries by flying a SpaceX rocket from home to the
       | grocery store.
       | 
       | 5) now that websites can do more, and very occasionally do,
       | someone thinks of something else they want a website to do, and
       | the cycle repeats
        
         | ruffianeo wrote:
         | I think you forgot one driver, which IMHO is a major one:
         | 
         | Imagine you are just getting into the business and are
         | confronted with complexities, which would let you come to a
         | grinding halt for the next 6 months until you have at least a
         | foggy idea of what is going on. (Angular, Elm, PHP, React, ...)
         | And once you worked through your initial list of "need to
         | know", 5 more have popped up, like a hydra where chopping off
         | heads just results in... more heads staring at you.
         | 
         | So, in this situation, it is quite reasonable to try and "get
         | ahead of the curve" instead of lagging behind the ever changing
         | world. You decide to write your own framework (based on your
         | current and imperfect understanding), ignore what is already
         | out there and pass the ball to anyone else. They have to look
         | what you did now and read your stuff and scratch their heads,
         | while you can be productive. And it feels good. You feel like a
         | messiah. You can publish even a book, maybe and hold some
         | enlightened talks.
         | 
         | This is the result. New generations are literally forced into
         | re-inventing the wheel to even stand a chance at getting
         | something done.
         | 
         | And its not only in web design/javascript/web-assembly/call-it-
         | how-you-will.
         | 
         | The same happened e.g. in the Microsoft ecosystem (desktop
         | programming). MFC -> ATL -> VB6 -> .NET WinForms -> XAML ->
         | Silverlight and back to XAML -> .NET core -> however it will go
         | on (I detached at that point, having run 'too many laps').
         | 
         | And since someone mentioned Linux... what is the canonical way
         | to write GUI apps in Linux these days? Tcl/Tk? xlib? xcb?,
         | SDL2, wayland over X? Gtk, that huge google framework? QT?
         | SDL2? Motif? Pure wayland? Also a huge mess and people
         | "innovating" just to be ahead of the curve. Yes, there are
         | always reasons, if you need them to be...
        
           | dleslie wrote:
           | Linux is still very much GTK, Qt, and to a lesser extent, Tk.
           | There hasn't been nearly as much rotation of core libs as
           | there has been on Windows or the Web.
        
           | loa_in_ wrote:
           | > And since someone mentioned Linux... what is the canonical
           | way to write GUI apps in Linux these days? Tcl/Tk? xlib?
           | xcb?, SDL2, wayland over X? Gtk, that huge google framework?
           | QT? SDL2? Motif? Pure wayland? Also a huge mess and people
           | "innovating" just to be ahead of the curve. Yes, there are
           | always reasons, if you need them to be...
           | 
           | There isn't a canonical way - Tcl/Tk, Qt, Gtk, SDL, Java,
           | pure graphics backend calls all continue to work. All as long
           | as there's someone out in the world with enough dedication to
           | them to keep them up to date. Linux ecosystem is not at mercy
           | of Microsoft or Apple, thankfully.
        
       | smoldesu wrote:
       | The delineation of this argument is what made me switch to Linux.
       | On Windows, things that should have been getting easy were
       | getting harder for me: software management was getting worse,
       | updates were getting worse, and everything that should "just
       | work", just wouldn't. My experience on MacOS was just as bad,
       | with all of the 32-bit apps I used gone in the wind. Now the
       | 64-bit apps are up on the chopping block, and I had to look for
       | other options.
       | 
       | The learning curve for Linux was larger than Windows or MacOS,
       | but I only learned the truth. By cutting away abstraction, I can
       | actually understand what my system is doing, and be a better
       | citizen of my operating system. Linux is arranged masterfully,
       | and makes the Windows filesystem look like a joke in comparison.
       | It's also faster than any of the Macs I own, with the freedom to
       | plug in a modern Nvidia GPU and play whatever games I want.
        
         | bestinterest wrote:
         | I wish wish wish I could move over to Linux but its font
         | rendering situation is terrible [1] I've tried Manjaro and
         | Ubuntu to no avail.
         | 
         | I have no idea what causes it or if people on Linux are not as
         | sensitive to it or its a specific hardware setup which causes
         | terrible fonts but once you read Windows fonts stuff looks so
         | much better to me. Apparently its a hot debated topic but its
         | so obvious to some it seems.
         | 
         | [1] https://pandasauce.org/post/linux-fonts/
        
           | christophilus wrote:
           | I have a 4K and 5k display, and I find it as pleasant as my
           | 2019 MacBook. I'm not sure if it's because I'm not sensitive
           | to it, or what. (I'm using Fedora with Gnome 40.)
        
           | wildmanx wrote:
           | Wow, first time I hear that as the main and apparently only
           | argument to using Windows over any Linux distro.
           | 
           | With HiDPI displays all over the place, is subpixel rendering
           | really still a thing? Pixels have gotten so small, I can't
           | see individual ones anymore even if I'm trying. They could
           | leave out anti-aliasing altogether in fonts and I'd hardly
           | notice.
           | 
           | Or I'm just getting old.
        
             | smoldesu wrote:
             | Most desktop environments will offer subpixel AA, and with
             | GNOME and KDE, I think it's enabled by default.
        
             | II2II wrote:
             | I think that people are just too fussy. I have anti-
             | aliasing disabled on my 142 dpi laptop screen and it looks
             | better in most applications provided that screen fonts are
             | used. Yes, you can see the pixels and you get the odd
             | rendering artifact. On the other hand, the fuzziness of
             | anti-aliasing is a steep price for edges that appear
             | smoother.
        
           | ahartmetz wrote:
           | FreeType and slight hinting + subpixel antialiasing looks
           | great to me, really... Windows has strong pixel-fitting and
           | at the same time softer outlines. That is after using the
           | ClearType tuner to tweak it to my liking. I'm not
           | particularly fond of that look. You talk about hardware. The
           | gamma of your screen makes a difference - antialiasing relies
           | on it. The ClearType tuner has a page or three about that. I
           | guess on Linux you better set your display gamma to the
           | standard value, there is no good reason (except visual
           | impairment or something) to set it to anything else anyway.
           | 
           | By the way, font rendering in Chrome for Linux used to be
           | really awful (no subpixel AA or something). It was fixed a
           | few years ago - it looks like any other app now.
           | 
           | I omitted some detail that you can easily find in your
           | favorite search engine.
        
           | riskable wrote:
           | Hah: I am very particular about fonts myself but what bugs me
           | most isn't sub-pixel hinting (which is "good enough" with the
           | latest freetype IMHO) it's the size of fonts. Windows is so
           | far off the mark on 99% of computers and it drives me crazy!
           | 
           | Repeat after me:                   72pt is one inch tall!
           | 72pt is one inch tall!         72pt is one inch tall!
           | 
           | The "point" scale of fonts is actually a precise, real-world
           | measurement like inches, millimeters, etc. Fonts may differ
           | in how much space each glyph takes up but in general they
           | should at least be close to the correct size.
           | 
           | Test it: Open up a word processor and load some reasonably
           | normal font (e.g. Arial) and make some text that's 72pt. Then
           | hold a ruler up to your screen: Is it about 1 inch tall? How
           | far off the mark is it?
           | 
           | If you're using a modern, high-DPI display it's probably
           | waaaaay TF off, haha. Even with regular displays it'll be off
           | and there's actually no way to fix it because you can't tell
           | Windows the precise DPI of your display! It tries to guess
           | based on the DDC data given by your display but then averages
           | the X/Y together to scale fonts. So if your X DPI is higher
           | than your Y DPI it'll always get it wrong. Always!
           | 
           | Macs cheat in this area by always having displays of a fixed
           | DPI. For the longest time all Apple displays were precisely
           | 96 dpi (with perfectly square pixels) but recently changed it
           | to 220-ish and made adjustments in their font rendering
           | engine to match. I have no idea how they're handling non-
           | Apple displays these days.
           | 
           | Linux, on the other hand does it right (at least X11 and KDE
           | do) in that it scales fonts very accurately based on the DPI
           | presented by your display via the DDC protocol (or if your
           | monitor doesn't provide that you can set both X and Y DPI
           | manually).
           | 
           | Gnome and GTK applications have the same problem as Windows
           | though in that they only take one DPI setting and if the DDC
           | protocol gives separate X/Y values it'll just average them
           | and the results can be... Ridiculous. You don't really notice
           | the weirdly-stretched fonts until you open a KDE application
           | side-by-side with a GTK one.
        
             | rhn_mk1 wrote:
             | I have never seen a display with non-square pixels, except
             | maybe on cameras. Where are those typically installed?
        
               | zozbot234 wrote:
               | CRT monitors will naturally display non-square pixels,
               | depending on the resolution. Sometimes LCD's are run in
               | non-native resolution due to GPU or driver issues, which
               | results in a stretched display where the input pixels are
               | not square.
        
               | rzzzt wrote:
               | CGA displays had non-square (logical) pixels. The ratio
               | for 320x200 resolution is 1.6, but it is shown on a 4:3
               | (1.333) screen.
        
         | grawprog wrote:
         | I love Linux based operating systems and I've used them pretty
         | much exclusively for at least a decade now, and I agree with a
         | lot of your post, but
         | 
         | >By cutting away abstraction,
         | 
         | I don't think I agree with this take. You haven't cut away
         | abstraction, you've changed to a different kind of abstraction.
         | Linux's 'everything is a file' abstraction is just that, an
         | abstraction.
         | 
         | >Linux is arranged masterfully, and makes the Windows
         | filesystem look like a joke in comparison
         | 
         | It's arranged more simply and straightforward, masterfully
         | though, I dunno...
         | 
         | Every flavour of Linux uses a different layout for its root
         | directories, stores configs in different places and generally
         | is not consistent from distro to distro.
         | 
         | User configs are also scattered in random places at times. They
         | could be in .config they could be in .local they could be in
         | .$APP_NAME they could be in the app's directory, they could be
         | in /usr/ somewhere. Maybe in a couple different places at once.
         | Who knows? It's a mystery until you track it down.
         | 
         | Dependencies and libraries are a huge pain to deal with,
         | especially when you start mixing and matching distro provided
         | libraries with custom built ones.
         | 
         | I'm not trying to disagree with your post or anything. I love
         | the way Linux lets you have control over your computer and
         | doesn't try to stop you. But, it's definitely got some issues.
         | I've only touched on a few related to your comment itself.
        
           | CharlesW wrote:
           | > _Every flavour of Linux uses a different layout for its
           | root directories, stores configs in different places and
           | generally is not consistent from distro to distro._
           | 
           | As a very casual Linux user (macOS is my daily driver), are
           | there any efforts to solve these "death by 1,000 cuts"
           | arbitrary (I assume) differences?
        
             | grawprog wrote:
             | Not really no. The differences between distros are
             | essentially rooted in philosophical beliefs defended by
             | near religious zealotry. Entire identies are defined around
             | the differences between distros.
             | 
             | A bit of an exaggeration, but well...pretty much that.
        
             | smoldesu wrote:
             | These differences mostly come down to package manager
             | variations, which should be one of the main considerations
             | when picking out a distro in the first place. My personal
             | advice is to use Arch/Manjaro with pacman, and avoid all
             | snaps/flatpaks. The AUR is designed for people to integrate
             | these apps like Spotify and Bitwig into the proper
             | locations, instead of snaps and flatpaks making their own
             | folders and such.
        
           | em-bee wrote:
           | i strongly disagree with this:
           | 
           |  _Every flavour of Linux uses a different layout for its root
           | directories, stores configs in different places and generally
           | is not consistent from distro to distro._
           | 
           | there are differences, but it's 90% the same in the major
           | distributions.
           | 
           | and while you do have a point about user configs, it is
           | getting better. .config and .local are getting used more and
           | more and are an improvement over every app dropping stuff in
           | $HOME.
        
             | abnercoimbre wrote:
             | > and while you do have a point about user configs, it is
             | getting better
             | 
             | Are people finally following the XDG standard? [0]
             | 
             | [0] https://wiki.archlinux.org/index.php/XDG_Base_Directory
        
               | em-bee wrote:
               | i have no hard data, but my impression is that more and
               | more apps are
        
             | grawprog wrote:
             | >there are differences, but it's 90% the same in the major
             | distributions.
             | 
             | Yes and that 10% can cause some unexpected, sometimes hard
             | to fix problems. A poorly written build script or installer
             | that expects a specific distro's directory layout can cause
             | some problems. Especially if it's a large convoluted build
             | system that hard codes the directories in multiple places.
             | 
             | I've actually had to deal with this, it sucks. That was as
             | an end user trying to use an app, not as a developer.
             | 
             | You run into this a lot trying to build small libraries and
             | stuff. There's unfortunately a lot of poor programming
             | habits out there. Directories inevitably sometimes get
             | hardcoded and this causes problems because of the
             | inconsistencies between distros.
             | 
             | >and while you do have a point about user configs, it is
             | getting better. .config and .local are getting used more
             | and more
             | 
             | And yet there's hundreds of apps that will never be updated
             | or changed to conform to standards.
             | 
             | >are an improvement over every app dropping stuff in $HOME.
             | 
             | Tell that to snap. It insists its folder must sit nicely in
             | my home folder and nowhere else.
        
               | em-bee wrote:
               | _And yet there 's hundreds of apps that will never be
               | updated or changed to conform to standards._
               | 
               | i suspect many of those are no longer actively
               | maintained. at best they receive security patches from
               | distributions.
               | 
               |  _Tell that to snap. It insists its folder must sit
               | nicely in my home folder and nowhere else._
               | 
               | my (low) opinion of snap aside, the bad here is that the
               | location is not configurable. as a library of
               | applications, i would want snap in $HOME. or i would put
               | it in $HOME/lib or an equivalent. maybe .local would be
               | appropriate too, but i understand it's for app specific
               | user-data, so it doesn't look like whole apps should be
               | in there. (edit: elsewhere i just read that .local is
               | supposed to be like a user specific /usr/local, so snap
               | should fit in there somewhere)
        
               | grawprog wrote:
               | I don't want to turn this into a snap bad mouthing
               | thread, but yeah. You can't even symlink it or it causes
               | problems. It really bugs me because I don't tend to
               | allocate too much space to my home partition and keep
               | most of my stuff on data partitions. So if I get a bunch
               | of snap apps, it starts eating up all the space in home.
        
               | em-bee wrote:
               | i hear you. in fact, i do use data partitions as well,
               | and if my snap directory grew to much i would want to
               | move it too.
               | 
               | as a workaround try to use a bind-mount
        
               | smoldesu wrote:
               | I don't use Snap. The only real "bloat" in my home
               | directory is my Bitwig folder, which isn't that bad
               | considering I use the program on a near-daily basis.
        
           | yarcob wrote:
           | My early web dev experience was mostly just figuring out
           | where the hell config and log files for apache, php and mysql
           | were. If the docs told you the default location of the config
           | file, you could be sure that on your distro they are
           | somewhere completely different.
        
             | grawprog wrote:
             | >My early web dev experience was mostly just figuring out
             | where the hell config and log files for apache, php and
             | mysql were
             | 
             | Yeah but once you track it all down you feel like a
             | developer superstar genius...
             | 
             | Then you confidently sit down and proceed to repeat the
             | process on another distro and immediately feel like a
             | complete noob again as nothing is where it should be and
             | you realize, you mastered nothing.
        
           | II2II wrote:
           | > You haven't cut away abstraction, you've changed to a
           | different kind of abstraction.
           | 
           | Yes, Linux depends upon abstractions. Everything in computing
           | is an abstraction, including those 1's and 0's that tell the
           | processor what to do. (Anything below that is electrical
           | engineering.) The differentiators are the complexity and
           | stability of that abstraction. When people talk about
           | "everything being a file", they are referring to lower level
           | abstractions that are relatively simple and stable. Likewise,
           | when people talk about HTML/CSS/JS they are referring to
           | lower level abstractions that are relatively simple and
           | stable. This is less true (sometimes significantly less true)
           | when people start discussing frameworks/libraries, whether
           | that's in Linux or web development.
        
           | mikepurvis wrote:
           | There's also a lot of sub-ecosystem issues which are more
           | prominent on Linux, like the long-standing surprise that NPM
           | doesn't have a global rc file in /etc:
           | 
           | https://github.com/npm/npm/issues/533
           | 
           | The argument from the maintainer is reasonable that distros
           | can just patch it, but realistically, everyone wants a newer
           | version of things than what their distros ship--a similar
           | tug-of-war ends up happening in the Python world, where
           | distros like Ubuntu and Debian ship patched versions of
           | pip/setuptools, and then users are encouraged to self-upgrade
           | those tools to the upstream versions.
           | 
           | Anyway, this kind of thing isn't necessarily anyone's fault,
           | but it is just a pretty different experience from Mac or
           | Windows where you tend to have things be more self contained,
           | like "here's where my Python installation lives because it's
           | the path I put in the box when I ran setup.exe."
        
             | smoldesu wrote:
             | Node is definitely a bit of a mess, it's misuse of the
             | Linux system doesn't really come as a surprise.
        
           | toomanyducks wrote:
           | Re: abstractions, I think what seperates Window/MacOS
           | abstractions from Linux/UNIX abstractions is obfuscation. The
           | aggressively closed-source nature means that *nix
           | abstractions, to a reasonable degree, anyway, reflect the
           | underlying structure in a way that closed source abstractions
           | can't. Of course the file abstraction is an abstraction is an
           | abstraction, but it's also implemented transparently as a
           | concept in the kernel --- Whereas Windows manipulates their
           | interface so that the interface _is_ the implementation, as
           | far as the user can see and as far the user should care. At
           | least, this is my experience, and it fits well with what I'd
           | expect from the operating systems' respective development
           | models.
        
           | lelanthran wrote:
           | > It's arranged more simply and straightforward, masterfully
           | though, I dunno...
           | 
           | It's easy to make "complicated". It's very hard to make
           | "simple and straightforward".
           | 
           | Whether that's an indication of mastery is not a closed
           | question.
        
         | tigershark wrote:
         | >> The learning curve for Linux was larger than Windows or
         | MacOS, but I only learned the truth. By cutting away
         | abstraction, I can actually understand what my system is doing,
         | and be a better citizen of my operating system. Linux is
         | arranged masterfully, and makes the Windows filesystem look
         | like a joke in comparison.
         | 
         | What windows filesystem (FAT, FAT32, exFAT, NTFS) look like a
         | joke and compared to which Linux filesystem? Ext2? Ext3? Ext4?
         | ReiserFS? ZFS? It's pretty clear that you never used Linux in
         | the 90's from your comment. And the main problem with Linux at
         | the time had nothing to do with the filesystem but mainly with
         | the immaturity of the complete system. I am very curious to
         | understand what great truth you understood by using Linux.
         | Would you kindly teach me this great knowledge and illuminating
         | experience that I somehow missed?
        
           | smoldesu wrote:
           | > What windows filesystem (FAT, FAT32, exFAT, NTFS) look like
           | a joke and compared to which Linux filesystem?
           | 
           | I was referring more to the layout of the root directory
           | (oftentimes referred to as "the filesystem", but now that you
           | bring it up I also hate the Windows filesystems. FAT32 needs
           | to go out to the pasture, and it wouldn't even exist if exFAT
           | support was so broken on lower-end systems. NTFS is fine, but
           | pathetically bare-bones. I'm a BTRFS evangelist, but even
           | ext3 makes NTFS look old by comparison.
           | 
           | > It's pretty clear that you never used Linux in the 90's
           | from your comment.
           | 
           | This is true.
           | 
           | > And the main problem with Linux at the time had nothing to
           | do with the filesystem but mainly with the immaturity of the
           | complete system.
           | 
           | "at the time" meaning 2018 or the 90s? Maybe 30 years ago
           | Linux was immature, but now it's the benchmark of maturity.
           | Very few *nix systems have share it's pedigree.
           | 
           | > I am very curious to understand what great truth you
           | understood by using Linux. Would you kindly teach me this
           | great knowledge and illuminating experience that I somehow
           | missed?
           | 
           | Nope, probably not. If using Linux wasn't an enlightening
           | experience because you last used it in the 90s or because you
           | have an FAT fetish, I can't really help you.
        
         | eliasbagley wrote:
         | I would love to to use Linix as my daily driver, but keep
         | needing to go back to Windows for Ableton and gaming.
        
           | smoldesu wrote:
           | I switched to Bitwig, which has a native version for Linux.
           | The workflow is very similar to Ableton Live, with a little
           | bit of extra configuration. As for gaming, it's a case-by-
           | case situation, but Valve Proton is good enough for 80% of
           | the games I like.
        
         | enriquto wrote:
         | You are spot on. And now, try OpenBSD. It's the next step in
         | removing useless abstractions.
        
           | bopbeepboop wrote:
           | What are the BSD options these days?
        
           | fordsmith wrote:
           | I'm an avid Linux user, completely unfamiliar with BSD. Could
           | you shed some light on how it further removes abstractions? I
           | don't mind trying it out by booting it from a usb
        
             | GeorgeTirebiter wrote:
             | Linux is a large ecosystem, supporting many different
             | functions (embedded to some extent; desktop; server;
             | supercomputer clusters, etc). For any one of these, the
             | other 'stuff' represents cruft. The BSDs (I am partial to
             | NetBSD) tend to give you a basic substrate of 'the system',
             | and you add what you need via 'packages'. It's a different
             | philosophy, but no less valid.
        
             | enriquto wrote:
             | > Could you shed some light on how it further removes
             | abstractions?
             | 
             | By not running hundreds of useless programs, I guess. If
             | you launch htop inside OpenBSD, it'll fill half of your
             | terminal, and the rest is empty.
             | 
             | The easiest way to try it is to install it on a virtual
             | machine. You'll see that not much is needed to get to a
             | point to launch firefox from an xterm.
        
               | horlux wrote:
               | but that's the case for some linux distros too, e.g void
        
               | anthk wrote:
               | Top itself is enough, you don't need htop.
        
               | secondcoming wrote:
               | I find htop's ability to view the tree structure of a
               | process quite useful. Name your threads!
        
               | enriquto wrote:
               | Totally agree. But I'm somewhat used to silly things
               | about htop, like selecting a process to kill using the
               | arrow keys, or a default refresh rate of less than 1
               | second.
        
             | [deleted]
        
         | dbolgheroni wrote:
         | I don't know if you are talking about Linux the kernel, Linux
         | the entire distro, Linux the filesystem (out of tens of
         | supported filesystems), but "arranged masterfully" is big
         | statement. From 2 days ago:
         | 
         | https://news.ycombinator.com/item?id=26821298
        
           | [deleted]
        
         | grishka wrote:
         | > My experience on MacOS was just as bad, with all of the
         | 32-bit apps I used gone in the wind.
         | 
         | Were you forced to update to Catalina? I'm still on Mojave
         | right now. My 32-bit apps still work, happily unaware of the
         | fact that they're no longer supposed to.
        
         | matheusmoreira wrote:
         | Linux is also stable. The binary interface isn't going to
         | change. It's possible to write Linux software that you can boot
         | directly into and it will never stop working or do anything you
         | don't want it to do.
        
         | dzolob wrote:
         | I have been having a terrible time staying away from conda in
         | windows, but the ridiculous amount of time and spent trying to
         | install some python modules using pip is just not worth it.
         | 
         | I'd be lost without wsl.
        
       | 5cott0 wrote:
       | No, no it is not.
       | 
       | It's somewhat amusing to see people complain about the supposedly
       | increasing complexity of web development. Sorry-not-sorry it's
       | not that bad or even that complex. In fact things are far easier
       | and less complex then they were just a few years ago and
       | improvements continue at a rapid pace (modern browser module
       | support, vitejS, ESbuild). I don't even need to use babeljs
       | anymore whereas just a few years ago it would have been required
       | for cross browser support.
       | 
       | Developers as a cohort love to feel themselves and ego trip about
       | how smart they are until they hit something they don't understand
       | immediately and suddenly it's too complex and they have to write
       | 5k words bemoaning webpack configs as the worst thing ever.
       | 
       | I think the problem is actually the opposite and things are way
       | too easy now because, like anything in life, effectively simple
       | web development requires self discipline and simplifying
       | abstractions like React make it too easy to just throw shit at
       | the wall and see if it resembles a working webapp and then I end
       | up having to maintain a lot of seemingly working apps that are an
       | absolute mess of tightly coupled spaghetti code with no clear
       | architectural design whatsoever but product thinks it works
       | because the side effects show up at the right time.
        
         | winphone1974 wrote:
         | By what standard are you saying things are easier? Certainty
         | not less complexity, abstraction, volume of code, number of
         | moving pieces, raTe of change or configuration.
         | 
         | If you don't understand how the foundational technologies work
         | and don't care to learn then things may indeed seem easier. If
         | you have 15+ years of experience and seek to understand today's
         | technology at the same level as when you first learned, things
         | are definitely harder.
        
           | TheCoelacanth wrote:
           | It's easier if you want to achieve the same things. Our
           | expectations have just increased even faster than things
           | became easier.
        
           | 5cott0 wrote:
           | IE7
        
         | vbsteven wrote:
         | If using babeljs for cross browser support is your starting
         | point, then you likely started way later then the article
         | author.
         | 
         | Go back a few more years to 2005 or even earlier. If you wanted
         | a website you installed Apache on a server (or used a shared
         | hosting package), FTP your files to it and you're done. That's
         | it. No pipelines, no builds, no package managers. Just files in
         | a folder, that you copy to the server.
         | 
         | If you wanted to do cross browser JS you downloaded the latest
         | version of jquery.min.js, FTP it to the server and reference it
         | in a script tag.
         | 
         | I wrote my first websites in notepad.exe and used something
         | like FileZilla to upload.
         | 
         | That is what I call simple web development.
         | 
         | I agree with the author that now things are just way more
         | complex than they should be.
         | 
         | edit: looks like jQuery was first released in 2006, which is 4
         | years after Firefox was released, and 2 years before Chrome. So
         | take my `2005` line as rough estimate.
        
           | 5cott0 wrote:
           | I don't think you're smart enough to make any inference about
           | when I started.
           | 
           | But if you insist on this crusty bonafides peen measuring
           | contest I got started serving php via cgi on apache deployed
           | with scp.
        
             | vbsteven wrote:
             | I'm not insisting on anything, sorry if I might have
             | offended you, that was definitely not the intent.
             | 
             | I assumed that you might have started later than the author
             | because you compared the current state to just a few years
             | ago, while the article mainly talks about even further back
             | in history.
             | 
             | The tools I mentioned were not meant for bragging. I just
             | wanted to indicate that back then it was all way simpler,
             | which you know as you apparently started in a similar
             | timeframe to myself.
             | 
             | The main point I wanted to make was that back then things
             | were so much simpler.
        
       | ur-whale wrote:
       | I'm going to get downvoted into the the ground for this, but I
       | think it has to be said:
       | 
       | Front-end infrastructure and tools design unfortunately does not
       | attract the cream of the CS graduate crop (and even less so
       | Front-End design work).
       | 
       | For some reason, cream of the crop CS graduates usually veer
       | towards systems, compiler, DB, back-end infra, language design,
       | back-end, ML, etc ...
       | 
       | But not front-end.
       | 
       | The net result: the front-end ecosystem looks like the first
       | BASIC program written by a 10 year-old who just got his first
       | computer: it's a mess, it's unprincipled, it's grown organically,
       | it's driven by fashion and immediate business needs, it's an
       | unmaintainable tarpit, and it's increasingly a nightmare to build
       | with.
       | 
       | I'm just ranting, I don't know what the solution is, but I gotta
       | say: the WEB in 2021 is in a very sorry state.
       | 
       | [EDIT]: and if I try to think of a root cause for this state of
       | affairs, I believe a lot of the blame can be attributed to
       | Javascript, a language which sort of gave the "slapped together
       | quickly because we need something now, damned be the warts" tone
       | for the entire ecosystem.
        
         | [deleted]
        
         | zeteo wrote:
         | >the front-end ecosystem looks like the first BASIC program
         | written by a 10 year-old who just got his first computer: [...]
         | it's driven by fashion and immediate business needs [...]
         | 
         | I also miss the days when 10 year-olds wrote BASIC programs and
         | had immediate business needs.
        
         | mLuby wrote:
         | > I'm going to get downvoted into the the ground for this, but
         | I think it has to be said:
         | 
         | Ditto! All in good fun. 0:)
         | 
         | > it's a mess, it's unprincipled, it's grown organically, it's
         | driven by fashion and immediate business needs, it's an
         | unmaintainable tarpit, and it's increasingly a nightmare to
         | build with
         | 
         | Can't tell if you're talking about front-end or back-end here;
         | I've certainly seen both.
         | 
         | > For some reason, cream of the crop CS graduates usually veer
         | towards [back-end]
         | 
         | Setting aside the implication that getting good grades in
         | computer _science_ is the same as being good at creating
         | business value with software, I see two reasons:
         | 
         | 1. academic inertia: old professors teach what they know (e.g.
         | lisp) regardless of how useful it is in the industry. I bet a
         | rockstar professor who loved front-end/UX would find the cream
         | of their crop biased toward front-end work.
         | 
         | 2. this very bias you're perpetuating: where a bright student
         | looks into the world, sees front-end work derided, and so
         | steers clear of it (and maybe even starts parroting this bias
         | of those they respect, as youngsters so often do).
         | 
         | I don't know what the solution is, but it's definitely not
         | whining. 0:)
        
         | yowlingcat wrote:
         | I dunno, this is the kind of opinion that seems trivially easy
         | enough to falsify that I have to wonder about the real
         | rationale behind it.
         | 
         | If you take a look at the labor demand for skilled front-end
         | engineering (https://www.levels.fyi/), it's hard to come to any
         | other conclusion than that major companies pay a lot of money
         | for top talent. So if major companies pay a lot of money for
         | that talent, either they're making profit from a very tricky
         | coordination of skilled labor, or you're pulling an argument
         | out of an opinion that is at odds with the reality of the
         | industry.
         | 
         | Why do that? It could be that you're not familiar with how
         | skilled frontend practitioners operate in large companies.
         | Maybe that's why you're extrapolating (incorrectly in my
         | opinion) that a) the web frontend ecosystem is trash and b)
         | that is evidenced by cream of the crop CS graduates (???)
         | choosing backend over frontend. My question is, what does that
         | have to do with the reality of frontend today?
         | 
         | Maybe it once was useful to consider why CS graduates
         | gravitating towards one end or the other, but that division
         | seems a little old in the tooth now. Good CS graduates these
         | days have full-stack chops, and don't have too much trouble
         | crossing devops, frontend, backend -- anything necessary to get
         | the job done. So with that said, it's hard to consider your
         | final conclusion anything than a rant about your own
         | difficulties and preconceptions about frontend web development
         | than anything:
         | 
         | > The net result: the front-end ecosystem looks like the first
         | BASIC program written by a 10 year-old who just got his first
         | computer: it's a mess, it's unprincipled, it's grown
         | organically, it's driven by fashion and immediate business
         | needs, it's an unmaintainable tarpit, and it's increasingly a
         | nightmare to build with.
         | 
         | It's true that there's a lot of the front-end ecosystem that is
         | super messy. But there's a lot of it which works a lot better
         | in comparison to what was available a decade ago. Moreover,
         | it's intrinsically gotten more complicated as mobile compute
         | has gotten more powerful. Mobile has not just become a thing
         | but achieved critical mass on par with desktop. There are
         | enormously lucrative challenges involved with front-end these
         | days, and who knows how much headroom is left in the industry?
         | The modern phone's capabilities today are so far beyond what
         | was possible even four years ago, that it's hard to consider
         | these kind of rants anything beyond a lack of imagination.
         | 
         | How is it that the largest megacap companies of our time are
         | using better frontend experiences it to accomplish increasingly
         | more revenue efficient activities than they ever have before?
         | How is it that newly fledged startups are using the leverage of
         | good frontend experiences to grow to $1B faster than they ever
         | have before? Is it possible that UX and psychology account for
         | far more of technology's value than you may be considering?
         | Just a thought.
        
         | jayd16 wrote:
         | Eh, I think it has more to do with the fact the front end is
         | the most visible to the product people. You get a lot of poor
         | technical decisions to bend to the whims of the product design.
         | Backend is usually free to do as they see fit.
        
           | Sevii wrote:
           | Yep, I decided to focus on backend to avoid dealing with
           | requests to move pixels around arbitrarily.
        
         | reader_mode wrote:
         | Frontend has the problem of being stuck with JavaScript and
         | DOM, even in the modern iterations it's a patchwork structure
         | built on top of a cesspool - no wonder everything smells like
         | shit.
         | 
         | Agreed about the tooling, npm and node were basically hacks
         | everyone kept building on - there is zero architecture behind
         | most of it.
        
         | crazygringo wrote:
         | Regardless of whether or not your observation about CS
         | graduates is true, I don't think that has anything to do with
         | it.
         | 
         | The difference is that with the backend, you have choice over
         | what technologies to use. There's competition between languages
         | and ecosystems, so a better more elegant one can replace a
         | worse crufty one.
         | 
         | But with the frontend, there is no competition. You _have_ to
         | use HTML, CSS, and (roughly) JavaScript.
         | 
         | If, when the web had started, it had been based on some kind of
         | primitive bytecode for rendering, that HTML+CSS+JavaScript
         | compiled to, then we could have had language competition and
         | better technologies today. But that's not what happened. Front-
         | end is stuck with an old, crufty tech stack that simply can't
         | ever be replaced. Back-end doesn't suffer from that.
        
           | zozbot234 wrote:
           | What's wrong with HTML+CSS as a rendering primitive? It's
           | quite successful in decoupling semantics from presentation,
           | which is a requirement for a platform that's as widespread
           | and universal as the modern web. JS is a bit crufty, but you
           | don't _have_ to deal with it. You could write everything in
           | some other source language and compile down to JS /WASM.
           | (Even low-level languages like C/C++/D/Rust can support this
           | via Emscripten.)
        
             | crazygringo wrote:
             | The article is almost entirely about what's wrong with
             | HTML+CSS -- the frustration over whether to use tables,
             | floats, flexbox, grid, or whatever will come next (as one
             | example of many).
             | 
             | HTML+CSS is a soup of overlapping technologies that has
             | accumulated into this tangled ball of mismatched paradigms
             | from nearly 30 years of "generational" improvements.
             | 
             | I grew up with it from the beginning so I understand the
             | reasoning behind it all. But to someone wanting to learn it
             | from scratch, trying to decipher tables vs. floats vs.
             | flexboxes vs. grids must seem like utter madness -- a
             | layout language written by a truly insane person.
        
           | craftinator wrote:
           | > If, when the web had started, it had been based on some
           | kind of primitive bytecode for rendering
           | 
           | Which is WASM! Well, sorta.
        
         | cblconfederate wrote:
         | Most of the web runs php/jquery that's maintainable
        
         | tarsinge wrote:
         | For me it's kind of the opposite, the current state of front-
         | end is clearly the result of bored overqualified CS graduates
         | in overstaffed companies. I keep my sanity by working with
         | people with a design background when doing front-end work
         | because they usually rightly call out the unneeded complexity.
        
         | xenihn wrote:
         | >For some reason, cream of the crop CS graduates usually veer
         | towards systems, compiler, DB, back-end infra, language design,
         | back-end, ML, etc ...
         | 
         | >But not front-end.
         | 
         | im going to go out on a limb and guess that it's because non-
         | mobile front-end work sucks. few people who have options would
         | have it as their top pick.
        
         | nrjklk wrote:
         | much of the front-end complexity is driven by product people
         | and designers who want to jam as much interactivity and visuals
         | into the UI as possible. Also complicated front-end layouts are
         | necessary to make room for advertisements - the main source of
         | revenue on the internet!
        
       | m463 wrote:
       | > Things have gotten messy, haven't they?
       | 
       | I have to give him credit though, his web page has zero
       | javascript.
        
       | kgin wrote:
       | The simple page you could make 20 years ago is the simple page
       | you can make today. With a few minor tweaks, it will work as well
       | as it did 20 years ago.
       | 
       | If you want to make a complex web app today, that's easier than
       | it was 20 years ago. The tools are infinitely better.
       | 
       | If for some reason you decide to use the tools meant for complex
       | web apps to make your simple page, you're going to feel like
       | everything has gone horribly wrong. But why are you doing that?
        
         | taeric wrote:
         | I don't know if I really agree. I want to. But flash was
         | supported by much better tooling than what I see in most spots
         | today. Dreamweaver, for all the hate we have it, seems
         | laughable simple compared to common frameworks today.
        
           | danShumway wrote:
           | You can still use your old copy of Dreamweaver if you really
           | want to. I think Adobe still sells new versions too. I
           | wouldn't advise using website builders in general
           | (Dreamweaver was always kind of sketch), and I certainly
           | wouldn't advise using _Adobe_ software in general (they 're
           | an awful company with overpriced products), but I can't
           | imagine modern Dreamweaver has gotten particularly worse than
           | it was before.
           | 
           | You can't use Flash, that's fair. But my goodness, you
           | wouldn't want to. The small amount of incidental complexity
           | we've gained from forcing pizza shops to stop laying out
           | their interface in Flash is worth it. And outside of the
           | plugins that were absolutely the correct decision to remove,
           | everything _else_ you want to use is still available.
           | 
           | What we're getting at is that with a few exceptions (HTTPS,
           | Java plugins, Flash), virtually all of the old APIs that you
           | used to use on the web are still supported and are the exact
           | same to use, if not better. This is not the case everywhere
           | with every language and platform. But the web has done a
           | reasonably good job at being backwards compatible.
           | 
           | You're worried about deploy processes, and you want to deploy
           | a free site on Netlify? You don't need to learn Git, you can
           | hand-code your site in static HTML or generate it using any
           | program you want and just upload it as a zipped folder. Your
           | Dreamweaver builds will still run today. Font faces? Still
           | work, you don't need to worry about FOUT. You miss table
           | layouts? Hackernews is using that crud _right now._ The
           | complexity around build tools, processes, and frameworks is
           | all optional. The browser doesn 't care.
           | 
           | If you're missing the old experience of building websites,
           | then just do that. I maintain
           | https://anewdigitalmanifesto.com. It is hand-coded HTML that
           | I wrote in a text editor. It has no Javascript, no build
           | process, no minification, nothing. And it works fine; no one
           | has ever complained about it to me. If you're adding
           | complexity to your engineering process and it's making your
           | job harder instead of easier, then take a step back and ask
           | yourself why you're adding that complexity in the first
           | place. Is it solving a problem? Or do you just feel like you
           | need to do things "properly" based on the current development
           | style? Because again, the browser doesn't care.
        
             | watwut wrote:
             | Oh, you would want to use it. The games and similar mini
             | software just don't have anything comparable to it.
             | 
             | The loss of flash is very unfortunate.
        
               | [deleted]
        
               | galangalalgol wrote:
               | The Ruffle project is trying to make a flash player with
               | wasm. Mayne that at least can return.
        
               | danShumway wrote:
               | I loved Flash, deeply, I learned to program in Flash. But
               | I am slowly in the process of doing a 180 on this, where
               | before I felt like we had lost something with Flash that
               | nobody had ever replicated. People have different things
               | they liked about Flash. I liked the animation-centered
               | workflow (and I still think there's room for innovation
               | in this space with modern tools). I miss the ability to
               | export vector animations.
               | 
               | There's a technical hole that I still think could be
               | filled by other programs today. But often, I hear people
               | lamenting the loss of community and the loss of universal
               | publishing.
               | 
               | And on that note, aside from the animation-centered
               | workflow, I'm less certain that the rest of that stuff is
               | actually gone. Unity publishes to websites just as well
               | as Flash did, if not better. Unity even lets you publish
               | to Linux, which Flash never really supported well.
               | 
               | And honestly, I'm not sure the community is dead either,
               | it's just moved on to platforms like Scratch, Pico 8,
               | Itch.io, and Roblox. I see very similar energies when I
               | interact with people on those platforms. It's a different
               | community, it's younger kids with different norms, the
               | old generation isn't as welcome anymore. But I'm not sure
               | the reason for that is because Flash died. Sometimes
               | generations grow up and younger generations go act
               | creative in different spaces.
               | 
               | So yes, there is a very specific workflow for a very
               | specific type of game that no longer works on the web.
               | I've used Unity, and I don't really like Unity, I hate
               | it's resource management, I hate that we're still using
               | proprietary software after so many years. But I think
               | more people are making games with Unity today than were
               | making them back then on Flash. It's more accessible.
               | 
               | I'm very, very slowly changing my opinion on this. Part
               | of it is that Flash is still available today under
               | Animate, and while it is still chained to Adobe I've
               | still never heard a really good breakdown of how it's
               | worse or what features it doesn't support anymore. As far
               | as I can tell, you can still use Actionscript 3.0 with
               | Animate. It is proprietary and expensive, but so was
               | Flash -- so if it's purely a technical problem, then I'm
               | not 100% sure that you _couldn 't_ still make a Flash
               | website/game today.
               | 
               | I still think there's a hole here that could be better
               | served by Open Source toolchains, but I'm becoming less
               | convinced that it is as big of a deal as I previously
               | thought. If you're trying to make games, now is a really
               | good time to be alive. It could be better, but if you
               | give me the option of making games in 1999 or making
               | games today, I'm not going back to 1999.
               | 
               | And aside from that, even if Flash is a hole, it's still
               | very specifically a hole for games. Even during its
               | heyday, building static websites in Flash was a sin.
               | Almost everything else you want to use to build a static
               | website is still available. Just not that specific sinful
               | part :)
        
               | watwut wrote:
               | Roblox is not comparable to flash in the ease of
               | development. You don't have kids creating mini games and
               | sharing them either. Scratch is not comparable either.
               | 
               | The ease of creating something is just not there in
               | general. The current tools are harder to use for beginner
               | and beginner achieves less with more effort.
               | 
               | And open source have bad track record in terms of
               | creating user beginner friendly tools.
        
         | 1vuio0pswjnm7 wrote:
         | As an end user, I use "tools" from 20 or more years ago to
         | retrieve and extract the needed information from today's
         | "complex web apps". Networks and server software are so much
         | faster today, "yesterday's" (smaller, simpler) software seems
         | to work even better today.
        
         | Jaygles wrote:
         | Because sometimes you want to learn the fancy tools but only
         | need to make something simple. When the time comes to make the
         | complex web app, you are now more prepared.
        
           | astrowilliam wrote:
           | Learning fancy tools is outside the scope of building a
           | simple website. Simple site is usually HTML/CSS/JS.
        
             | tomc1985 wrote:
             | But... so are the complicated sites, once you've reduced it
             | to its essence. Everything else are (excessive,
             | complicated, arguably unnecessary) abstractions on top of
             | that
        
         | austincheney wrote:
         | > If you want to make a complex web app today, that's easier
         | than it was 20 years ago. The tools are infinitely better.
         | 
         | That's true if the web app is a SPA and uses React and doesn't
         | require much accessibility and uses Redux or doesn't manage
         | state and, and, and...
         | 
         | Most web developers are limited to those conditions and most
         | currently posted front end jobs are limited to those
         | requirements. Technically what you said is subjectively correct
         | but it depends on a lot of factors and constraints for the
         | average developer.
        
           | grishka wrote:
           | I'm able to make what people call a "web app", yet I honestly
           | have no idea what React and Redux are, besides buzzwords, and
           | what they are supposed to solve.
           | 
           | But then there's also the problem of people relying on
           | JavaScript _at all_ for websites that would 've been fine as
           | a bunch of fully static HTML pages. It's as if these days you
           | can't do software development without overengineering
           | everything into oblivion.
        
             | pdimitar wrote:
             | You haven't at all responded to your parent comment whose
             | premise was that many frontend devs cannot utilize the
             | freedom that you are apparently enjoying.
             | 
             | IMO it's not the topic here if JS should at all be used.
             | You won't catch me arguing with that -- my answer is almost
             | always "NO!".
             | 
             | The topic was: "but can you make web pages like 20 years
             | ago in the current frontend dev jobs market?" -- the answer
             | that is "no" as well IMO.
        
             | austincheney wrote:
             | Yes, many things are deliberately over engineered and that
             | is largely due to limited capabilities of a specific tool
             | or technique.
        
         | midrus wrote:
         | I agree with you, but the problem, the big problem, is that
         | you're looked down if you propose to use simpler tools.
         | 
         | It is horribly difficult to not use these advanced tools for
         | simpler problems. At work my team does just f**ng CRUD forms,
         | and for doing this we have the most overcomplicated stack I've
         | seen in my life. Go backend with React, Redux,
         | Rxjs,custom.webpack craziness, and 32 tons of internal weird
         | libraries no one would willingly use ever even if pointed with
         | a gun.
         | 
         | If I propose to just use Rails for this and be done with it,
         | I'd be declared and heretic and expulsed from the frontend
         | team.
        
           | gher-shyu3i wrote:
           | I echo this. Currently working on CRUD app in golang. What an
           | absolute mess and much slower than using established
           | technologies.
        
             | midrus wrote:
             | I don't blame the language tbh. I blame the frameworks and
             | tools (or the lack of) for web development.
             | 
             | Look, I love node and javascript. But I can't deny it is is
             | total mistake to use it in a business context for web dev
             | when you have django, rails or Laravel. Same for Go and
             | many other trendy tools.... Reinventing the well is not a
             | good business unless you're in the wheels business.
        
               | silexia wrote:
               | We have been using WordPress for 15 years and it's been
               | wonderful and easy the whole time. Occasionally if a
               | plug-in gets compromised, it's very easy to roll back and
               | fix it. We now have a standard set of safe plugins
               | anyways.
        
           | thirdlamp wrote:
           | Without knowing your situation, that sounds like job security
           | to me. "If we go the simple route I'm obsolete"
        
         | Jiejeing wrote:
         | The difference is that now everybody wants complex web apps, a
         | split backend/frontend, a SPA, PWA, done usingthe javascript
         | framework of the week, etc...
         | 
         | Yes, doing complex things has gotten easier, mostly due to the
         | improved tooling, but the number of things developers are asked
         | to solve (for no real reason other that "it is now doable")
         | have skyrocketed.
        
         | jrockway wrote:
         | I'm not sure this is quite true. 99% of early 2000s websites
         | can be made by an unskilled operator automatically, by using
         | something like Squarespace or Wordpress. The other 1% are the
         | hard projects -- desktop quality applications that need to run
         | on 5 platforms and 3 Javascript engines. Most people that do
         | frontend engineering are being paid to work on those hard
         | problems, so the job is going to feel harder than it did 20
         | years ago. There is no money in the easy things; it's all been
         | automated away.
         | 
         | To some extent, the tooling does make things harder than it
         | needs to be; it's converged to a very strange local maximum
         | that's very far away from the global maximum. The problem, I
         | think, is a complete lack of integration along the entire
         | stack. You write your code in a programming language whose
         | source code is sent to the user to compile, and there are
         | hundreds of minor variants on how the user will interpret that
         | code. You have to defensively handle it all. But, developers
         | want to reuse code, and those runtimes don't really support
         | code reuse, so you have to bolt it on with a fake "compile"
         | stage, where you concatenate all your dependencies together and
         | split it up into chunks to be served to the end user's compiler
         | at just the right time. The language that is used for these
         | tools is a little on the outdated side, so this compile stage
         | takes 30 seconds on one CPU core, leaving your commodity-grade
         | 32 core workstation 96% idle while you sit around waiting. And,
         | people don't even like this language for writing their code, so
         | they write it in a different language that is compiled to that
         | first language. After all that, you have code that can run on
         | users' machines, but that's only like 30% of the problem. You
         | have to serve that code to them, preferably from a datacenter
         | that's physically close to their terminal. You have to serve
         | them ancillary assets, like instructions for how to format the
         | data your app interacts with, and images. Like the author
         | mentions, there are a million different image formats, and you
         | have to pick the right one for the end user, relying on a
         | single line of text like "Mozilla/5.0 (Windows NT 10.0; Win64;
         | x64) AppleWebKit/537.36 (KHTML, like Gecko)
         | Chrome/89.0.4389.128 Safari/537.36". That's hard, so there is
         | some service you can buy to do that for you, completely
         | unrelated to that aforementioned "build process". The TL;DR is
         | that there are hacks on top of hacks, and moving parts on top
         | of moving parts, that it's a wonder it works at all. But we're
         | in this state where we can't even fix it, because there is no
         | one party responsible for the end-to-end experience. All you
         | can do is bolt on more and more components and hope that you
         | get closer to a local maximum.
         | 
         | The takeaway is that in a distributed system of glued-together
         | components, no one entity is responsible for the success of
         | your users. And, those that manage to build success for their
         | users will do it all through very careful glue, that can come
         | apart and blow up at any time. That means they have a never-
         | ending job that consists only of unnecessary toil. At some
         | point, the person that decides "FUCK IT" and throws this all
         | away and builds some sort of integrated experience is going to
         | make a lot of money. But there are many lifetimes of work ahead
         | to achieve this goal, and you'll be dead before you finish, so
         | why even try? That's where we are. Good luck.
        
         | HWR_14 wrote:
         | > If you want to make a complex web app today, that's easier
         | than it was 20 years ago. The tools are infinitely better.
         | 
         | 20 years ago, you could make a complex web app in Java, ActiveX
         | or Flash. (There were also more obscure options.) People would
         | install a plugin for your app.
         | 
         | Now, it all uses Javascript. There are a lot of advantages, but
         | it's difficult for me to say the tooling there is infinitely
         | better. I think a reasonable case could be made that the
         | _tooling_ is worse than any of the three I mentioned.
        
         | tigershark wrote:
         | 20 years ago we were criticising the syntax in JSP and ASP
         | pages that allowed to embed code inside an html template. Today
         | it seems that you are crazy if you are not writing a JSX SPA
         | embedding JavaScript inside a JSX template. We are doing "There
         | and back again" for I don't know how many times.. And believe
         | me I kind of like React and JSX, but I liked also embedding my
         | dirty code in HTML ages ago.
        
         | rossdavidh wrote:
         | Amen. If a static web page does what you need, one should not
         | be unwilling to just make a static web page.
        
       | recursivedoubts wrote:
       | _> simply npm your webpack via grunt with vue babel or bower to
       | react asdfjkl;lkdhgxdlciuhw_
       | 
       | I am sorry to spam, but this is exactly the problem
       | intercooler.js and now htmx were designed to solve:
       | 
       | https://intercoolerjs.org/2016/10/05/how-it-feels-to-learn-i...
       | 
       | 90+% of the websites being built (and 90%+ of 99% of the websites
       | being built) could use a much simpler, traditional HTML-oriented
       | REST-ful model at a fraction of the complexity of frameworks
       | being used today.
        
       | franklyt wrote:
       | Building a non-trivial website in React with halfway decent
       | design practices is 100000x easier than doing so in raw
       | html/css/jQuery (for argument, the vanilla API back in the day
       | was impossible to use).
        
       | megameter wrote:
       | Phrases like "the content is what is important" come to mind.
       | 
       | The whole project of graphic design has the same kind of abyssal
       | qualities as other arts with a technical element - you can always
       | go deeper, more specific. And in a competitive market it's really
       | tempting to sell yourself on one-upping the techniques of others.
       | With a computer in the mix, you can just add specification
       | without end and it will soak everything up like a sponge.
       | 
       | But each layer of that you add gets a little farther away from
       | "creative medium" and a little more towards "bells and whistles
       | production". The essence of it comes from the content, and this
       | is true of everything on the Web too, despite all the
       | interference on and around the platform. So it's more like a case
       | of modern development being "you have to describe the medium you
       | want to work within" because the base layers are this morass of
       | vocabulary that isn't conceptually coherent.
        
         | riskable wrote:
         | > "the content is what is important"
         | 
         | The only problem there is that users have come to expect
         | certain UI elements on any given web page and those things are
         | far beyond "content". For example, let's say you want to allow
         | comments on articles. Now you have opened an _enormous_ can of
         | worms by requiring logins, storing of passwords (hashes! with
         | salts! using modern algorithms!), permissions management,
         | password reset mechanisms, collection of emails (for password
         | reset), and personal data.
         | 
         | You can handle all that the old fashioned way and implement it
         | yourself _or_ you can look into the great wild of the Internet
         | to see what solutions already exist. That 's where the rabbit
         | hole begins!
         | 
         | Now you've got a back-end OAuth infrastructure supporting your
         | website. You're using a login module that you were able to
         | "easily" install via npm. You used an oauth2 module in your
         | back end and everything seems to work fine except now your JS
         | code is getting a little crazy with all the "time saving" npm
         | stuff you're using so you start to look at "bundlers" like
         | WebPack...
         | 
         | Welcome to hell, my friend. This is modern "minimal" web
         | development.
         | 
         | Oh but perhaps you could use a static site generator instead!
         | Surely someone has created _the perfect_ Markdown
         | /ReStructuredText tool for generating your perfect web page
         | that has all the features you need!
         | 
         | There happens to be one _that 's close_. It does everything you
         | need except that one little thing. So you reach into the npm
         | bucket... Then you end up having to deal with bundlers again.
         | 
         | It never ends!
        
           | 8bitsrule wrote:
           | >users have come to expect certain UI elements on any given
           | web page and those things are far beyond "content".
           | 
           | Usually I visit pages to see if the content is worth my time.
           | If the 'UI elements' somehow contribute to that content,
           | great. That's rare.
           | 
           | Most pages I hit are hiding poor content in swathes of
           | katchi-vatchi. Do I really care if the headline slides down
           | that big photo? Am I really going to scan those glaring
           | sidebars?
           | 
           | Once again I _sigh_ and mouse-up to Firefox 's 'Reader view'
           | to cut through all that bandwidth-wasting crap.
        
             | megameter wrote:
             | Right. There's an element cleaving both ways of the
             | developer being obligated to do complex and disempowering
             | things for users for various reasons, and then users
             | rejecting their disempowerment and trying to work around
             | it.
             | 
             | And I think if there's a future here it belongs to targeted
             | protocols that decouple the use case from the UI, and
             | filters like Reader view that reformat content to the
             | medium the user wants to work in.
        
       | geerlingguy wrote:
       | I have gone back to plain CSS files and dropping Sass and other
       | preprocessing techniques just because the past decade of managing
       | build chains and dependencies _to marginally improve writing
       | styles that change minimally between redesigns_ has soured me on
       | more complex build processes.
       | 
       | By the time you actually do a redesign that would take advantage
       | of the fact you use mixins, css variables, etc., the whole design
       | language changes, and meanwhile you'll have to change
       | preprocessors anyways.
        
       | devchix wrote:
       | At some point in my organization's press toward Ansible, I came
       | to the realization that Ansible the product is yet another layer
       | of abstraction that is there for its own sake, and of dubious
       | value. I converted a simple script to patch stuff, something that
       | is trivial to write and run, and the yum module behaves different
       | enough from the command-line yum that I have to learn a different
       | way to get and parse the output. AWS logs also behave the same
       | way, impossible to take up and read, quickly, trivially. Why do
       | people read logs? To find out what happened, and do so quickly.
       | Someone will argue that logs are so verbose we need to make them
       | machine-friendly vs. people-friendly, so we can make tools to
       | process them. Somewhere in the past 5 years we've gone toward
       | making things more tool-friendly that humans can no longer
       | interact with them in meaningful way. Some time in the future
       | when something else supplants Ansible, shell will still be there,
       | and still works. Meanwhile, I crib from Ansible docs and
       | StackOverflow just to get things to work the way it did, and the
       | pay-off is ... what exactly?
       | 
       | Edited to add:
       | 
       | Years ago Solaris10 converted the rc boot scripts to what was
       | systemd precursor, SMF. I drank the koolaid, yes! we can build
       | dependencies now, we have service-level kernel events now! I can
       | get rid of daemons and watchdog scripts now! The innards of SMF
       | was indecipherable XML, dependencies grew, you could no longer
       | find a good system view when you ask SMF, and you couldn't easily
       | find and fix what's wrong with the service file. At the time, it
       | was designed to be un-messed-around-with by keyboard-happy
       | warrior greybeard sysadmins, judged to be a source of instability
       | and inconsistency.
        
         | honkycat wrote:
         | I agree ansible is bad, but it is NOT the state of the art.
         | Honestly its kind-of old and dead at this point replaced by
         | stuff like CDKs.
         | 
         | Programming in YAML sucks. YAML based solutions will always
         | come up short because you cannot develop proper abstractions so
         | you end up with a big bowl of copy-pasta amd indecipherable
         | work-arounds.
         | 
         | IMO the modern web is all based around adding types to systems
         | because we've realized the extra toil types require make large
         | systems have fewer bugs and more maintainable.
        
           | rhn_mk1 wrote:
           | What are CDKs?
        
             | em-bee wrote:
             | _cloud development kit_ if i am not mistaken
        
           | em-bee wrote:
           | when i evaluated ansible and saltstack a few years ago, i
           | went with saltstack because the ansible example felt much
           | more like programming in yaml, while the salt example was
           | much more declarative.
           | 
           | i am still not happy with yaml, but i haven't seen any better
           | alternative than saltstack yet.
           | 
           | cloud development kits seem to target cloud APIs only and
           | don't look like they could work for just a bunch of computers
        
         | fpoling wrote:
         | This is the my experience as well. For an activist website that
         | I maintain I just use a PHP script to install everything and to
         | ensure that everything has proper permissions. The site uses
         | Wordpress and patching config files in PHP is simpler than in
         | bash. I am glad that I have not bothered with Ansible, as I
         | would most likely ended up with YAML programming which is way
         | worse than bash.
        
           | anthk wrote:
           | Perl was made exactly for that.
        
         | ericbarrett wrote:
         | I'm with you on logs. The recent trend of "machine-readable"
         | logs, encapsulated as JSON structs, adds so much complexity to
         | the process, and makes them unscannable to the human eye. And
         | yet for general use cases you're not getting anything a regex
         | couldn't parse out of the log prefix.
         | 
         | In 2010 I could search a terabyte of logs with grep -F in under
         | a minute. With a "modern" setup you can't even _see_ your logs
         | until you have Elisticsearch up and running.
        
         | commandlinefan wrote:
         | > another layer of abstraction that is there for its own sake,
         | and of dubious value
         | 
         | Wait until you see Spring Boot.
        
       | jancsika wrote:
       | > For instance, last week I was reading a post about the benefits
       | of not using stylesheets and instead having inline styles for
       | everything.
       | 
       | Back in the day, this probably meant one of a handful of things:
       | 
       | * manually writing all the HTML and putting the inline styles
       | there
       | 
       | * some kind of PHP thingy where you would be essentially rolling
       | your own CSS variables
       | 
       | * some kind of Perl thingy where a verySmart dev is trying to
       | maintain an entire CMS using only regexes
       | 
       | Today, the user could be "having inline styles" in one of 10,000
       | frameworks-- Vue thingies, React thingies, or perhaps a build
       | flag in a Javascript thingy that spits out a CSS thingy...
        
       | muglug wrote:
       | Previous discussion from 2018:
       | https://news.ycombinator.com/item?id=16346039
        
       | commandlinefan wrote:
       | Coupled with the expectation that those same things should take
       | _less_ time than they used to and be 100% predictable.
        
       | mauvehaus wrote:
       | Confession: as a recovering programmer who made a career change
       | to non-programming, it took at most 30 minutes to say "fuck it"
       | and go with Squarespace.
       | 
       | I've never been on the web side of things, but I knew enough HTML
       | in the early aughts to put up a basic informational website.
       | After digging in to some sites I admired, I decided that it was
       | too much distraction from my actual work to roll my own.
       | 
       | Granted some of this complexity comes from the legitimate need to
       | support mobile gracefully, but damn are there layers upon layers
       | upon yet more layers of stuff just to get some pictures to show
       | up nicely with some text and look consistent across devices.
       | 
       | Props to everyone who does this for reals and does a good job
       | achieving that consistency. For my money, I'll hire it out.
        
         | dleslie wrote:
         | FWIW, services like Squarespace are devouring the VPS and
         | small-site design industry. Rolling your own services, managing
         | them with cPanel, and paying local kids to build and design it
         | is a quaint throwback.
        
           | [deleted]
        
         | volkk wrote:
         | what kind of work did you get into after programming out of
         | curiosity? rare to see people go the other way
        
           | inglor_cz wrote:
           | Not the OP, but I left professional programming to become a
           | writer (in Czech, not in English; pardon my mistakes).
           | 
           | It actually has something in common, you still write
           | structured text for living, though your target audience are
           | now people, not machines. Some readers commented that they
           | find my style clear and understandable; maybe it is a carry-
           | over from programming, where you cannot be ambiguous.
           | 
           | But I find writing for people much more enjoyable than
           | writing for computers. As a computer programmer, you mostly
           | receive negative feedback: something stopped working and the
           | users are often angry or frustrated. As a writer for people,
           | you receive more than a few thank-you e-mails from your
           | readers, which brighten your day.
        
             | kungfuscious wrote:
             | Writing human-language and programming indeed have a lot of
             | skill transfer. They're both writing after all. But most
             | importantly it's the ability to clearly communicate ideas
             | and organize thoughts.
        
             | kbenson wrote:
             | > As a computer programmer, you mostly receive negative
             | feedback
             | 
             | FWIW there are different types of writing and different
             | types of programming.
             | 
             | Writing copy for a bank will probably generate a lot of
             | feedback about mistakes that need to be fixed.
             | 
             | Writing code to reduce annoying monotonous tasks for
             | coworkers so it takes ten minutes instead of two hours will
             | get you a lot thank yous from your coworkers, and will also
             | brighten your day.
             | 
             | It's all about what your job is, and how close you are to
             | the people you are affecting.
        
             | jdkoeck wrote:
             | Hi, I'm really curious, what do you write exactly for a
             | living? Do you write fiction books, non-fiction books, blog
             | posts, technical documentation?
        
               | inglor_cz wrote:
               | 1. Political commentary for a local newspaper. They pay
               | reasonably well. 2. Popularization of science and
               | technology for a few web outlets. 3. Books about
               | interesting historical events, these are by far the most
               | popular and earn me majority of my writing income. 4. I
               | dabbled a bit in fiction, but long forms like novels seem
               | to be out of reach for me. My strength is in shorter
               | texts that can be written in an afternoon. 5. A free blog
               | that comes with an e-shop where my books can be bought.
        
           | nitrogen wrote:
           | _rare to see people go the other way_
           | 
           | I suspect this is literally true, but only because we don't
           | _see_ them. I 've heard second-hand the story of a top
           | developer at a famous unicorn who just couldn't keep up with
           | all the stimulants everyone was using to code more and burned
           | out, bought a cabin in the woods, and became a hermit.
        
             | ChrisMarshallNY wrote:
             | _> all the stimulants everyone was using to code more_
             | 
             | That's interesting. Do you mean Adderall/Ritalin?
             | 
             | That stuff has a relatively fixed useful half-life. It
             | doesn't work for as long as people might think. It also
             | doesn't _actually_ make thinking clearer. It makes people
             | _feel_ as if they are thinking more clearly. I don 't feel
             | like looking for it, but this has been studied and
             | reported, somewhere.
             | 
             | If you are referring to crank, well, the half-life of that
             | stuff is even shorter...
        
               | bnjms wrote:
               | Amphetamines, cocoon, and modafinil are the likely
               | targets. Other than that look up stimulant nootropics.
        
               | dleslie wrote:
               | Cocaine, MDMA and LSD seem to be favourite drugs around
               | town, here in BC. I mean, besides the usual marijuana,
               | tobacco and beer.
        
       | divan wrote:
       | Without clicking the link and reading comments - let me guess:
       | it's about JS/HTML/CSS stack, right?
        
       | red_trumpet wrote:
       | I think the example of table / grid layout is a weak one. Table
       | layouts were not bad because of what they produced, but because
       | html tables are semantically different, and shouldn't be used for
       | layouts. But they still solved the same problem that grid layouts
       | solve.
        
       | mikewarot wrote:
       | The source for the page is as clear as I expected, which made me
       | happy. I feel the same about programming for applications on
       | PCs... things were simple, then they got complex with the arrival
       | of windows, then simple again with VB6 and Delphi, and now
       | they're a mess again. (Not to mention mobile)
        
         | wcr3 wrote:
         | smart to check the source; thanks for pointing that out.
        
       | muglug wrote:
       | Customer needs for most websites basically haven't changed in two
       | decades.
       | 
       | Outside of a few complex SPAs doing interesting things,
       | structurally we're building the same things we were building back
       | then (blogs, brochure sites etc) -- it's just that the way we're
       | building them has become (optionally) much more complex.
        
         | fpoling wrote:
         | 20 years ago one could assume 1024x800 and it would mostly
         | work. Then smart phones came with small vertical screens and
         | touch input. Then tablets made it necessary to support screen
         | rotation. Then retina displays required to support dpi-aware
         | images. Then dark/light mode came and general color
         | management...
        
           | muglug wrote:
           | > 20 years ago one could assume 1024x800 and it would mostly
           | work.
           | 
           | IE 5 and 6 and Netscape Navigator 4 would all beg to differ.
           | Having made simple websites two decades apart, CSS is much
           | less hassle nowadays.
        
         | jacobwilliamroy wrote:
         | In my area it seems everybody wants some kind of web app or
         | VPN. In the good old days things like file sharing and
         | inventory management could be done on the LAN but with COVID
         | everybody is scattered all over the place. My clients have this
         | expectation that they'll be able to use any random smartphone
         | to scan a QR-code in the Phillipines and have that magically
         | publish inventory updates to accountants Texas. Everybody wants
         | to bring their own phone or computer. Everyone wants all their
         | data to be accessible through the web. It's chaos I tell you,
         | and a security nightmare to boot.
         | 
         | Personally I think of the web as a highway: great place for a
         | billboard, not such a great place to be storing or mutating
         | sensitive information.
        
         | nicbou wrote:
         | It's good to remind ourselves that all of this is optional.
         | 
         | Most websites could be a simple WordPress do. Many brochure
         | websites should be static. There are benefits to straying from
         | that, but they come at a cost.
        
         | pjmlp wrote:
         | Which is why I keep happily doing .NET and Java Web based
         | development with SSR as always, APIs now return REST, GraphQL,
         | gRPC instead of XML-RPC/SOAP, or whatever makes the FE team
         | happy.
         | 
         | I know enough of Web FE development to jump in and fix a couple
         | of bugs when needed, and on my own consulting gigs as side job,
         | I only do native desktop development as kind of therapy.
        
       | tiborsaas wrote:
       | I'm wondering what he could have learned in the same time it took
       | him to write this article. I get it, it's harder to navigate the
       | vast jungle of tools and technologies. I also remember 2001 when
       | my only reference to HTML was the help files of Home Site 4.0.
       | 
       | We have it much easier today.
        
       | cosmodisk wrote:
       | I often feel a lot of things became more complex for the sake of
       | it. You'd think by now it'd be just a press of a button and your
       | software is deployed and the clients can start using it,but no,
       | that'd be too easy. Instead,even getting a simple WordPress
       | website up to speed requires endless list of plugins,some
       | undocumented configurations and CSS overwrites in random places.
       | And it just gets worse and worse.
       | 
       | When you need to spend a few hours just to get the development
       | environment somehow ready before first line of code is written,
       | you know things aren't going the right direction
        
         | jb3689 wrote:
         | On the other hand the one button experience is as far as it has
         | ever been. I just pushed up a website on Amplify in a few
         | clicks, and the only reason it isn't less is that some people
         | want options.
        
       | bigwheeler wrote:
       | "I wonder if I have twenty years of experience making websites,
       | or if it is really five years of experience, repeated four
       | times."
       | 
       | This sums up how I feel about my entire career as eloquently as
       | possible.
        
       | papertokyo wrote:
       | Frank is right, of course. Staying up to date with the tooling,
       | best practices, and user expectations of the web requires an
       | unreasonable amount of attention if making websites is only a
       | small part of your service offering.
       | 
       | One reason I prefer frontend libraries like Vue and Svelte is
       | they feel closer to the grain of the web (HTMLesque templates
       | with JS and CSS sprinkled in), and provide a reasonable level of
       | abstraction and magic. The learning curve and paradox of choice
       | is also much easier to navigate than React especially for solo
       | devs who aren't working on a huge app with a team.
        
         | MereInterest wrote:
         | And this is exactly why any of my hobby projects that involve
         | JS are done with plain JS, with as few libraries as possible. I
         | might pull in specific libraries, but I don't want to pull in a
         | giant framework that will be outdated the next time I decide to
         | work on that particular project.
        
           | lenkite wrote:
           | A micro-library like https://redom.js.org/ does make things
           | easier though. I have also given up on mega-frameworks - just
           | too many things to keep in mind as I get older.
        
             | grishka wrote:
             | Here's my "femto-library" for creating DOM dynamically from
             | JS:                   function ce(tag, attrs={},
             | children=[]){          var el=document.createElement(tag);
             | for(var attrName in attrs){
             | el[attrName]=attrs[attrName];          }          for(var
             | child of children){           el.appendChild(child);
             | }          return el;         };
        
             | winphone1974 wrote:
             | Easier through ignorance seems like cheating IMO. you're
             | basically saying yes things are harder but I just ignore
             | them. How would a newbie decide what's safe to skip?
        
           | rectang wrote:
           | Another thing I find weird is how bloated static typical site
           | generator tools are. The delivery medium of static HTML is
           | timeless. But the odds that a static site generator with
           | dozens of dependencies will still work N years from now?
           | Grim.
        
             | nanna wrote:
             | 'Typically' meaning...? Jekyll? Gatsby?
        
               | nitrogen wrote:
               | I have a couple of older static sites (one using
               | Jekyll/Octopress, one using Middleman), and if I ever do
               | a _bundle update_ something is guaranteed to break. Not
               | sure if that 's the "bloat" the parent comment is talking
               | about though.
        
               | laurent92 wrote:
               | Yes. I was on Jekyll 2 years ago, I don't think I'll be
               | able to compile it in two years. It's already on an old
               | version of Ruby if I remember, if not Bundle or Gulp
               | or... and it's just a simple website.
        
             | enriquto wrote:
             | just write html by hand. With html5, implicit and auto-
             | closing tags, it's really not more difficult than markdown.
             | Then your "generator" is simply the cat program, that
             | appends a common header and footer.
        
             | lenkite wrote:
             | They all started off lean and mean. Then after adding
             | feature after feature they become bloated. Then the next
             | lean-and-mean static HTMl generator becomes vogue.
        
             | red_trumpet wrote:
             | Bashblog[1] is pretty lean, and doesn't use any
             | dependencies.
             | 
             | [1] https://github.com/cfenollosa/bashblog
        
       ___________________________________________________________________
       (page generated 2021-04-17 23:00 UTC)