Follow

I think my top three language picks would be: C++, Python, and probably Scheme. It really comes down to the cathedral and the bazaar.

Even though C++ and Python have commities, Python has an exposed ast and is probably the most popular language. So it is like going to the bazaar. You can find really anything there. C++ has inline assembly and many weird hacks. A large chunk of it is just undefined behavoir. And, a lot of programming paradigms can go and set up shop in C++. Many other languages say they have a unique quirk, only for it to end up in Python and C++ a few years later.

Languages that tell you what to do are cathedrals. Scheme languages have their 9 primitive functions (9 holy primitives) and that is about it to be a scheme. Their committee tries to make RSR7 do everything. But so few of the older schemers actually care.

@jmw150 a large chunk of any software is undefined behavior, it's just what happens when you break an invariant. The reason c++ has a lot of it in it's spec is because it tries to convey the invariants of the underlying tech (be that the OS, the compiler or the hardware) in some generic fashion. Aside from some historical baggage, these things usually manifest themselves in one way or the other, even if you sweep them under the rug.

@jmw150 To add to this, I love Julia (and other lisp/pseudolisp dialects like racket). I think it should seriously compete for Python on your list 😉

It has so many nice features, spiffy macros, quasiquoting (though with slightly different syntax), and has been able to do anything I ask of it with flexibility and grace. While the package environment isn't as extensive as Python yet, I'm almost positive it will become the standard for scientific computing within a decade or two, assuming current trends hold (which, obviously, they probably won't, but I still like it lol).

@johnabs

Yeah it looks pretty great. I prefer a language that is fast by default without user effort costs. Python is mostly number 2 because it is the most popular in general, it is easy to use, and I am enjoying Pytorch and all of the scipy libraries. So maybe. :)

Did you check out this paper? Julia syntax is now directly differentiable.
arxiv.org/abs/1810.07951

And its code.
github.com/FluxML/Zygote.jl

@jmw150 Yeah, I've seen both of those since they came out actually! I've been a huge fan of their work, and the extensions thereof. Especially since they leverage the Cuda package to make it trivial to run these operations on GPUs, its pretty incredible that it requires no overhead on the dev's part.

Have you seen their website at fluxml.ai?

@johnabs

Yeah. I should check it out more though. It looks like it grew a lot. :ablobaww:

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.