pikers / piker

(e2e) foss trading for non-tinas
GNU Affero General Public License v3.0
102 stars 17 forks source link

Fast langs, which to try.. #106

Open goodboy opened 3 years ago

goodboy commented 3 years ago

For piker, python is glue and a great interactive lang for getting things done in a readable maintainable way. Using it does not preclude using faster (compiled) langs for processing.

There's the the usual suspects we're ok with including as deps like cython and numba, maybe mypyc once it matures a little.

There's a decent little list of the Python options on the pyjion repo.

There are a few newer langs I'm personally very interested in having first class support for as stream processing delegates:








More to come, please feel free to pipe in lurkers ;)

salotz commented 3 years ago

Chapel: https://chapel-lang.org/

salotz commented 3 years ago

Ada. Not going to be very popular though. e.g. http://www.inspirel.com/articles/Ada_Python_Binding.html

goodboy commented 3 years ago

Thanks to @salotz for pointing out that pyston just had a v2 release. Though geared for web micro-benchmarks, could be handy to try soon since it has better compat with 3.8 then pypy.

Also a good read on rust vs. ocaml (somewhat relevant since original compiler was written in latter).

goodboy commented 3 years ago

Interesting bit on working together with ocaml from jane street: https://blog.janestreet.com/using-python-and-ocaml-in-the-same-jupyter-notebook/

Here's their big schpeal on why ocaml: https://www.youtube.com/watch?v=v1CmGbOGb2I

goodboy commented 3 years ago

Also of note for AOT compilation is pythran as a numpy backend; source.

salotz commented 3 years ago

There's an emerging branch of languages which are essentially high level interfaces to low-level parallel computing interfaces with a GPU focus, i.e. CUDA, OpenCL, etc.

salotz commented 3 years ago

One other low-level GC-less "fastlang" I am interested in is Odin.

Its kind of like a less ambitious Zig. No exceptions or async. No macros but has support for compile time programming. I like the simplicity. Probably will be similar to the Jai language from Joe Blow.