Here I\'m really interested in lowering barriers to mathematical education. Targ
ID: 649008 • Letter: H
Question
Here I'm really interested in lowering barriers to mathematical education.
Target:
I'd like to see created for the JavaScript community, an equivalent of the Python-based/linked scientific and high-performance computing libraries (great lists of which are available through Sage and otherwise). And I want that, because I'd like to make it easy for people who learn JavaScript to get into scientific and numerical computing without having to learn Python (& company). (I know it's easy to learn Python, as I basically did it at some point, but this suggests that perhaps it'll be easy to compile some restricted subset of JavaScript to Python.)
Hypothesised method:
I'm primarily interested in a new language with minimal difference from JavaScript, because the market ("human compilers") I'm targeting are programmers who already know JavaScript. What I want to target those people for, is to give them a minimally different language in which to write code that compiles to faster C, in the manner that RPython and Cython do for Python. I'm willing to throw out a lot of JavaScript features, I just want to be careful to add a minimum number of features back in. I'll definitely be looking at Lua, Dart, ECMA Harmony (which has no formal date of release, or am I mistaken?), etc. as these are all close resemblances to contemporary (2012) implementations of JavaScript.
Questionable Motivations:
I'm personally willing to learn any language/toolset that gets things done faster (I'm learning Erlang myself, for this), but here, I am specifically interested in lowering the bar (sorry) for other people who may not have such willingness. This is just one of those "want to have my cake, and eat it too, so I am putting some time into researching the problem" situations. I have very limited prior experience in computer language design, but so far from a hacking-the-ecosystem point of view, the problem seems interesting enough to study, so, I hope to be doing more of that soon.
Explanation / Answer
The point of the Python scientific libraries is that Python merely acts as a glue code for shuffling around the data between the scientific libraries. Python itself does little of the high performance grind work. Python is a good language for this, as it supports both the procedural and object-oriented paradigms (and functional to a large degree), and one can easily link with external libraries.
Javascript is heavily tied to browser technologies. It is mostly an awful language not at all designed to be efficient or to write large scale software, although in practice both of those happen due to huge investments in compiler technology and careful use of the language, respectively. Javascript is made 1000 times nicer by well designed libraries such as JQuery. I'm not sure whether Javascipt provides any support for linking easily with C libraries (though I guess it must, indirectly through the browser, and via Java).
I don't mean to be discouraging, but the whole idea seems ill-founded. Javascript and high-performance computing are only found together in sentences beginning with "A man walked into a bar ...."
That said, I'm willing to be proven wrong. Real-time Java exists, which is an odd combination, and is reasonable successful, so who knows.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.