6 ms·
Is Express.js dying?
- deleted 11y ago[deleted]
- egroat 11y agoWell here is the answer from the guy who is still maintaining it: https://github.com/strongloop/express/issues/2827 https://github.com/strongloop/express/issues/2827 The link is from the fifth comment. When developing in node it makes a lot of sense to use lots of different modules for the one project. At work I have a good dozen or so, it really helps with iteration and testing.
- hayd 11y ago> guy who is still maintaining it without commit access...
- niftylettuce 11y agoJust use koa@next, it's awesome. ES6/ES7 with Babel, Flowconfig, and more.
- LukeB_UK 11y agoAnother good alternative is Hapi: http://hapijs.com/ http://hapijs.com/
- onestone 11y agoHapi might be an alternative to Express (both are outdated callback-style frameworks), but it's in no way an alternative to Koa.
- l1ambda 11y agoKoa middleware are generally more composable and more robust than Express. In Koa, middleware flows down and up in a stack-like manner with the help of generators. E.g., in Koa you set an X-Response-Time header like so: https://github.com/koajs/response-time/blob/master/index.js https://github.com/koajs/response-time/blob/master/index.js The response time middleware records the start time, then yields to any other middleware, and finally sets the header. You just can't do that as nicely in Express. Here is the Express version: https://github.com/expressjs/response-time/blob/master/index.js https://github.com/expressjs/response-time/blob/master/index... responseTime has to wait to be called via "on-headers". on-headers is a separate module that monkey-patches response.writeHead. The Koa version is 21 lines of code (really just 4 LOC), while the express version is over 200 LOC.
- niftylettuce 11y agoNot in my opinion, way too complex. It'll end up just like all the other frameworks that try to do everything; outdated and unmaintained.
- LukeB_UK 11y agoWhile express isn't dying, that thread is a great example of corporate sponsored/run OSS gone wrong.
- michaelmcmillan 11y agoFrameworks die. It is a fact. Death in this sense means discontinued support and development. It is not difficult to see how this can render any software that depends on a 'dead' framework unstable or even broken with time. I have experienced exactly this multiple times. In fact, I am extremely aware of this when I start a new project. Perhaps especially when I am dealing with frameworks like Express, Django or Ruby on Rails. If I recall correctly, Gary Bernhardt, said it well: "Treat Rails like a disease and isolate yourself." You can replace "Rails" with any popular framework. Yourself in this quote referes to the business logic of your system.
- JustSomeNobody 11y agoWhile I realize it may not be the case here, discontinued development doesn't necessarily mean death. Sometimes it means "done". I don't think enough developers get that.
- michaelmcmillan 11y agoThat assumes that protocols and best practices does not change. Not to mention the dependencies the framework relies on.
- matwood 11y agoSoftware can only be done if the environment it runs in remains static. Any software dealing with the web can never be done as the environment it runs in is constantly evolving.
- jb55 11y agoIt would be a stretch to call express a framework. It's just a collection of connect middleware and a few helpers.
- BinaryIdiot 11y agoUsing that argument you could almost never call something a framework of it uses a lot of libraries under the hood to make what it's doing easier. I see nothing wrong with the usage.
- AustinG08 11y agoI've been building an app using Express over the past 9 months and this gives me pause. It seems like IBM wants to have its cake and eat it too. Should be interesting to see how it all plays out, but is building an app on Express a liability? I have been contemplating switching to hapi, maybe this is a good time to explore that option.
- bryanlarsen 11y agoWhat's giving you pause? According to the link, Express is undergoing extensive and active development...
- deleted 11y ago[deleted]
- AustinG08 11y agoAfter reading that entire thread, it seems to be that IBM/Strongloop wants to maintain ownership of the project without contributing the resources. They expect dougwilson to continue running the project but he doesn't want to unless it is under the expressjs organization or something like that. Apparently IBM threw a few guys into discovery on the project a few weeks ago and they may actively get involved, but it is yet to be seen. Maybe IBM just wants to own it and doesn't care what happens to the project one way or the next. I have no way of knowing what IBM's intentions are, and I think that's the concern of the maintainer, dougwilson.
- ep103 11y agoIf your comment isn't a good (microcosm-ish) description of IBM and all their internal incompetency issues in general right now, I don't know what is.
- bhouston 11y agoActually the main dev, dougwilson, finishes his post with this: "I continue to work in community-owned organizations on GitHub, and if Express were to ever join a community org like "expressjs", I may be back." Yikes.
- foldr 11y agoIt's not the cool web framework for Node any more. I don't think it's going to "die" in the sense that existing express applications are going to be impossible to maintain any time soon.
- endemic 11y agoAgreed. The real question is, can you still get stuff done using it? Will other developers be familiar with its conventions? "Yes" on both counts.
- brobinson 11y agoWhat is the current cool web framework for Node? (I'm not a node user at the moment, but I've seen Express a lot)
- warfangle 11y agoKoa is the new hotness.
- ctmkpp 11y agoClickbait. Express.js is not dying. At all. It is being very much actively worked on by some of the hardest working maintainers and contributors. Express.js is actually a combination of various modules. If you want to see the work being done, go to those individual modules.
- LukeB_UK 11y agoIt was a question asked by someone on the Express Github repo. How is that clickbait exactly?
- DiabloD3 11y agoI actually have to agree with this. It seems like some semi-political debate about how one guy left and they don't like the direction the project is headed, but it is clearly not dying. I've flagged it for mod review, I'm not sure if this should be on the front page, it doesn't seem like it meets the requirements for HN.
- jnbiche 11y agoPlease don't flag stuff like this. You're treating HNers like children. Lots of us use frameworks/libraries like Express for major projects, so it's important we see critical project sustainability information like this. And we can figure it out ourselves. If you don't think it's front-page worthy, then just don't upvote. Flagging is meant for off-topic or spam, which this is clearly not.
- quicklyfrozen 11y agoThat one guy is the only one currently contributing code (a slight exaggeration, but very slight). That info by itself seems HN worthy as many of us have likely used Express as the "safe" choice when starting a new project. Time to rethink that...
- mikermcneil 11y agoPerhaps, but I can assure you that Express 3 and Express 4 are completely safe. The interface set up by Express is depended on by far too many companies and other frameworks for that to not be the case -- for instance, even though Express 3 is officially unmaintained by Strongloop, the Sails core team has committed to taking over critical patches. As for the future of Express: I've only had the opportunity to get together with Doug in person once, but we've talked about this a few times in the past. I can guarantee you the last thing he wants is drama, so I'll leave the ball completely in his court there. I will say this though: keep an eye on Doug's federated projects (jshttp and Pillar). Whether or not the various pieces are released as Express 5 or not, the _code base_ is still improving and becoming increasingly standardized, regardless of the monicker. More on that: https://github.com/balderdashy/sails/pull/3235#issuecomment-170417122 https://github.com/balderdashy/sails/pull/3235#issuecomment-...
- yesimahuman 11y agoThis sure doesn't look like death to me: http://npm-stat.com/charts.html?package=express&author=&from=&to= http://npm-stat.com/charts.html?package=express&author=&from... The project is incredibly popular. When it comes to community PRs, it's hard for people to swallow sometimes but often a PR isn't good enough or doesn't fit the vision of the project. It's easy to break things in the process of improving or fixing something, and perhaps Express has hit a bit of a stability point which is great.
- bovermyer 11y agoWell, that certainly seems to be a ton of drama. I don't want to bad mouth any of the people involved, regardless of their affiliations, so I'll just say that I'm not sure what good will come of this spat.
- ebbv 11y agoPopcorn aspect aside to the drama in this thread, this is a great example of how companies should NOT behave in relationship to open source projects. They simultaneously made the maintainer feel unvalued and like his role in the project was being held hostage, while sending BS sounding mixed messages to the community.
- api 11y agoOf course. It's the web, where we rewrite the entire stack every two years.
- heyadayo 11y agoThe thread actually represents a discussion between the most active maintainer (dougwilson) and various employees of IBM who now own and oversee the project, with a few confused third parties chiming in. It looks like IBM is making some predictable mistakes, which have disillusioned dougwilson to some large extent. Simultaneously they are being fairly inflexible at fixing those mistakes and ultimately forcing abandonment, at least by dougwilson. My prediction: 1) IBM continues with the typical corporate policies which are probably not great for the sort of OSS project that involves independent contributors 2) dougwilson leaves permanently 3) the project sort of wallows a bit 4) IBM puts some resources on it, and claims it all worked out. As to #4, they'll be sort of correct, assuming the goal was to see resources and progress on express. They'll be wrong if the goal was to properly maintain an open source community around the project. NOTE: I don't know anything about this, but I've seen this play out many times before. I chimed in here because the other comments in this thread seem to be wildly off topic given the content of the github discussion.
- nailer 11y agoThis happened with node-inspector for a while: StrongLoop became the official sponsor, and basic stuff like 'var x = 1; console.log(x)' returning undefined was left unfixed for years while the company simultaneously used it as advertising for how great their node contributions were.
- STRML 11y agoI've been frustrated with their code on a few occasions. We've seen breaking changes in patch versions on strong-remoting, PRs rebased out of patch releases with no explanation (and nobody could figure out why/how), and intentional abuse of npm's optionalDependencies to track users (https://github.com/strongloop/loopback/issues/1079 https://github.com/strongloop/loopback/issues/1079). This tracking is not only unethical but exceptionally dangerous, as the dependency is fetched over http, and as we know, npm modules essentially have full user access as they can spawn any command via the `postinstall` hook. So a mitm could pose as blip.strongloop.com and own any servers calling out to it. I've ended up forking every strongloop package we use to trim this tracking abuse. I really shouldn't have to do that.
- bhouston 11y agoPull an io.js, fork it and publicize the fork as the maintain version for active contributors and then if IBM/Strongloop step up you can re-merge in. I do think there is increased competition though as well from other frameworks.
- spdustin 11y agoThe public airing of their dirty laundry - especially the snark from so many of the participants - would kill it in my mind. There's no good reason to have this "open and transparent" conversation devolve into "let me bitch about IBM here, but don't bitch back at me, keep to IBM-only channels". It's all very childish. The whole thing should've been on the IBM back channels until they got their shit together and could agree on some messaging, and if the maintainer didn't agree with the messaging or how long it was taking to come up with it, simply fork it into the expressjs org and leave. Shouting out "I'm leaving! I'm going! I really mean it this time!" just seems like ... a child running away from "mean ol' parents" rather than an open source leader whose project work speaks volumes. It's tragic to watch this train wreck that could've been avoided by both sides refusing to posture. Like my father used to say, "shit or get off the pot, don't keep debating out loud if you're really going to do it." Compare it to Linus' openly-hostile dictatorship, which is universally both reviled and excused by contributors, just for a moment: At least when it comes to Linux kernel, shit gets done; nobody has to question the commitment of the project's stewards; and Linus hasn't (that I recall) threatened to take his toys elsewhere.
- SwellJoe 11y agoLinux doesn't seem to be a fair analogy. If Linux had been, somehow, acquired by a large company (or, at least, access/edit rights to all of the code repositories and web presence and such), and Linus had been removed from administrative roles on those repositories and sites (or asked to remove himself and others), then the comparison would be fair. Admittedly, one answer would be to loudly fork the project. That's happened on a number of occasions. Joomla forked from whatever it was called before a similar story (Mambo, maybe?). Node.js itself forked into io.js over similar disagreements (and then people worked those disagreements out). I suspect some of the back and forth happening is people trying to figure out if a fork is necessary and if they actually want to be the people leading the fork (sounds like Doug Wilson does not want to be a leader, but wants to keep contributing). Contributing heavily to a project is not the same as being a leader of a project, and it is entirely fair to not want to lead a project, even if you care strongly about it, and have worked hard on it for a long time.
- 11y ago
- joshka 11y agoWe have source code licenses that govern what we can do with the source code of an open source project. I wonder if it's time to start creating more explicit licenses for repositories or projects that govern behavior and the day to day activities of a project - ownership / releases / etc. Linux would be under the 'Linus Project Governor' model or the LPG... ;)
- morebetterer 11y agoThe state of documentation of Express 4 is not great. You have to look at the source code to see how it really works most times, or read someone's blog about how it used to work in Express 3 - but no longer does. Whose decision was it to go from a "batteries included" web server module to one where users had to assemble a bunch of ad-hoc third party components to make a usable web server? I'm looking at you, body-parser.
- spdustin 11y agoIt seems to me that decision grew organically from a feeling of helplessness over the future of the framework. Take some of the eggs out of the basket, limit the loss. Body-parser does have issues, though. :)
- ricardobeat 11y agoI'm curious, has this kind of takeover of an open-source project by a corporation happened before? It is disconcerting to watch people who never had any involvement start pouring in acting as project owners, considering the fact that there is no real legal ownership.
- pavlov 11y agoMaybe there just isn't that much left to do? I've used Express a lot over the years, and I can't think of anything right now that it's missing. I'll be happy if it's going to be stable from now on, with no breaking changes. More fundamentally, I feel the "web framework" doesn't need to be an exciting piece of the stack anymore, like was the case maybe ten years ago. Routing URLs and gluing together middleware doesn't need to be "interesting" or "cutting-edge". It's great that Express makes it easy, and I'm happy to keep using it regardless of whether there's a version 5 and 6 and 7 in the works.
- marricks 11y agoThe discussion brings up that there is some core functionality that should be added to just have Express keep pace, mainly implementing ES6 changes and supporting HTTP/2 (which some say should just be a new framework). Those are not easy maintenance things to do, and certainly are important.
- pavlov 11y agoIf it were up to me, I'd leave both of those to a different framework. There's nothing in ES6 that warrants breaking Express's compatibility with older runtimes. And HTTP 2.0 probably is better off in a new framework that's designed from scratch for it. (I'm not a great fan of HTTP 2.0 and would rather see Express unburdened by its complexity.)
- ritchiea 11y agoThat's a great point, there is a bit of friction between the idea that if an open source project isn't being actively improved it's dead and Express's mission to be a minimalist framework.
- deleted 11y ago[deleted]
- applecore 11y agoIt's simple. Everyone has switched to either Koa (designed by the team behind Express) or, more likely, a client-side framework like React.
- pori 11y agoI'm not sure if everyone is switching over to Koa. It doesn't seem like it's on too many people's radar. That said, the most hardcore developers I know (including myself) do love and use it. At least, it looks that way here on the East Coast where everyone is still focusing on hiring for Express apps. All that said, Koa is pretty great and teams should adopt it.
- pluma 11y agoI use express because it is the most barebones solution before vanilla http/https. The middleware API is trivial and relatively agnostic (most just expect node-style req/res objects and a `next(err?)` callback). The router does what it is supposed to and allows nesting. However I would likely chose something different if my needs were different. If I wanted to implement REST APIs in Node I would use Hapi. If I wanted to build more complex web apps I might look into Koa (although I don't think I'll ever move back to classic server-only rendered apps). Express is my JS equivalent of Ruby's Sinatra and Python's Flask. Nothing more, nothing less. Addendum: I wouldn't say "everyone" has switched to Koa. Koa was handicapped by its conceptual overhead for most ordinary express users in its early days (relying on a combination of generators and promises -- both not yet sufficiently widely established and understood technologies at the time -- to build coroutines, which even fewer people understood). It has improved and the JS community seems to have caught up (just look what's going on with the Redux ecosystem -- "thunks" and "sagas" (essentially built around coroutines) are beginning to see some traction). But it didn't initially deliver the same "read this tutorial, start building apps" experience express had.
- nacs 11y ago> Everyone has switched 4 Million downloads per month for Express [1] (vs 60K/mo for Koa [2]) .. doesn't look like everyone is switching. [1]: http://npm-stat.com/charts.html?package=express&author=&from=&to= http://npm-stat.com/charts.html?package=express&author=&from... [2]: http://npm-stat.com/charts.html?package=koa&author=&from=2014-01-17&to=2016-01-17 http://npm-stat.com/charts.html?package=koa&author=&from=201...
- tjholowaychuk 11y agoIf done correctly I think this could have been great. Two full time employees working on the project is far more than it has seen in its lifetime. I don't there has ever been even a single full-time person working on it. Lots of amazing contributions of course though. Hopefully things work out, still feels a bit more dramatic than it should be.
- qudat 11y agoI use expressjs with es6 and have zero issues with it. The only thing that is required from my point of view is a small shim for catching promise errors. What about es6 isn't compatible with express?
- jdauriemma 11y agosaved you a click: no
- seivan 11y agoExpress needs a collection of first party middlewares for logging, strong params, cookie-jar and etc with extensible ORM ActiveModel for more than regular SQL, e.g RethinkDB and MonogDB.
- DrStartup 11y agopeople still use Express? Koa is where it's at.
- cookies100 11y agololbhh
- cookies100 11y agololkyla
- deleted 11y ago[deleted]
- cookies100 11y ago12345678910
- cookies100 11y agotehthread