back to article Deno 1.8: Node.js alternative gets 'out of the box GPU accelerated machine learning'

The Deno project has released version 1.8, including experimental support for the WebGPU API enabling "out-of-the-box GPU accelerated machine learning." Deno, which runs JavaScript outside the browser, is a project co-founded by the creator of Node.js Ryan Dahl, in part to fix design mistakes in his earlier effort. Despite …

  1. RobLang

    It'll take a while for Deno AI tooling to arrive

    What makes Python really handy for offloading maths is that there is loads of tooling already available for crunching, analysing and preprocessing data. Those tools will be possible in Deno but Python has the headstart. I also prefer the Python syntax for maths as the end result looks more like the algorithm, with little furniture. Javascript/Typescript less so but that's preference. I imagine most will be using the native AI to just randomly throw data into a backprop algorithm and claim their software has AI in it.

  2. JulieM Silver badge

    JavaScript for mathematical applications?

    I can see one slight problem with using JavaScript for mathematical applications.

    The thing about maths is, you often end up doing a lot of additions. And it's nice to be able to phrase an addition as an actual addition, as opposed to subtracting a negative number. Which would require an actual addition operator that treated things as numbers .....

  3. Gene Cash Silver badge

    Why?

    "the team hopes to attract Python developers"

    Why would I leave Python for this garbage? It sounds like a bloated javascript.

  4. docbiz

    JavaScript? For mathematics? It doesn't even have an integer type.

  5. docbiz

    Integers

    JavaScript doesn't even have an integer type. Mathematicians will not take this proposal seriously.

    1. CrackedNoggin Bronze badge

      Re: Integers

      Since last year, primitive type 'bigint' is an arbitrarily long integer string. Performance, though ...

    2. Version 1.0 Silver badge
      Unhappy

      Re: Integers

      I was listening to an application programmer recently, telling people that floating-point calculations were much faster than integer math when creating a file storage method. Looking at the files he is creating I see that he's storing a few tens of thousand 16x8 matrices, each with a row of one's and zero's stored using floating point values.

      It only takes one easy solution to create problems.

  6. big_D Silver badge

    It's a nail...

    As Abraham Maslow said, "I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail."

    Use the right fragging tool for the job, don't turn every job into a nail!

  7. Elledan

    ECMA Script

    I'm always amazed at how much interest there is in a scripting language which is:

    * single-threaded.

    * only supports IEEE-754 32-bit floating point, and

    * only supports ASCII strings.

    Whereas I consider Python to be a worse fit for computation work than FORTRAN, it at least has a complete type system. To even begin to suggest that JavaScript is remotely suitable for any work that requires precision is basically insulting the entire field of computing and related.

    Having had the pleasure of integrating JavaScript with binary (RPC) protocols in a variety of commercial projects didn't help with growing my appreciation for JS. Adding the TypeScript veneer on top helps a bit, but doesn't change the fact that ultimately ECMA Script is a basic scripting language designed for simple automation stuff in a 1995 web browser. Not a language to be used with processing data sets or anything more complicated than setting up a dynamic HTML menu.

    1. CrackedNoggin Bronze badge

      Re: ECMA Script

      Because it is a concurrent processing language. Managing parallel processing (spun off with forks or passed to workers) is a breeze with concurrent processing.

    2. MacroRodent

      Re: ECMA Script

      > only supports IEEE-754 32-bit floating point

      Really?

      $ node

      Welcome to Node.js v14.15.4.

      Type ".help" for more information.

      > var a=1.23456789e300

      undefined

      > a

      1.23456789e+300

      >

      Also the V8 engine is damn fast, it runs JS way faster than any dynamic language has any right to run...

      1. Anonymous Coward
        Childcatcher

        Re: ECMA Script

        You missed a bit out ...

        $ node

        Welcome to Node.js v15.11.0.

        Type ".help" for more information.

        > var a=1.23456789e300

        undefined

        > a

        1.23456789e+300

        > quit

        Uncaught ReferenceError: quit is not defined

        > quit()

        Uncaught ReferenceError: quit is not defined

        > exit

        Uncaught ReferenceError: exit is not defined

        > exit()

        Uncaught ReferenceError: exit is not defined

        > .help

        .break Sometimes you get stuck, this gets you out

        .clear Alias for .break

        .editor Enter editor mode

        .exit Exit the REPL

        .help Print this help message

        .load Load JS from a file into the REPL session

        .save Save all evaluated commands in this REPL session to a file

        Press Ctrl+C to abort current expression, Ctrl+D to exit the REPL

        > .exit

        1. MacroRodent

          Re: ECMA Script

          Never even noticed that. Like all old unix heads, I exit interpreters with ^D (the standard way to indicate EOF in a terminal).

          1. Anonymous Coward
            Childcatcher

            Re: ECMA Script

            "Like all old unix heads, I exit interpreters with ^D"

            I'm 50, been using Linux for over 20 years ... and am taking the piss 8)

            That is actually how I tried to exit the bloody thing

    3. DrXym

      Re: ECMA Script

      1. Javascript is multi threaded with web workers

      2. It supports 64-bit doubles. That isn't enough for some tasks but it's not 32-bit.

      3. It supports UTF-8 encoding, i.e. Unicode. Not ASCII.

  8. CrackedNoggin Bronze badge

    A numpy equivalent would be required but I don't see such thing in the Deno stdlib presently https://deno.land/std@0.89.0 .

    A lot of data science work is done in Python/Jupyter, running in a browser, with all the security risks that poses. So Deno could at least be a welcome addition to securing the browser - Jupyter on Deno?

    Deno's Typescript/JS is a concurrent language, Python is not. A concurrent language is very helpful for managing distributed processing.

    Deno has the opportunity to leapfrog Python's complicated virtual environment nightmare.

    In summary, where Deno could be useful is in the top level management and user I/F - it would have to delegate the number crunching.

    Python language has better numerical dexterity than JS where number crunching is not delegated. That's the weak point for using Deno here.

  9. werdsmith Silver badge

    Python is in the process of supplanting MatLab for the maths stuff. Jupyter is popping up all over the place in the MatLab heartlands.

    So knocking down such an established tool is going to take some doing.

    1. Anonymous Coward
      Anonymous Coward

      Is this about knocking down Python?

      Or building a tool set for people who are currently outside the current ivory tower of machine learning and Python coding? Seems like this will grow a user base pretty quick, but not by cannibalizing people who are already super happy coding python by themselves.

      This will succeed because it will allow people to integrate GPU acceleration into their projects without having to integrate as many build environments to code, test, and debug in. That was one of the advantages of Node, that you can take a common pool of the same programmers, and allocate them to teams on the back or front end as the project dictates.

      Having to pay a separate python/gpu acceleration team, a server team and a front end team, then iron out the politics, integrate the stuff, and deal with the inevitable finger pointing when it breaks, that's the part that might be nice to avoid. Though the machine learning specialist may die a little inside when they get stuck writing a debug log chopper after the clever "AI" bits are coded up, instead of camping the Foosball table in the break room. (Shit, remember breakrooms?)

      That said, the people who thought coding an in memory database with JavaScript was a good idea (because they know JavaScript, right?) will continue to produce horrors. GPU accelerated horrors.

      But at least the middle ware is in Rust right?

      1. werdsmith Silver badge

        Re: Is this about knocking down Python?

        Python is already capable of being CUDA enabled, albeit an NVidia lock-in, expect more to come. Maybe there is already.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like