I'm a hardware guy. If I do software, it's bare-metal (almost always). I need to fully understand my build system and tweak it exactly to my needs. I'm the sorta guy that needs memory alignment and bitwise operations on a daily basis. I'm always cautious about processor cycles, memory allocation, and power consumption. I think twice if I really need to use a float there and I consider exactly what cost the abstraction layers I build come at.

I had done some web design and development, but that was back in the day when you knew all the workarounds for IE 5-7 by heart and when people were disappointed there wasn't going to be a XHTML 2.0. I didn't build anything large until recently.

Since that time, a lot has happened. Web development has evolved in a way I didn't really fancy, to say the least. Client-side rendering for everything the server could easily do? Of course. Wasting precious energy on mobile devices because it works well enough? Naturally. Solving the simplest problems with a gigantic mess of dependencies you don't even bother to inspect? Well, how else are you going to handle all your sensitive data?

I was going to compare this to the Arduino culture of using modules you don't understand in code you don't understand. But then again, you don't see consumer products or customer-specific electronics powered by an Arduino (at least not that I'm aware of).

I'm just not fit for that shooting-drills-at-walls methodology for getting holes. I'm not against neither easy nor pretty-to-look-at solutions, but it just comes across as wasteful for me nowadays.

So, after my hiatus from web development, I've now been in a sort of internet platform project for a few months. I'm now directly confronted with all that you guys love and hate, frontend frameworks and Node for the backend and whatever. I deliberately didn't voice my opinion when the stack was chosen, because I didn't want to interfere with the modern ways and instead get some experience out of it (and I am).

And now, I'm slowly starting to feel like it was OKAY to work like this.

  • 7
    Oh, nice rant! And while I don't fully understand C-style languages yet, I have the same sentiment of desiring programming languages to get refactored all the way to the core again, so that we can start from a solid basis again that starts from the electronics, onwards to Assembly and into the compilers. But indeed, certain chaps who made Node and Python and Ruby, diverged from that path quite significantly.. I hate it. If only we could start all over again, and make things just a little bit more efficient without shitcode.. Perhaps one day we would even be able to run some of our tools on something like an Arduino Mega that way.
  • 4
    @Condor c / c++ really confuse me. I don't like them.

    I love python, but it doesn't allow you to get low level enough..

    Assembly is great for low level, but only works on one architecture. I basically need multi-computer assembly, but then I am just told to use c. Which I hate.
  • 2
    @Condor: This will happen at the same time with security becoming a fundamental concern. That means, probably never (or at least not in our lifetimes). There will always be a group of people thinking things through while the bulk of innovation and economic advance comes from people not too passionate about these details.

    Maybe I'm wrong about this and the decline of Moore's law will start to put more pressure on developers. Let's hope I am
  • 5
    @ewpratten C is a decent language though.. as long as the compiler that will convert your portable C code into architecture-specific Assembly code is any good, that is. E.g. GCC is decent, Turbo C isn't. The lack of portability across architectures and the vastly different architectures themselves are a real problem though.. serial lines and charging ports and whatnot which were vastly different among manufacturers during the 90's and nillies, they got standardized into USB by now (with the only exception being "Think Different" Apple).. I feel like low-level programming and processor architectures need a similar standardization.
  • 3
    @7400 I fully agree.. this industry is filled to the brim with people wanting to make a quick buck and commit fast changes at the cost of quality.. quantity over quality. Security will hopefully become a concern as our lives become more and more intertwined with the digital world.. but indeed, especially with all the people who still think "nothing to hide, nothing to fear" I also doubt that the current status quo will change anytime soon... Moore's Law however is coming to an end as CPU manufacturers hit a physical barrier, and quantum computing isn't yet scalable.. I truly hope that it'll remain like that for a little bit longer, requiring developers to rethink their designs.
  • 1
    @ewpratten: Is programming directly in LLVM a thing? If so, that might be for you.

    Also: Have you tried Forth? It's a bit out of style (I don't know if I really want to imply it ever was in style), but it let's you decide pretty easily where you want to be on the line between low-level and abstract. There's a reason it's not that popular, but I think one might learn a lot from doing a few projects in Forth (I haven't, so I can't tell).
  • 3
    @7400 I forgot abt llvm. It probably has a "programming language"
  • 4
    @xzvf I love how easy it is to go from idea to program with Python. C is a little too verbose for me.

    And yet, I like assembly.
  • 3
    Very very good rant. It voices a lot of things I really hate about software in general, and web development in particular.

    I really enjoy low level optimizations and making everything perfect and as efficient as possible. Modern web development is basically the polar opposite of this.
  • 3
    @achintyakumar Yes.
    I started a new React project just so I'd have a pretty new tab page. Without any of my own code or assets, the boilerplate project was well over 200mb. Wtf?

    It's bloody insane.

    No wonder everything is slower now than fifteen years ago. CPUs are ~4x faster in raw clock speed, but they're doing a thousand times the work.
Add Comment