4 ms·
Racket v6.7
- peatmoss 10y agoInteresting that you can now build Android apps with it. I looked for a write-up of how they did this, but didn't find any. I'm assuming that, like with many other advances in Racket, that there will be a paper.
- pjmlp 10y agoI skimed quickly through the project https://github.com/jeapostrophe/racket-android https://github.com/jeapostrophe/racket-android Basically by doing what everyone that isn't using Java, is forced to do. They have a JNI layer that translates a few calls from Java into the Raket side, and also start a Raket interpreter from C, controlled via JNI. For anything GUI related, OpenGL seems to be the only thing integrated. One thing that I learned playing with the NDK, is that if one isn't writing games or porting business logic from other platforms, it isn't worth the trouble of struggling with JNI for normal apps.
- brlewis 10y agoWhat everyone who isn't using the JVM is forced to do. Kawa Scheme compiles straight to the JVM. I actually use an Android app made with it: https://play.google.com/store/apps/details?id=net.quantiana.pluvia&hl=en https://play.google.com/store/apps/details?id=net.quantiana....
- pjmlp 10y agoI explicitly stated Java, because for me the whole Android Studio tooling is very important, which most alternative JVM languages don't support.
- keyle 10y agoI wonder if it has anything to do with the fact that Carmack spent a lot of time with Racket writing a script language for VR and a big part of his work was with Android.
- rasur 10y agoI can't remember the exact language he used but in his last talk at OC/3 he implied he liked it, but they were using something else (JS or JS-like). Shame really, it would have been neat to use something scheme based.
- samth 10y agoNo, this was developed by Jay McCarthy to support http://blackswanlearning.com/ http://blackswanlearning.com/ I believe the Oculus system developed by Carmack runs Racket on a desktop machine and sends commands to the VR device.
- vasili111 10y agoDo you use Racket? If yes, tell us more about your experience with it.
- kasbah 10y agoI have been learning Racket to make a footprint editor for KiCAD. KiCAD is a software for creating electronics PCBs and a footprint is a drawing of the PCB layers for a landing pattern for a particular electronic component. https://github.com/kasbah/footwork https://github.com/kasbah/footwork The idea is pretty much a sketch-n-sketch approach to footprint editing. https://ravichugh.github.io/sketch-n-sketch/index.html https://ravichugh.github.io/sketch-n-sketch/index.html Choosing Racket for this application was a no brainer as it demands data-code intermingling with an s-expression based format and redefining the language to suite the application. Racket also has excellent GUI library that allowed me to get a graphics pane and a text-editor GUI up very quickly. The APIs that Racket libraries provide seem a bit like quantity over quality to me. I dread having to sift though the docs for the functions I actually need. On the one hand every function is thoroughly documented on the other the descriptions are often seeped in the jargon surrounding the language. For instance, this may be a stupid beginner mistake, but I couldn't work out how to make `send` and `apply` work together. Coming from Haskell I assumed there would be straight forward way to compose these things. Instead I had to resort to use the `send/apply` function and there seem to be a lot of these special purpose functions all over the place that are trying to anticipate your usage rather than providing composable primitives.
- dmux 10y agoYour comment about quantity over quality rings true for me. I wish there was a simple page in their docs that organized all the functions in a more readable format. Is there a function discovery feature as there is with Ruby?
- samth 10y agoWhich "function discovery feature" do you mean? That sounds like something that would be nice to add. The documentation page includes all the functions available in all the libraries you have installed (locally) or that are available in packages (on docs.racket-lang.org) so a single-page list would probably be a little overwhelming.