5 ms·
Looks like another C/C++ language-family product for sure. What I want is a Lisp with Python-level libraries.
by adamc 7y ago
Looks like another C/C++ language-family product for sure.
What I want is a Lisp with Python-level libraries.
- Areading314 7y agoHy
- codezero 7y agoHave you looked at Hy? https://github.com/hylang/hy https://github.com/hylang/hy
- phyrex 7y agoClojure? The java ecosystem is the only thing that rivals the python one, and Clojure integrates very well.
- TeMPOraL 7y agoYup. And not necessarily a new Lisp - Common Lisp, with SBCL implementation, is plenty fast enough. It's just the library and tooling ecosystem that's lacking.
- kensai 7y agoJulia. Not exactly Lisp, but the concepts are there. Plays well with Python.
- sesuximo 7y agoI would like to have an excuse to use Julia in 2020
- ubertakter 7y agoI've been learning and using Julia the last few weeks (coming from an OOP background). I highly recommend it. I mainly write highly mathematical programs and utilities to process some data or another. So far I've knocked out some smaller programs and started translating a larger library to learn about the type system. I haven't dug in to UI bindings yet.
- AnimalMuppet 7y agoThen you're probably not looking in the "performance-oriented" category.
- TeMPOraL 7y agoWhy? SBCL implementation of Common Lisp is very usable for performance-oriented tasks; it compiles to native code, and with sufficient nudges, you can get pretty tight assembly out of it. Clasp implementation of CL would be another choice, it leverages LLVM for compilation. The problem is with the library and tooling ecosystem.
- AnimalMuppet 7y agoIf you're going to do SIMD, you have to care about memory alignment. If you're going to do high-performance without SIMD, you still wind up caring about things like cache misses. So you'd want a Lisp that 1) lets you control memory alignment, and probably 2) that doesn't garbage collect. At that point, is it really a Lisp? Now, you may say that "performance-oriented" doesn't have to go as far as SIMD or caching tweaks. And that's true. But if you want a performance-oriented language that can reach all the way up the performance curve, I don't see it being Lisp.
- TeMPOraL 7y agoDepends on which parts of Lisp you're interested in. You can go as far as writing Lispy assembly (SBCL does), which gives you control over memory and is not garbage collected. As someone desiring a performance-oriented Lisp, this is something I'd like. At runtime, I can handle memory myself ($deity knows I often do that when writing performant code). What I want to have is the friendly, homoiconic Lispy syntax, the ability (and the ease) to write code that writes code, and perhaps to have these facilities available at runtime.
- WorldMaker 7y agoAlso, memory alignment isn't an entirely foreign concept to Lisp, it just rarely has been a focus. The long living irony that the etymology of the names of very common Lisp functions `car` and `cdr` themselves are a lingering artifact of 36-bit word memory alignment on an ancient IBM system architecture.
- draklor40 7y agoClojure. Faster than Python, just as good libraries.
- adamc 7y agoMy experience with Clojure was that you spend a lot of time looking at Java-level exceptions. It doesn't really hide the Java dependencies. It's an OK lisp if you want to combine it with Java, but if you don't... not so good.