7 ms·
The Sad State of Web Development
- CryoLogic 11y agoI stopped keeping up to date with the latest "trendy" JavaScript frameworks when I realized it was tanking my productivity. New JS libraries are coming out several times per year, and employers and engineers expect you to be familiar with them in order to get hired (e.x., we need React, Angular, Ember, Node and Meteor skills). But what really happens, is when you have 12 months of time, and you need to know a new library / framework every three months you are burning something like four months of time per year just getting used to the new tech. With RoR & AngularJS 1.5 I get a full-stack web application loaded with best practices that I can keep chugging away at building without ever worrying about what I need to hop onto next month.
- sotojuan 11y agoThis is what makes people frustrated: They feel the need to change their stack. In reality, what matters is that you ship good software. If you are comfortable with Rails and Angular like you are, there's no need to change your stack to Node and React. Sure, it may be beneficial to take a look at them just out of curiosity, but no one's forcing you to use them if you don't like them!
- dredmorbius 11y agoThat's an excellent nutshell description of one mode of a productivity / technology trap that I've noted for quite some time. I've been in and about technology since the late 1970s. There've been periods where it seemed that there were a large number of new technologies being promoted -- OLE, SOAP, and XML were several of the big ones, with a burst seeming to emerge just as the first dot-com bubble shattered. I still recall walking into a (now closed, of course) technical bookstore in a tech hub, and finding an O'Reilly title I hadn't seen before, with the blurb "The only book on $TECHNOLOGY_X you'll ever need". I did my standard scan: title page, contents, introduction, index. I never got the least idea of what $TECHNOLOGY_X was. That said, the blurb was accurate -- it was the only book I'd ever need, it only neglected to consider that I never needed it. For young techies who happened to cut their teeth on a skillset that is widely adopted by the industry, the world is your oyster. Eventually, that skillset erodes or is abandoned. I watched that happen to mainframe and VMS programmers, to Perl hackers, to various all-inclusive toolkits aimed at what were once called "Open Systems" (apparently nobody wanted to say "Unix"). And many Microsoft technologies (though some have been surprisingly robust). I'm watching it now with the set of Web technologies that have emerged post-2005. For many HN readers, Rails, Ajax, Angular, etc., are all you've ever known. For others, they're one more set of word-and-TLA-salad tossed out in front of us. When I cared to do so, I'd learn the technologies in front of me, well, and try to keep an eye on what's coming down the pipe. But with tech half-lives measured in single-digit years, if not months, that's increasingly difficult. And frankly, the results are also increasingly difficult to deal with. I see a recaptitulation coming, almost certainly with a vast simplification. I strongly suspect that someone's going to look up from Node.js-SOAP-COBOL one day and realise that they're accomplishing nothing Codd, Englebert, or Ritchie didn't pressage decades ago. We'll get a simple document format. Probably based on HTML or LaTeX. We'll get an applications platform. Commerce will be standardised to a small set of apps, almost certainly growing out of iTunes, Amazon, Google Play, eBay, or Craigslist, or someone taking on one of their positions. Media will get its own dedicated standalone player. And the titles "Web Designer" and "Web Applications Engineer" will be consigned to the same Schumpeterian scrap-heap of history as "stable boy". Perhaps retained for sentimental value by a small group of eccentric (although, by definition, fanatical) hobbyists. But otherwise rightly forgotten.
- andrea_s 11y ago"I'll tell you now, kid, it was all so much better when I was your age!" There, I've saved you from reading the article.
- efields 11y agoSeriously. This is a vile article with poisonous language that's little more than "kids these days" hyperbole. It has never been a better time to be an (insert your preferred coding environment) programmer: if you're unhappy with the code you're writing, I'm certain you can find a company that offers what you want in no time. Finding a job that suits your demands is a better use of your time than whining on Medium.
- tomelders 11y ago"I remember when this was all form fields"
- smadge 11y agoThat's not an accurate representation of the article at all. I don't think the author is suggesting that web development was nice overall in the past, but that it was nice in the sense that you didn't have to download >100mb of tooling, learn each of those tools and their various plugins, configure said tooling because out of the box they are useless, and endure 10+ second initial compile times, learn dozen of different libraries and frameworks, just to get a simple webapp working, where, 90% of the time, static, or server generated content would have sufficed.
- epmatsw 11y agoPrevious discussions: https://news.ycombinator.com/item?id=10882762 https://news.ycombinator.com/item?id=10882762 https://news.ycombinator.com/item?id=10880604 https://news.ycombinator.com/item?id=10880604
- krapp 11y agoThe sad state of HN dupe detection for medium.com links https://news.ycombinator.com/item?id=10880604 https://news.ycombinator.com/item?id=10880604 https://news.ycombinator.com/item?id=10882762 https://news.ycombinator.com/item?id=10882762 https://news.ycombinator.com/item?id=11035143 https://news.ycombinator.com/item?id=11035143 https://news.ycombinator.com/item?id=11020911 https://news.ycombinator.com/item?id=11020911
- mutagen 11y agoMedium appears to generate and append a unique tracking code onto each page load, you'll notice only one of those submitters was aware of it and stripped it off. I bet Medium has a nice social graph of blogger and social share influencers based on this tracking, leveraging this might be the biggest value of their platform.
- DrScump 11y agoThey add a phony fragment identifier to evade dupe checks -- a pretty pathetic way to augment traffic, unless there's a legit purpose for doing this that I'm not seeing (in all cases, there is no genuine corresponding fragment ID anywhere in the page). signalvnoise and buzzfeed also do this.
- danso 11y agoOne of the tricky things (I presume) about detecting Medium links is that they append a custom hashtag to the URL with each individual share, so that they can track the "path" of the sharing. So everyone who copies the Medium link from their browser will be pasting a new unique URL into the HN system. Maybe there should be a new rule written for the medium.com domain that strips the hashtag when determining if it has already been submitted?
- krapp 11y agoI wonder whether they shouldn't be stripped by default for everything. It seems like they're hacking what's supposed to be an in-document anchor, so it should be something HN can safely ignore. But that might be too simplistic.
- hacker_9 11y agoI'm surprised this surfaced on HN, which is usually crazily in love with all the 'innovative' new web technologies that keep popping up. Some of my favorite quotes from the article: "You see the Node.js philosophy is to take the worst fucking language ever designed and put it on the server." "That’s right. All you guys using React like it’s the only way to solve every problem ever are using it because Facebook couldn’t build a fucking notification icon." "PostCSS - People actually use this thing. Can a library actually do shit out of the box anymore? I just want to install something and use it, not decide all the little plugins I want to use."
- alanh 11y agoWe’re here just trying to keep afloat! :)
- escape_goat 11y agoI don't think that javascript can be seriously described as "the worst...language ever designed". I don't think that anyone who has ever written any non-trivial program in AppleScript could agree with that, and I am sure that there are other languages that are, in their own way, unquestionably worse. For me, it set the tone for the article and greatly diminished the value of his observations. After that patently hyperbolic statement, everything he said had to be taken as a possible exaggeration. This is fine if one has direct experience with everything he mentions and just want to read a colleague rant about a frustration one shares, but it means that this blog post is not a useful document to anyone else.
- plainOldText 11y agoI agree with the overall sentiment of the article. I've felt many times helpless trying to keep up with the the latest js framework or workflow (webpack, Babel, grunt, brunch, Backbone, Angular, etc). By the time I've gotten comfortable with some new piece of js software, a new one, even cooler had appeared. And on top of it, add the fact that I also enjoy learning new programming languages for the backend, and the mental overload is definitely ensured.
- travjones 11y agoI must admit, I'm a relatively new developer, and I also get overwhelmed by the number of new technologies coming out every day. I can't speak for "back in the day" web development other than things I've heard from older devs. For example, "back in the day" browsers sucked, like really bad. Compatibility issues were expected. For example, "How do I make sure this is compatible with IE7," etc. Although web development is not perfect, nothing really is perfect, and I think we have come a long way. At least, I'm happy I got into web development when everything was so approachable, open source software is so accessible, and places like HN exist where I can constantly learn new shit. I think the primary reason people are tired of new JS libraries is because there exists a certain kind of pressure that is hard to describe, but I will try. It's kind of like, "I don't want to miss out on the hottest framework"/"I don't want to fall behind current tech." The truth is, we should all ditch this mentality. Use what works for you and learn what you care about learning. When a new JS library comes out, don't groan, take a quick peek and decide if it's worth it to try to integrate it into your workflow. I think it's great to have options and the options in web development are seemingly neverending. I'm happy I write software for the web, and I think we should all recognize how far things have come. Yet, we should always strive to make the web better for users and developers alike.
- vkjv 11y agoI'm glad to see another like minded person. I see the massive explosion of web dev tools, frameworks and libraries as a good thing. I think it's strong indicator that things have become approachable. It's easy to create something new and share it with the world. I find the authors sentiment very similar to that of those who complain about "all of this terrible music." Music is much easier to create and distribute and that means more of it, which, IMHO, is a good thing.
- brianmurphy 11y agoMy biggest problem with all of the new libraries coming out is that it leaves me with the feeling that nobody want to improve upon what is already out there. I understand that paradigm shifts may require a rewrite. But nobody is shifting every 2 weeks and getting anything done. When selecting technology, I want to make a decision that will grow with me over the next several years. When perception is that each library of the day will be thrown out in 3 months, falling back to jquery/php is a really attractive option.
- xyzzy4 11y agoYou can make very nice applications with the same LAMP stack that's worked since 2002 or so. All these modern frameworks are just a huge time-waste in my opinion. You don't need 20 libraries to make an XMLHttpRequest.
- CodingGuy 11y agoSo true!
- bobby_9x 11y agoThis works for small projects or sites (or if you want to ensure job security). But if you want to make something more complex, many of these JS frameworks can really increase productivity. Ember.js, for example, has all kinds of nice buffering features, so you aren't making multiple un-needed ajax calls back to your server. You will also end up needing to re-invent the wheel if you make anything complex.
- tremols 11y agoIts the eternal battle between leanness and bureaucracy, the later always stealthy infiltrating to unfold its corrupting influence. Then its up to the mature developer to pick the proper technologies for the job based not on fads but on real project needs and wise criteria. Not everything coming from SPAs is bad; reactive programming is awesome when you implement it in your own lean way with small friendly libraries like ractive, blaze, etc.
- lastofus 11y agoAs a back-end dev who recently took on creating an SPA for work, I ended up learning and using React/Redux/Babel/Webpack. I pretty much hated every min of it, and there's a fair chance things will break if I update any of the deps, but I can't imagine getting something as organized and functional as I did with just jQuery, or even Knockout. I have code broken up into organized modules (was never a fan of AMD/require.js), and truly re-usable components. The hot reloader renders my changes more often than not without a refresh. Production code is combined and minified into a single .js (no more downloading 15 different .js files). The feedback I have received from the business consistently mentions how fast and responsive the UI is. Yes, the front-end JS scene kinda sucks, but I don't think I could go back to what it was 10 years ago and accomplish what I was able to in the course of a few months.
- rhinoceraptor 11y agoYou can even render React components as views on the server in Express, I was shocked how easy it was having used both React as a SPA and Jade views in Express. That seems like hands-down the best way to mix server rendered HTML with SPAs, especially if you have to support fallback to pure server rendering.
- vinceguidry 11y agoTitle didn't make sense to me until I clicked through to the article. Of course Node.js web dev sucks. It's an immature stack. If you'd just learned Rails your sanity would be much improved. But no, the siren's song of using the same language on client / server lulled you in, and now your life is a mess. Don't make the same mistake he did. Use the mature tech that is designed for small teams to be maximally productive. Use Rails.
- marcosdumay 11y agoFunny thing is that running your favorite language on the browser is maturing as fast as running the browser language at the server. People that adopted Node.js because of this may be set for a nasty surprise.
- draw_down 11y agoDoes anyone else get a kick out of reading stuff like this, where people bitch about how much they hate JavaScript? I get a weird sense of enjoyment out of that, I love JS and so it feels like opportunity to me. I can certainly understand things that people don't like about Node, but if you think JS was the worst language ever designed then you're probably never going to like web development no matter what. I don't understand disliking npm though, I think npm is pretty great. Every time I spend a bunch of time wresting with pip, coming back to npm is like taking a warm bath.
- Ocerge 11y agoYeah, npm is fine. I understand the React vitriol to a point, but npm "just works" more than pretty much any other package manager I've used, and especially more than pip.
- davexunit 11y agonpm is quite possibly the worst package manager I've ever seen. It encourages unfathomably large dependency trees, using multiple versions of the same damn thing in the same software, duplicates things like crazy in the nasty tree structure that is the .node_modules directory, and cannot reasonably handle the full dependency tree of anything non-trivial that uses native extensions. I really don't understand what people find to like in npm. It's fundamentally broken.
- atonparker 11y agoYou seem to be out of date. npm 3 uses a flat directory structure, only nesting dependencies when there are two different versions. That misinformation aside, all package managers are agnostic about how large your dependency tree is; the large trees are purely a consequence (or choice, depending on your outlook) of the community. Could you imagine a package manager telling you you're using too many or too few dependencies? If you want fewer dependencies, use fewer dependencies. npm won't get in your way. Speaking of the community, it is primarily what people like about node and npm. Sure, there are lots of bad packages. That's a side effect of javascript being the lingua franca of the web. Everyone and their grandmother is writing npm packages, so of course there are going to be a lot of bad ones. _But there are also a lot of good ones._ npm has driven web development forward at such a fast pace, I wonder how anyone can't appreciate what it's done. Finally, some stats: ~230,000 packages, ~3,300,000,000 package downloads last month. That is a lot of users for something fundamentally broken. I can only wish to work on such "broken" software.
- danso 11y agoThis pretty much sums the intellectual depth and research of this rant: > From what I can tell the background of React is: Facebook couldn’t create a notification indicator on Facebook.com, so they create this over engineered dump pile to solve that problem...That’s right. All you guys using React like it’s the only way to solve every problem ever are using it because Facebook couldn’t build a fucking notification icon.
- Ocerge 11y agoI had to do a survey of the modern web world for a greenfield project my company is working on, and I ended up with AngularJS 1.x and Rails. Angular is by far the easiest to get in to, has the most stable libraries, and is relatively well known at this point. I know Angular 2 is coming and that everyone has moved on to React, but it's been more than successful at giving us a stable stack to work around while also producing something that works great for our customers. If React is still around in 3 years and has mature libraries for everybody to use, then sure, I'll take a look. But for now, I think my strategy of being a few laps behind is working, at least anecdotally.
- tetha 11y agoQuite honestly, if someone asks me for a technology for their backend, I'll ask if they need performance or flexibility. The answers will be Java if they want to be fast, or Ruby if they want to be flexible. Those are not shiny new kids on the block, but they are understood, proven technologies.
- aantix 11y agoFast in what context? Fast web requests? Basecamp 2 had 50 millisecond responses when employing Russian Doll Caching and Turbolinks.
- theodorton 11y agoI believe fast in terms of concurrency. Ruby comes out pretty bad compared to node.js.
- sotojuan 11y agoIf you want concurrency with Ruby-ish syntax (but a vastly different paradigm), check out Elixir.
- auvrw 11y agowhy Ruby instead of Python? why Java instead of... well, i guess there isn't a language w/ GC and an ecosystem as "mature" as Java. with clojure, which is indeed shiny and new, some people have cake and eat it too: speed of the jvm + flexibility of scripting. i guess a samish sort of thing could be accomplished w/ jython+Java if clj is too flashy. anywho, i hear the "don't go for the glamor," thing and indeed try (i.e. make a conscious effort) to lag 'teh new hotness' by some interval. ES5 strict is usually good enough. indeed, tail calls are the one coolest feat.s ES6 to me, and they're pretty much everywhere unimplemented, including Babel, except maybe for some special cases. w/ Java... it's a language i wish would move toward vanishing -- or at least go one layer deeper than everyday application development. when i first started writing applets, it was the coolest thing ever: Sun was awesome, the same program ran everywhere, there was automagic memory management, etc... now, Oracle's laying down all kinds of noise a/b owning the language, there are other runs-everywhere platforms/methods (ES, LLVM), and the Java language itself just looks incredibly noisy unless one uses some of the really excellent (but wo/man-hour costly) tooling expressly designed for handling it.
- geon 11y ago> Web development used to be nice. Interesting how we can have so completely opposite experiences. I'm feeling like webdev is just finally geting a tiny bit sane. When I started doing it in '98 or so, it was horrible beyond description. Now, with ES6/7, Typescript, Less and Jade (and the Chrome dev tools), I can actually get some work done instead of fighting the browser at all time. I would say LOL if only it wasn't so sad. Edit: > A SPA will lock you into a framework that has the shelf life of a hamster dump. When you think you need a SPA, just stop thinking. Seriously? Backbone is super mature, but with a steady trickle of minor updates and fixes. And it isn't really a framework, just a small library. There are plenty of great use cases for an SPA. A blog probably isn't one, but like with all technologies, part of your job is knowing when not to use it.
- danso 11y agoIt's not just that web development was pretty complicated and terrible back in the day, it's also that web development hits so many more targets and platforms than it did 10 years ago: not just multiple web browsers, but multiple breakpoints and behaviors of those browsers based on the physical constraints of the device. We should expect a rise in complexity if our ability to reach users has increased accordingly.
- maldusiecle 11y agoAbsolutely. He says things like > Maybe 1 or 2 pages on your app will have really complex UI, but the other 95% of the app does not. I guess I wish I had his problems. I work on an app where nearly every page has a complex UI, because it's a control panel for a domain with a lot of inherent complexity. Making manual DOM manipulation calls for every UI change would be a nightmare.
- vdnkh 11y agoExactly. For simple sites, I pretty much avoid all frameworks/libraries. However, I use babel/webpack though I really like webpack-dev-server and the full set of es6 features. I disagree with the React statement. I believe it's really simple on it's own. Flux/Redux add a lot of complexity, but confers significant gains. The new site I'm writing for work isn't just some stupid CRUD site - it's a complex UI used to monitor and manage industrial assets. Having the ability to organize long data flows and actions makes the code much easier to read and write, especially for other developers. If I had to manually manipulate the DOM (especially for making everything responsive) I'd go nuts. The thing about these tools are that once you learn them well, they save you a lot of time.
- scelerat 11y ago::snort:: All these gol-darn modern frameworks just to do something simple! Just use jquery! Jquery is a framework. When jquery was all there was, people weren't building the kinds of things they're building now.
- Animats 11y agoAll this Javascript machinery does so little. Most sites aren't implementing something like Google Earth, which needs heavy machinery to make it go. They're not implementing a multiplayer game in the browser. They're not using WebGL to display and edit 3D engineering drawings. 90% of web pages just display some static text and images with some forms and buttons, just like they did 10 years ago. There's a little more work required to deal with the screen size and form factor between desktop, laptop, tablet, and phone, but mostly it's basic content. Yet the amount of code needed to do this has increased by huge amounts, and it churns constantly. Something is very wrong here. The bad part of this is the disappearance of WYSIWYG editors for HTML. You weren't supposed to write this stuff by hand. That wasn't the plan. Tim Bernars-Lee's first browser had an editor. Mozilla had an editor. Microsoft had FrontPage. There used to be good open source editors. There was Nvu (dead)[1], and then Kompozer (abandoned)[2] Now, about the only thing left is Dreamweaver, which you now have to rent by the month. (Is BlueGriffon any good?) You didn't need a "content management system" unless you were constantly publishing new content, like a newspaper. [1] https://en.wikipedia.org/wiki/Nvu https://en.wikipedia.org/wiki/Nvu [2] https://en.wikipedia.org/wiki/KompoZer https://en.wikipedia.org/wiki/KompoZer
- hire_charts 11y ago> The bad part of this is the disappearance of WYSIWYG editors for HTML. You weren't supposed to write this stuff by hand. It really doesn't matter what you were "supposed" to do with HTML. It's become something entirely different than what was originally intended. When Tim Berners-Lee was at CERN he really just needed a way to link research papers to one another when, for instance, one cited another. His creation of the 'Web' referred to a web of mostly static documents. Nothing like the interactive applications we have today. The fact that no WYSIWYG editor can keep up with the latest front-end application design trends is no surprise. (Would you expect a WYSIWYG editor for your iOS app?)
- CM30 11y agoThis is a great point. If you're running a small site with mostly static content, then you don't need all this dynamic stuff. Yes, it's fun to work with in, in a certain way, but it's like using a nuclear missile to swat a housefly. Seems like a lot of people being a bit depressed that they're not working on a big problem and hence trying to make even the simplest websites into gigantic software development projects. The point about WYSIWYG editors is interesting, though I suspect the complexity of generating decent HTML/CSS/Javascript/whatever is what originally killed them. That said, surely someone is able to figure out a decent system now, right? 2015 technology has to be at the point where a program can figure out how to code a (semantic, well coded) layout in CSS, right?
- halayli 11y agoLast I've done frontend dev was 2012, now I am doing frontend for a new project and while it's gotten much better, it's very overwhelming. I had to familiarize myself with react, es6, babel + plugin, scss, redux & its concepts, react-router, npm and its packages, material-ui, browsersync, eslint and that's just to get started. Now that's a lot. By the time I am comfortable in that arena something new would have replaced them.
- dmschulman 11y agoYes let's rehash this conversation every 2 weeks https://news.ycombinator.com/item?id=10880604 https://news.ycombinator.com/item?id=10880604
- sotojuan 11y agoI know reposts are allowed in HN, but this was the top post here two weeks ago. Why are people voting it up?
- trey-jones 11y agoThis is an extremely vitriolic piece that it seems should have been titled "The Sad State of Node and React. I have never used React, but got married to Angular a few years ago, which I'm guessing is basically the same? Either way, these are all choices that you have. I've never used node on the backend or the frontend. As is mentioned in the article, you can still fire up a text editor, write some html and CSS and have perfectly good website. Tools that are used beyond that are all developers' choice.
- aarpmcgee 11y agoThis article again?
- themagician 11y agoNothing being built today is designed to last. These frameworks align with the financing—get in, get money, get out.
- codingdave 11y agoWhether you find the recent frameworks to be blessings that bring sanity to web development, or a over-engineered pile of chaos seems to be a religious argument, mostly based on if you have already gotten used to not having frameworks for the last 20 years.
- Kinnard 11y agoFront-End Development really does suck, and I think that can be backed up by productivity science. I think the problem is that the web was never intended to become what it is today. It was meant for making documents with hyperlinks — that's It. It's unsurprising that using a technology for something it was never meant for is problematic.
- explorigin 11y agoI laughed. Oh wait. This is not satire? Oops.
- Glyptodon 11y agoI'm not sure I understand why everyone is magpies.
- deleted 11y ago[deleted]
- matthewmacleod 11y agoWeb development is fine. - There are loads of options for the back-end – Rails if you're building something CRUDdy, Java if you're building something enterprise-y, Go if you're building a simple API, Node if you like Javascript… They're all suited to particular niches, and it's great. - The front-end is getting much better. For quite a while we had nothing except mad DOM-twiddling, then we had jQuery (which helped to some extent), now we have better frameworks that work more effectively with the way we want to develop apps. And there are options there too – React can help to control view complexity, for example, or you can go right ahead and build a full SPA using Angular or Ember or whatever. Now I'm no fan of using Node for a server app. Personal opinion is that there's no requirements that aren't fulfilled better by another language. And indeed, I'm often frustrated by the extent to which people develop SPAs for things that should be static sites - Blogger, I'm looking at you. But you know what? I'd take this in a second over the buggy soup of untested PHP, incompatible browsers, Prototype.js, IE6 and so on from only six or seven years ago. It's so incomparably better in every way.
- wesleyfsmith 11y agoAs a meteorjs dev, I feel like web dev is the easiest it's ever been.
- xlm1717 11y ago> 2015 is when web development went to shit. Web development used to be nice. You could fire up a text editor and start creating JS and CSS files. You can absolutely still do this. That has not changed. So yes, everything I’m about to say can be invalidated by saying that. Well, glad I didn't have to waste my time.
- WhyDoiPostHere 11y agoWebdev has always been shit. Anybody remember xhtml? From the very beginning, everything the w3 standards body touches has been a design by committee nightmare. The latest generation is just more of the same. That said, it's not going anywhere anytime soon. "Because it makes lives easier for developers" is not a valid reason for most end users to change their habits. Personally, I'm banking on better tooling. Most single page webapps today are just more complicated versions of fancy UX on top of an excel spreadsheet. So why are there no graphical design tools that let you visually set up the application, visually see where the data comes from and where it goes and then spits out html, css and react code? The state of the art in code generation has come a long way since dreamweaver.