Open-Sourcing My Gambit Scheme iOS Game from 2010(jlongster.com)
jlongster.com
Open-Sourcing My Gambit Scheme iOS Game from 2010
http://jlongster.com/Open-Sourcing-My-Gambit-Scheme-iOS-Game-from-2010
5 comments
I ported Box2D-lite to R6RS Scheme a few years ago:
https://github.com/dharmatech/box2d-lite
If you decide to add a physics engine to your project, that might give you a head start, or at least some ideas. :-)
https://github.com/dharmatech/box2d-lite
If you decide to add a physics engine to your project, that might give you a head start, or at least some ideas. :-)
Thanks! This could be very useful!
This sounds very, very cool. Would you be willing to share that somewhere on the web? I would be very interested to see that!
https://gitorious.org/guile-2d/guile-2d
WARNING: _Very_ experimental, under-documented, and the README is out-of-date. Currently requires building Guile from the stable-2.0 branch in the git repository for cooperative REPL support and bug fixes. If you're interested in browsing the source code, 2d/agenda.scm, 2d/coroutine.scm, and 2d/signal.scm are the coolest.
A proper release is coming... eventually. I will show it off properly with a live coding screencast once that happens.
WARNING: _Very_ experimental, under-documented, and the README is out-of-date. Currently requires building Guile from the stable-2.0 branch in the git repository for cooperative REPL support and bug fixes. If you're interested in browsing the source code, 2d/agenda.scm, 2d/coroutine.scm, and 2d/signal.scm are the coolest.
A proper release is coming... eventually. I will show it off properly with a live coding screencast once that happens.
No worries. And THANK YOU. Guile is a very interesting place these days to me (I keep stumbling upon Wingolog's blog) and I was looking for cool projects to read and understand the language. I am sure this will not disappoint.
Be proud of your alphaware; some of us have nothing but the vaporware in our mind. :-)
Be proud of your alphaware; some of us have nothing but the vaporware in our mind. :-)
Pssst, I decided to make a quick, improvised screencast to show off live coding and FRP. http://dthompson.us/videos/guile-2d-frp-demo.webm
Also, wingo's blog is excellent. He's doing amazing work for Guile. His work reassures me that I've made a good choice to invest in Guile.
Also, wingo's blog is excellent. He's doing amazing work for Guile. His work reassures me that I've made a good choice to invest in Guile.
On an irrelevant note, I started research on "that thing people are talking about", scheme/gambit. Given the quote from scheme-faq-general:
>> Scheme is often used in computer science curricula and programming language research, due to its ability to represent many programming abstractions with its simple primitives. [..] There are few known uses of Scheme in "real-world" systems.
What's the motivation to start using it in production code? Besides smart people around you talking about it/using did you find that you benefited from the switch from C++ to Scheme?
>> Scheme is often used in computer science curricula and programming language research, due to its ability to represent many programming abstractions with its simple primitives. [..] There are few known uses of Scheme in "real-world" systems.
What's the motivation to start using it in production code? Besides smart people around you talking about it/using did you find that you benefited from the switch from C++ to Scheme?
[deleted]
Thanks so much! I was really stoked by yesterday's related post (and your discussion in the comments). I also find it really interesting to see Scheme used in production; I sort of marginalized it (unfairly to myself, I'm sure) after college as being a good toy Lisp for things like demonstrations in SICP.
I sometimes wish there was a language inbetween scheme and common lisp that actually caught on. They're both powerful languages, but to me the little scheme I've done makes me feel like I'm just reinventing common lisp as I go along, and sometimes common lisp leaves me wanting for something a bit "smaller" that doesn't take up 30mb of memory just to open the REPL. This especially holds true in the mobile world.
Apart from the syntax and our current lack of a REPL outside of Windows, Dylan (http://opendylan.org/) sort of fits in that space. We're a lot like a slimmed down Common Lisp (designed by some of the same people that standardized CL), and bigger than a Scheme.
We're currently working on a lot of stuff, including an Objective C / Dylan bridge, a new build toolchain and an experimental REPL that may work outside of Windows until we can bring over the real one (once our LLVM backend is in place).
We're currently working on a lot of stuff, including an Objective C / Dylan bridge, a new build toolchain and an experimental REPL that may work outside of Windows until we can bring over the real one (once our LLVM backend is in place).
I keep hearing about Dylan (good things) and have checked out the site a few times, but never sat down and actually learned the syntax and built something with it. I'll try and give this a go in the next few days. Is it like CL where there's a language spec and independent implementations?
Thanks for the tip!
Thanks for the tip!
We have a specification: http://opendylan.org/books/drm/
We have, in the past had multiple implementations, but due to community size, desire to evolve things, etc, we narrowed it down to Open Dylan being supported and maintained.
We have, in the past had multiple implementations, but due to community size, desire to evolve things, etc, we narrowed it down to Open Dylan being supported and maintained.
It's true that CL's huge feature set promotes implementation bloat, but that doesn't completely rule out having a compact implementation.
In fact, mocl can run with only a few megabytes of memory, and has options to control the heap size.
If this seems unbelievable, feel free to stop by the mocl office in Redwood City, and I will explain it :)
In fact, mocl can run with only a few megabytes of memory, and has options to control the heap size.
If this seems unbelievable, feel free to stop by the mocl office in Redwood City, and I will explain it :)
Funny, I'll be in Redwood City tomorrow. Didn't know you guys were based there. Question for you: did you write your own implementation, or are you adapting something like ECL? Do you have any articles posted on how it works?
mocl derives from some past academic work, although not ECL. In spite of this, it is very much a new and unique implementation, and I have sunk years of dev time into making it a reality.
I may or may not be in the office Sunday... feel free to reach out (call/text the number on wukix.com).
The talk I gave at ECLM 2013, in Madrid, may be informative. http://www.youtube.com/watch?v=l44kiFp1EJ8
I may or may not be in the office Sunday... feel free to reach out (call/text the number on wukix.com).
The talk I gave at ECLM 2013, in Madrid, may be informative. http://www.youtube.com/watch?v=l44kiFp1EJ8
Clozure Common Lisp started 1987 as Coral Common Lisp on a MAc with 5 MB memory on a 68000 CPU with 8 Mhz. I use it on ARM boards. For example I have a quad core ARM board which is computationally equivalent of some of the newer Samsung phones - Clozure CL runs perfectly fine on those. 100+ times faster than Coral Common Lisp on the early Macs.
That's awesome, didn't know it ran so well on smaller systems. Are there certain settings you start it with? I usually just start with the default parameters and haven't explored heap sizes and all that.
Not sure what you mean by between Scheme and CL, but if there's one Lisp that'll catch on to today's practical needs, it's probably Clojure (and ClojureScript).
What I meant by inbetween is something exactly like CL with a smaller footprint and possibly a smaller library. I believe CL more than covers today's practical needs (real threading, compiling to machine code, calling out to C, etc etc). I might choose Clojure if I was writing something highly concurrent that required a more functional approach, but for any other general purpose app I'll take CL any day. (Disclosure: I've never actually built anything in Clojure).
No its not. I wonder where people get these ideas...
- A "cooperative" REPL server that plays nice with the running event loop
- An Emacs development environment with Geiser providing the remote REPL integration
- Cooperative multitasking using coroutines and a scheduler
- OpenGL renderer
- Functional reactive programming