Why Everyone Is Talking About Node
mashable.com
mashable.com
Certainly everybody must remember ASP, which let you write all your server-side code in Javascript way back in 1998. You can still do it today, even in ASP.NET MVC.
And just like Node, nobody ever really shared much rendering code between the client and the server using that technology either.
The big difference is node is event-based...
I haven't found that to be the case at all, unless you're asking questions that are easily solvable with a quick Google search (and that mostly stems from the flood of inane questions from Indian "programmer mill" graduates).
Node's community also benefits from the fact that a lot of people are still trying to wrap their heads around events and callbacks, so they naturally help each other through the process.
I was always baffled by this, but I from what I have read recently it seems to be a confusion between 'end-user' developers and 'ecosystem' developers.
End-user developers who only use ruby/rails/etc to build things, for work or whatever, operate on another plane from the developers of rails itself and various associated libraries.
Members of the first group generally do not need to come into contact with the machinations of the core ruby community for a long time, so we can be left a little baffled at first by these accusations of 'harshness,' all the other hackers who answer our questions on stackoverflow and write helpful instructional blog posts seem really nice!
Then eventually you read various IRC logs, mailing lists and personal blog posts by various members of project teams and certain notorious hero developers, and you realise where the accusations stem from. It doesn't seem as bad now as it was in the Rails 2 vs. Merb days however.
The most important thing for bystanders to realise however is that these criticisms of the ruby community do not actually have anything to do with the 'end-user' developers who you will be dealing with as peers on a day to day basis if you are writing a ruby project that isn't a library.
Anyway I've remembered that this thread is actually about node so I'll shut up and have breakfast.
I take more issue with Jolie's unsubstantiated remark about "the Ruby community". She casts a whole group of people in a disparaging light and doesn't been take the time to source it.
"The Ruby community has been criticized for being exclusive and harsh," says the person using the Ruby community as the fall guy to prop up the new, exciting kid on the block. Are the feelings of exclusivity in the Ruby/Rails community not in some way tied to the prevailing attitude toward other languages? cough PHP
Clarification: I don't mean the above to be a slight against PHP. I'm simply pointing out that a lot of the negativity in the Ruby community centers around snobbery toward other languages, and PHP often takes the hit... hence the irony here.
The other thing with node is that it is single threaded do do multicore you have to use process witch are slow in communicating. This could work now because we often only use quadcores but in the next years we will have many many more. Is it a solution to start node up for say 16, 80 or 1000 cores?
Im not ranting on node I hear it works fine for some stuff but the benchmarks that got everybody so exited in the beginning was not really that practical.
If I write a low level it might be fast because it maps to the C stuff good but if I write a big application with lots of layers of JS will it still be fast? (I know that V8 is getting better but it there jet for big server applications?).
Hope somebody can talks about this.
Ruby does not? As far as I see JRuby does and is used a lot.
The diffrence really is that Ruby does not claim to be super fast and scale really good.
JavaScript on the other hand is booming both on client (SproutCore, Backbone, Cappuccino, CoffeeScript, GWT) and on server (Node). JS is just more "hackish" today - browsers are evolving day-by-day, taking more and more functionality from server - RoR isn't key to success anymore, it has become just another alternative for your REST backend.
New API for ActiveRecord, modularity, merging with Merb are very important, but it's not a game-changer. Rubinius and RubyMine on the other side are game-changers.
I wouldn't say Rails is stagnating, I'd say it is maturing.
The mobile platform has been gaining steam and so real-time interaction is becoming more important. Joyent was smart enough to see this & find a way to put their current infrastructure (lots and lots of invested $$) right into the middle of this. Node is well packaged as a solution to this. Very smart.
No doubt Node is the right solution for a lot of problems. And the guys working on it are very smart. But personally, I think that Node and Erlang compare somewhat like Lisp and C. At least at this point...
Would you mind elaborate why?
I personally like coding in Erlang more than JS. I also personally feel the smart technology choice is Erlang -- it scales better. For me, Erlang is an easy choice, but I know that other people have different priorities that make Node the right choice.
I believe that the biggest thing holding Erlang back in this role is the fact that it's functional rather than imperative & that the syntax isn't C like. It's a complexity that many don't find worth the trouble.
[edit] for clarity & less flame
- the pattern matching syntax of erlang, F#, ocaml and haskell is similar (obviously the 4 differ in a lot of details, but it's getting harder to avoid all 4 langs round these parts (HN)
- I don't have the stats in front of me, but if you look at LoC counts for the erlang killer apps (rabbitMQ, CouchDB, riak the dynamo clone, ejabberd etc) I think you'll see that the core functionality is usually a small number of thousands rather than 10K's of LoC.
(Looking for LoC stats, ohloh doesn't back me up, they show e.g. 180k for ejabberd, 18k for riak ... where the heck are LoC stats in github?
The OTP team moved erlang to github so people can see and contribute to its development.
The OTP team are moving erlangs infrastructure to open tools (the tests are switching to common test) which helps outside contribution a lot.
Community contributions are starting to pick up, http://erlagner.org/ is finally a package manager that has been picked up by the community, http://learnyousomeerlang.com/ is an awesome set of beginner tutorials, http://erldocs.com/ (mine) is an easy way to browse the documentation.
Node is a lot younger but is already more mature than erlang in all the areas above, erlang is playing catch up in these regards, but it has a much more solid base.
Voxer sounds cool.
In other words, I tried to make it interesting to a technical audience but still comprehensible to the average reader. I'm working on a more technical "how to get started with Node" post with code samples; that should be up in a couple weeks.
What? Apache may allocate 8MB of stack space for each thread, but that doesn't mean it consumes that much memory. This is distorting facts.
It would be nice if js could rid of the keyword 'function' -- maybe make it a bit shorter like in coffeescript.
http://brendaneich.com/2011/01/harmony-of-my-dreams/ (He indicates that the function change will land in this ((very good)) podcast: http://www.aminutewithbrendan.com/pages/20110303)
3.times(#(){ $("#some_id").attr("href").hide(); });
In more technical terms Voxer is a low latency messaging system for voice, images, and text. We have an iOS client in the App Store, and an Android version is in the works. We've had explosive growth in the last couple of weeks and are now in top 25 in a bunch of app stores and we are looking for someone to help us develop the server side components and make the system scale.
Email me gustaf@voxer.com if you want to know more and I'll connect you with the right person.
Our servers are built out of Node.js, CouchDB, and Redis. If you are excited about node, server-side JavaScript, and new databases, this is an opportunity to work on this technology full-time.
The more things change, the more they stay the same! Chatter about slow will hang on even when the facts contradict.
Twisted has been around for a long time and was the best (IMO) platform for building real time apps. Many of the first great comet apps were built on twisted. But you really have to work at using twisted - the docs aren't great, the reactor / deferred patterns take some time getting used to, and finally and most importantly the community isn't effective in evangelizing their product (sorry Glyph)
Another issue seems to be timing. Low latency apps have a current buzz and you see people rediscovering old collaborative ideas like Push to talk (referenced in the article). I wish them luck - PTT has failed spectacularly in the past but maybe will have a strong second life in a world full of smartphones. Node.js seems to riding this wave - and the backers leveraging the buzz to drive interest in the platform.
I also wonder if location is an issue. The Twisted team had a strong core in Boston while the Node interest seems to be coming out of the valley - and leveraging that environment's idea pressure cooker.
It also seems that node.js would benefit from a good implementation of the generator pattern that would enable you to write asynchronous code in a (somewhat) iterative style. Unfortunately I don't think that V8 implements any of the ecmascript extensions pioneered by Mozilla that implement yield, list comprehensions, and other fun stuff.
Having code in production running both NodeJS and Mongrel2, I am happy to see both of them growing.
Please don't overload the meaning of "real-time"; It doesn't mean "real fast".
http://en.wikipedia.org/wiki/Real-time_computing http://en.wikipedia.org/wiki/Real-time_web
From the article, Ruby developers are assholes, Rails doesn't scale (for an umpteen time) and Ruby has high barrier of entry compared to Javascript (I don't know what does this even mean).
I haven't used node.js yet, so I can't speak for or against it. If I find a use for it I'll probably give it a try. If it doesn't feel right I can always use EventMachine in Ruby, use Erlang, Python or whatever else makes sense.
Nope.
Not even close.
http://www.theregister.co.uk/2011/03/01/the_rise_and_rise_of...
http://blog.nodejitsu.com/nodejs-cloud-server-in-three-minut...