209
PieterB
30d

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
  • 62
    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!
  • 20
    You sir, you get my ++
  • 9
    I get it. But whats the solution? A(nother) heavy-canons full stack framework?
  • 56
    Its not fucked up. You are following a tutorial that does too much at once. You say its just a simple web app, but based on the depemdencies you also want version control, database, entire headless backend and a web site written in a modern framework. Untill recently you had to know multiple languages and technologies to pull this off. Now you have the option to use just Javascript to do all of that, whefe as in the past youd need at least three. Modern web development is far easier today then it ever was. Find tutorials that are more focused on each part of the stack.
  • 18
    @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.
  • 15
    B-but..responsive UI? I..i.. mean .. how is anyone supposed to use this if it doesn’t blink & animate & swooosh, y-you know?
  • 25
    @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
  • 18
    My ssd cries every time I run npm init
  • 7
    How could you say something so controversial yet so brave
  • 2
    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.
  • 7
    @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...
  • 9
    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...
  • 6
    Agreed there is alot of npm bloatware, but remember to use ur brain and think through your stack not blindly follow tutorials.
  • 2
    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! :-)
  • 6
    You are reading the wrong tutorials and exaggerating the problem.
  • 3
    python -m SimpleHTTPServer 80

    <adds index.htm>

    Done...
  • 5
    @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)
  • 6
    @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.
  • 4
    Just turn on your 'Don't give a fuck as long as it works' mode and continue the Brain fart all the way to a functional app 😅
  • 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)
  • 6
    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 ;)
  • 12
    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
  • 3
    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!
  • 2
    @Root please dont make me, left the angular train years ago and never looked back
  • 1
    @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.
  • 3
    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.
  • 1
    @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?
  • 0
    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
  • 2
    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
    @PieterB your rant hits it so spot on it brings a tear to my eye. :')

    I will agree with anyone that web development has evolved. And I understand that large and complex applications/web sites will require complex solutions often consisting of different ones complementing or adding just parts of one framework to another. But people like to overcomplicate ... so in turn, web development in 2019 can be associated with the term "big bloated mess" which leads to slow as s*** and bloated applications. I remember the rule of thumb was: if your web page loads in slower than 50ms there's something very wrong so you should review and resolve what's causing that. Meanwhile today - it's absolutely normal if a page for over a minute .... it's even better if it infinitely just keeps loading forever. And why worry about resource consumption in the clientside? Just keep stuffing s*** in - everyone universally everywhere around the globe has the latest 1000$ phone in their pocket and a 5000$ PC!
  • 1
    I couldn't agree with you more. Here, have my favorite.
  • 0
    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.
  • 1
    @uselesshero

    he really isn't exaggerating the problem *enough*.
  • 1
    I use docker
  • 0
    Yup ... Modem web dev ftw.
Your Job Suck?
Get a Better Job
Add Comment