11 ms·
You mean, how much you can develop during a PhD on scientific computing with a known technical computing syntax and paradigm on top of a modular compiler infras
by marmaduke 7y ago
You mean, how much you can develop during a PhD on scientific computing with a known technical computing syntax and paradigm on top of a modular compiler infrastructure with an enthusiastic community?
(Not to detract from Julia devs but there were plenty of Lisp based contenders ready for scientific computing before so its useful to ask why Julia why now etc )
*edit: this was kinda snarky but I actually meant a compliment on the excellent strategic choices Julia devs made as compared to other scientific computing attempts
- forgotpwd16 7y ago>Lisp based contenders ready for scientific computing Any examples?
- xiaodai 7y agoIncanter
- flavio81 7y ago>Any examples? Common Lisp has been used in scientific computing since decades, so in some sense it's "ready". Also, see CLASP: lisp at the state of the art of computational chemistry.
- phillc73 7y agocl-ana, Common Lisp data analysis library with emphasis on modularity and conceptual clarity - https://github.com/ghollisjr/cl-ana https://github.com/ghollisjr/cl-ana numcl, a numpy clone in Common Lisp - https://github.com/numcl/numcl https://github.com/numcl/numcl Clojure kixi-stats- https://cljdoc.org/d/kixi/stats/0.5.0/doc/readme https://cljdoc.org/d/kixi/stats/0.5.0/doc/readme and the book Clojure for Data Science - http://clojuredatascience.com/ http://clojuredatascience.com/ Clojure's Incanter has been mentioned already - http://incanter.org/ http://incanter.org/ OWL, the OCaml Scientific Computing project - https://ocaml.xyz/ https://ocaml.xyz/ And probably not quite what you're looking for, but there is a Racket data frame structure which provides some data science like manipulation capabilities - https://alex-hhh.github.io/2018/08/racket-data-frame.html https://alex-hhh.github.io/2018/08/racket-data-frame.html Appreciate some of the above are Schemes and not Lisps, but they may still be interesting.
- marmaduke 7y agoLush is the one I had looked at long ago, http://lush.sourceforge.net/ http://lush.sourceforge.net/
- ddragon 7y agoI'll go and say that, outside of the great work from the creators in the development and marketing of the language, the main difference between those Lisp based languages and Julia in terms of attracting people is the syntax. Julia focuses on being approachable to Python, R, Fortran and Matlab programmers (since those already "won" by the time Julia was created), and it wouldn't be able to convince any significant number of those to even check the language without looking like Python, R, Fortran and Matlab (even when S-expr is indeed more elegant and powerful). Julia base syntax is closer to how people write math, so it's more familiar even to people who are not dedicated programmers which were part of Julia's target audience. And when people discover the lispiness in Julia which is a thin layer below the surface syntax (such as the metaprogramming system and multiple dispatch) they at least already gave the language a fairer chance. Other languages that borrowed from Lisp but didn't go, to different degrees, with s-expr like Scala and Clojure (plus R) also had success in the data science/ML area. Hopefully Nim also gets a foothold, and possibly Racket with optional infix syntax.
- flavio81 7y ago>the main difference between those Lisp based languages and Julia in terms of attracting people is the syntax Yes, and this is practically the only thing that I find wrong with Julia, besides the lack of the interactivity of CL. It's like populism -- an inferior syntax choice taken just to attract the Pythonistas.
- chrispeel 7y agoI guess you mean you prefer prefix rather than infix notation. Do you have any specific technical reasons for this?
- jacobwilliamroy 7y agoI dislike operator precedence, and I also think that putting all the plus signs in between the addends is a waste time. I like being able to do this: (+ 1 2 3 4 5)
- ihnorton 7y agoIs there a Lisp I can download, for Windows, that provides a linear algebra problem solving environment* out of the box or from a package manager? Ideally linked to a reasonably optimized BLAS implementation. * this is intentionally under-specified, but to me it means some nontrivial subset of matlab/numpy functionality
- StefanKarpinski 7y agoI’m sure we can rig a way to call from Julia’s embedded lisp mode back into Julia for you. Then you’ll be all set :D
- ihnorton 7y agohttps://github.com/JuliaLang/julia/pull/17108 https://github.com/JuliaLang/julia/pull/17108 only implements the REPL part but it’s a start. “Downloadable Windows LA REPL” was a criteria Julia met within ~6-8 months of public release, and it was one of the reasons I got involved even though I only ever use(d) windows at work (...mostly for scientific instrumentation which shipped with and only supported windows). This is slowly changing, but IMO windows support is still table stakes for a scientific computing environment, and seeing windows support meant both that I could use it where I most needed it, and signaled that Julia had potential for real traction (not abandoning >70% of users out of the gate). I think windows support is also one of the reasons Python/NumPy got to be where it is — it wasn’t always perfect, but they at least cared about windows, more so than most other scripting languages in the mid-2000s. Ditto CMake.
- dTal 7y agoPython + Hy + Numpy In all seriousness that's probably the quickest way, if by 'lisp' you mean 's-expressions'. For a real lisp, maybe these Numpy bindings[0] for Chez Scheme? Although the py-* names look a bit awkward. You could easily rebind those, but maybe that's not "out of the box" enough. [0] https://github.com/guenchi/NumPy https://github.com/guenchi/NumPy