7 ms·
I love how everything is pico until these Java namespaces come along and crash the party. I think it should make it clearer whether you can actually use this a
by allendoerfer 10y ago
I love how everything is pico until these Java namespaces come along and crash the party.
I think it should make it clearer whether you can actually use this and how. It seems to be run inside a VM and call C and Java functions. They advertise this prominently, but having to run both Picolisp and JVM does not seem very attractive to me. Can we use it reasonably without Java? Is it production ready? How fast is it? How old is it?
I think a programming language is hard to sell, so they should work on that a bit (if that's there goal, of course).
- eggy 10y agoThe standard PicoLisp is not java-based or VM bound; there is a java implementation called Ersatz [1] that is older, and is there just for the Java hook. It is smaller than Lua considering how much is built-in PicoLisp is written in C, or the 64-bit version in assembler. It is Posix-dependent, so you need to run it in Cygwin for Windows, although somebody is working on a platform independent version based upon Midipix to eliminate the Posix dependency [2]. The creator of PicoLisp, Alex Burger, created it for his own use decades ago. It has a built-in database and Prolog interpreter. It is very fast for an interpreted Lisp, and there are lots of examples on rosettacode.org. It is fexprs-based instead of sexprs as far as I know. I like it a lot, but since I am on Windows for my livecoding / game dev hobby, I have not gone too far with it. I am hoping the Midipix work takes off. I also run Linux on my notebook, but all of my work nowadays is on Windows. .NET Core might change that. Most games still run on Windows, and the ones on Linux have compatibility issues across the various Linux distros. There may be a glowing white Apple on most web-dev's notebooks, but my 3 year old Alienware plays games with a Technicolor LED show that would put the F&F film franchise to shame ;) [1] http://picolisp.com/wiki/?javacode http://picolisp.com/wiki/?javacode [2] http://midipix.org/ http://midipix.org/
- paines 10y agoDo you use Lisps ( CL or Scheme) for your games?
- eggy 10y agoTrying to. You will not find many game frameworks for Lisp, but all of the pieces are there. I mainly use Lisps for livecoding. I am currently trying to learn Extempore for livecoding. It has two languages: xtlang, a Lisp language that is strongly typed and compiled for close to C speed via LLVM, and a scheme for doing more high-level scripting stuff in the Extempore environment [1]. There are binaries available for all platforms. I run it in Spacemacs on Windows 8.1. It's very snappy, and powerful, for coding music/sound at the signal or note level, and it has OpenGL and Nanovg for graphics. Watch Andrew Sorensen rock it on YouTube or Vimeo - just search for Extempore and/or Andrew Sorensen. I hope there will be a way to distribute things created with it someday. Then it would be a kick ass game dev platform. I tried Racket and SBCL briefly specifically for games. Both are very capable. I will probably go back to SBCL, since it worked well with SDL2, OpenGL and was fast on both my Windows and Linux boxes. CEPL is great for working with OpenGL in Lisp [2]. I would love to use PicoLisp. I almost did use it for a game jam, but you would need to create the game framework from the pieces it has, and again, the Posix / Windows issue. I'm really hoping for the Midipix solution. You can learn PicoLisp fast in a week or so by following along with the two great books - PicoLisp Examples, and PicoLisp Works. The PDFs are freely available on Scribd and the source code is available online [3][4]. Even Erlang is available as a Lisp - LFE, or Lisp Flavored Erlang, created by one of the original designers of Erlang, Robert Virding. Would be great for a game server with many connections. Elixir is becoming very popular but LFE has true macros, and why not, it's a Lisp! [5] [1] http://extempore.moso.com.au/ http://extempore.moso.com.au/ [2] https://github.com/cbaggers/cepl https://github.com/cbaggers/cepl [3] https://github.com/tj64/picolisp-by-example https://github.com/tj64/picolisp-by-example [4] https://github.com/tj64/picolisp-works https://github.com/tj64/picolisp-works [5] http://lfe.io/ http://lfe.io/
- qwertyuiop924 10y agoHave you tried Hypergiant for CHICKEN scheme? I've heard it's good for 3d work. For 2d, there's doodle. Both are in Chicken's egg repository. Guile's Sly is also quite good for 2d work. Finally, I think both have bindings to raw OpenGL/SDL, if you want them.
- qwertyuiop924 10y ago>It is fexprs-based instead of sexprs as far as I know ...I don't think that was what you meant. Picolisp has fexprs, and it uses them quite a lot, but they replace macros, not sexprs.
- eggy 10y agoYou're right. Thanks for catching that incomplete sentence/thought. It uses fexprs in place of macros. I had been reading John Shutt's paper a day before this post, on what he calls vau calculus vs lambda calculus, where the Kernel programming language is used as an example implementation [1]. Very interesting take on fexprs given the arguments raised around them. [1] https://web.cs.wpi.edu/~jshutt/kernel.html https://web.cs.wpi.edu/~jshutt/kernel.html
- qwertyuiop924 10y agoWell, Shutt's work is about doing analysis and optimizations to fexprs. Picolisp essentially views compilers, analysis, and optimization as anathema.
- eggy 10y agoAgreed. I am just struggling with Shutt's paper, but every now and then I get an epiphany in my understanding, and so I keep reading on. I am basically revisiting the old history of fexprs for my own education. PicoLisp is pretty fast as an interpreted language, and holds a niche spot. But then again, the creator built it up over the years for his own work. It is very practical and compact when you use it in certain scenarios. I am ambivalent about the way it mixes PicoLisp and HTML in the Canvas examples. It cuts both ways to be that integrated. Still, I always go back to play with it, because I just love how succinct and logical the code is for a lot of typical programming chores. I tried doing a game with it, but it was too much work (for me) to get it going cross platform, or at least Windows aside from Linux. I don't like Cygwin at all.
- qwertyuiop924 10y ago
- ww520 10y agoI quite like it to be able to interop with Java and C. This allows the leveraging of existing libraries of those languages.
- bschwindHN 10y agoThen why not just use Clojure?
- ww520 10y agoClojure is too heavy weight. These little lisp packages consume very little resource and are perfect for embedding.
- nilved 10y agoClojure is incredibly light weight, unless you're including the host platform.
- qwertyuiop924 10y agoBecause clojure is really weird, and it doesn't implement lists right, and it's covered in JVM stuff, which is kind of gross...