February 14, 2023

Web development is a pain in the ass

I bought the limited early access to The Joy of React the other day and worked through the whole course since then. Switching to web development while still being at the very beginning of my journey of becoming a Swift developer might not be the smartest choice but I never claimed to follow a thought-through master plan in regards to my learning, so whatever.

Before we get started: These are my current thoughts on getting into web development as somebody who has only a basic understanding of HTML and CSS. These thoughts will be different in a year from now. Cool your jets and consider this as something like a user test for the question of “How accessible is becoming a web developer?”.

Web development is a pain in the ass. You need to understand what a terminal is, what it’s used for and how to use it to even get to the point of asking yourself “What the fuck is NPM?”. Then NPM needs to be installed which feels like hacking the Matrix, since it does something somewhere but you won’t see anything but lines of text in your little terminal window into the soul of your computer that you’re afraid to touch because what if you sudo your SSD or something.

If you managed to install NPM, you have to… boot up your project by hacking even more Avada Kedavra shit into your cOmMaNd LiNe. Something happens and suddenly there’s a terminal you can’t use for anything else anymore because it’s doing… something and is busy forever. You end up with a browser tab directly plugged into whatever terminal magic is now showing you your empty project.

Great. It took only two and a half years to understand all of this and to get it to work. Fun!

Even if you managed to do all of this, you’ll end up in Visual Studio Code which only seems to work properly if you install a dozen plugins and hope for the best. I bet there’s some kind of user experience to be found in VS Code but it sure doesn’t stack up against anything I’ve grown accustomed to while using Xcode.

My whinging doesn’t stop there, no worries! 

I’m not happy with JavaScript and React either. JavaScript feels weirdly incomplete after getting used to Swift, even though (or because?) it’s old as fuck. Even simple things like capitalizing a string is a non-trivial endeavour with something like three different solutions. I found those in Stack Overflow threads from 1932, by the way.

React does have similarities to SwiftUI and I see why people can grow to like it but it lacks the fun of SwiftUI. It feels clunky and verbose. JSX, CSS, a sheer endless amount of semicolons and angle brackets… it’s a little ugly? Granted, I don’t know anything and haven’t used it for half as long as I’ve spent with SwiftUI but still… there’s a lack of grace there that’s a liiittle bit repugnant.

So, where am I at right now?

I couldn’t wait to start my first project after finishing 100 Days of SwiftUI. Xcode was fun, the iOS simulator worked great and everything felt thought-through and like a paradise of possibilities. Finishing The Joy of React on the other hand left me with a feeling of dread and a weird taste in my mouth. Everything related to web development seems to be fragile, fiddly and like a late-game Jenga situation. 

I’m not giving up though. This seems to be modern web development and since I want to be able to create web apps I’m going to stick with it. It’ll get better.

Anyway, here’s my little “You did it” achievement the course gave me. I’ll slap that on my LinkedIn profile now and consider myself a junior frontend web developer.

  1. Hey Marcel,
    interessting to see this from your perspective. I am a webdeveloper now for more than 20 years and you get blind spots on how the experience is for others. First of all: It doesn’t have to be like that. It’s the framework you chose. And it’s a framework which is comes with a lot of controversal discussions, including discussion about all that overhead you described.

    If I would start today, I would start using typescript. Which is JavaScript with additional types. In the beginning this might be a bit annoying but it helps you to write better, more solid and stable code in the long run. But: You need something to convert that to Javascript, so again some terminal stuff and setup overhead. And you can configure it so you don’t have to use semicolons for example. Maybe that’s more the SwiftUI way.

    If you want a really good IDE for projects with react, vue, typescript etc. have a look at webstorm. It’s pretty expensive, but it’s perfect for such projects.

    1. I got Typescript on my list for future updates to my sTaCk. Friends of mine are huge fans of it. But I like to get started with JS first. I think it’ll help to better understand the basics. 🙂

  2. Go and learn Rails. Not saying that React isn’t “more modern”, etc. But I think you’ll find the “delightful”, “paradise-like”, “possibility-sparking” thing there a lot more than with React.

    React seems really clunky to me. Like a hacked together thing. Made out of ten different things of which two only work if you make sure that a piece of newspaper is keeping your table relatively level. And if your TV’s antenna isn’t picking up the signal, you need to ensure that you’ve installed a specific package by some person on GitHub who hasn’t replied to raised issues in over a year.

  3. That’s kind of funny to see things from this perspective. I’m so used to using (the linux/mac) terminal as a utility, I start hating visual OS frontends more and more. All in all I would say, it’s just a plain text interface to your os instead of clicking your way through finder or different apps. I’m faster doing some things right in the terminal and I can automate things easier using little shell scripts. On Mac, I use Warp to make things easier, as the original OS X terminal app is a pita.

    Also, from time to time I’m forced to use xcode and objective C, swift or now swiftUI, coming from a daily business using JS/JQuery, HTML, CSS and VSCode and I kind of don’t like it. It feels like all of that apple dev stuff changes all the time, there’s no way to customize the IDE and it lacks some basic integration of languages and things other than Swift, and you’re really forced to follow the rules apple likes you to work.

Leave a Reply

Your email address will not be published. Required fields are marked *