Hacker News new | ask | show | jobs
by teleforce 2043 days ago
Personally I think array programming languages are the future and one of the most popular programming languages in science and engineering is Matlab, and it is to some extent an array based programming language [1].

I am surprised that the author (and reviewers of the paper) has missed to perform proper literature review, for example it missed other recent and promising works on functional array programming languages namely Single Assignment C (SAC) and Futhark [2],[3].

ShapeRank also seems to take vector algebra "tensor" concept to the extreme and to be honest it's better to based on "versor" since geometric algebra is probably the future of computer algebra [4].

Last but not least and probably the most controversial is that why create another standalone array language from scratch? It will be better to make a seamless DSL based on general purpose language like D language and you do not have to re-invent most of the libraries (and C library support in D is second to none). Arguably the most successful recent effort on array based scientific programming language is Julia and it is still very much dependent on some Fortran based libraries for speed. While with D you can go "turtle all the way down" and still meet the speed requirements that are needed in scientific computing [5].

[1]https://en.m.wikipedia.org/wiki/Array_programming

[2]http://www.sac-home.org/doku.php

[3]https://futhark-lang.org/

[4]https://en.m.wikipedia.org/wiki/Comparison_of_vector_algebra...

[5]http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...

4 comments

I'd love to drop Python and go all in with a true array language (i.e. not Matlab), but you only really have 4 options:

Dyalog APL, J, Kdb+, Shakti.

All of those are closed source and expensive (Dyalog is fairly affordable, but still a paid product) with the exception of J. J is a cool language, but isn't quite my cup of tea.

So if one of the new projects ever picked up steam and got a decent sized community with hooks into all the same numeric libraries as Numpy, and some decent charting libraries...then we would have something nice.

You have Kona, ngn/k and others are shaping up. Not yet production quality, but Shakti isn’t there yet either.
I thought Kona was intentionally not going to ever get close to the commercial K languages due to fear of lawsuit. It is supposed to stay a toy.
J is not closed source and hasn't been for a while. https://github.com/jsoftware/jsource
I said "with the exception of J" which was supposed to apply to mean not closed source and not requiring a commercial license (well... outside of Jd).
> Arguably the most successful recent effort on array based scientific programming language is Julia and it is still very much dependent on some Fortran based libraries for speed.

That is because some libraries (e.g. BLAS implementations) have many developer-years of careful optimizations. These are not trivial algorithms to implement. Implementing them in Julia, nonetheless, has been a long-standing goal of the Julia community.

Array programming is the future and always will be (since 1958). Same as LISP.

APL and LISP both had the problem that they went straight to the (extreme) logical conclusions of a paradigm. Which is means you have to put an effort to actually derive the benefits be can’t just “wing it till you understand it” like you can in most other languages. Notably, C++ has left that club with C++14 (maybe even 11), but popular languages at the time of their popularity have always been there, and likely always will be.

> ShapeRank also seems to take vector algebra "tensor" concept to the extreme and to be honest it's better to based on "versor" since geometric algebra is probably the future of computer algebra [4].

I'm curious why you say that? Quantum computing or something? I was very interested in geometric algebra several years ago, but have never found need for it. Seems like it helps simplify problems that are already simple.

There is a recent HN entry on GA, the the posted article, and some of the commentaries provide the usefulness and the huge potentials of GA [1].

To be specific, if you have noticed, there's a recent popular trend in "network observability" and don't assume that the "network" is only for the computer networks, it can be any network (social, pandemic,system, etc) and the original term actually refer to the power system. For a start, this network observability requires fusion of data from multitude of sensors, parameters, entities, components, etc to provide accurate model for physical and/or virtual world. For example if you are trying to develop level 5 autonomous driving system, comprehensive data fusion, integration and analytics is the very first step towards successful automation.

If you think that the term network observability is familiar, it is because the main reason eBPF is created was to perform comprehensive Linux OS observability. There is a wonderful website that you can see and observe (pun intended) how to perform network observability, and why it is really useful [2].

By supporting and representing data as "versor" natively in programming languages you can easily model and perform insightful animation similar to here [3]. There is also a recent post on HN about ObservableHQ website itself [4].

[1]https://news.ycombinator.com/item?id=25142528

[2]https://observablehq.com/

[3]https://observablehq.com/@enkimute/animated-orbits

[4]https://news.ycombinator.com/item?id=25161409