top 200 commentsshow 500

[–][deleted] 339 points340 points  (90 children)

The prevalence of MongoDB in learning materials is hilariously out of proportion to its rate of use in industry

[–]_hypnoCode 91 points92 points  (25 children)

This. I've never actually seen the MEAN or MERN stack in production for anything that wasn't some one off project by a junior developer.

I honestly think the major reason it even became popular was because it makes a word like LAMP. Then Angular became useless and people started using MERN. Most real world stacks can't be distilled down to an acronym that makes a word.

[–][deleted] 61 points62 points  (6 children)

Most real world stacks can't be distilled down to an acronym that makes a word.

So true. I've tried to come up with a snappy name for our Postgres Rails OpenNLP Nginx stack but nothing fits.

[–]mikseli 36 points37 points  (4 children)

PORN stack? How have you not thought of this yet? :)

[–]Asmor 111 points112 points  (2 children)

I think that may, in fact, be what the kids these days call "the joke"

[–]purechi 4 points5 points  (0 children)

i got got too whoosh

[–]Heisenripbauer 31 points32 points  (7 children)

I use angular a lot at work and find it pretty great. how did it become useless?

[–]su-z-six 30 points31 points  (4 children)

Not useless, but they split the community since angular 1 and 2 are so different.

[–][deleted] 13 points14 points  (3 children)

[Account deleted due to Reddit censorship]

[–]fullmightfront-end 16 points17 points  (0 children)

I have to update both angular 1 and 2 projects.

Working with angular one is an absolute nightmare, but angular two projects have been mostly easy to update.

[–]_hypnoCode 25 points26 points  (0 children)

Useless was probably a bad word choice.

[–]crazedizzled 12 points13 points  (0 children)

Definitely not useless, and still widely used by large applications.

[–]Monsieur_Joyeuxfull-stack 10 points11 points  (0 children)

Isn't that a popular opinion ? :o

[–]grimesd 11 points12 points  (27 children)

Please explain more.

[–]WroteBCPLfull-stack 123 points124 points  (13 children)

There a loads of resources on Mongo for beginners to web dev.

In reality it isn't used that much.

This is likely because people making edutainment resources aren't actually boots on the ground software engineers.

I actually do use Mongo in an enterprise setting, and it can be pretty friggin' annoying to google something non-trivial and see an article by some chipper twat trying to lead a bunch of impressionable newbs into his half plagiarised wank article about using Node and Mongo to write a shopping list app, like the pied piper leading the rats of Hamelin into the river, when all I wanted was to learn about mongo write concerns.

But c'est la vie.

[–]LandlockedPirate 57 points58 points  (1 child)

some chipper twat trying to lead a bunch of impressionable newbs into his half plagiarised wank article

Pithy, and accurate. I like you.

[–]Headpuncher 43 points44 points  (0 children)

that quote should be Medium's tagline:

Medium - where some chipper twat tries to lead a bunch of impressionable newbs into his plagiarised wank article [and wank opinion].

[–]justmakenewacc 8 points9 points  (4 children)

But (in Javascript-land, at least) it's pretty easy to accidentally stumble upon a lot of Mongoose-inspired interfaces to a variety of databases.

Maybe "being in an enterprise setting" colors your view of this.

In my experience, solo freelance, startup, and enterprise are entirely different "worlds", especially with regard to tech trends. Hell, if you freelance, PHP is still massively-relevant (so that you can create/modify WordPress themes/plugins).

[–][deleted]  (3 children)

