220
PieterB
5y

Modern web development is fucked. Just absolutely, totally screwed up.

I want to create a simple to do list web app. Look for a tutorial: "OK guys, this is really easy, it just takes five minutes."

First step, install these:
- Git
- NPM
- NodeJS
- Express
- MongoDB
- Docker
- React

Second step, npm install about one million modules. Don't question what they do or why they're there.

Before you know it, six hours have passed and you've got a code base of 3GB and you haven't even _started_ on your app.

FUCK that shit! I can create this web app with Internet Explorer and Notepad.

Comments
  • 67
    That's my exact point!
    And people be like "yeah, but how do you manage custom elements, templates and shit?"

    I just don't use them!
  • 22
    You sir, you get my ++
  • 10
    I get it. But whats the solution? A(nother) heavy-canons full stack framework?
  • 20
    @24th-Dragon its a "simple" todo list , you can get away with just using the browsers local storage and some lightweight JS with some bare bones HTML/css.

    Which eliminates everything above unless you want git.
  • 14
    B-but..responsive UI? I..i.. mean .. how is anyone supposed to use this if it doesn’t blink & animate & swooosh, y-you know?
  • 29
    @24th-Dragon 'To-do list' was just a generic example. It's a rant, don't try to undermine my anger with logic and reasoning! Just let me be mad! :D
  • 19
    My ssd cries every time I run npm init
  • 7
    How could you say something so controversial yet so brave
  • 1
    In general, native applications (even using the largest frameworks available) would allow you to complete your application in a very small amount of time with a resulting very small footprint. Web dev is about deployment. All the sucky things you are talking about play second fiddle.
  • 2
    Your packages can be reduced to just one: feathersjs.
  • 8
    @24th-Dragon That is the point. The application is as simple as ABC and yet tutorials are teaching you that you need gigabytes of dependencies to build that simple thing.

    If you are new in the field, how are you supposed to know which tutorials are the right ones, which ones are going for an overkill and which ones are just shit? I mean I simply google for "tutorial make todo app" and I supposedly get that bloated 3GB+ tutorial. And since I am new in the field I do not know I should be looking for easier ways...
  • 8
    Programmers: front end development isn't real programming!
    FE: adds more functionality, software development concepts, extend capabilities and re-usability.
    Programmers: front end development has gotten too complicated!
    FE: simplify using new bundling paradigms, static page generators, etc.
    Programmers: front end development ... is just shit, OK?

    Btw, although your code base can become big in terms of megabytes, it's been so long since I've seen a client-side app with more than 50 mb of bundled files. I think you are still stuck on some 2012 JS framework...
  • 4
    Agreed there is alot of npm bloatware, but remember to use ur brain and think through your stack not blindly follow tutorials.
  • 1
    Exactly it is a F**K.. As first time you may feel nervous, lots of unknown and then gradually getting the hold of it..

    Similarly... setting up GIT, installing node, npms are kind of first time nervousness..and may feel overwhelmed. Once you build the second app, you would rather focus on just building it..and no anxious feeling about it! :-)
  • 5
    You are reading the wrong tutorials and exaggerating the problem.
  • 4
    python -m SimpleHTTPServer 80

    <adds index.htm>

    Done...
  • 3
    @uselesshero yes, that is what a rant is, blowing off steam by making a mockery of the issue (in this case by exaggerating ever so slightly)
  • 7
    @uselesshero Is he?
    Make a new Angular application. Don't write any code, just check the number and size of of generated files. It's gigantic.
  • 1
    @Root yes ever download jdk or .net etc those are big too or how much u have to download for an blank Androidapp
  • 0
    @noogli Depends. .Net core is very light weight (You need to opt in for every feature. You can't even write hello world without opting in for System)
  • 5
    Of course you need a whole lotta shit to do a whole lotta shit. "Web Apps" aren't the left-aligned static fulltext-wall they were back in the days anymore. We got dynamically loaded shit downloaded by 1000s of people per second automatically load-balanced on your fancy master-sl.. uh main-worker servers.

    Now you don't want to write that logic to update that one div's innerHTML by hand - because your code won't meet the standarts of PWAs - but you want to meet them. So you dive into frameworks. Welcome to whole ecosystems built on top of ecosystems.

    Lastly - we don't do upload to FTP to deploy these days - we do it fancy. We migrate our stateless-REST-mongolian-wtf-database and our files to be served by the server via some CI and yeah of course we got downtime, I mean we have to shut down that node server and restart it. What world we'd live in if we could do `service restart` or do nothing?

    I like web development. But this shit got way out of hand way too fast and it doesn't stop.
  • 4
    I get that this is a rant (and it's a good one, you have my ++), but the point of those tutorials isn't to build a simple TODO app, it's to learn all of those tools and frameworks, so that you can use them to build a much more complex app.

    Web development has come a long way; it still has a long way yet to go, but every tool solves some problem, so it just depends what you need. If you need a TODO app...well, don't write it, you can probably install one from NPM ;)
  • 15
    I always use only one framework

    my-own-code.js

    It's really easy to install, just create a file in vim and save it with that name. And no longer than 1 or 2 hours later you're ready to hook it up to your html with a single <script src> tag!

    You can drastically remove the installation time by learning how to exit vim beforhand
  • 1
    I’m a node.js developer that has never used express or react, bite me. I do use template engines, static generators and API'S though
  • 2
    Tbh, with frontend I'm like this but then, I'm a backender and my frontend skills are bad.

    With back end, however, I try to keep it as simple as possible. While many people (understandably) use quite big frameworks, I wrote my own micro framework which does exactly what I need!
  • 1
    From time to time I get flamed by younger devs at work because I'm basically only using the default package of vs code and a browser to do every webdev I'm assigned.
  • 0
    @PieterB you are goddamn right!
  • 1
    @Root please dont make me, left the angular train years ago and never looked back
  • 0
    @linuxxx if I could stay working on the backend of things I'd be happy. I don't get that choice either though, so I choose to save time and just use vuejs for my frontend stuff now. I look forward to the day when I can afford to hire someone to offload that portion to.
  • 2
    Yea... fuck all this. Let's return to fucking perl, ftp and gif.

    /sarcasm

    Honestly I've heard the same rant for so long, way before npm and shietz. In old languages and paradigms.

    It's okay. Everything is fine. You are just a newbie who don't understand his tools yet. It'll come just in time... don't worry. You'll refine it, eventually.
  • 2
    @Cultist actually, I'm not a newbie at all. On the contrary. As I said, I can make this app in Notepad, with IE to test the UI. That's not the point of the rant.
  • 0
    @PieterB I dunno. I do C++ work. To get a version of Qt with all options selected under Windows is 60GB. I usually pare it down to 7 or 8 with the options I select. That is not a deployed solution though.

    How big are your deployed solutions?
  • 1
    I was actually just having this conversation. There are just too many options and a lot of people really let that get to them and start throwing in cumbersome because they need one thing it can do. Sometimes, for simpler things it really is better to just code it from first principles
  • 5
    Modern Webdev is absolute insanity. Keep in mind that the vast majority of web content is still text, or text with images. Are we sure we need all these layers of cruft to accomplish that? Spare me the kneejerk reaction and really think on this for a moment. Is this really the best way? Do you enjoy spending half a day to just even get all the stuff you need to make your app start? Do you like scrolling through a long ass documentation file just to know how to use a function you probably could've written yourself? Now consider that your fancy web app essentially requires what was considered a super computer a decade ago to even run. If that's not insanity, I don't know what is. I've said it many times before and I'll say it again: modern software is hitching a ride on the advancements of ever faster hardware, but that ride is coming to an end as we're starting to hit the limits of what hardware can achieve.
  • 0
    @Plasticnova Fair enough! I've got a mate who does that stuff and I do all the back end, Linux and security things 😁
  • 1
    I couldn't agree with you more. Here, have my favorite.
  • 2
    Let's transpose that to a backend situation without js, shall we?
    In order to do a simple REST API you will need :
    - Linux (most likely)
    - a database (let's say mysql)
    - a server (apache)
    - some language (php, Java)
    - a framework (symfony, spring) and all the dependencies it comes with (maven, composer)
    - knowledge about MVC
    - security considerations
    - docker
    - git

    Now tell me : how is that different from your listing?

    The problem is that you try to create a simple app with industry-grade quality levels. All the tech you mentioned are solving a specific problem, most of them you won't have in your project.

    You want a simple app? Go with html+jquery and you'll be fine. Cloud-saving? Go with whatever you already know.

    Please, backend guys, stop saying that front end and web dev is shit. You just don't master the stack, and that's okay. Front end development has radically different challenges than backend development. It's obvious that the tech will be different.
  • 0
    So yes, you will have to learn a whole lot of new stuff. But isn't it exciting? ;-) just remind how you did learn dev in the beginning : one tech at a time, a'd baby steps.
  • 0
    Unfortunately no matter how much devs complain about it nothing would change.
  • 2
    @uselesshero

    he really isn't exaggerating the problem *enough*.
  • 1
    I use docker
  • 0
    Yup ... Modem web dev ftw.
  • 1
    I guess it has a little bit to do with the JavaScript (and family) community/culture especially after it exploded (post-node) and mainly these "learn in 30 days/1 week" sorta bootcamp. So, people from non-engineering background come in and they don't prioritise design or optimization. Even now it's kinda hard to find a pure node tutorial, 90% will jump straight to express. I get that you don't have to reinvent the wheel but maybe see what the wheel is made of and how it works? Most tutorials out there sorta just copy each other and don't really focus on the main topic and more importantly then timeless fundamental concepts behind those topics.
  • 2
    @darkness

    I think theres a significant subset of developers who need to understand things from first principle before they can grasp how to *use* various technologies.
  • 1
    You don't need that shit for basic stuff. If you're just following the trend, you're to blame.
  • 0
    I feel your pain. Even their base system won't install without shitting itself.
  • 4
    My theory is that people who used to be great programmers are not that good according to today's needs (I'm one of those) and average programmers are shining today. Why? Because programming of the past was about being in control. Every detail of our app was under our wing and we polished it to perfection? And today's sh*tshow? Installing tons of heavy, obscure tools "facilitating" better development that nobody truly understands. THIS IS TOO MUCH! I really prefer to write the code myself than spend the same amount of time to learn somebody else's vision. My memory can't fit dozens and dozens of tools. And don't even get me started of the fun factor. Today's web dev is not fun at all. It's like being a slave trying to satisfy your master (your tools). I actually want to scream at this point. I spent 20 years of my life to continuously learn my craft and I have enough now. And the worst feeling is that it seems like many people feel it's okay as it is. I LOST IT.
  • 0
    wow cool! thx
  • 0
    Creating a simple to-do list web app is a great project. I recommend checking out tutorials on platforms like W3Schools or MDN Web Docs for step-by-step guidance. Additionally, for insights on mobile app analytics and key performance metrics, this article by Attract Group provides valuable information to enhance your app's performance and user experience.
Add Comment