Slashdot Mirror


The JavaScript Juggernaut Rolls On

JThaddeus writes "An article in TechWorld Australia summarizes the latest opinions on JavaScript from ThoughtWorks: 'There is no end in sight to the rise of JavaScript... "I think JavaScript has been seen as a serious language for the last two or three years; I think now increasingly we're seeing JavaScript as a platform," said Sam Newman, ThoughtWorks' Global Innovation Lead.' The article touches on new additions to JavaScript tools, techniques, and languages built on JavaScript. As the fuller report (PDF) says, 'The ecosystem around JavaScript as a serious application platform continues to evolve. Many interesting new tools for testing, building, and managing dependencies in both server- and client-side JavaScript applications have emerged recently.'"

76 of 505 comments (clear)

  1. SubjectsInCommentsAreStupid by lesincompetent · · Score: 5, Insightful

    Great... more single-core-hogging fun ahead...

  2. Peak "platform" by PCM2 · · Score: 4, Insightful

    Is the word "platform" officially over? My fucking toaster is a bread-browning platform.

    --
    Breakfast served all day!
    1. Re:Peak "platform" by wonkey_monkey · · Score: 3, Funny
      --
      systemd is Roko's Basilisk.
    2. Re:Peak "platform" by Lumpio- · · Score: 3, Interesting

      Not as bad a "solution". I've seen knives marketed as "cutting solutions".

    3. Re:Peak "platform" by hey! · · Score: 3, Funny

      And once we've done in "platform", we can start the campaign against "system". By the time we're done engineers will only be able to talk about software using mime.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    4. Re:Peak "platform" by swb · · Score: 2

      So which is the parent? Do we have solution platforms or platform solutions?

      Or do we have nested combinations, like platform solution platforms?

    5. Re:Peak "platform" by Lumpio- · · Score: 4, Funny

      We could also add "service". SPaaS - Solution Platform as a Service.

    6. Re:Peak "platform" by SunTzuWarmaster · · Score: 2, Insightful

      Words have meaning and purpose. What words would you use to express the following concepts?

        - a collection of tools which allow you to build a new component through their leverage, while not contributing significantly to the overall effectiveness of the tools (or won't particularly be used in operation)

        - a collection of functional components which you will use as part of the operation of a new component

      Currently, the words are "platform" and "system". I'm happy to switch to other words if they express the concept better.

  3. How about a generic scripting engine? by Anonymous Coward · · Score: 4, Interesting

    Why don't browsers come with a generic scripting engine (in addition to, or replacing, the JavaScript virtual machine) that runs some sort of intermediate language a la .NET CIL, or LLVM IR, etc.?

    Then we could use pretty much any scripting language we wanted with the content.

    1. Re:How about a generic scripting engine? by tepples · · Score: 5, Insightful

      The last time that was tried, it was called Java applets, and Oracle's incompetence at keeping its virtual machine secure led to browsers blocking Java applets by default.

    2. Re:How about a generic scripting engine? by qpqp · · Score: 5, Informative

      Why don't browsers come with a generic scripting engine

      They do, it's called JavaScript.

      LLVM IR? Here you go
      Your other request inverted, compile CIL to JS: jsil.org

    3. Re:How about a generic scripting engine? by Anonymous Coward · · Score: 2, Insightful

      It really says something about JavaScript that the "hottest" technologies are ingenious ways to avoid actually CODING in JavaScript!

    4. Re:How about a generic scripting engine? by jbolden · · Score: 2

      Why don't browsers come with a generic scripting engine (in addition to, or replacing, the JavaScript virtual machine) that runs some sort of intermediate language a la .NET CIL, or LLVM IR, etc.?

      You mean like: Java applets, Active-X, flash or quicktime?

    5. Re:How about a generic scripting engine? by jbolden · · Score: 2

      It isn't the byte code interpreter that's the problem. It is running in a low level state. Let's take a simple example division by zero. If you send a division by zero to an x86 processor something has to catch that exception or the entire system crashes. So either:

      a) You have to have a wrapping layer which prevents virtual instructions from causing exceptions in the kernel or OS (Javascript) which is slow
      b) You have to have a complex system where things move up and down abstractions layers freely (C++ / Active-X)
      c) You have to have a high speed specifically tuned VM that offers services of all types and that is big and complex (Java)
      d) You have to have a family of high speed specifically tuned VMs that each offer only some services (flash, movie players, reader...)

      etc...

  4. Replusive by gweihir · · Score: 3, Funny

    Why do the worst technologies that are just barely able to solve the problem always make it? Is the developer community collectively really this stupid? I fear it is...

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Replusive by Nkwe · · Score: 4, Insightful

      Why do the worst technologies that are just barely able to solve the problem always make it? Is the developer community collectively really this stupid? I fear it is...

      Because technologies that just barely solve a problem allow people who can just barely do the job to barely solve the problem. People that can barely do the job are less expensive than people who do the job right. Unfortunate enough people are willing to live with "just barely".

    2. Re:Replusive by hibiki_r · · Score: 5, Interesting

      They don't always make it: Many do not make it at all. Survivor bias and all that.

      JavaScript thrived because the alternatives were arguably far worse. Java applets were terrible. ActiveX a platform specific disaster. Flash is heavy. JavaScript allowed you to do the very minor things most web developers wanted at the time without having to turn your website into a plugin that disregarded base web technologies.

      Yes, the language design is pretty silly. The function declaration syntax is silly. It tries to look like a member of the Algol tree, but its internals behave more like Lisp. The automatic type conversion system is the source of many jokes. But it still beat it competition at the time, because it was built into the browser, it talked directly to the page's DOM, and the competition did not. Today we'd have little trouble designing a better language than JavaScript for what we currently do with it, but our best bet to get something like that working is to build a language that compiles to JavaScript and then hoping browsers start building VMs for that language directly, skipping the JavaScript step. Still, not bloody likely.

    3. Re:Replusive by Skinny+Rav · · Score: 3, Insightful

      Good enough is perfect.

      You can endlessly polish your elegant solutions for decades (see Hurd) while the rest of the world happily uses "technologies that are just barely able to solve the problem".

    4. Re:Replusive by leptons · · Score: 2

      If that is how you think about Javascript, then you have just illustrated your own stupidity. Or maybe it's fear that you are displaying?

      Javascript is far from "the worst technologies", and your quip about being "barely able to solve the problem" is pretty ignorant.

      I'll get off your lawn now.

    5. Re:Replusive by hey! · · Score: 5, Interesting

      Because it's easy to mistake one's personal biases for sound judgment about what is "good".

      I won't sit here and defend every design decision in javascript, but it's a lot more sophisticated than meets the eye. I think of it more like Lisp than Java; it encourages (among skilled programmers) a functional programming style, which turns out to be both under-used as a programming paradigm and very nicely fitted to the kind of event-driven tasks people use javascript for.

      If you aren't writing higher order functions in javascript (functions that take functions as values or return them as values) you aren't fluent in javascript and aren't qualified to pass judgment on it.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:Replusive by BurfCurse · · Score: 2

      Why is it that everytime I see a truly insightful post, its always the day after my mod points expire?

    7. Re:Replusive by jbolden · · Score: 3, Insightful

      Because "worst language" is generally a compromise between competing ideas and interests of various stakeholders. Compromise is rarely pretty.

    8. Re:Replusive by westlake · · Score: 2

      Why do the worst technologies that are just barely able to solve the problem always make it?

      They are the first to reach critical mass and they get the job done.

    9. Re:Replusive by TheGratefulNet · · Score: 2

      I am not a java guy (I have the basics, but I still don't 'get' java like some fans do). I asked a guy who works at a hardware company (that does some java accel stuff) what the big draw was. his reply - pertaining to server-java code in business, at least - was that it could tolerate bad programming and still 'run ok enough' for business use. lots of cheap *very bad* programmers in the world and java works well for them. malloc and no free - wow! you can be as stupid as you want and your app will still run 'fine'.

      of course, java is also big on phones and embedded devices. but on servers, I never quite understood what the draw was. I'm a C guy (from quite a long time ago) and still prefer C, but I realize that the new breed of programmers mostly don't even know or care about C anymore and its always java this and java that for any new project that starts.

      --

      --
      "It is now safe to switch off your computer."
    10. Re:Replusive by Jane+Q.+Public · · Score: 3, Interesting

      "Why are some developers obsessed with performance? The user probably isn't. They don't care whether something loads 2 seconds quicker, or whether something has beautifully concise code."

      Although I am a programmer, I am also a "user". And from purely a user perspective: I sure as hell DO care.

      Slow programs are slow. Computers are supposed to wait on people, not the other way around.

    11. Re:Replusive by Areyoukiddingme · · Score: 2

      Do you have more info on that? Seriously, no snark, but I'll admit that I'm skeptical. I've never heard of human perception time being less than 30ms. I hate slow responses in UI's with a passion, but 1ms?

      See, for instance, John Carmack's analysis of head mounted display latency. Under 20 ms is acceptable for most people. 30 ms is too high, and leads to motion sickness.

      For ~1 ms latencies, experiment with a mouse on an old CRT running at 180Hz. Try out a hardware rendered mouse, then a software rendered mouse. You can indeed see the difference.

      Also for time perception that accurate, see a competent analysis of a fighting game. Many fighting games feature reaction windows no more than 5 ms wide, and some have windows ~1 ms wide. And players can hit them.

      Human visual perception and motor reaction is a very complex, multipath system with a lot of variance between individuals. Some of those paths are very slow. Some of them are suprisingly fast. Touch screen systems are some of the worst high latency offenders, in a visual perceptive/motor reactive realm that is least tolerant of it. When you touch something in the real world, it responds instantly. Push a marble and it rolls, no delay. Touch screens can't do that. Not even close. It's really really jarring, and it makes the choice of scripting languages on mobile devices particularly unfortunate, since they're not capable of executing fast enough to solve the problem. Your entire reaction and perception system is definitely slower than it feels, but it is also equipped with compensation for that slowness. Your brain conceals the lag from you when interacting with the real world. That process of concealment has a lot to do with expectations. Touch screens especially have a tendency to violate those expectations.

      There's a lot of work yet to be done in human-computer interaction, and getting touch screen responsiveness down to the equivalent of the venerable mouse is seriously important, at this point. Unfortunately, it doesn't seem to be much of a priority. See complaints about hipster programmers elsewhere in this thread.

    12. Re:Replusive by matthewv789 · · Score: 2

      if the web were developed for the advanced developer (read: computer scientist), the "web" as we know it would be confined to a few geek niche markets and the rest of us would be using some Microsoft- or Adobe-pushed proprietary technology instead.

      FTFY.

    13. Re:Replusive by smellotron · · Score: 2

      Many fighting games feature reaction windows no more than 5 ms wide, and some have windows ~1 ms wide. And players can hit them.

      I've heard of fighting games (e.g. Street Fighter) with 1 frame windows, but the games were 60 fps ~ 16.67ms. That is more in line with your figures from John Carmack's experimentation. Your 1ms figure does not sound credible, can you provide a reference?

    14. Re:Replusive by smellotron · · Score: 2

      Name one other language that is as well supported and as broadly implemented as JavaScript?

      C is ubiquitous.

  5. jscript by Horshu · · Score: 5, Interesting

    I just started on a web project that is heavily javascript (even though it's an ASP.Net app). It feels like I stepped back in time 10 years. I'd have code not execute. Why? Some error somewhere in the code that was ignored. I had a typo on a property set somewhere else. No error. Why? Because javascript created a new property with the typo and set *that*. And every change requires me to run the app to see if it works, because I don't have a compiler to check the basics out ahead of time. And then, because I'm debugging an app in one window, when I'd open a new one to read the news, I'd hit other, non-ignored errors on those pages (advertisements) because 90% of commercial pages these days have error-laden javascript because people rarely check for error conditions. Horrible language.

    1. Re:jscript by Anonymous Coward · · Score: 5, Informative

      JavaScript is a horrible language because you haven't heard of things like jslint and your team doesn't develop with TDD using one of the numerous testing frameworks that exist for JavaScript?

    2. Re:jscript by timmyd · · Score: 2, Informative

      You might want to look at TypeScript if you're already using Visual Studio. It infers types, type checks your code, is open source, and supports writing plain JavaScript. When using Visual Studio, you can do the things you're used to doing like "go to definition" and "find all references". If you decide to annotate your definitions with types, it can do type checking and catch errors which is really useful when you need to refactor a lot of code. The video at the bottom of http://www.typescriptlang.org/ is a really good tutorial. It compiles to JavaScript and accepts plain JavaScript so you can use it without having to rewrite all your code.

  6. I has a sad by Snotnose · · Score: 4, Funny

    In my 35 years of professional programming, getting good at dozens of languages, I've only run across 2 I've actively disliked. Javascript is one of them (tcl was the other). JS is a crap language that IMHO can't be fixed. If they ever add an honest garbage collector to the base language then most programs will delete themselves upon execution.

    1. Re:I has a sad by anchovy_chekov · · Score: 2

      In my 35 years of professional programming, getting good at dozens of languages, I've only run across 2 I've actively disliked. Javascript is one of them (tcl was the other). JS is a crap language that IMHO can't be fixed. If they ever add an honest garbage collector to the base language then most programs will delete themselves upon execution.

      Lol. And the garbage collector would then send out an email to every web designer who says "I know how to code in Java" when they mean Javascript and clean up that confusion once and for all.

      I've been forcing myself to get good at writing JS lately (if only because Node looks like it'll make all my other skills irrelevant in the web development market). It.. just.. feels.. wrong. Nothing in the language lends itself to building architectured solutions. Maybe the testing tools have caught up with other languages now, but you're still testing ugly code.

      Javascript is the smallpox of coding languages. Maybe once it's finally eradicated Brendan Eich will only be remembered for this, the equally damaging Rust language and attempting to remove the marriage rights of same-sex couples in California. Hey, did I just politicise Javascript there? Flame on.

    2. Re:I has a sad by anchovy_chekov · · Score: 4, Informative

      The fact that there is a need for a book like this: http://shop.oreilly.com/produc...

      Maybe? :) Still haven't found a "C - Just the Good Parts" book, but still looking.

  7. Just goes to show... by Foresto · · Score: 2, Insightful

    ...a programming language (still) doesn't have to be good in order to see widespread use.

  8. Web Workers by tepples · · Score: 2

    single-core-hogging

    I don't see how that needs to be the case. Everything except IE pre-10 supports Web Workers. Firefox is moving toward the process-per-tab model popularized by Chrome, and the refactoring project is codenamed Electrolysis.

    1. Re:Web Workers by jones_supa · · Score: 2

      Maybe he meant that it's ridiculous to begin with that a simple JS application can hog an entire core.

    2. Re:Web Workers by fast+turtle · · Score: 2

      yet, any god damn thread that hogs a CPU still locks the entire god damn UI of Firefox because it's not multi-thread capable. Fix the fucking UI and other bugs that sill haven't been fixed insted of trying to keep up with Googles insane numbering.

      --
      Mod me up/Mod me down: I wont frown as I've no crown
    3. Re:Web Workers by Anonymous+Brave+Guy · · Score: 2

      Why should having many tabs open in separate processes cause any problem? No modern operating system will actually require the entire browser codebase to be loaded 20 or 200 times in that situation, and any overheads for context switches should be imperceptible with this kind of application.

      In general, the code itself should automatically be shared between those processes. The main things kept separate would be the data in each tab/process and the system resources and permissions.

      Those are things you really want to be kept separate, for security and robustness reasons, for example if a process crashes or if the OS kills it for security reasons. Firefox is now many years behind the curve on this issue.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:Web Workers by hairyfeet · · Score: 5, Insightful

      I'll get hate from the programmers but fuck it, truth is truth. Wanna know what is wrong with JavaScript? The entire damned concept, that is what!

      I mean think about it, if I told you "I have an idea! Just to get some information you are gonna have to run strange code from over a dozen places, you don't know these places, if they have malware, you have to trust ALL these places or you can't have the information" you'd say that is seriously fucking STUPID, wouldn't you? That is how modern ad driven web works, calling shit from God knows where with zero control or fine grained permissions, its all run by default....STUPID.

      What we need is either a new language built from the ground up with the realization that there are seriously nasty people out there trying to fuck your systems up, or JavaScript seriously needs a rewrite with the modern situation in mind. As it is now everybody keeps trying to fix the bullet wounds of failed design with bandaids like sandboxing, low rights mode, but at the end of the day the very concept of clicking on a link and suddenly getting code from a dozen sites you don't know and executing that code? its just a dumb idea.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:Web Workers by WaywardGeek · · Score: 3, Insightful

      Heck, you're right and didn't even have to go into how f-ed up JavaScript is as a language... "dynamic scoping"... really??? That idea sucked in Lisp and I thought we got past it in the 60's after that cock-up. And now we're supposed to take this bastard child serisouly?

      --
      Celebrate failure, and then learn from it - Nolan Bushnell
    6. Re:Web Workers by FuzzNugget · · Score: 2

      To be fair, that isn't really the fault of JavaScript in and of itself, it's more of a failing of browser security policies.

      If a same-domain-only policy was enforced similarly to as with frames, that would remove a *lot* of the issues you're taking about. Of course, that would introduce quite a number of problems, but I think it would solve more (like, for example, sites don't take ten fucking minutes to load a single page because it's reliant upon a thousand different ad servers, tracking systems... seriously, there are times when my 1080p screen can't contain the NoScript blocked list menu, it's absolutely absurd)

      Yeah, you could still do some server trickery to load external scripts, but it would be a pretty big roadblock for incompetent developers who include a million external scripts to deal with a simple task that could handled by... well, not being incompetent.

  9. If only Guido hadn't blown it with Python. by Animats · · Score: 5, Interesting

    Arguably, it should have been Python, which is a better language. But Python has a problem. Python's little tin god, Guido von Rossum, is in love with his own implementation, CPython. CPython is a naive interpreter. (A "naive interpreter" is one which does the specified operations in the specified order, with little optimization across operations.) In CPython, everything is a dictionary and a lot of time is spent doing lookups. This allows everything to be dynamic. In Python, one thread can patch objects in another thread while both are running. Objects can gain or lose elements on the fly. Even running code can be "monkey-patched".

    The price paid for that excessive dynamism is that a Python compiler is hard to write, and an optimizing Python compiler can't optiimize much. Google tried in-house to make Python faster, and their "Unladed Swallow" failed humililatingly. (A different group at Google then developed Go, aimed at the same problem of producing something good for server-side processing.) The PyPy crowd has tried, hard, to make an optimizing Python compiler, and with an incredible amount of complexity under the hood, has made considerable progress, but not enough that PyPy is used much in production.

    Pascal went down for a similar reason. Wirth was in love with his elegant recursive-descent compiler. But it didn't optimize, couldn't handle separate compilation, and had no way to handle errors other than aborting. Python seems to be headed for similar irrelevance. It hasn't even been able to replace Perl, which ought to be as marginal as "awk" by now.

    1. Re:If only Guido hadn't blown it with Python. by smellotron · · Score: 2

      It hasn't even been able to replace Perl

      Python has definitely replaced Perl where I work. It's also very quickly catching up to R (statistical/quantitative analysis), but from what I hear there is still a network effect keeping R on top for bleeding-edge research.

  10. Worse is better by tepples · · Score: 4, Insightful

    Read the essay "Worse is better" and you might understand more about what causes this

    1. Re:Worse is better by Hatta · · Score: 2

      Funny, "worse is better" describes the phenomenon in your signature as well.

      --
      Give me Classic Slashdot or give me death!
  11. Load fast, or user will click Back by tepples · · Score: 5, Insightful

    Why are some developers obsessed with performance? The user probably isn't. They don't care whether something loads 2 seconds quicker

    I thought loading faster was the difference between the user staying on a document and the user hitting the Back button to return to someone else's document. Web search engines have recognized this and have started to penalize slow-loading documents.

  12. Kinda Suprised...but I guess I shouldn't be... by neorush · · Score: 2, Insightful

    I'm kind of surprised that there is not one good comment about the benefits of javascript up above this yet. I mean you can off load sooo much data to the client cpu. With the latest in webstorage and the sqlite port to JS I can actually create a friggen database server running on the client. WebRTC and WebSockets are seriously about the change everything in the next 1-2 years....I'm curious how many of the above posts are done by folks who actually do web development? It is pretty much indispensable these days, and really pretty awesome, so get used to it.

    --
    neorush
    1. Re:Kinda Suprised...but I guess I shouldn't be... by jeffb+(2.718) · · Score: 4, Informative

      Yes, and thank you for dropping my laptop's battery life from 5 hours to 2 hours.

      Tell me, do you work at Gawker?

    2. Re:Kinda Suprised...but I guess I shouldn't be... by iONiUM · · Score: 2

      All the features in JS that the parent is talking about are very important. But they're important and good for web applications, not web sites. Everyone here seems to assume that all people do with HTML/CSS/JS is write web sites, but that's no longer the case. Application which were traditionally written in WinForms/WPF/C++/Mobile apps are starting to get offloaded to web, which means we need those features in JS. I mean, why do you think the canvas tag and others were introduced?

      The problem is advertisers/annoying websites are also using them.

  13. javaScript is okay. by Kremmy · · Score: 2

    Platform is the wrong word. Something like node.js might be considered a platform, but not JavaScript itself. JavaScript is flexible, C-like, has first class dictionaries and JSON makes them super simple to serialize. It's one of those languages whose flexibility can actually be a hindrance because you have end up having to get pretty deep to find the structure ... maybe it is a platform.

  14. Lisp M-expressions by tepples · · Score: 2

    [ECMAScript] tries to look like a member of the Algol tree, but its internals behave more like Lisp.

    In other words, it implements the original plan for "M-expressions" in Lisp.

  15. JS is a C..P Language - see here why by Anonymous Coward · · Score: 4, Interesting

    My beef with JS is that it is a regression from the time of PASCAL or Ada (or should I say ALGOL ?) where good programs are nicely structured by means of proper data structures.
    This means:
    1.) Reliability is unecessarily low. You never know how many feet an object in variable "monkey" might have. Usually two and sometimes just one, zero or 312.
    2.) Security: A lack of type-safety regularly results in insecure programs. Plus, it is quite difficult to reason about program safety in absence of strong typing.
    3.) Hard to optimize: Strongly typed languages result in programs which can be quite easily optimized for execution efficiency. Compare that to JS, where the optimizer has to "infer" "typical runtime type" and then optimize for that "dynamic" type constellation. Of course, exception code must handle the "differently typed corner cases", too.
    That implies: Bloated optimizer/JIT compiler plus all the nice zero-day exploits which result from this. Donning my tinfoil hat I would say JS is a godsend for the TLAs.

    In summary: JS is a regression from the state of the art of 1970s. "IT" is actually forgetting the great achievements in Software Engineering that resulted in Algol. With JavaScript, computing has gone even further down the path of sloppiness and anti-reliability. Let's face it: 99% of people are in this profession for the love of money, not for the love of constructing reliable and correct systems.

    Dipl.-Ing.(BA) Informationstechnik Frank Gerlach
    Gäufelden
    Germany

    As a counter-concept, look at this invention of mine:http://sourceforge.net/p/sappeurcompiler/code-0/HEAD/tree/trunk/doc/manual.pdf?format=raw

    1. Re:JS is a C..P Language - see here why by jbolden · · Score: 2

      If you are going to argue for a serious counter proposal you may want to get an account.

      Regardless the battle between typed and untyped languages on the web was lost during the CGI days when Perl replaced C. Too much of the data coming in is untyped. http://happstack.com/docs/cras...

      As for Saupper reading the manual you don't seem to be considering the problem domain at all just creating an alternative strongly typed language with some different features than C++ or Java.

  16. Javascript is paradigm-free by mark-t · · Score: 5, Insightful

    One thing I personally like about Javascript is that it covers all three of the currently most popular programming paradigms.

    You want an imperative style of development? Javascript can do that, check.

    You want an object-oriented style of development? Javascript can do that, check.

    You want a functional style of development? Javascript can do that too, check.

    Some would argue that by covering so many different paradigms, it ends up covering none of them as well as languages that are designed for a specific paradigm from the ground up, and I wouldn't really refute this point... but it easily does all three of them well enough to still be profoundly productive when developing in any of them, and this means that a programmer is relatively free to pick the paradigm that best models the original problem when designing a solution. This, in my experience, results in shorter development cycles, and frequently much less buggy code.

    1. Re:Javascript is paradigm-free by anchovy_chekov · · Score: 4, Insightful

      Why pick one when you can pick all three in the same application? :)

      No, you're absolutely right - being able to choose a mode of programming is neat and Java does lend itself to doing neat things. But it still feels like a language that someone quickly hacked together. And the freedom to pick a paradigm means your fellow coders get to pick whatever happens to be in their clue bucket for the day. At least with a language that focuses on imperative or functional coding you can be reasonably sure that the guy sitting next to you has a similar view of reality as you do. "Multi-paradigm" is a bit like saying "post modern", with all the positive and negative connotations. I prefer my languages neo-classical :)

  17. Run to the hills! by KraxxxZ01 · · Score: 2

    Try this in your favorite console: [ 10 , 1, 5].sort()
    You cringe you lose.

    1. Re:Run to the hills! by leptons · · Score: 2

      The default sort coerces the array items into strings before sorting. If you want to sort integers, use the sort function like this:

      [ 10 , 1, 5].sort(function(a,b){
      if(a>b){return 1};
      if(a<b){return -1};
      return 0
      })


      The sort method in javascript gets it done, but you have to know how it works. Maybe you just don't really know javascript if you cry about this.

    2. Re:Run to the hills! by JDG1980 · · Score: 2

      This is an incredibly non-intuitive way to do things. Sorting an array of numbers shouldn't require jumping through special hoops. This is one of the many reasons why non-typed languages suck.

    3. Re:Run to the hills! by smellotron · · Score: 2

      If you need to sort other things like complex objects in an array

      Oh god help us all, complex objects like integers?

  18. Re:The hipsters need to go. Now. by jbolden · · Score: 4, Informative

    As someone who actually has 2 decades in the industry you don't sound like someone with that kind of time at all. Us middle aged folks look at NoSQL and think "Network database" or CODASYL databases are coming back. We weren't attached to Java-EJBs and expected a lighter weight version, Ruby seems like a scripting language...

    Stop trying to pretend to be older. Older people saw shit when you were young that isn't used anymore and that's hard to fake.

  19. Why isn't it PEBKA**M** by zippthorne · · Score: 2

    PEBCAK itself is an example of PEBCAK

    It implies that the user is a filter that takes input from the chair to input it into the computer, and does not use the monitor feedback system at all. Go ahead and draw the control flow diagram some time.

    --
    Can you be Even More Awesome?!
  20. Re:I wrote the front and backend by ebno-10db · · Score: 2

    I think you should stop using computers for a year and meanwhile try to get laid by an actual homo sapiens woman.

    Why are you in favor of inter-species mating?

  21. Re:The hipsters need to go. Now. by zieroh · · Score: 3, Insightful

    I have decades of industry experience in Silicon Valley as well. And really, your post comes off more as a bunch of whining than an actual critique. There are always going to be new technologies, and the people who are heavily invested in the previous generation of technologies will always groan about these dag-gone kids with all their newfangled ways of doing things. Heck, I've been guilty of this kind of thinking myself.

    But you know what? When we entered the industry as young whippersnappers, the previous generation of programmers said the exact same kinds of things about us.

    And somehow, despite all that, progress marches on.

    --
    People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
  22. Re:The hipsters need to go. Now. by Jane+Q.+Public · · Score: 4, Interesting

    "We would truly be better off without JavaScript, without NoSQL, without Ruby on Rails, and without the hipsters."

    It's all very well and good to have opinions, but you make some strong specific complaints here without actually giving reasons for those opinions. Many people disagree with you.

    What is your problem with JavaScript? JavaScript DOES, in fact, have some very serious problems. For a classic example that was linked to here just yesterday, try

    [5, 10, 1].sort();

    I happen to share your dislike for JavaScript, but I can give actual reasons for having that opinion.

    NoSQL has its problems as well. While for some narrow uses it does offer great performance, if you step outside those narrow bounds even a little bit, you are forced to code many of the functions normally handled by a relational database, manually. I have never had to implement a huge distributed high-performance database, so in my case the NoSQL use-case is limited to very simple local non-relational data stores. But again, I can articulate a reason for not caring for it: the theoretical basis for it is weak, what actually constitute proper use-cases for it are rare, and it creates a lot of manual coding that relational databases handle on their own.

    But now we come to Ruby and Rails (which are 2 different things). Yes, Ruby is a dynamic language, with all the (well-known) shortcomings of dynamic languages. But other than that, what do you have against them? Please be specific. We already know you don't like them. The question is: why?

  23. Re:The hipsters need to go. Now. by Joce640k · · Score: 2

    It's not just the hipsters, it's also people like Joel Spolsky - the god of hipster programmers.

    eg. I've lost count of the number of times I've seen this article referenced on the web and every time I see it I want to bash his head against something solid.

    "Making Wrong Code Look Wrong"? Really? How about making wrong code *be* wrong? How about not having it compile at all? How about an SQL library that doesn't accept unsafe strings as parameters?

    If you really want to, you could get the compiler to convert unsafe strings to safe strings on the fly ("implicit type conversion") to avoid having to educate the junior programmers.

    All SQL injection problems could be eliminated at a stroke, now and forever. How is possible that people aren't doing it?

    They're not though, because that would require a strongly typed language...and that's not fashionable.

    Joel also rants endlessly against languages with exceptions (there's some of in that article), fails to grok very basic C++ concepts every time they're mentioned (eg. stack unwinding), but the hipsters worship him as some sort of a guru. /rant over

    --
    No sig today...
  24. Re:The hipsters need to go. Now. by tranquilidad · · Score: 4, Interesting

    I started back in 1978 and I remember someone coming in to pitch a database technology in 2006 for which they had patents pending and it would replace relational databases. They kept describing it using catch phrases and turning rows into columns and I just couldn't grasp WTF they were talking about. I finally asked them to draw a picture and they mapped it out on the white board.

    I then asked if they had ever read about IMS and hierarchical databases. They had not. I wished them good luck on their patents and sent them packing.

  25. Re:Only game in town by rubycodez · · Score: 2

    people are learning to turn that rubbish off

  26. Re:not correct by Joce640k · · Score: 2

    OK, *some* of it applies to C.

    C can't do it as anywhere near as neatly or safely as C++ though because it has no concept of privacy or encapsulation.

    You also couldn't do things like implicit conversions to sql_safe_string to make it more friendly (assuming you want that).

    (And Joel is still wrong and Javascript still rubbish, which is more important than starting a C vs. C++ thread...)

    --
    No sig today...
  27. Re:The hipsters need to go. Now. by Billly+Gates · · Score: 3, Funny

    But Node.js invented threading and is a webscale and a rockstar language!! non blocking async/IO was invented by javascript. I can get code and can piece it together in parts and run it in parallel. Amazing this was never invented before.

  28. Re:The hipsters need to go. Now. by Billly+Gates · · Score: 2

    NoSQL has a great future. The article posted with true ACID will be a blessing.

    Here is the problem with a crappy ultra expensive solution from Oracle or Microsoft. It can't scale and prices go up on an expontential basis if you try to make it do so. Zdnet a few years ago put in a price tag for running youtube.com on Oracle's database instead of Google's NoSQL solution. The price tag was almost $8,000,000,000!!

    NoSQL does not mean no sql. It means not only sql. For quick webscale performance you need low latency in the milliseconds. SQL is not designed for this. Joins slow things incredible and so do threads with blocking I/O which is the appeal of node.js and ngix that use event driven technologies.

    It is nice when you have small data and an employer who already has a license but outside of this for a startup traditional relational databases can't cut it for big data on a shoe string budget.

  29. Where is the solution? by MichaelHunter · · Score: 2

    If in a room full of developers, I am an "average" developer, but I also tend to approach things logically. I do my research and choose the appropriate tool to get the job done efficiently, with code that is generally accepted by the greatest user base. My clients would not want me to hand them over a product that could not be easily understood and modified by other average developers, "Anyone know a Python developer?", "No, but I know someone that works with Ruby"... In the real world this is incredibly ridiculous. The term "average developer" is also looked upon poorly on this board, and unfortunately, this being 2014, people should not require a 4 year degree to code, code should have evolved enough by now that average people should be able to put words and thoughts into simple code and have it do what is intended. It is the hardcore developers that overcomplicate what should be incredibly simple. A business term, "Where there is pain, there is opportunity", and I hear all of the time, so-called hard-core programmers with their noses up complaining about JS. I come from a world where you do not complain about something without presenting a solution, and of all these posts there is hardly anything worthy of a "solution". Apparently there is a lot of pain towards JS, so maybe one of you smart people should chase the opportunity to build a solution; just understand that no matter how perfect you think your alternative is, if no one uses it, it is useless. I use JS as a carpenter would use his hammer, I don't complain about the hammer, but if one of you smart folk were to build a better hammer that saved me time and money, I would surely use it.

    1. Re:Where is the solution? by Todd+Knarr · · Score: 2

      The complaint, though, is that people aren't using Javascript as a carpenter uses a hammer. They're using it like a carpenter would use a hammer to mill and tool a high-performance aluminum engine block. Of course your first thought would be "DUH! A carpenter's hammer's the wrong tool for that job, you need a CNC mill for that.". Which is the complaint's point. And we already have plenty of the right tools for that job, the problem is that Javscript developers go "But those tools are too complicated!". No, it's not the tools that're complicated, it's the job that's complicated. That's not what they want to hear, though.

      Bear in mind that if you can approach a problem and work through it logically, you are not an average developer, not by a long shot. The ability to do that puts you in the top 25% of developers right off. Witness the question over on Ars Technica where a developer seriously asked, in essence, why we divide applications into modules with defined APIs and hide the implementation details of a module from the components that use it. This... should have been covered way back in introductory programming classes, and anyone who's been developing software for any length of time should be able to rattle off the reasoning behind it. Yet here we have Jason Swett writing Web applications without enough understanding of the concept to know why we do it that way. He's typical of at least half the developers out there today: they do cargo-cult programming, following a set of directions without understanding what it is exactly that they're doing.

  30. Re:The hipsters need to go. Now. by tomhath · · Score: 2

    NoSQL is just a cache, except if it gets messed up you're screwed, unlike a cache which can be reinitialized. But if you want to use it, skip the overhead and use BDAM

  31. Not what it was designed for by Anonymous Coward · · Score: 2, Interesting

    The problem is JavaScript was only really designed to do small simple things, but just like the shitpile that is X86 it's been extended and kludged in ways that I'm sure the creators never intended or imagined and nowadays it is being used to run game engines, database engines, emulators and virtual machines!

    The fact that you NEED a browser with a good JIT to visit JavaScript-heavy pages without responsiveness turning to molasses just shows how out of control things have gone.

    It's only because we have such a ridiculous excess of CPU power that people can get away with this; It's bad enough that the web is so polluted with crap that it would take several minutes for the average web page to load over a modem or non-G3/LTE phone, but that we need accelerated or highly clocked CPUs and craptons of memory just to be able to render and run many pages makes me want to scream!