6 ms·
I know this is advertising, but there are a couple of particularly objectionable points… Increasing competition between rival internet companies, the speed of
by matthewmacleod 13y ago
I know this is advertising, but there are a couple of particularly objectionable points…
Increasing competition between rival internet companies, the speed of delivery and the ability to iterate are the key traits of market leaders. In a competitive scenario, reacting to end user needs, incorporating their feedback into the offering and delivering updates and changes regularly is essential.
This is literally nothing to do with Node. It's to do with good architecture and project management. The style of architecture generally used and encouraged in the Node community does tend to push SOA etc., but that's nothing to do with the language.
It’s extremely difficult to hire top talent these days; good developers like to learn new things and to use new technologies.
Node will not continue to be 'new technology' for long. This is a shoddy basis on which to select a tool.
double the number of requests per-second and reduced response time by 35% or 200 milliseconds.
Measuring reimplementations of code in alternative languages is frequently absolutely pointless, because that reimplementation will always go hand-in-hand with massive re-architecting, and absent second-system effect this will result in better performance. For example:
The old story of linkedin where moving to Node.js from Rails for their mobile traffic, reducing the number of servers from 30 to 3 (90% reduction) and the new system was up to 20x faster.
Because all of the rendering was pushed to the client, no doubt.
Node is great, but it's one of many valid choices for developing huge, modern web apps. It's not that Node is becoming the "go-to technology in the Enterprise" (it's not), but that SOA, loose coupling and the reduction in use of monolithic frameworks are everywhere, and that's something that Node is good at.
- RyanZAG 13y ago> Node will not continue to be 'new technology' for long. This is a shoddy basis on which to select a tool. Not to worry - there will be a new hot technology within a year or two, and a good percentage of the node.js people will scramble to rewrite in it to avoid looking old fashioned.
- krsunny 13y agoI know what you mean but I really think it'll be hard to topple node. I started with express and tried a few other frameworks and finally decided on sailsjs. I haven't had this much fun or been this excited about web development since I started 10+ years ago. I really don't know what it is about node thats so appealing as Im no js guru but I think its going to be around for a very long time.
- gtirloni 13y agoWhenever a new technology/language/framework comes up I often hear the word "fun" all the time. My question is: does that fun translates into reliable infrastructure and decent optimized code?
- Pacabel 13y agoWhat makes you think that JavaScript will still be the flavor-of-the-day preferred by this crowd tomorrow, though? They were pretty gung-ho about Ruby and Ruby on Rails between 2005 and 2010 or so. Then their hype moved to JavaScript and Node.js quite rapidly. It'll very likely move on to something else soon enough.
- cianomaidin 13y agoit's very likely that the hype is going to continue. The reality is that Node.js is the first system to be used by the enterprise. Enterprise skipped Ruby and PHP, and stayed with Java and .NET. Node is really well positioned to displace these technologies on the web tier of the enterprise.
- jaegerpicker 13y agoThe difference between Ruby/Rails and Node.js is that javascript is literally used everywhere on the stack. Such a HUGE volume of open source code is written in JS. Ruby/python/Java/C# have not enjoyed that advantage.
- LeonidasXIV 13y agoBut that doesn't give any meaningful advantage. Want to do your database queries to the client? Your business logic? No. Want to put frontend engineers to write your backend? Lots of bad ideas. I mean, it is an ok feature, but by no means a killer-feature really. Ocsigen does the same thing: you can write your code in OCaml and the client-side part will by translated to JS automatically. Neat? Yes. Killer-feature? Probably not. And JavaScript is really not that great to start with, so daveloping in something else server-side is not the worst idea.
- WillPiner 13y agoI couldn't disagree more with what I assume you are implying here - that node is just some trendy thing that people are only using to stay hip. I have a fresh perspective since I have only been programming (mostly web dev) for a few years and I've been learning on my own with the goal of full-stack competence. I did not care about what was hip, I cared about what would work using my limited resources. With that goal in mind I have spent my time practicing, testing and analysing most of the popular languages and related frameworks from asp.net, php, python, ruby and so on, and from my beginners perspective (which is a important market to serve) node is on another level. I'm fairly confident it is one of those big leaps forward like rails was and will be around a very long time. Why? In one word I'd say its speed. Its freaking fast and I'm not just talking about io performance, thats just the icing on the cake. Learning curve, development time, configuration, all extremely quick and easy. One thing I think people forget or don't put enough emphasis on is that node is a networking library, its not just server side JS the way that asp.net is server side C#, its JavaScript from the bottom to the top. Web server, load balancing, pretty much anything you need can be written in just JS. That makes it extremely easy to set up your own stack that you actually have the potential to comprehend or even write yourself and launch something on the cheap. For 5 bucks on digital ocean you can set up a node app that will probably scale enough to survive a slashdot effect or launch a mvp. Node and its related frameworks still have a ways to go but I think it is a mistake to dismiss it. And finally I'd like to mention that its first release was 2009 and people have been talking about it a lot ever since. I think its already passed the trendy technology phase and will continue to see widespread adoption.
- gaius 13y agoIf you say "full stack"... then yeah, you care about what is hip.
- Cthulhu_ 13y agoAll of this. NodeJS is a valid tool, yes, but not the sole reason for those performance improvements. Take the PayPal case, which (iirc) is mostly based on a 10 year old Java stack. If they were to create a new project from scratch, using current-day Java technologies and frameworks based on current-day paradigms (technologies like Play, Akka, Vert.x), they would get equal if not even higher performance improvements. I don't know how developer productivity and happiness would be using those tools, but the Java development tools are very mature (compared to JS), and happiness... I don't know really, I'm inclined to believe a lot of developers use NodeJS because it's new and hot and Java isn't, instead of looking at their customers' needs.
- kabisote 13y ago> and happiness... I don't know really, I'm inclined to believe a lot of developers use NodeJS because it's new and hot and Java isn't, instead of looking at their customers' needs. I agree. To be happy, We don't program using a particular language. We play video games instead. We program using a language chosen by us or for us to satisfy customer's needs.
- jaegerpicker 13y agoAs much as I like dynamic languages and would like to find good reasons to support them, mainly python and javascript, I have to agree with this. I know there are issues with them but as a fairly level field bench mark the Tech empower tests show node.js is usually firmly middle of the pack as far as raw performance. http://www.techempower.com/benchmarks/ http://www.techempower.com/benchmarks/
- davedx 13y agoAgreed. In the other story about node.js I challenged people to describe the "Node way" of doing things, and was given a laundry list of things that applied to every technology, like "modules". We are currently living through a programming language and tools renaissance the likes of which have never been seen before. Why are good developers deliberately blinding themselves to all the goodness throughout the whole programming ecosystem, choosing instead one tool (e.g. nodejs) as the One True Hammer? It's so unnecessary and so limiting.
- gaius 13y agoInteresting choice of words renaissance, as what we are actually seeing is people blindly reinventing things that were known in the 1970s. At least the true renaissance thinkers knew they were rediscovering things that existed before the Dark Ages; today people genuinely think they're onto something novel.
- Silhouette 13y agowhat we are actually seeing is people blindly reinventing things that were known in the 1970s Or people who have worked exclusively in web development and for a relatively short time suddenly discovering general programming knowledge, like why modularity and separation of concerns are important, or that being able to write prototype code and get it into production quickly doesn't necessarily mean that code will be maintainable or support the same pace of development over the long term. Next week, if you do everything in a dynamic-everything language using a dynamic-everything framework with everything looked up at runtime from a database, your software will be slow. The idea that a simple blog site running on a modern server should have to worry about hitting the front page of an aggregator and then falling over because it got a few thousand visitors in the next hour is rather absurd, if you stop and think about how much processing power and raw bandwidth these modern systems actually have available.
- unoti 13y agoWhile it is true that the basics of computation did exist in the 70's, it's very clear that programmer productivity today far eclipses what we were doing even 20 years ago. I started coding professionally in the 80's. Today much of what I used to do is now handled by users on their own with spreadsheets and query tools. A small team of 1-2 people today can routinely take on a task that would have taken teams literally 10x as much effort back in the day. For example, anything involving interfacing computer systems together in any way took an order of magnitude more time back in the day. There were no real widely accepted, simple to use methods available. Networking and communications over modems tended to be so unreliable and difficult that systems tended to be made as monolithic things that just did everything for themselves. It occurs to me that a book could be e written describing why and how programmer productivity is better today than it was a couple decades ago. It is true that computer technology has been around a long time. And it's also true that a lot of the best stuff such as Lisp has been around for a long time. But there are all kinds of factors that make programmers complete projects in a matter of days today that they wouldn't be able to 10 or 15 years ago.
- jimmaswell 13y ago>It’s extremely difficult to hire top talent these days; good developers like to learn new things and to use new technologies. I have to wonder how true this is. Someone who gets good at whatever their domain is is probably better at that domain than the leapfroggers.
- XBigTK13X 13y agoA single tech stack can only teach me a limited amount. When I build something around an unknown-to-me language/framework/tool over a weekend, I usually walk away with new insights. For example, playing with Meteor (js) was the first time I was able to understand the concept of pub/sub. That knowledge can sometimes be brought back to other tools I use, sometimes not. When it cannot easily transfer, the new tool gains brownie points. Playing with the "flavor of the month" taught me something useful. If I stayed with the same established workflow I always use, then I wouldn't have had a reason to encounter pub/sub.
- gaius 13y agoSorry, but that's nonsense, go and try Haskell for a year and you will have barely scratched the surface.
- uniclaude 13y agoWell maybe, but does this seriously matter? That's a very bad thing to spread. Haskell might be deep, but after using it for a whole year in production, any developer worth his salt would know enough of it to build non trivial things. This type of comments unfortunately keep developers away from Haskell. Haskell is no C++, you can actually learn it, and it is a very good language.
- XBigTK13X 13y agoBarely scratched the surface of what the language can do or the possible insights available by using Haskell? I ask because I have done exactly what I described above, both with Haskell and Haskell frameworks.
- KaiserPro 13y agoMoving from rails to almost anything could be faster. Especially under load. Especially if you had time to fix all those old nasty bugs.
- enko 13y agoRails is plenty fast - for application development. And a well-designed rails app, appropriately tuned, can be suitable for all but the highest volume loads. This rails bashing is becoming a cliché, so here's another one - use the right tool for the job. I've worked on rails projects happily serving 100req/sec with the servers running at 20% load. I've got friends who work on J2EE sites which take 10 seconds to render a page after the app server's done talking to all its zillion little useless ESB friends. Is ruby faster than compiled java? I currently work on a combined rails/node site - we use a rails API to feed a node-served front end. Works beautifully. Why is the API using rails? Because in my opinion, rails is far more mature, and one rails API dev can keep up with three node front end devs. Would the decision be the same if speed and efficiency on the server was of topmost priority? Probably not, but it wasn't. Hell, the DB is the performance bottleneck anyway. I have nothing against node and will probably use it in an upcoming project where server effiency is the topmost priority but geeze, right tool for the job! And another point, while I'm ranting - I am coming to see node as the obvious choice for consumer (free) and rails as the obvious choice for B2B/SAAS (paid). Why? Because hyper-effiency is much more important for the former to keep cost per user down. With B2B, if you've got so many paying customers you need another rails server, you throw a party! Oh, and even the node devs I know deploy using capistrano. There's that right tool for the job thing again.
- usethis 13y agoThanks for the reply. This is almost exactly what I wanted to write, especially in terms of programming costs of Rails vs. nodejs. I am working on a project with exactly the same setup now, Rails for the API and a NodeJS Proxy for the web – works beautifully and with the mature ecosystem around Rails, development of the API has been very easy and focused. Much of the critique regarding the slowness of Rails relates to earlier versions of both Rails and Ruby, but nowadays it can match the most mature frameworks.
- cianomaidin 13y agomatthewmacleod 2 hours ago | link | parent I know this is advertising, but there are a couple of particularly objectionable points… Increasing competition between rival internet companies, the speed of delivery and the ability to iterate are the key traits of market leaders. In a competitive scenario, reacting to end user needs, incorporating their feedback into the offering and delivering updates and changes regularly is essential. This is literally nothing to do with Node. It's to do with good architecture and project management. The style of architecture generally used and encouraged in the Node community does tend to push SOA etc., but that's nothing to do with the language. ========= Totally agreed, Ability to iterate is nothing to do with node, however bringing node into an organisation with a 10 year old stack represents an opportunity to bring in new processes too. Out with old, in with new. Node is as about embracing a philosophy about how to build things. ========= It’s extremely difficult to hire top talent these days; good developers like to learn new things and to use new technologies. Node will not continue to be 'new technology' for long. This is a shoddy basis on which to select a tool. ========= Disagree, ok in the long term there will be new things, but Node is only beginning, there's allot of runway here. 2-3 years at least before it's no-longer new and shiny. ======== double the number of requests per-second and reduced response time by 35% or 200 milliseconds. Measuring reimplementations of code in alternative languages is frequently absolutely pointless, because that reimplementation will always go hand-in-hand with massive re-architecting, and absent second-system effect this will result in better performance. For example: The old story of linkedin where moving to Node.js from Rails for their mobile traffic, reducing the number of servers from 30 to 3 (90% reduction) and the new system was up to 20x faster. ============== These are real numbers, agreed it's easy to re-implement in a new language and scoff at an older system. Big question here is WHY DIDIN'T THESE COMPANIES JUST RE-IMPLEMENT IN JAVA? ========== Because all of the rendering was pushed to the client, no doubt. ========== Node is great, but it's one of many valid choices for developing huge, modern web apps. It's not that Node is becoming the "go-to technology in the Enterprise" (it's not), but that SOA, loose coupling and the reduction in use of monolithic frameworks are everywhere, and that's something that Node is good at. ============ I believe that history will show Node is becoming the go-to technology for the enterprise. It fits well with SOA, loose coupling etc .. + it's javascript (the most widely used language on the web). Time will tell, great comments.
- m1sta_ 13y agoPushing things to the client is easier when the client and server speak the same language.