I've used Node for DS reasons.
To put it bluntly, JavaScript is a bit of a bitch of a language to try and get to work for its intended purposes. Since DS has a lot of other more appropriate options available, I advise against JavaScript.
If you're determined to use JS, though, so long as you genuinely understand how the language works, it is possible and isn't the worst approach, I suppose....
Seems like using a hammer for a screw. Use tools that have the least friction IMO.
On one note, using JS to visualize your model / data is useful over the web (ex. FlowingData.com).
Using JS for DS is the new thing now, I see twitter posts and articles pushing it as python's replacement in the DS field
i don't see how when python already has the modules ready to go and it is along with R the two standard langs but hey..
it’s kind of silly to reinvent wheels. Even in the case of R—the canonical language for statistical programming—an interface approach is used rather than reinventing certain deep learning libraries that already exist in python. R also interfaces well with a lot of other things.
Of course any Turing complete language can be used to accomplish whatever you want in software in general, including DS. But it’s hard enough as it is to develop and deploy useful applications in DS. I don’t see the game in adding more friction to that process by using a language that lacks the robustness other languages already have in that domain. But I’m kind of ranting now so I’ll stop lol.
JavaScript's biggest appeal over both R and Python is speed, but it has a tendency to behave "unpredictably", which is really just a fancy way of saying the programmer doesn't understand the language
and it's not faster when you have to spend seven years learning to understand async code..... so.....
I have nothing against JS for DS prototyping otherwise, but think that it should be set aside with R and Python for languages that scale better to swim around in bigger lakes.
I was perusing edx looking to see what offering exist in the data and CS subjects that weren't by Microsoft which turned out to be basically none. But, Microsoft has really fleshed out their curriculum for their professional certificate offerings. I'm mildly impressed, and tempted to work through one to see if the courses are as impressive
Based on my memory of the courses back in the day, the content is basic, more intended to teach how to use their product than how their product works (so that you could theoretically reproduce the same thing outside of AzureML), but the extra resources they linked to were always really good (and free!)
Javascript has very popular Data Visulation library. Just like people use Node for OS automation & Runtime, Express & Koa for backend, React for Frontend, React 360 for 360, Three.js & AFrame for(VR), PWA, Web Assembly
TensorFlowJS is future of ML in Javascript & there’s are n number of Data Science tools in javascript that can achieve anything that you would in Python/R.
Language has never been a barrier
I know it’s hard but Javascript is going to fast. ML is fancy way of saying Data Science by computer scientists. DS is a term used by Mathematicians & Stats people. There’s not much of a difference between both. Google launched TensorFlowJS for a reason
If you’re referring to D3, I agree. D3 is awesome, though the learning curve is steep and it's incredibly verbose compared to other exploratory visualization libaries in R (and even python). D3 has been more so used to showcase final results after all the work has been done. It typically hasn’t served well for the day to day grind of doing data science work, at least in my experience. I know Mike B. has created a notebook product to try to make it more interactive.
JS is fast, but is it faster than other compiled languages like C/C++? These languages are called by R and python to perform all the heavy lifting, so the intense operations are not interpreted. If JS is not faster than C/C++, then maybe Google’s play with TensorflowJS is somewhere elsewhere. Maybe JS will have some unforseen innovation in DS/AI given it’s the canonical web language.
The label put on this kind of work is another discussion (I’m not sure it’s entirely important what we call it) and highly subjective.
As for tools, I don’t doubt there are libraries available in JS to do the work (cool link you sent). The question is it easier or harder to do the job? By how much? Any friction has a cost on daily work, and could dramatically slow down or cause a project to fail. Some times the friction is mild enough that it does not matter though. I think JS is cool! I just think there are better tools to do DS work at the moment. Maybe that will change in the future.
8 Answers
Alice
Upvotes from:
Why would you use JavaScript for DS? It’s primary a front end language?
Aryan
Upvotes from:
To put it bluntly, JavaScript is a bit of a bitch of a language to try and get to work for its intended purposes. Since DS has a lot of other more appropriate options available, I advise against JavaScript.
If you're determined to use JS, though, so long as you genuinely understand how the language works, it is possible and isn't the worst approach, I suppose....
yankarki
Upvotes from:
On one note, using JS to visualize your model / data is useful over the web (ex. FlowingData.com).
Dexter
Upvotes from:
i don't see how when python already has the modules ready to go and it is along with R the two standard langs but hey..
Ezra - Sql
Upvotes from:
Of course any Turing complete language can be used to accomplish whatever you want in software in general, including DS. But it’s hard enough as it is to develop and deploy useful applications in DS. I don’t see the game in adding more friction to that process by using a language that lacks the robustness other languages already have in that domain. But I’m kind of ranting now so I’ll stop lol.
emma
Upvotes from:
and it's not faster when you have to spend seven years learning to understand async code..... so.....
I have nothing against JS for DS prototyping otherwise, but think that it should be set aside with R and Python for languages that scale better to swim around in bigger lakes.
I was perusing edx looking to see what offering exist in the data and CS subjects that weren't by Microsoft which turned out to be basically none. But, Microsoft has really fleshed out their curriculum for their professional certificate offerings. I'm mildly impressed, and tempted to work through one to see if the courses are as impressive
Based on my memory of the courses back in the day, the content is basic, more intended to teach how to use their product than how their product works (so that you could theoretically reproduce the same thing outside of AzureML), but the extra resources they linked to were always really good (and free!)
Liam
Upvotes from:
TensorFlowJS is future of ML in Javascript & there’s are n number of Data Science tools in javascript that can achieve anything that you would in Python/R.
Language has never been a barrier
I know it’s hard but Javascript is going to fast. ML is fancy way of saying Data Science by computer scientists. DS is a term used by Mathematicians & Stats people. There’s not much of a difference between both. Google launched TensorFlowJS for a reason
Mr David
Upvotes from:
JS is fast, but is it faster than other compiled languages like C/C++? These languages are called by R and python to perform all the heavy lifting, so the intense operations are not interpreted. If JS is not faster than C/C++, then maybe Google’s play with TensorflowJS is somewhere elsewhere. Maybe JS will have some unforseen innovation in DS/AI given it’s the canonical web language.
The label put on this kind of work is another discussion (I’m not sure it’s entirely important what we call it) and highly subjective.
As for tools, I don’t doubt there are libraries available in JS to do the work (cool link you sent). The question is it easier or harder to do the job? By how much? Any friction has a cost on daily work, and could dramatically slow down or cause a project to fail. Some times the friction is mild enough that it does not matter though. I think JS is cool! I just think there are better tools to do DS work at the moment. Maybe that will change in the future.