Slashdot Mirror


Node.js v4.0.0 Released

New submitter TFlan91 writes: The first merge of the popular Node.js and io.js repositories has been released! From the announcement: "The collaborators of the Node.js project and the members of the Node.js Foundation are proud to offer v4.0.0 for general release. This release represents countless hours of hard work encapsulated in both the Node.js project and the io.js project that are now combined in a single codebase. The Node.js project is now operated by a team of 44 collaborators, 15 of which form its Technical Steering Committee (TSC). Further, over 100 new individuals have been added to the list of people contributing code to core since v0.12.7."

128 comments

  1. Hate in 3, 2, 1... by Anonymous Coward · · Score: 1

    Can't wait to read all about the hate slashdot has for node.. again.

    1. Re:Hate in 3, 2, 1... by MobyDisk · · Score: 5, Insightful

      I think it is JavaScript hate, not Node hate.

    2. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      I think it is JavaScript hate, not Node hate.

      JavaScript is literally the devil.

    3. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 1

      Some of it is Node hate. Node has all the hype of Ruby on Rails, minus the joy that is Ruby, minus the part where you can use it to create working websites. I've literally never heard anyone make anything that works using Node, whereas no matter how much I may hate Rails (and I do detest it) I can easily find working example of Rails apps.

    4. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Actually, not even that. It's not hate against node.js per se, but against the hordes of slobbering dev teams who will immediately demand that it go right into production without so much as a QA pass, because, you know, it's got electrolytes!

      Okay, only mildly exaggerating, but seriously, let's at least prove it in the dev environment first, campers. ;)

    5. Re: Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      What do you detest about Rails?

    6. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      I suppose you haven't heard of Netflix, either. Because they're major supporters and much of their system runs on it.

    7. Re:Hate in 3, 2, 1... by joss · · Score: 5, Funny

      > I've literally never heard anyone make anything that works using Node

      I made a good chunk of the backend of http://www.manything.com/ using node, and it all works .. supporting 100,000 s of customers perpetually streaming stuff to a bunch of servers.

      Having said that.. Christ on a bike, I would not use that technology again: it's the most snake pit infested dangerzone I've ever encountered. Writing multiprocess c++ code for transputers with no tool support back in the early 90s was a fucking breeze compared to the extraordinary clusterfuck that is node. Node with javascript/coffeescript on the server gives you new and interesting ways to shoot yourself in the foot and then helps you wipe off the wound with a nice bloody rag you were donated from a leper who died of ebola. It's an exciting environment to be sure, but I'm done with that.

      --
      http://rareformnewmedia.com/
    8. Re:Hate in 3, 2, 1... by MightyMartian · · Score: 2, Informative

      Javascript, no matter how you try to make useful toolkits to assist in coding, is a horrible clusterfuck of a language. It's as good an example of how really fucking terrible languages can go on for years, despite every possible inferiority one can imagine, simply out of penetration and inertia. It's just a gawdawful shitty language.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    9. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      I always wondered what the fuck happened to Netscape over the past several years. I remember way back when, when the site was actually usable, and you could use it to rent DVDs. Sadly they added streaming and the site slowly become more and more useless to the utterly worthless and unusable site they use today. Now I know why! Thanks for the answer.

    10. Re:Hate in 3, 2, 1... by Tough+Love · · Score: 1

      Node has all the hype of Ruby on Rails, minus the joy that is Ruby

      Plus the efficiency that Ruby doesn't have.

      minus the part where you can use it to create working websites.

      That seems wildly wrong.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    11. Re:Hate in 3, 2, 1... by jimmifett · · Score: 3

      minus the joy that is Ruby

      Not sure if this is sarcastic or not...
      I absolutely loathe Ruby and can't wait for it to end up in the dustbin of stupid half-assed fads.

    12. Re:Hate in 3, 2, 1... by UnknownSoldier · · Score: 1

      Agree 100%. Automatic Semicolon Insertion makes Javascript look like it was designed by an idiot.

      Even Doug Crockford @34:31 "Why am I betting my career on this piece of crap?"

      https://www.youtube.com/watch?...

    13. Re:Hate in 3, 2, 1... by x-arioch · · Score: 2

      I wrote a node-webkit ( since renamed to nwjs ) application for our salespeople last year, and node is pretty good, webkit seems out of date, but javascript is painful.

      It amazes me how many jobs have become web programming jobs, primarily in languages most programmers hate.

    14. Re:Hate in 3, 2, 1... by Lennie · · Score: 2

      https://popcorntime.io/ which is used by a good chunk of people around the world is written in 'node-webkit'. So node.js with Webkit. Webkit is used for running the HTML-/CSS-/JS-frontend and node.js is used to start and run the Javascript code which for example has the bindings for the bittorrent library.

      --
      New things are always on the horizon
    15. Re:Hate in 3, 2, 1... by Lennie · · Score: 1

      Large parts of the of the user-facing websites of Walmart are running on node.js

      That's also a popular website ;-)

      --
      New things are always on the horizon
    16. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      And node.js is literally Hitler.

    17. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 1

      The annoying thing is that all this Node bruhaha has a negative effect on people developing web front-ends not in Node. Just about every javascript library nowadays, instead of providing you with a link to their JS files, gives you instructions for using Node toolchain commands to install and use their library. I basically have to have Node installed just to do client-side only stuff. It isn't that terrible, but it is annoying.

    18. Re:Hate in 3, 2, 1... by wonkey_monkey · · Score: 1

      Automatic Semicolon Insertion makes Javascript look like it was designed by an idiot.

      It does that? Huh. And there's me, typing semicolons like a sucker.

      --
      systemd is Roko's Basilisk.
    19. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      And the Smalltalk VM is literally Mother Theresa.

    20. Re:Hate in 3, 2, 1... by Lennie · · Score: 1

      Ohh, and Paypal too: https://www.paypal-engineering...

      Also not a small website.

      --
      New things are always on the horizon
    21. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      I went to netscape.com to watch a movie and AOL came up. Weird.

    22. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Correction: much of the Netflix system that does not require reasonable performance or stability still runs on Ruby on Rails.

      Anything important at Netflix got moved to something far more scalable and stable a long time ago.

    23. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 1

      You do that because there are cases where you don't want it to add semicolons.

    24. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 1

      Sure, as long as your preference isn't PHP, PERL, or some other worse scripting language. Also, Ruby isn't Rails. Rails the web framework is what got hyped. Ruby the language has been around since 1995, and some of us liked it before Rails.

    25. Re: Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      I use Node every day on a smallish web app with under 100k active users. Works great.

    26. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 1

      Agree 100%. Automatic Semicolon Insertion makes Javascript look like it was designed by an idiot.

      Even Doug Crockford @34:31 "Why am I betting my career on this piece of crap?"

      https://www.youtube.com/watch?...

      In your YouTube link, seconds after your quote, Crockford follows on with this:

      "In fact, given its amazing success despite some of these obvious shortcomings, I think we got lucky. There's actually enough goodness, smartness, built into the language that if you can just avoid the bad parts, the good parts are really good and are worthwhile."

      Semi-colon insertion, type coercion, var-lifting and the global object. Quirks like these are just the low-hanging fruit of JavaScript Bashers who never delved into the language beyond anomalies that exist largely because the language was thrown together in 10 days. Yes, they're awful quirks. But programmers can get used to anything, and it doesn't take any more or less discipline to work around these than the foibles of any other language.

      Do you know what else we got in the 10 whole days of the design & implementation of JavaScript? An almost purely functional language with a classless inheritance system. This language is now the biggest programming platform ever, completely by accident. Crockford is right, we did get lucky.

      For anyone who writes code for a living and still has no idea about JavaScript, I'd suggest watching all of Crockford on JavaScript for a more complete picture of the World's Least Understood Programming Language.

    27. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Node with javascript/coffeescript on the server gives you new and interesting ways to shoot yourself in the foot and then helps you wipe off the wound with a nice bloody rag you were donated from a leper who died of ebola.

      Still, it beats the heck out of Java/Spring/Hibernate.

    28. Re:Hate in 3, 2, 1... by erapert · · Score: 1
      Agreed. check out this article about symbols in ES6 (which node.js v4 now supports)

      In ECMAScript 5, one often represents concepts (think enum constants) via strings.

      var COLOR_RED = 'RED';
      var COLOR_ORANGE = 'ORANGE';
      var COLOR_YELLOW = 'YELLOW';
      var COLOR_GREEN = 'GREEN';
      var COLOR_BLUE = 'BLUE';
      var COLOR_VIOLET = 'VIOLET';

      However, strings are not as unique as we’d like them to be.
      (...)
      Interestingly, even though we do so, there can still be mix-ups. For example, someone may define a constant for a mood:

      var MOOD_BLUE = 'BLUE';

      Now the value of BLUE is not unique anymore and MOOD_BLUE can be mistaken for it.

      Symbols are a kludgey hack to try and reach this little thing called type safety which some people find to be really useful for y'know writing programs and libraries longer than "hello world".

      (Take note of this, Atom, Vivaldi, and the rest who think that JS + CSS + HTML will magically make everything super fast, responsive, and a glorious nirvana of such awesome code that you've probably never heard of)

    29. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Not sure how JS is almost purely functional when it's imperative. Compare that to Haskell. The classless inheritance system would have been less confusing if it didn't have a Java-like syntax smeared over the top, confusing countless people for the past 20 years. And you forgot to mention that leaving off new when creating an object doesn't throw an error. Instead, it clobbers the global namespace, which is simply inexcusable.

      Other than that and the things you mentioned, it can be a nice language.

    30. Re:Hate in 3, 2, 1... by RabidReindeer · · Score: 1

      Actually, not even that. It's not hate against node.js per se, but against the hordes of slobbering dev teams who will immediately demand that it go right into production without so much as a QA pass, because, you know, it's got electrolytes!

      Okay, only mildly exaggerating, but seriously, let's at least prove it in the dev environment first, campers. ;)

      That's the problem with scripting languages. You can hack out something that looks like a finished product in a day or 2.

      Actually making an app fit for human consumption, however, takes just about as long as it does for any product. It has been demonstrated over and over that the time to produce a fully-finished app is pretty much the same for any language or platform and the only real difference is which part of the lifecycle that time is spent in. By front-loading the visible parts of the process, the illusion is made that it's nearly "done", After all, "All You Need To Do Now Is..." Urgh.

      I like the ability to produce pretty apps in a hurry, too. But I also like keeping my money in my bank accound, my medical records out of general public circulation, my comings and goings out of the hands of people who would take advantage of them. Stuff that takes the "other 10%" of the project's time.

    31. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Even if you do, you must be aware of this "feature" as it could screw up your code.


      function foo()
      {
          return
          {
              "foo" : "bar"
          };
      }

      What's does that function return? undefined. Why? JavaScript sees the return statement with nothing afterward, assumes that you meant to put a semi-colon there and does for you. The remainder of the function is just an object literal expression that isn't assigned to anything.

      Idiotic is an understatement. The entire language is one Pit of Failure followed by another.

    32. Re:Hate in 3, 2, 1... by UnknownSoldier · · Score: 4, Insightful

      > enough goodness, smartness, built into the language that if you can just avoid the bad parts,

      That's incorrect. There a million and one ways JS can bite you in the ass.

      When one is forced to use fucking hacks like

      "use strict";

      just so that one can get warnings about using mis-spelt variable names it tells me the designer learnt nothing from BASIC and all the shite that went along with it for the past 20 years.

      I can't believe you're actually defending the retarded automatic semi-colon insertion. This is almost as stupid as Python. A language should NOT impose presentation (whitespace layout), only representation (semantics.) Mathematics doesn't. Spoken languages don't. So WTF should Javascript?? At the very least it should give you a WARNING about doing something "dangerous" or "unintended" like any good ol' C/C++ compiler will do with -Wall -Wextra. In JS? Nope, no errors / warnings / or diagnostic messages. This is one of the reasons Javascript sucks ass.

      Javascript's automatic type coercion is likewise crap. When one is forced to do crap like

      return "" + foo

      in order to force the language to _actually_ return a string, it means you need to _manually_ inspect the _rest_ of the codebase for these undefined time bombs in your code. All this dumb shit could be easily be caught at "compile time" instead of blowing up, or worse, being silent at run-time.

      More dumb shit like browsers treating leading zeros as octal (which NO one uses) in parseInt( "0#" ) is typical of how fucked up JS was. Mozilla and Chrome made excuses for years for why they didn't fix their broken crap:

      * http://code.google.com/p/v8/is...
      * https://bugzilla.mozilla.org/s...

      There is a reason we moved to statically type languages -- because they catch stupid mistakes. We moved away from retarded languages like BASIC for professional programming because we have better things to do then to hand-hold a broken interpreter written by a moron.

      Javascript uses `double` internally. This means it is impossible to get a native 64-bit int. Oh look, I can bit-wise OR a number with ZERO to get a "native" int32. More stupid hacks to work around the lack of a proper type system:

      return foo | 0; // cast to int

      Javascript's equality operator is so broken it is fucking useless and complete joke. Gee, why doesn't == even work for array and objects ?? WTF is the point of having == when any sane programmer will just use === and !== ?? http://dorey.github.io/JavaScr...

      Javascript's 'scoping' is likewise dumb. Or I should say "complete lack of it." What the fuck is the point of braces if the language is just going to ignore block scope??

      Every time you turn around the fucked up language adds yet another stupid "gotcha" that you have to be extra defensive about, and/or use a different work-around per-browser because the rational behavior is no where to be found. I means seriously:

      typeof( [] + {} )

      returns "string" ???

      > But programmers can get used to anything, and it doesn't take any more or less discipline to work around these

      The problem is that you don't _know_ about the quality of code written by the rest of the people on your team. There is no guarantee to catch broken JS code and that's even WITH running some sort of 'lint' and minifier program.

      For the record, I _do_ use Javascript for my day job, which is WebGL.

      Javascript is a the biggest piece of shit right before PHP; both languages are full of idiotic design kludges made by the typical beginner Co

    33. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      That's why most projects (javascript or not) have strict coding standards to follow. Curly braces typically open on the same line as the statement they go with. You don't put them on the next line unless its a function. That's been the coding standard for every project I've seen...

    34. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Nah. I hate Java and Spring but I'd still much rather do that than node. Spring is shit but it's pretty easy to understand what's happening and most of the painful points can be avoided.

    35. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      That must be why popcorn time is using 5GB of RAM after running for a few hours. At least it seems faster than other garbage node "apps" like Atom. I thought Java apps like Netbeans were bloated and slow but Atom beats them handily while only providing 0.01% of the functionality. It's impressive that a basic text editor in 2015 has trouble opening a 2MB file.

    36. Re:Hate in 3, 2, 1... by davester666 · · Score: 1

      I thought it was just the written language he uses to command his minions...and one of them just tried to automate his task using his computer...and now he has assigned Google to try to make a better version...

      --
      Sleep your way to a whiter smile...date a dentist!
    37. Re:Hate in 3, 2, 1... by h33t+l4x0r · · Score: 1

      Only the desktop versions, the Android version uses something else because that wouldn't run on Android. I'm sure what the logic was behind maintaining 2 codebases like that.

    38. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      " typeof( [] + {} )
                        returns "string" ???"

      I you add apples to oranges, expect something strange to happen.

    39. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Java makes you jump through countless hoops before it actually accepts your code. And what do you get? Freaking NullPointerExceptions. How very safe.

    40. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Godwin's ? Already ?

    41. Re:Hate in 3, 2, 1... by Kid+CUDA · · Score: 1

      You sure are angry about programming languages!

    42. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Microsoft 'philosophy': "the more the problems, the more the complex, the more the stupid, the more the money, the more the longer".

      More and more people in charge of technological evolutions are following this 'philosophy'.

      Yes, it can be painful at times, but you should really be writing trash code that works half the time, and simply sell the maintenance and updates and new versions too, or let some friends at other companies do it, and they'll surely send back some angry customers your way!

      If everyone was doing it, we would all be saved from unemployment for thousands of years!

      Just don't tell our dirty little secret to people outside our industry.

    43. Re:Hate in 3, 2, 1... by Lennie · · Score: 1

      Never noticed that problem.

      But I hear people say the same thing about Chrome. But only on machines that have the RAM available.

      And they both share the same V8 Javascript engine. So I assume V8 just keeps RAM if it's available.

      --
      New things are always on the horizon
    44. Re: Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Every language let's you do dumb things. The question is whether you're smart enough not to be dumb. Just use each tool in the right way.

    45. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Then perhaps this should not have been allowed by the language?

    46. Re: Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      What, you mean it deliberately kept poor people suffering while doing nothing to tackle the social inequalities that lead to their poverty because it believed it was all part of their deity's plan?

    47. Re:Hate in 3, 2, 1... by robi5 · · Score: 1

      You still need the semicolon in the rare and easily avoidable case when you do something like

      callSomething() ;(function() {doSomething})()

      otherwise it'll be interpreted as callSomething()(function() {doSomething})()

      In some other cases, even the semicolon insertion doesn't help, e.g. if you write the return value on a line different from the return line.

      So all in all, one way is not intrinsically better than the other. On one hand, most code in the wild (open source and in-house) use semicolons, on the other, you can actually use Javascript as a nice functional programming language with something like ES6 arrow functions and ramda.js, which can make even the curly braces as code blocks disappear.

    48. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Were you in a 20 year coma? We don't use Netscape to rent DVDs anymore. We have other browsers now and we can watch movies in them.

    49. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Which is worse than TypeError, which you can get if the variable is null or undefined? With annotations various Java IDEs are pretty good about flow analysis to detect situations where you may trigger a NullPointerException. However, since the addition of enum and auto-boxing Java has added a few really stupid ways that you can trigger a NullPointerException. But you have to guard against null just as much in JavaScript as you do Java, and you have to guard against undefined even more-so since you have no static type-checking to ensure that those types expose those members.

    50. Re:Hate in 3, 2, 1... by robi5 · · Score: 1

      > Idiotic is an understatement. The entire language is one Pit of Failure followed by another.

      Any alternative suggestions? Decent languages that run in the browser and have some semblance of a user base (e.g. ClojureScript) require a transpilation step, which is either around 10s or more with a nontrivial system, or you need to manually set up some dependency hierarchy so as to recompile only the changed file, so the latency is sub-second. UI development is so much easier if there's essentially no latency between the code change and the visible effect.

      A lot of languages, e.g. CoffeeScript don't do a lot of good. Clojure is (or used to be) a half day to a day of setup, maybe ClojureScript is the same, maybe it bundles big libraries and slower than what can be achieved with lodash, transducers, and simple for loops on regular or typed arrays, which compile to incredibly fast code.

      And how about a call stack or debugging in general? Source maps help, but you're still dropped back to Javascript if there's a problem. Call stacks are unusable, afaik.

      So all in all, JS is actually suitable for work and play, given all the current constraints and network effects, collectively known as REALITY. You just don't practise what's bad practice anyway, e.g. relying on the default type coercions for comparison or sorting. In the overall scheme of software development, the negligible hurdles caused by the idiosyncracies of Javascript are negligible. Ruby, Python aren't waaaay superior by any means and don't get me started on something like Java. Python would actually be a nice language, but it's slow as hell, unless you use NumPy or some C compiled version, which has its own constraints, and it doesn't do more than Javascript.

    51. Re:Hate in 3, 2, 1... by AmiMoJo · · Score: 1

      Javascript is a de-facto standard, it won because there was nothing else. Similar to PHP really, it was shite but it was first and there was demand so it gained popularity rapidly.

      Nowadays smart people write code in languages like Dart, which compile down to Javascript but fix most of the problems you outline. So now we have this horrible hacky situation where you go Dart -> Javascript + asm.js -> compiler -> bytecode running on a VM.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    52. Re:Hate in 3, 2, 1... by devent · · Score: 2

      Groovy is an example how to do it right. In Groovy, I don't need semicolons and even parenthesis are optional, but there is no pitfalls you can fall into like in JavaScript. That is because the Groovy compiler don't try to be intelligent and try to guess your intent.

      In Groovy I can write
      func "a", "b"
      func "a" bar "b" baz "c"
      func { closure }
      return [func: "something"]

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    53. Re: Hate in 3, 2, 1... by RavenLrD20k · · Score: 1

      Because typos in the flow of the zone never happen. This is the exact type of thing that would make debugging a nightmare. It's a subtle syntax error that is looked at by the system like valid code. And in a program of 50 to 100 lines even...it's too easy to overlook this even if you ARE specifically looking for this.

    54. Re:Hate in 3, 2, 1... by robi5 · · Score: 1

      Having done JS and WebGL, I can also say, you can cherrypick all day long among examples that no Javascript developer would do except maybe novices or the curious, but at the end of the day, you still prefer JS at least just enough that it can be your tool of programming, and you still get to work with interesting technologies, and the result of that is probably visible by large parts of the population. You might as well switch to iOS or something else and use OpenGL, without any Javascript but you don't do it. So it can't be that terrible.

      Also, while there are no declarable 64 bit integers yet, programming WebG you know full well that there are plenty of typed arrays in Javascript like Uint32Array, Int32Array and Float64Array, which were first introduced to support WebGL. Also, the compiler is free to, and is often capable of, handling variables as typed variables, i.e. work with unboxed numbers. Again you pick an example which is specifically true, but someone who reads your post may be lead to believe that Javascript has zero support for typed numbers.

      Type safety is nice and all that, but it's a remarkably shallow set of type errors that the most common statically typed languages capture. Mentioning 'type safety' without 'type system' doesn't make sense, and mentioning 'type system' and Java, C(++) etc. on the same day is not usually done.

      While there are languages with decent type system support, for some reason lots of Haskell programmers are in academia or doing researchy back-end work. It is unfortunate that the browser is a single-language environment, but this is what there is now.

    55. Re:Hate in 3, 2, 1... by robi5 · · Score: 1

      > Then perhaps this should not have been allowed by the language?

      Here's the thing. JS is in the browser and other languages aren't similarly embedded and supported. So once you accept this part of what surrounds us (i.e. reality) maybe your enquiry will shift from asking and bizarrely insisting on how many ways there are to shoot yourself on the foot. Many of the JS weirdness comes from an early decision to avoid runtime code failure, and just return something, for the obvious reason that it's better for a JS augmented web page to mostly work than not work at all.

      So the enquiry is shifting to what you _can_ do with Javascript. For example, I like functional programming, and JS has fairly good support for it, e.g. immutable data libraries, ramda, transducers etc. And it's backed by one of the World's most optimized runtime JIT which profiles and replaces functions on the stack while running. This gives a boost to the execution of FP style code with no strong type system, because V8 etc. will notice that all your reductions etc. run on arrays, and homogenous arrays will be internally represented as typed arrays anyway, so V8 will do inlining, fusion of loops or of sequentially applied steps (think transducer mappings and reductions), type check elimination etc. where possible.

      If your concern is something that shouldn't be allowed in the language, then don't use it, or eliminate the possibility by using JSlint, JShint or even roll your own, using a JS parser. But more often, you're interested what the language is capable of, and I find the combination of prevalence, execution without perceptible compilation time, execution speed and library support toward various programming paradigms more interesting than the knowledge that yeah, you shouldn't add a fscking array to a fscking object, duh.

    56. Re:Hate in 3, 2, 1... by robi5 · · Score: 1

      You intentionally misrepresent the GP. He didn't say, exclusively or fully FP. If it is possible and convenient to do FP in JS, then I think what the GP said is fair - and it is. Doesn't matter that if you so choose, you can program fully imperatively as well. A programming language shouldn't mainly be used as a straightjacket, but as a tool that empowers you to make things. Sure you can use a hammer to open jars but it's not necessarily the tool's inherent fault.

    57. Re:Hate in 3, 2, 1... by robi5 · · Score: 2

      I'm not saying that JS semicolon rules are good, just that semicolons are such an incredibly small issue in the grand scheme of things. A developer will write or alter millions of lines and fix thousands of bugs over his career and will probably run into the semicolon issue a handful of times or less.

    58. Re:Hate in 3, 2, 1... by sribe · · Score: 1

      ...the extraordinary clusterfuck that is node...

      Was investigating back-end options that will support streaming updates better than Ruby on Rails. Node.js quickly popped up as the hot alternative. Bought a couple of books on Node.js. Read them. Immediately sold them on eBay. End of story ;-)

      When advocates go on and on defending a twisted inside-out semantic model "because evented asynch", apparently oblivious to all the systems out there which offer much cleaner ways of achieving the same thing, that's the warning flag to be suspicious of everything having to do with it. The confusion between a good (actually, necessary for many new apps) feature and an almost-broken implementation of it is a clue that certain people don't know their stuff.

    59. Re:Hate in 3, 2, 1... by Billly+Gates · · Score: 4, Insightful
    60. Re:Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      What do you expect? Node is just a passing fad the same way Ruby on Rails was for 5 years. Soon node will be nothing but a distant memory.

    61. Re: Hate in 3, 2, 1... by Anonymous Coward · · Score: 0

      Link or you are lying.

    62. Re:Hate in 3, 2, 1... by UnknownSoldier · · Score: 1

      Microsoft didn't even support WebGL until recently (IE11)

      The fact that we had to rely on "popularity" to get cross platform basic native type support when it should have supported it from the beginning just points out how short sighted JS is and was.

    63. Re:Hate in 3, 2, 1... by KingMotley · · Score: 1

      Hmmm... Never heard of Visual Studio?

    64. Re:Hate in 3, 2, 1... by UnknownSoldier · · Score: 1

      All programming languages suck. Some more then others.

      Then you have complete clusterfucks like Javascript and PHP.

      Javascript's lack of a standard "include" is a prime example of how retarded it is. Oh look "import" is supposedly being worked on, yet no browsers support it (yet.)

      * https://developer.mozilla.org/...

      At least with EcmaScript 6 "strict" mode is _finally_ enabled by default in classes, modules, etc.

      * http://people.mozilla.org/~jor...

      You can't fix retarded design(s) unless we first overcome ignorance with knowledge.

    65. Re:Hate in 3, 2, 1... by Lennie · · Score: 1

      Not saying it's the best thing since sliced bread. Just saying some large websites made it work well for them and they kept using it. They didn't go back to how they were doing it before.

      --
      New things are always on the horizon
    66. Re: Hate in 3, 2, 1... by Karlt1 · · Score: 1

      TypeScript + a good IDE solves most of JavaScripts problems.

    67. Re:Hate in 3, 2, 1... by shutdown+-p+now · · Score: 1

      You know, I used to think the same as you. Then I had to learn R.

      Guys. JavaScript is an awesome language. Why, it's practically sane! Cherish what you have, you never know all the painful ways in which it can be taken away.

  2. Apropos by Anonymous Coward · · Score: 0
  3. Node by Anonymous Coward · · Score: 5, Funny

    I've been trying to get started with Node for some time because I'm currently using XML. Is Node better or worse than XML?

    1. Re:Node by Anonymous Coward · · Score: 2, Insightful

      I've been trying to get started with Node for some time because I'm currently using XML. Is Node better or worse than XML?

      I don't know, do you prefer Toyota or 4-lane motorways?
      (They're kind of not the same thing.)

    2. Re:Node by buchner.johannes · · Score: 3, Funny

      XML already contains Nodes, duh

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    3. Re:Node by Anonymous Coward · · Score: 0

      but does it have nodes of apps and app nodes of appscript?

    4. Re:Node by Anonymous Coward · · Score: 0

      XML is like violence. If it doesn't solve your problem, you aren't using enough of it.

  4. Re:Node is for cows. by Anonymous Coward · · Score: 2, Interesting

    There was a call for you on the EU cloning ban thread, be sure to stop there before you log out.

  5. version craziness by Anonymous Coward · · Score: 0

    0.12 to 4.0 wtf?

    1. Re:version craziness by JenovaSynthesis · · Score: 1

      I was thinking the same thing. 4.0 broke NPM though :(

      --
      Anonymous Cowards generally receive no replies because you're a coward and I'm a bitch :)
    2. Re:version craziness by Gestahl · · Score: 2

      Looks like they merged io.js (which was a fork of node.js to begin with), and adopted it's numbering system in the process.

    3. Re:version craziness by Sez+Zero · · Score: 1

      Yes, there's a big jump. But this release is significant because it brings two popular forks back together.

      In one sense, this is the magic of the open source community and work: differences erupt, forks are drawn and then things cool down and a single code base emerges. The creation of the Node Foundation and uniting into a single code base means that we can torture Slashdot with stories of server-side Javascript for years to come.

  6. Countless? by frank_adrian314159 · · Score: 1

    Well, maybe, especially if you don't bother counting...

    --
    That is all.
    1. Re:Countless? by mark-t · · Score: 1

      That is, generally, what the expression means... that nobody counted, and so nobody knows how many, exactly.

    2. Re:Countless? by Anonymous Coward · · Score: 0

      No, that's not what it means.

      Merriam Webster: too many to be counted
      Dictionary.com: too numerous to count; innumerable
      Oxford English Dictionary: Too many to be counted

      Since they know exactly how many days elapsed between each release then there is no way there could have been "countless" hours spent. There is only a finite maximum hours that could have been spent in the elapsed period.

    3. Re:Countless? by mark-t · · Score: 1

      Countless means literally "without count". Magnitude has no bearing on it except insomuch as it may affect how practical it might be to count it in the first place.

      Consider that if X < Y, and Y is not too many to count, then X cannot actually be too many to count either.

      For example, while the number of breaths you will have taken in your lifetime before you die can easily be said to be countless... that number is certain to be far less than, for example, the number of times a cesium 133 atom oscillates in one second, the number of which is the basis for the definition of 1 second itself (unless you live to be way over 400 years old). How can you argue that something which has been specifically been counted is countless, and how can you argue that something which has simply never been counted or will be counted, but is much less than that, be "too many to count"?

      The definitions you cite are more for the word uncountable than countless, despite the fact that they may have come from a dictionary.

  7. More crosslinked code by Anonymous Coward · · Score: 0

    Take a look at your Noscript window sometime, the web is just that, a tangled mess of shit. What we need is fewer new shinies and more clean light content. YOU render the text for me, server, don't demand that I render it for you.

  8. Quite a version jump by Art3x · · Score: 1

    That's quite a jump in version numbers: from 0.12.7 to 4.0.0! Windows has got nothin' on that. From another article:

    Having a converged project means converged release numbers which is why Node.js is jumping to v4.0 and avoiding overlap with any existing io.js version numbers.

    This explanation doesn't persuade me. The version number is namespaced by the product name. It would have been Node 0.13, not io.js 0.13. I wouldn't have gotten confused.

    I never heard about much version-number skipping until recently: Windows 10, PHP 7, and now Node 4. Has this always happened every now and then? It seems like before, doing just a dubious major-number increment, like from 3.4 to 4.0 instead of just to 3.5, would cause controversy.

    1. Re:Quite a version jump by Reemi · · Score: 3, Informative

      If you want to know why PHP skipped 6, this is an interesting read: https://wiki.php.net/rfc/php6

      But the key reason seems to be (selective c&p from the page):
      - PHP 6 already existed and it was something completely different.
      - PHP 6, the original PHP 6, has been discussed in detail in many PHP conferences.
      - PHP 6 was widely known not only within the Internals community, but around the PHP community at large.
      - There's lots of PHP 6 information, about the original PHP 6, that exists around the web. Books are the smallest part of the problem.

    2. Re:Quite a version jump by MightyMartian · · Score: 1

      Firefox paved the way for absurd version numbering schemes. What are they up to now, version 4004?

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    3. Re:Quite a version jump by Tough+Love · · Score: 1

      They will have to version even harder to catch up with Windows, which is already at version 10. Even Android is ahead!

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    4. Re:Quite a version jump by UnknownSoldier · · Score: 1

      Ha-ha, that's priceless !

      "What comes after version 5? Version 6, right? Not in Pretty pHucked uP land -- they had to have a *vote* to skip version 6 after version 5 and go right to version 7 !"

      Microsoft's marketing dept. must have been taking lesson from them when they skipped Windows 9 and went to Windows 10!

    5. Re:Quite a version jump by Reemi · · Score: 2

      Good luck with you IPv5 setup.

    6. Re:Quite a version jump by Tablizer · · Score: 1

      It's parallelism in version increments; catch the non-blocking wave!

    7. Re:Quite a version jump by Anonymous Coward · · Score: 0

      They were just copying Chrome, like they do with everything.

    8. Re:Quite a version jump by snadrus · · Score: 1

      Actually, that's so that apps searching for "Windows 9" to match "Windows 95" or "Windows 98" wouldn't get a positive match.

      --
      Science & open-source build trust from peer review. Learn systems you can trust.
    9. Re:Quite a version jump by coolmoe2 · · Score: 1

      Oh that's not true chrome is still usable. :)

    10. Re:Quite a version jump by U2xhc2hkb3QgU3Vja3M · · Score: 1

      Yep. And the next versions are 4040, 8008, 8080, 8085, 8086, 8088... and after a while it gets a little complicated.

    11. Re:Quite a version jump by Anonymous Coward · · Score: 0

      Microsoft has to deal with a lot of applications doing something similar to: if os.name.startsWith("Windows 9") error "Windows 95/98 are not supported". I have seen code like this in open source libs ( can't look into closed source ones ) and wouldn't be surprised if it could have been a major issue for users migrating to Windows 9.

    12. Re:Quite a version jump by orudge · · Score: 1

      Microsoft of course has prior history with this - Office jumped from version 4.3 to version 7, as they bumped up Excel, PowerPoint and Access so they all matched Word (Word was previously v6, Excel v5, PowerPoint v4 and Access v2). Then they did the same thing with Visual Studio 6.0 to match VB6 - VC++ went from 4.2 to 6, J++ from 1.1, and InterDev was introduced with v6 being the first version.

      More recently, Microsoft has been skipping version 13 of both Office and Visual Studio.

    13. Re:Quite a version jump by RavenLrD20k · · Score: 1

      IPv5 aka ST2. Although in reading IPv5 is nothing more than experimental, it has been released and it still exists... Unlike PHP6 which was never publicly released and by and large backported into PHP5. When they did that, 6 should have been dropped until such time that a major version release was warranted...and then name that one PHP6 instead of coming up with so many arguments why they need to jump versions to 7.

  9. Maybe I'm too old by Anonymous Coward · · Score: 0

    I don't get the node.js fanfare. I've been trying to figure out what's so great about it and Just Plain Don't See It, except for specialized niches, such as high-volume chat-rooms.

    The claims about improved parallelism or speed don't seem to hold up when specific scenarios are requested and analyzed, at least for "regular" web programming tasks.

    Sorry, in Vegas I'll bet against it as a general revolution. I've given the fans plenty of chances to demonstrate concrete general benefits. I've been around a while and it smells like the hype patterns I've seen before.

    1. Re:Maybe I'm too old by Anonymous Coward · · Score: 0

      It lets webdevs pretend they're fullstack developers.

    2. Re:Maybe I'm too old by Dracos · · Score: 1

      Exactly. Node is a solution looking for a problem, the problem being that people who only know JS only want to know JS. In their near total lack of wisdom they see everything as a nail, being armed with a Fisher-Price hammer. JS should stay quarantined in the browser.

    3. Re:Maybe I'm too old by Art3x · · Score: 1

      As a web developer, it's attractive to me because it would let me write my server-side and client-side code in the same language. It's a small nicety, not an earth-shattering advantage, which is why I haven't used Node yet.

      In fact, I've grown so accustomed to Apache, with all its modules and short-and-sweet "programming" with just a few lines of declarative-language directives, that it's going to be hard to pull me to Node, or even Nginx for that matter. I guess maybe if I were writing a real-time chat or video streaming app for a large swath of users, or something like that.

    4. Re:Maybe I'm too old by Anonymous Coward · · Score: 0

      You get to validate user input at the browser end before bothering the server with it.

      Then you can use the exact same validation routines to check user input at the server.

    5. Re:Maybe I'm too old by Tablizer · · Score: 1

      let me write my server-side and client-side code in the same language.

      Unless one thinks JS is a POS language and doesn't want it on the server either.

  10. Countless hours? by Anonymous Coward · · Score: 0

    Well, you can at least establish a finite maximum since the last release, amirite?

  11. Re:SHIT in 3, 2, 1... by Anonymous Coward · · Score: 0

    So is this the new "cows go moo" post?

    Shit goes plop, I guess.

  12. Any other event driven scripted HTTP servers? by hardtofindanick · · Score: 1

    I am genuinely looking for an alternative. Must be scripted for ease of deployment and event driven. Does anyone have any suggestions?

    Thanks.

    1. Re:Any other event driven scripted HTTP servers? by czehp · · Score: 1

      OK, the scripted part I get. You've got to pay for folks and scripted languages are traditionally cheaper to hire, fine. But the whole "must be event driven" bit sounds like a buzzword requirement, placed in there for no good reason. But hey, who am I to judge, you may actually have a real requirement. In that case the answer is that almost any scripting language can be "event driven" since it's a design pattern and not a feature. Off the top of my head I know there are multiple existing frameworks for python, perl, and PHP that are all event driven. Given my druthers I'd take python for ease of readability and the community, but really, if scripted and event driven are your only two requirements it's hard to see how node is your only option.

    2. Re:Any other event driven scripted HTTP servers? by Anonymous Coward · · Score: 0

      cgi-bin + shell.

    3. Re:Any other event driven scripted HTTP servers? by Anonymous Coward · · Score: 0

      Elixir seems pretty interesting.

    4. Re: Any other event driven scripted HTTP servers? by Anonymous Coward · · Score: 0

      Event driven because you have only so many phpfpm or modphp workers and you don't want to waste them waiting on a 100msec curl to your backend doing nothing.

    5. Re: Any other event driven scripted HTTP servers? by Anonymous Coward · · Score: 0

      Phpfpm or modphp have only so many workers php being not thread safe. If you need to curl a backend service and wait for the io you just sacrificed a process slot on 100ms io. That is why you need event driven.

      If you have a thread safe scripted web server that wouldn't be so bad either.

    6. Re:Any other event driven scripted HTTP servers? by Anonymous Coward · · Score: 0

      Try Mojolicious.

    7. Re:Any other event driven scripted HTTP servers? by LiENUS · · Score: 1

      Undoing accidental mod

    8. Re:Any other event driven scripted HTTP servers? by robi5 · · Score: 1

      I hear EcmaScript is pretty popular these days, and it has a standard.

    9. Re:Any other event driven scripted HTTP servers? by Billly+Gates · · Score: 1

      Sure you can find one right here

  13. You Missed the BEST One by CrashNBrn · · Score: 1

    Version 6 is generally associated with failure in the world of dynamic languages. PHP 6 was a failure; Perl 6 was a failure. It's actually associated with failure also outside the dynamic language world - MySQL 6 also existed but never released. The perception of version 6 as a failure - not as a superstition but as a real world fact (similar to the association of the word 'Vista' with failure) - will reflect badly on this PHP version.

    Apparently, according to this PHP 6/7 RFC, version 6 of software is bad...
    I can think of... Total Commander 6, Opera 6, VB6 (hated here, but still)... I think Photoshop 6 may well used too.

  14. Node exists on /. ? by JPyObjC+Dude · · Score: 1

    Amazing to see news on Node.js on slashdot. There has been many important developments with node over the last year but nothing at all on slashdot. Glad to see someone is paying attention to the developments of this very important project.

    Some important features added since v0.12 for instance around synchronous child process execution is essential for node to be utilized on non event based coding styles.

    Regarding merging of node.js and io.js into a common stack supported by the node foundation, this is an awesome move. Node is too big for BDFL model and forking is not good at this stage. I don't really care about versioning model but going all the way to version 4 is a bit odd.

    1. Re:Node exists on /. ? by TFlan91 · · Score: 1

      The reason for the jump to version 4, semver policy aside, is because iojs consumed 1, 2, and 3 already.

      That matters because nodejs and iojs share the same userland/space/whatever, NPM, where modules can restrict themselves to certain engine versions for compatibility reasons.

      So if I wrote a module that was intended to work in iojs (before the merge) and had an engine property of >=3.0 and the merge of io/node went down to v1.0.0 or v0.13.0, my module is now broken.

      The merge is a bit misleading, Nodejs has the name recognition that iojs lacks, whereas iojs has the upstream development that Nodejs lacks. So they kept the best of both worlds, but that required bumping the version to 4.0.0 so nothing breaks.

  15. javascript hate is javascript ignornace by Anonymous Coward · · Score: 0

    It's funny how much slashdot hates javascript, yet it is still the most popular and most used language.

    I think you all have programming language envy, and are sorry that you didn't learn it sooner.

    1. Re:javascript hate is javascript ignornace by tapspace · · Score: 1

      It's funny how much slashdot hates javascript, yet it is still the most popular and most used language.

      JavaScript isn't even close to the most used language.

    2. Re:javascript hate is javascript ignornace by Anonymous Coward · · Score: 0

      It's funny how much slashdot hates javascript, yet it is still the most popular and most used language.

      JavaScript isn't even close to the most used language.

      Tiobe is popularity not usage.

  16. Having seen what this does... by Anonymous Coward · · Score: 0

    Having seen what this does, and having written software in a lot of different other languages (ok I started with basic, but went on to Pascal/TurboPascal, Cobol, C, Prolog, Lisp, at least 2 architectures of assembly (but I think maybe actually 3), APL, I learned compilers in modula-2 and a few others I can't even remember learning, (at one point I knew IBM CICS and JCL) and have studies various design methodologies (AI has different requirements than setting a J-K flip flop to a high state). Node seems to be just a crutch for those who can't design well. You can write that stuff down on a white board and check each one. Likewise, incremental testing will get you 100% of the way without having to worrying about a block of code within a much larger block of code that doesn't work. You could build modular and call, or even just build modular, test, then insert that code block into another code block, knowing each work as tested. It depends on exactly how anal retentive you insist on being. Anal retentive is good if you don't really understand the process, and feel the need to grasp the security blanket. When I was in university studying CS, I needed to take a general liberal arts requirement course, and took photography (shooting, developing, layout/mounting). I learned the algorithms for push and pull processing. Following the rules means one way of doing things, but I saved hundreds of developer-hours by intentionally over exposing the film and under developing (but you had to be quick pulling out of the developer bath and dumping the roll into the stop bath --eyes on stopwatch). Since the university mixed chemicals may not be that new either, keeping the film out of the muck for as little time as possible meant better prints. Node looks like a well organized stick to keep people in line, something a boss would use to herd unruly developers, but as an independent, you have your own reasons to keep code clean and well tested, and node seems to be a way of having the stick built-in.

  17. OMG Erlang on Rails aka Pyschobitch is here!! by Billly+Gates · · Score: 2

    Hey hipsters there is something waay soo cool in Erlang 2.0 aka OTP Pyschobith beats Node.JS anyday!!!

  18. Crazy Idea by obscuro · · Score: 1

    Here's a crazy idea.

    Since, unlike browsers, node.js doesn't have 2 decades of code demanding backward compatibility, why not use node.js to FIX JAVASCRIPT. The Node.js devs could write a pre-process that barfs up big, clear, helpful errors whenever it encounters the kind of risky code BS we all have come to despise.

    Just think, you could feed the typical garbage to node.js and it could spit back things like:

    ERROR: Potential scope conflicts on the following lines. Explicitly declare all variables using "var = ".

    WARNING: Nested function limit exceeded. The following lines call to the global scope, not the enclosing function's scope. Add "fixNestedFunctions = true" to config/index.js or accept one of the weirdest, sickest sources of potential bugs the world has ever seen as the norm in you code.

    You get the idea.... Use the enthusiasm to make a better world!

    --
    Every rule has more than one consequence.
    1. Re: Crazy Idea by Karlt1 · · Score: 1

      You get most of that with TypeScript + Visual Studio + Resharper. I just started playing around with Node a couple of weeks ago. I like the simplicity of it. I am a full on MIcrosoft .Net backend developer and I'm a semi-competent web developer (Bootstrap, Jquery, Angular,TypeScript, etc). Before that I was a C and C++ bit twiddler.