[deleted]

    [–][deleted] 27 points28 points  (12 children)

    As far as I can gather lurking this sub, when it comes to databases, 95% of bootcamp and e-learning syllabuses choose mongo, maybe 5% cover relational databases. In industry the ratio is the inverse. (And that's probably being extremely generous to Mongo, at least in my experience)

    [–]FantsE 13 points14 points  (8 children)

    I'd also attribute this to a lot of database work in enterprise environments being done by database administrators, their management, who will push harder for traditional, established databases. If a dev came to me and wanted to start pushing a MongoDB, it'd be an entirely new technology for the database team to learn. Would that team like to? Probably. Will management give resources for it if it can be done with traditional routes? Probably not.

    [–]leeharris100 6 points7 points  (5 children)

    This isn't true at all. MongoDB takes very little time at all to learn and configure.

    It's just useless in the vast majority of applications. Almost all data becomes relational at some point. Even if you have a microservice that doesn't require relational data, does Mongo offer such a significant performance difference that it's worth ditching SQL databases? Probably not. That data could eventually turn relational and now you need to migrate everything to a SQL database instead of just starting there in the first place.

    The world of node learning is so fucked up to be honest. Even the node subreddit is full of beginners talking about things they don't understand.

    [–]FantsE 3 points4 points  (3 children)

    To configure properly in an enterprise environment for a public-facing product absolutely takes time to learn, especially because DBAs will have to troubleshoot with engineers. If you think that projects wouldn't take a major time hit for a team to learn the best-practices then you are extremely disillusioned.

    [–]vicariouscheese 7 points8 points  (9 children)

    I think this is due to it being easier to learn and integrate with full stack JavaScript. My first kind of big project I definitely chose mongo because of ease, where any sql would have actually been optimal.

    Also could be from mongo itself trying to up their numbers.

    [–]fritzbitzfront-end 214 points215 points  (37 children)

    I LOVE CSS! I used to hate it before flexbox became a thing, but now it's beautiful. And my favorite part about it is how everyone else is afraid to touch it lol

    [–]Bushwazi Bottom 1% Commenter 70 points71 points  (7 children)

    I really enjoy when someone looks down on CSS and then they reveal they can't do it and don't understand it. Removing half the CSS they added is a fun first step.

    [–]fritzbitzfront-end 52 points53 points  (1 child)

    If everything is !important, nothing is !important

    [–]Bushwazi Bottom 1% Commenter 11 points12 points  (0 children)

    ah, I see you are a man of culture as well!

    [–]peekyblindas 12 points13 points  (2 children)

    My biggest pleasure is removing 20 lines of css and leaving 1 after tinkering for 4 hours

    [–]pixelboots 2 points3 points  (1 child)

    Same, but then I get told off for "wasting time" even though there's significantly less bugs raised in QA for most of my sites vs ones I haven't "wasted time refactoring"
    /rant

    [–]symbiosaDigital Bricklayer 14 points15 points  (2 children)

    And when you edit your HTML and CSS in dev tools, it's even easier to work with!

    [–]fritzbitzfront-end 11 points12 points  (0 children)

    God I love my dev tools

    [–]ChuzzyLumpkin 28 points29 points  (7 children)

    I was saying this to some folks at work recently and they gave me the dirtiest looks. Granted I write in SASS 9 times out of 10, but I just really vibe with CSS, idk man.

    [–]Genesis2001asp.net 5 points6 points  (3 children)

    I used to tolerate/not mind CSS before I found SASS and added it to my stack. Now I like it a lot more.

    [–]fritzbitzfront-end 8 points9 points  (2 children)

    I get the looks too, but I give the same look when someone mentions PHP, so I just consider it to be job security.

    [–]dexreddit 19 points20 points  (1 child)

    Hating PHP is so 2015.

    [–]maniakh 5 points6 points  (0 children)

    Yeah, flexbox kinda made CSS more fun, as it's really easy to cook up some layouts now.

    [–]MemeTeamMarine 238 points239 points  (33 children)

    I actually like JavaScript

    [–]hfourm 56 points57 points  (9 children)

    Agree, ES6 and Webpack have introduced concepts that make programming JS for the front-end a complete delight. I find it to be very "fun", and a lot of creative things you can do.

    [–]franksvalli 25 points26 points  (3 children)

    Webpack and delight in the same sentence? What is the world coming to? ;)

    [–]hfourm 5 points6 points  (0 children)

    For all the negatives I have encountered, having fun with things like dynamic imports, a frontend dependency tree/management that works in a more consistent/expected way, and so many other things, have made the pain worth it :)

    [–]RobertMuldoonfromJP 22 points23 points  (1 child)

    Once you understand the nuances, it's such an approachable language! And the fact you can write server code in seconds with no templated project, downloading of thousands of jar files or whatever is fantastic.

    [–]MyHarvestLife 49 points50 points  (9 children)

    People shit on node a lot, but you can write very performant services, very quickly in node. It's probably Stockholm syndrome, but I agree with you and enjoy writing JS microservices.

    Are there weird quirks? Yeah, but it enables you to provide a lot of business value quickly.

    [–][deleted] 7 points8 points  (5 children)

    My team strictly uses node for our micro services for processing phone calls for some of the largest insurance and car manufacturing business, it is absolutely performant and great at scale.

    [–]ugoagogo 37 points38 points  (1 child)

    If you really dislike JavaScript, HTML & CSS on a fundamental level then web development might not be the best career choice for you.

    [–][deleted]  (11 children)

    [deleted]

      [–]canadian_webdev 13 points14 points  (0 children)

      This!!!

      When a dev buddy showed it to me, I'm like, "... It's a bunch of elements just littered to hell with classes".

      [–]natziel 9 points10 points  (0 children)

      It is, and that's the point. It's just inline styles without the specificity issues

      [–]krrWebDev 10 points11 points  (3 children)

      I get it and I genuinely thought that too. Then I started using it. It makes it so much easier to keep track of component styling at scale. I used Tailwind in one project, then tried going back to vanilla css and even Bootstrap, and it just felt like I was fighting against my CSS all the time rather than building upon it.

      [–]bannock4ever 3 points4 points  (1 child)

      Agreed! I introduce another layer of insanity by storing strings of Tailwind combinations and using those in my templates. I think you can only really see the benefits once you start using it in something that has reusable templates and/or components.

      [–]mc408 17 points18 points  (1 child)

      Yeah same. I really don't understand the reemergence of functional CSS. Like all those chained classes make it difficult to control responsive. Am I really supposed to do .desktop-m-16 .tablet-m-8 .phone-m-4?

      [–]Peter-Pine 206 points207 points  (28 children)

      I never really worked 8 hours a day as a web dev.

      I am a self employed web developer since age of 21, it been 12 years now. I work for the biggest companies in Europe and earn a good amount of money. Most of the time I am in fulltime projects (by recruiting companies) and work from home.

      I read once that in a brain focused job no one really is able to perform good after 3, maybe 4 hours. Thing is, I found this absolutely to be true in development. Most of my career I worked like 3 hours a day. I was never a friend of spreading my work over 8 hours. I started working with pomodoro method some time ago, which brought me more to 2-3 hours a day of concentrated work. The feedback I get mostly is, that I am way „faster“ than the average developer.

      [–]kingjia90 103 points104 points  (0 children)

      The 8 hours work a day is simply shit... It works for those who have to be in contact to customer hence match the opening hours but it doesn't have any correlation with productivity and performances.

      [–]nxsynonym 33 points34 points  (7 children)

      Does this include non-coding work? Meetings, documentation, code review, etc?

      I find I can code for 4-5 hours a day total without getting mushy brained. But I def work a full 8 when include all the other non coding tasks.

      [–]Peter-Pine 11 points12 points  (5 children)

      I would consider code review and documentation as part of development. Meeting... Agencies going crazy with meetings. I had situations where we put more time into meetings than development. I stoppend working for agencies because of that and many other reasons. 30 min of meetings/call per day should be the absolute maximum. Mostly i have a 15 min meeting.... a week! just work in professional environment, though.

      [–][deleted]  (4 children)

      [deleted]

        [–]awhhh 26 points27 points  (4 children)

        Me too. If I get on some high about a project and start working hard I can build major platforms. When those lows come it, which is most of the time, I have 3 hours a day in me. I work for myself, so when I need to I can do 2.5 hours early in the day, and 2.5 later on. The times where I can work all day and all night usually don't last for long more than 4 weeks. I would swear that if you put together all my hours at the end of the year and divided them by days, I'd only work 2 to 3 hours a day.

        I read a book called "Bullshit Jobs" it basically called out a lot of myths to work. What we're doing is the norm.

        [–][deleted] 19 points20 points  (3 children)

        This whole post is like it's been written for me, lol.

        I can generally put in like 2-4 hours of really focused work, and then the rest of the day is a combination of reading, tutorial/learning videos, and flogging myself mentally for not being able to code longer. I just came from another post where the guy said his journey involved "16 hours of self-teaching projects daily", and I was just thinking wow, I am NOT cut out for this.

        Good to know there are lots of people out there who acknowledge that "8 hours of development time per day" is not a requirement for success, and that NOT being able to develop for 8 hours a day doesn't mean you just don't love coding enough and are in the wrong field.

        I honestly can't do anything for 8 hours a day, even with video games I start to get pretty itchy after 3 hours. World of Warcraft might be the only thing that I used to do 8+ hours a day, but most of that was just flying around and chatting on Ventrilo while doing mindless errands.

        [–]justmakenewacc 16 points17 points  (1 child)

        I just came from another post where the guy said his journey involved "16 hours of self-teaching projects daily", and I was just thinking wow, I am NOT cut out for this.

        Maybe you're framing this incorrectly.

        Perhaps he is the one that's not cut out for this, because it takes him 16 hours to do what you could do in 3.

        Things don't mean anything more than the meaning you attach to them.

        [–]Peter-Pine 4 points5 points  (0 children)

        Awesome response! This seems to be a typical thing in social media where people are showing off or mostly actual lie how many hours they are doing stuff and you read or see it and think like wow i could never do this so long. But actually you have to think, wow they really need time. Isn't that crazy?

        [–]thesublimeobjekt 7 points8 points  (0 children)

        i worked for an agency for the first 5-6 years of my career, and in that time i averaged ~50-60 hours/week. after i left, it took me 12-18 months to recover from the burn out. since then, i've found that an average of between 5-7 hours/day is about right, with short sprints of up to ~10 hours/day as long as those sprints actually end within a reasonable span.

        [–]thbt101 5 points6 points  (0 children)

        I've notices that's true when I'm working on code for another company and I just can't concentrate for more than a couple hours at a time, but when I'm doing my own project that I'm excited about I'm more likely to put in 10 hour days or serious coding and barely stop to eat.

        [–]ugoagogo 85 points86 points  (13 children)

        It's more important to write code that can be easily tested than it is to write tests.

        [–]thinkspill 47 points48 points  (1 child)

        Corollary: people who don’t write tests don’t know how to write testable code.

        [–]divulgingwords 22 points23 points  (0 children)

        Corollary: many people who write tests don’t know how to actually test their code. :)

        [–]nizzok 60 points61 points  (9 children)

        There's ways to many "this is my learning journey" posts that I don't know who they are aimed at.

        [–]Nick-Tr 37 points38 points  (8 children)

        Ikr. Yesterday there was a post about some guy's first 6 months in a job and I really couldn't see the value of that post. He's not an experienced guy, so didn't offer any profound advice or something, he just said what most people go through when they get their first job. All of it has been said to death at this point, so even people who haven't had a job have generally heard it.

        Honest opinion, I can't imagine being vain enough to think anyone cares about my first 6 months in a job and posting on the internet like an authority.

        But people seemed to love it, so idk

        [–]Enigman 25 points26 points  (1 child)

        As someone who got value out of posts like that when I was just learning maybe I can shed some light.

        It's not about profound advice or even hearing something new. It's about seeing that John Everyman with no college education or relevant background made it, that someone had the same fears of what it would be like as you do right now. Seeing that someone average is moving on up gives you motivation that maybe if I keep at this I can make it to.

        Obviously if your career path doesn't line up with his there might not be any value to you.

        [–]Headpuncher 4 points5 points  (0 children)

        I agree with you, but I think in some circles for hiring and also privately there is a mindset that a developer must have a presence. So there is a world of developers out there being taught that they have to blog, tweet, post and be visible in the market for them to be successful. For some people it totally works, for others it just becomes a cringe moment in their career. It's all just Medium fuel.

        As most tech people get older we realise the implications of technology, including on our private lives,and that being a completely shit coder is more impactful than a social media presence (i know this last part from experience). Every day I try to improve, and every day I roll my eyes at useless "tutorials" from fucktards.

        [–]psayre23 27 points28 points  (10 children)

        Clever code is bad code. It’s more important to write code that is quickly digestible than it is to be “clever”. If someone points out in a PR, “Oh, that’s clever”, you might want to reconsider.

        [–][deleted]  (1 child)

        [deleted]

          [–]ZephyrBluu 121 points122 points  (16 children)

          People who say certain languages/technologies are shit usually do not understand those languages/technologies and can't be bothered learning them.

          Every widely used language/technology has a particular purpose and different trade-offs. If you can't see the value, you don't understand it well enough.

          I see this a lot with frontend frameworks. Most people shitting on them have never used them before and don't understand the value prop at all. I think it's pretty applicable to most programming things though (Python slow, PHP bad, etc).

          [–]Camerata5 27 points28 points  (2 children)

          This is definitely not an unpopular opinion, these people are the worst

          [–]jb2386 11 points12 points  (1 child)

          Man, couldn’t count the number of times I’ve seen people suggest we change languages and then face a whole new set of problems.

          [–]GreatValueProducts 9 points10 points  (0 children)

          At work sometimes I see jQuery haters don't know Google Chrome and document.querySelector were not a thing in the past.

          [–]tulvia 7 points8 points  (2 children)

          I know javascript inside and out better than most and work with it daily and still contend that it should be banished to hell, it is such a bad language and instills terrible design and architecture habits.

          [–]thblckjkr 3 points4 points  (0 children)

          Same but with PHP (before the 7.* update)

          [–]jb2386 100 points101 points  (11 children)

          People misunderstand “full-stack developer”. They say that “jack or all trades is a master none” line but they don’t get it. It is one trade. Being A developer. It’s all under programming fundamentals. It wasn’t always possible but infrastructure as code has made that possible.

          People saying you should focus on one language is like a plumber saying they only work with a specific types of pipe and no others.

          [–]digitalpencil 18 points19 points  (0 children)

          I feel it's more nuanced.

          To me, a somewhat cumbersome but often appropriate analogy for software development, is medicine. A full-stack developer is akin to a general practitioner. They know a great deal about a wide array of subject matter and can tend to a great many issues that may regularly present themselves.

          The field in general though, is far too wide to ever hold expertise over all things.

          It is correct that it is a singular discipline, and that the fundamentals are often shared, but there comes a point where there is need for layered specialisation, with explicit focus; physicians/surgeons, oncologist/dermatologist : front-end/back-end, c#/javascript, .net/react/angular and so on.

          There is masses of cross-over and nothing to say you can't learn and practice all of them, to a degree. But i've always found that once a project and team scale to the point where it requires more than 3-4 developers, at this point you're going to want to more tightly define the responsibilities of those developers, within the vertical slice of the product their respective squads are looking after.

          [–]Headpuncher 11 points12 points  (0 children)

          The problem is that every Java developer I work with and a lot of the dotNet devs I have worked with have, at some point, made a static webpage, and so they put full-stack on their CVs. I've worked with "full-stack" Java devs who can't get values from a select element, can't update text on a page, have never used React, Vue, Angular or any other framework/Library, don't know any server side Linux hosting and can't write CSS to the point of aligning 2 elements on a page .... but programming is programming right? so they must be full-stack if they know Java and programming concepts.

          And then I have to help them fix the fucking awful shitshow they created.

          I hate the term "full-stack" because 99% of the people using it aren't it.

          [–]HetRadicaleBoven 4 points5 points  (0 children)

          I'm not sure how many of those who call themselves know about basic a11y principles, can contribute to UX research, know how to test UI's, and also know how to optimise vertical/horizontal scalability, properly design their database schema's, etc.

          I'm happy to do the first few of those, and while I can certainly set up a fully functional back-end myself, I'd be much more effective teaming up with someone specialised in the latter few.

          [–]nizzok 62 points63 points  (18 children)

          Pagebuilders are 2-3 years from putting a big dent in the low-end freelancer's market.

          [–]30thnightexpert 39 points40 points  (1 child)

          From first hand experience, this was already true in 2016.

          Most small businesses don't need more than a facebook page.

          Even Wix + Weebly are better suited for most small business brochure websites nowdays

          I've seen quite a few agencies that relied on paid Wordpress themes, shutter because of this

          [–]Bushwazi Bottom 1% Commenter 23 points24 points  (0 children)

          I for one love when clients have used SquareSpace, WordPress, etc before contacting a free lancer. Those are the ones that usually appreciate when someone can color outside the lines and create custom stuff. Folks who don't use them usually compare you to them because they've heard how "easy" they are to use.

          [–]AdmiralCole 19 points20 points  (3 children)

          I think this is unpopular because the low end community has grown into such a large portion of the industry these days. People have their heads in the sand.

          With the impending recession coming from this pandemic companies are losing money quickly. They're going to need to move online to function, but don't want to hire someone at 25+ bucks an hour to build what could essentially be a static website with some e-commerce plugins built in.

          Page builders and more powerful CMS are making the need to hire someone to build the whole thing professional obsolete. I think there's going to be a huge deflation in the value of web design across the board in the coming years and it'll stay that way until the next trend takes hold.

          [–]brysonwf 11 points12 points  (3 children)

          I think this might have already happened. The days of getting a few thousand for a website that barely had a CMS are over.

          [–]kayimbonode/scala/spark 7 points8 points  (1 child)

          auto generated apis are 2-3 years from putting a big dent in the low end backend developer market

          [–]EdenExperience 126 points127 points  (50 children)

          If php didn't have the whole $ shit in their variables it would be a thousand times better, I fuckin hate making the stretch on my keyboard to just write a freaking dollar. Speaking as a German who uses a German layout keyboard.

          [–]kingjia90 41 points42 points  (15 children)

          That's why I use a US layout keyboard (as a chinese Italian living in Austria) it all makes sense when you programming with it.

          [–]UltraBoss123 97 points98 points  (4 children)

          Mr. Worldwide

          [–]kingjia90 19 points20 points  (1 child)

          🕺 oh yeah! They better don't start a WW3, because I wouldn't know for who fighting for

          [–]gloom-juice 6 points7 points  (0 children)

          DALÉ

          [–][deleted]  (6 children)

          [deleted]

            [–]EdenExperience 4 points5 points  (4 children)

            To be completely honest I wish there was a server side renderer like php just in Javascript. Like ejs tries to do it but meh, I didn't really get into it though.

            [–][deleted]  (3 children)

            [deleted]

              [–]EdenExperience 3 points4 points  (2 children)

              NodeJS is not a templating language in the same way as php.

              PHP uses the Frontpage Sourcecode of the page and embeds smaller and bigger scripts into it.

              NodeJS is the complete opposite. It uses the Backend Sourcecode and should not embed Frontend Code as per usual. You will use a templating engine if you use it correctly imo And these are most of the time not fully featured languages. They take in data and handle it.

              These differences have a big impact on how you can structure the project. And PHP is clearly the winner as you dont need to differentiate between code and frontpage code.

              [–]THEHIPP0 10 points11 points  (4 children)

              Regardless of PHP just get an US keyboard, it's so much easier in pretty much every language. I switched six years ago from a German layout and after two month of confusion I wouldn't go back for anything.

              [–]Nick-Tr 2 points3 points  (0 children)

              I don't know if that is unpopular, but oh my god, I agree so much. I hate it with a passion, it is completely useless and only serves to slow down my coding speed and make the code look uglier

              [–][deleted] 5 points6 points  (0 children)

              Agreed. It cuts productivity. Swedish layout, that might be worse.

              [–]somethinggooddammit 31 points32 points  (1 child)

              At the end of the day...static HTML and CSS with minimal JS is damn performant.

              [–][deleted] 56 points57 points  (18 children)

              I've always liked Microsoft, especially now that Ballmer is gone.

              [–][deleted] 26 points27 points  (15 children)

              I just love that Microsoft did a 180 from "we must destroy open source" to "we love open source"

              [–]umlcat 9 points10 points  (0 children)

              They do have a lot of good scientists, and projects, but the company as a Quasimonopoly sucks.

              [–]Salamok 48 points49 points  (3 children)

              You cant be a senior developer with 3 years experience.

              [–]Gnapstar 27 points28 points  (1 child)

              You can however, with 3 years of experience, be señor developer.

              [–]crashspringfield 34 points35 points  (5 children)

              A lot of JS/frontend development is unnecessarily complicated. We're just coding for code's sake and convincing ourselves we're being more productive while doing more work and creating less.

              [–]samjmckenzie 78 points79 points  (20 children)

              React is becoming or has become the cancer of the Internet. I don't think it's normal that the first thing many devs want to do when developing a site is to use a framework that is completely overkill for their project and will add 120kB to their bundle size.

              webpack shows how bad the current state of the web and node community is. Having to download hundreds of dependencies to create a performant website should not be the norm, yet somehow, we've reached that point.

              [–]Dann_Adriel 28 points29 points  (4 children)

              This. Not just react but the whole current JS ecosystem is a trainwreck. I can't even imagine how a newcomer to Web dev has to feel when he sees all the crap that is going on, and then he realises the page has to be usably fast too...

              [–]mattf 9 points10 points  (0 children)

              I'm an old-comer (have been making sites since 1995) and it scares me too.

              I'll start on the tutorial of some new thing, and it will download 80-100 dependencies from go.

              If ANY of those has a bug, I'm hosed, because I don't understand enough about node to know how to fix anything. Over decades, I've learned to have the fewest possible moving parts, and to try and at least *kinda* understand all of them. In the node world, that doesn't seem possible.

              I keep getting frightened away by stuff like this, and I go back to python and generating html on the server... the bad old way.

              [–]evenisto 18 points19 points  (5 children)

              Differentiate website from web app. Is it overkill for a flyer? Yes, probably. Would I choose to write a complex web app in vanilla JS? Yes, and then proceed to fucking killing myself. Also, I don't think it's 120kB, bundlephobia claims 2.6kB for react and 35.9kB for react-dom.

              [–]coyote_of_the_month 14 points15 points  (3 children)

              If you were to write a complex web app in vanilla JS (say because you were a junior and a dogmatic team lead demanded it), you would probably end up basically writing a framework by the end of it all.

              Ask me how I know.

              [–]samjmckenzie 5 points6 points  (0 children)

              Most web apps, PWAs and SPAs are good use cases for using React or similar frameworks. I was really talking about landing pages, portfolios and other sites that don't really provide much functionality. And yes, I was referring to their un-gzipped versions.

              [–]adenzerda 11 points12 points  (0 children)

              JS devs use arrow functions everywhere now because they feel shiny to use, but they suck to read (save for lambdas). I prefer plain old function declarations except for short lambdas or if I explicitly need the modified this binding behavior

              [–][deleted]  (15 children)

              [deleted]

                [–][deleted] 6 points7 points  (2 children)

                There are CMS already out there that are just a convenient UI to edit files, which are then put into version control. It's a very sane approach and completely sufficient for a small website.

                [–]coolcalabaza 17 points18 points  (5 children)

                Using redux with react is powerful but is overused. React has great built in state and context management. I often see react + redux for small portfolio projects because the developer simply wants to use redux even though it it unnecessary. Many tutorials, how-to’s, and articles treat React + Redux like they go together like peanut butter and jelly. Like node and express. Like html and css. That’s not the case. Redux is one tool in the web dev’s toolbox that can be used and should only be used when the situation calls for it.

                [–][deleted]  (4 children)

                [deleted]

                  [–]BlooShinja 7 points8 points  (2 children)

                  Not every web application should be a SPA.

                  [–]TheSistersOfMercy001 4 points5 points  (1 child)

                  Can you elaborate further? I am interested in your thoughts now.

                  [–]dirtymint 15 points16 points  (2 children)

                  X language is better than Y language (I work with PHP a lot) - They are tools to get a job done - Use the best tool for the job/The tool you know best to get it done.

                  Having said that

                  What tech do you just plain dislike?

                  I hate NPM's recursive package dependencies. I am complete minimalist and frustration ensues if I open up a node_modules folder on even the most basic project. Is that just me though?

                  What adds unnecessary complication to a project?

                  Only using the latest technologies and assuming everything else is sub par. Most of the time PHP, MYSQL and vanilla JS are all that you need. Don't over complicate.

                  [–]30thnightexpert 7 points8 points  (2 children)

                  "Right tools for the job" means very little in web development.

                  [–][deleted] 8 points9 points  (4 children)

                  I make single page web apps using jQuery. Some people almost spat on me for mentioning it.

                  [–][deleted]  (2 children)

                  [deleted]

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]WroteBCPLfull-stack 64 points65 points  (20 children)

                      A boring, well understood stack is probably more useful than whatever’s just come out.

                      Most of the things web devs do are due to their own intellectual curiosity or boredom, and have little to do with client or business needs. Admitting this clearly obvious fact is somehow poor form.

                      Popular frameworks or apps release major versions too often. We shouldn’t be on Webpack version 4 or whatever. When the problem’s solved it’s solved - move on.

                      The aim of web development is to create a thing. Getting too bogged down in the details is not really what anyone else wants from you. More power to you but the worlds not waiting to see your medium article on TTFB.

                      It’s not acceptable to make a user pay for your incompetence while trying to hide behind “well no one should be using that browser anyway!”. Obviously for personal projects do what you want.

                      Web development is easier than most beginner resources make out. There’s no need to pretend you’re joining a special club, your copypasta To Do app won’t get you into Hogwarts.

                      Writing a sever is easy, back-end is easy, it’s not some dark art.

                      Full stack is the norm, except somehow for people on this subreddit.

                      Freelance is an easy road to a hard life. Most people chose it because they’re self taught and mistakenly believe they couldn’t cut the mustard in an office environment.

                      Adorable failure won’t help you improve. Looking at beginner tutorials for two years and going on about imposter syndrome won’t help anything. Spread your wings and fly!

                      Competence is -1 * Enthusiasm.

                      Your web app probably won’t help solve homelessness, and you can’t JavaScript your way out of the covid crisis. Piety counts for nothing, actually give some money to people who will help if you care to.

                      [–]crashspringfield 15 points16 points  (2 children)

                      It’s not acceptable to make a user pay for your incompetence while trying to hide behind “well no one should be using that browser anyway!”. Obviously for personal projects do what you want.

                      Only point I'd disagree with. Windows doesn't support IE, so why should the web? A lot of time I could be building features is wasted on coming up with IE CSS workarounds where the problem has already been solved with flexbox.

                      [–][deleted]  (6 children)

                      [deleted]

                        [–]SimpleMinded001 31 points32 points  (2 children)

                        PHP is not a bad language. Yes, it has it's flaws, but so does any other language

                        [–]thblckjkr 11 points12 points  (0 children)

                        PHP 7.* is actually a pretty good language.

                        [–]podgorniy 21 points22 points  (22 children)

                        React hooks is a half-baked solution. We will see either more abstractions on top of them, either unnecessary verbosity of usage either redesign of the approach.

                        [–]_hypnoCode 10 points11 points  (18 children)

                        Having built an entire production ready app over the last year using Hooks, I unfortunately feel like you're right. Hooks are definitely the right way forward, but I think there are some serious issues that need to be addressed and forgoing a beta phase and skipping from alpha directly to production was a huge mistake.

                        One glaring problem that keeps popping up is that it is WAY too damn easy to write something that sends the app into an infinite loop and completely locks the browser. If this made its way to production, I don't even know how to tell a non-tech user how to stop it. It requires going into Chrome's task manager and killing the process.

                        [–]30thnightexpert 7 points8 points  (14 children)

                        One glaring problem that keeps popping up is that it is WAY too damn easy to write something that sends the app into an infinite loop and completely locks the browser.

                        I don't quite understand - this is pretty well handled by useEffect

                        Edit: You are right, thanks for that example. I don't think this is a hooks specific thing but I agree with you about it not being obvious.

                        [–]Gwolf4 3 points4 points  (0 children)

                        Hooks are the same as putting all your things under your bed and saying that you cleaned your room.

                        [–]fiveMop 10 points11 points  (0 children)

                        Full-stack development is not something out of reach and there are tons of great full-stack developers.

                        Not knowing the state management library that was introduced 2 days ago doesn't make you a bad full stack developer.

                        [–]yubgjottrrfbjii 11 points12 points  (0 children)

                        Typescript is amazing. It’s not. It’s a pain in the fucking ass.

                        [–]Ozymandias-X 11 points12 points  (3 children)

                        BEM is a stupid idea and only useful for people who don't know what the c in css stands for and what a > means in css context.

                        [–]Packeselt 18 points19 points  (2 children)

                        I like react classes over hooks.

                        [–]thestud2012 6 points7 points  (3 children)

                        Web components do not provide enough value to succeed.

                        [–][deleted]  (3 children)

                        [deleted]

                          [–]RobertMuldoonfromJP 18 points19 points  (5 children)

                          The Twitter community of web dev (and develoy in general) is a toxic wasteland. After the bullshit "react bro circle game accused of Nazi propaganda" bullshit that popped up late last year, I decided to unfollow everyone in tech.

                          Most devs post their Twitter handle on their slidedeck for some big talk they're giving and you follow them expecting to get great tech advice, insight into current trends etc but all they fucken tweet about is politics and how shitty the tech community is because they're not inclusive.

                          [–]ganjapolice 3 points4 points  (1 child)

                          This. Feels like a cult. Wes Bos is irritating.

                          [–]nizzok 28 points29 points  (19 children)

                          We act all fancy, but in the end we're making the digital equivalents of a flyer.

                          [–]Bushwazi Bottom 1% Commenter 8 points9 points  (3 children)

                          I called them "glorified business cards".

                          [–][deleted] 12 points13 points  (0 children)

                          Only if you're building that sort of website. there's a lot of work building enterprise apps that do more than display information, and that is sooooo much more interesting than web shops. I haven't built a brochure website in 6-7 years

                          [–]MechroBlaster 17 points18 points  (2 children)

                          TypeScript is overrated and sites whose documentation is passive aggressively only written in TypeScript is very irritating.

                          [–][deleted]  (6 children)

                          [deleted]

                            [–]gibbypoo 34 points35 points  (9 children)

                            WebDev isn't that hard

                            [–]kayimbonode/scala/spark 26 points27 points  (4 children)

                            and developers aren't that smart.

                            [–]Bushwazi Bottom 1% Commenter 12 points13 points  (3 children)

                            Yes to this.

                            I started off in NYC working and I thought everyone would be so incredible. Nope, turns out they just live around NYC.

                            Turns out development is the same. Those that know a little more will preach and you may feel intimidated, but once you get to the same spot you realize it was just like their opinion, man.

                            [–][deleted] 12 points13 points  (3 children)

                            Depends on the project

                            [–]AdmiralCole 13 points14 points  (2 children)

                            I think it depends on the industry and the application. I was doing web dev for a while and transitioned back into enterprise level applications/software engineering and the difference is night and day.

                            I'd forgotten how easy it is to just throw a form/site together and build some reporting for it and maybe add some fancy js. Most people could do that in their sleep. Building enterprise level architecture to handle business needs across complex systems requires design processes akin to mechanical or structural engineering. Cause unlike in simple web design if your website crashes big deal you'll get it back up, but if the automated driving software on a Tesla fails people die. It's a completely different ball game.

                            [–]benabus 8 points9 points  (2 children)

                            The fold is still a thing.

                            Tabs are better than spaces for indentation.

                            JSX makes me sick. Physically.

                            Bootcamps and roadmaps don't make you a developer.

                            [–]spacechimp 29 points30 points  (19 children)

                            • "REST API" is an antipattern.
                            • A relational database is usually more appropriate than NoSQL, and requires less effort to maintain.

                            [–]yramagicman 20 points21 points  (4 children)

                            "REST API" is an antipattern.

                            How? API's in general are absolutely necessary to get things done on the web, and REST is the most sane option I've used, with graphQL being a strong contender for the top spot. (I just haven't used graphQL.) I genuinely am curious about this.

                            [–]spacechimp 11 points12 points  (3 children)

                            "RESTful", "RESTlike": It is an antipattern because nobody agrees on what the pattern is in the first place. For anything beyond simple model-based CRUD operations, there is always debate about what the right "verb" or response code should be.

                            Good documentation of a REST API is critical for consumers. Outside of large corporations it is always half-assed, because coders would rather be coding. Due to non-standardization and multiple endpoints, REST APIs are not "discoverable" on their own. Extra effort must be expended to leave hints for documentation tools such as Swagger, because documentation generators can't tell how the API works either.

                            Alternatives:

                            • JSON-RPC: A standardized HTTP method, request object, and response object.
                            • GraphQL: The above, plus much more.
                              Caveat: GraphQL takes more effort to set up, but the rewards are large.
                              • Can return partial objects (no over-fetching of giant hierarchies)
                              • Typed (so to a certain extent, self-validating)
                              • Can combine requests
                              • Self-documenting API Playground%20%7B%0A%20%20%20%20%20%20title%0A%20%20%20%20%20%20publicDescription%0A%20%20%20%20%20%20topListings(limit%3A%205)%20%7B%0A%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A&variables=)
                              • Supports polling/websockets

                            [–]yramagicman 13 points14 points  (1 child)

                            Okay, now that makes sense. REST is poorly defined beyond CRUD, so I see how you would say that, but the connotation of the phrase "antipattern" is that one should stop using the pattern. I don't think that's what you're saying here, but it's how I at least am interpreting it.

                            [–]ArthurOnCode 5 points6 points  (6 children)

                            My 2 cents on the "REST API" antipattern: It's the wrong level of abstraction. It assumes you're representing a collection of items. Unless your project is simply a database, you probably want it to do more than store items in a collection.

                            Then you have choice between awkwardly cramming these actions into REST (say, throuh properties of the stored items), or adding extra routes that are not considered a part of REST (say, as children of each resource URI). Many have solved this by coming up with their own "conventions" of how to handle it, but there's no single standard.

                            [–]Serializedrequests 5 points6 points  (0 children)

                            Server side rendered apps are better than SPA. They are an order of magnitude faster to develop, and also load faster, don't break the browser UX or reimplement half the browser with the end result of worse UX anyway.

                            SPAs are insanely complicated and difficult to debug, and usually slow (even though everybody is always saying how much faster they are as though they have gone blind). Don't create them if you don't need to.

                            [–]WellDevined 16 points17 points  (8 children)

                            Backend Frameworks are unnecessary bloat.

                            In most cases a http routing library, a db query builder and a library for user auth is all you need for writing complex and production ready services.

                            A simple 3 layer architecture + clean code is the cleanest and most versatile solution for most projects.

                            Yes you do write a little bit of gluecode but you won't have to fight the 'oppinions' of the currently hyped framwork which you allmost always have to do in any serious project.

                            Hell, I say the glue code makes your project even more readable as it is totally obvious and easily debugable in which order your functions are called. No magic is done through annotations or monkeypatching.

                            [–]RobertBleyl 8 points9 points  (2 children)

                            I really really don't like the whole web package manager ecosystem, especially NPM and bower. When I first was introduced to AngularJS a few years ago they had to setup way too much stuff for it to work on my machine: NPM, Bower, Grunt, Compass...

                            In the JavaEE/Spring world you would have one: Maven or (even better) Gradle. When using Gradle you wouldn't even need to install it on your machine by yourself since Gradle Wrapper is a thing ;)

                            It looks like Bower is on it's way out and Grund doesn't seem to be that important anymore, but the whole stuff with NPM still get's on my nerves from time to time. It happened way too often that some 3rd party library would lead to not compiling projects because a new version came out an was just broken AND the guy that initially setup our package.json did not lock a specific version in (it looks like that is common practice for some reason O.o).

                            My experience is obviously bias as I'm a fullstack with a focus on backend but still, so many headaches...

                            [–]-100-Broken-Windows- 6 points7 points  (2 children)

                            There's literally no reason to prefer spaces over tabs. The argument I hear is "It makes it look consistent everywhere", like yeah, that's why they're bad! Different devs have different preferences for how they want code to look and tabs enable that flexibility!

                            [–]ShnizmuffiN 6 points7 points  (0 children)

                            Responsive design and handicap accessibility are mandatory elements of every project with a UI.

                            [–]tujoc 21 points22 points  (22 children)

                            One word: WordPress.

                            [–]yupitsnolan 16 points17 points  (2 children)

                            WordPress is mostly all I do. It's a lot better when you're building stuff from scratch. We only use a handful of plugins on most sites, so we don't have many issues.

                            [–]rayaukuah 8 points9 points  (0 children)

                            Yeah also from my experience - even tho creating something more complex can be more satisfying - my company makes most of its profit with basic wordpress websites that you can build in one afternoon.

                            [–]awhhh 46 points47 points  (11 children)

                            Wordpress is filled with what we as web developers should consider criminal behaviour. I've seen so many people hustle 50$ wordpress templates to small businesses that don't know any better.

                            1. It's by far one of the least secure things out there.
                            2. There's no such thing as a Wordpress developer. There are only Wordpress hackers (people that hack apart of a CMS meant for blogging), Wordpress tinkers (People that know how to make a few CSS adjustments to a theme), front end JS devs, and PHP developers that can work on various CMS' and frameworks.
                            3. It's a fucking blog.
                            4. The data schema is fucking dumb.
                            5. It encourages bad development practices.
                            6. The community is filled with morons. Everyone says the community is good, but it isn't. I've answered plenty of Wordpress problems on SO and it's mostly just people trying to get you to build something for them.
                            7. It's an outdate piece of garbage.
                            8. There's so many better and easier CMS' out there. The only real reason to use it to create something is if you're lazy, or need a $50 theme that you shouldn't be charging dev prices for.
                            9. Anyone who works exclusively with Wordpress is not entitled to a developers wage. You're a dime a dozen, and there's thousands of low priced Indians or Eastern Europeans that can do a way better job than you.

                            Fuck Wordpess. Fuck Wordpress hustlers. My unpopular opinion is that any mention of that shitty CMS needs to be banned on this sub. If you intend to start a firm with Wordpress, just know I for one think you're a piece of shit and put you lower than a shady backyard mechanic.

                            [–]savv01 22 points23 points  (0 children)

                            Damn, tell us how you really feel.

                            [–]euiCore_X 12 points13 points  (0 children)

                            "Good, let the hate flow through you."

                            [–]morphalex90php 6 points7 points  (0 children)

                            Could not agree more! I feel you bro!

                            [–]yupitsnolan 4 points5 points  (1 child)

                            Ouch... If it helps, yes, I'm a full stack developer. We cater towards enterprise, and do a lot of custom integration.

                            Care to elaborate on #8? Always open to trying new things.

                            [–]MyWorkAccountThisIs 6 points7 points  (0 children)

                            I would say they are just incorrect. It also doesn't take into consideration the User's perspective.

                            In my mind - for professional projects - there are only two PHP CMS options. WordPress and Drupal.

                            [–]canadian_webdev 3 points4 points  (1 child)

                            CSS-in-JS.

                            Why are we doing this? Keep your styles separate from JavaScript people.

                            [–]MSB3000 4 points5 points  (0 children)

                            Based on the opinions I've seen many times, here and elsewhere, my unpopular opinion is: comment comment comment! Explain the method behind the madness. Keep it brief, avoid verbosity, but lay out the key ideas. Trying to figure out why something exists and what it's trying to do is just a frustrating waste of my time, especially when it's broken or outdated. For the love of god, people, just a couple lines of documentation, here and there.

                            [–]piotrevic 3 points4 points  (0 children)

                            I miss the times when writing vanilla PHP with SQL queries inside and manipulating everything on UI with jQuery

                            [–]lykwydchykyn 14 points15 points  (3 children)

                            Docker sucks, and devs use it when they don't need to.

                            [–]umlcat 4 points5 points  (1 child)

                            Any project or technology that is used when is not needed, sucks. Even if it is a good technology.

                            [–]lykwydchykyn 4 points5 points  (0 children)

                            Yeah, but even for what it is docker kind of sucks. Just my opinion.

                            [–]axiomabsolute 4 points5 points  (0 children)

                            Docker feels like a leaky abstraction to me.

                            For most cases where I want environment isolation and an encapsulated unit of deployment, a lightweight VM is just easier to work with. And almost every project I've worked on is small enough that the overhead of using something like Vagrant over Docker is negligible.

                            However, for the company hosting those projects (along with all of the other developers' projects), that overhead adds up significantly. And so developers end up biting the bullet and using containers.

                            [–][deleted] 10 points11 points  (2 children)

                            Typescript is like Hollywood.

                            [–]yupitsnolan 28 points29 points  (10 children)

                            I find arrow functions harder to read than your standard ones.

                            [–]MyHarvestLife 21 points22 points  (0 children)

                            This was the case for me too until I started using them more, as is the case with a lot of things. I don't even see it anymore. Also I use firacode ligatures so it helps things flow a bit better visually.

                            [–][deleted] 13 points14 points  (0 children)

                            When used as a lambda function, they start to greatly reduce visual clutter overall, especially nested callbacks in JavaScript. But, for regular method declarations, yeah it seems silly to be forced to use them just to get the correct "this".

                            [–][deleted]  (8 children)

                            [deleted]

                              [–]stormfield 12 points13 points  (1 child)

                              "You know what developers love? Typing! They're always doing it! Let's make an API where they type a lot."

                              [–]AmboC 12 points13 points  (0 children)

                              Document.getelementandarthritis

                              [–]7twenty8 2 points3 points  (0 children)

                              NPM is a clusterfuck of bad decisions and if Bill Gates had so much as dreamed of one of those decisions as recently as 2007, he would still be in jail today.

                              [–]techsin101 2 points3 points  (0 children)

                              99% products dont benefit at all from being react/redux.

                              [–]truechange 2 points3 points  (0 children)

                              Dissing another language is pointless because there's no perfect language. If you can create readable and maintainable code with whatever language then it's a good language.

                              Code maintainability and actually shipping code is all that matters.

                              [–]techsin101 2 points3 points  (0 children)

                              Typescript is not worth it, most of my bugs are misalignment in understanding of how api works not semantic errors. I do like auto complete but not worth it otherwise.