8 ms·
Build Android Apps in PicoLisp Without an Android SDK
- klez 8y agoOut of curiosity, OP: did you fall in the same rabbit hole I fell into after reading the article about the chorded keyboard, finding the link to the picolisp wiki and seeing the snippets about showing notifications on Android via picolisp?
- qop 8y agoI'd love to see like a browser extension to news aggregators that works like that. I'm sure there are lots of things a few clicks away from a lot of the articles that get posted.
- antpls 8y agoAnd then it would calculate a score for each links it found recursively... Oh wait, that was invented 20 years ago by a firm called Google.
- homarp 8y agoyes :)
- jarcane 8y agoWhat’s weird is for some reason I’m seeing the chorded keyboards layout over the top of some of the images in this article.
- zerr 8y agoKind of LambdaNative? http://www.lambdanative.org/ http://www.lambdanative.org/
- nine_k 8y agoA bit. But what fills me with joy is the REPL. It's hugely helpful when trying to make use of unfamiliar APIs.
- pjmlp 8y agoOn limited input devices as tablets and phones I haven't yet found anything better than Lisping. https://appadvice.com/app/lisping/512138518 https://appadvice.com/app/lisping/512138518 Which appears to no longer be available.
- akavel 8y agoBut LambdaNative does require installing Android SDK, no? → https://github.com/part-cw/lambdanative/wiki/Getting-Started#android-mac-or-linux https://github.com/part-cw/lambdanative/wiki/Getting-Started...
- jacobush 8y agoAFAIK PicoLisp is pretty Arc-like so this should be doubly relevant here. :-)
- 3rdAccount 8y agoYea...it uses "de" to define a function instead of "defun". People always hate on it for no macros, but macros don't make since when you only have an interpreter. I don't fully understand how, but I've heard people in the past explain how they're irrelevant in Picolisp and how you can still extend the syntax with standard functions somehow. Maybe a picolisper could give some examples? Shout out that there are two free online books on Picolisp.
- shakna 8y agoThe wiki [0] explains fairly clearly why traditional macros can't be done, but also why Picolisp can still be as flexible. The backtick, tilde, and def operators allow you access to the reader, and something akin to macro expansion. You have the reader accessible, you can rewrite anything. It might just be more verbose. [0] https://picolisp.com/wiki/?macros https://picolisp.com/wiki/?macros
- rurban 8y agoYou dont need macros as you have fexpr's which don't evaluate it's arguments. It fits much better into the language, and they are first class. See https://picolisp.com/wiki/?prosandcons https://picolisp.com/wiki/?prosandcons And https://software-lab.de/doc/refM.html#macro https://software-lab.de/doc/refM.html#macro for the usage of macros. More importantly it doesn't need lambda, just lists, and quote quotes all arguments not just the first one. An extremely simple and small lisp-1 interpreter, comparable to the old AutoLISP.
- zeveb 8y agoI wish that Armed Bear Common Lisp supported Android — that'd be awesome.
- kuwze 8y agoIt doesn’t? To my knowledge it generates .java files, right?
- fiddlerwoaroof 8y agoIt uses reflection in ways that Dalvik didn’t support last time I checked.
- kazinator 8y agoDalvik is discontinued, replaced by something called the Android Runtime. Though that might also not support said reflection ways.
- kristianp 8y agoI'm slightly confused by this paragraph, what is being emulated and aren't most android devices 32 bit these days? "It comes with PicoLisp binaries for Arm64 pre-installed. If your device has an Arm32 CPU, you can - after installing the PilBox App but before starting it - download and install the emulator version https://software-lab.de/arm32.zip https://software-lab.de/arm32.zip. If this was done by mistake, you can revert to Arm64 binaries with..."
- yellowapple 8y agoI'm assuming the 32-bit version emulates a 64-bit ARM CPU. Most Android devices are 32-bit, but a lot of the newer ones are 64-bit.
- jacknews 8y agoI'm confused too, how do you install the zip file? Even one of the feedback posts mentions problem solved by "just installing the emulator version". So I download arm32.zip in, say, firefox, and then what? Open it with PilBox just crashes. Clicking it in a file manager shows me the zip contents. Am I supposed to extract it somewhere? I'm not rooted so can't see the app dirs.
- derjames 8y ago(1)download the zip (2)go to the downloads folder (3)tap/click the file (4) choose to open with pilbox
- Regenaxer 8y agoThe easiest way seems to be to download it with a browser, and then immediately click on "open" in the little dialog which pops up in the browser after it downloaded the zip. It is then passed to PilBox. Clicking on a Zip in the Downloads app works on some devices, but other systems only offer to extract the files which does not help here.
- Regenaxer 8y agoThe 64-bit version of PicoLisp is written in a generic assembler which is then built for target CPUs like x86-64, arm64, ppc64 or "emu". In "emu" the target "CPU" is plain-C, and this is used if the Android device is physically only 32 bit.
- hk-mars 8y agoI donnot like any lisp implemented by Java, very bad taste of developer already.
- 3rdAccount 8y agoThe Picolisp project has been around for ages and has been used for production work and is extremely impressive in my opinion. Generally speaking, only the APL family languages require less code (based off of looking at dozens of examples on Rosetta Code). Rebol is probably just as terse too, but not much else. As a language it is tiny and easy to understand. It can interface to C or Java and Android. It also has a built-in prolog like system. I like many of the choices made by the creator "Alexander Burger".
- projektfu 8y agoThe Lisp is native. This is a Java app that coordinates a native binary running pickup to present a web server that is used by the webview.
- alexis_read 8y agoI have a node-red instance that does a similar thing, to allow drag-n-drop programming (Including UI), and (using dnr) heterogeneous cluster processing on mobiles (ios and android). It starts a node-red server on the device, and uses cordova to host the webview. I'm in the process of adding an ag-grid node so you can do complex UIs in the dev environment on the phone/tablet. https://github.com/alexisread/noreml https://github.com/alexisread/noreml
- projektfu 8y agooops, wrote picolisp, autocorrected to pickup
- hk-mars 8y agoGot it, understood
- jedimastert 8y agoOh? Why would you say that is?
- bitmapbrother 8y agoI don't believe I've seen apps look like that since Android Cupcake. If you really want to build apps without using Java or the Android SDK you should look into Dart/Flutter.
- rhodysurf 8y agoYou still need the Android SDK to use Flutter on Android
- deleted 8y ago[deleted]
- speps 8y agoThis is similar to how LÖVE games work on Android [1], you download the app from the store and then load a .zip file of your game and it runs inside that. You can then make it into its own app and publish it to the store. [1] https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/FAQ_-_Frequently_Asked_Questions https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/FAQ...
- veli_joza 8y agoLÖVE is awesome and Android port works great. The fastest interpreted language that also happens to be elegant and easy to learn, coupled with dead-simple input/graphics/audio/physics API you can actually remember. The APK is tiny when compared to other frameworks, some 4 Mb + assets.
- hardwaresofton 8y agotl;dr on how it works: > The PilBox App itself (called the "PilBox kernel") is written in Java, the normal Android way. It displays a WebView GUI, and starts a PicoLisp binary compiled for Arm64 CPUs. This binary may now run any PicoLisp program, by setting up a local web server where the WebView component connects to, possibly opening a database, and doing whatever is desired. I think this is a really cool project and I'm all for new (to me) lisp dialects doing their thing, but reading the main page, the tag line and copy don't seem to match, for my definition of "simple": > [picolisp is] Programming simplified! > PicoLisp is a programming language, or really a programming system, including a built-in database engine and a GUI system! These two statements seem to be at odds. That aside, I do like the idea because I'm a huge fan of the HTML/JS/CSS display paradigm for it's easy cross-platform support. I also like reducing the "mobile app" to really just interacting with a single local "edge" (which is what people are calling client-side programs these days I think) server. Just me personally but I would love it if all frontend development was reduced to HTML/CSS/JS -- I have no desire to learn QT/GDK+/wxWidgets/whatever else (just like I don't like learning Java for Android, Swift/ObjC for iOS, Java for Blackberry, etc), and firmly believe that eventually performance will be comparable (or close enough to not matter) and support for native features will be passable.
- alexis_read 8y agoI have a node-red instance that does a similar thing, to allow drag-n-drop programming (Including UI), and (using dnr) heterogeneous cluster processing on mobiles (ios and android). It starts a node-red server on the device, and uses cordova to host the webview. I'm in the process of adding an ag-grid node so you can do complex UIs in the dev environment on the phone/tablet. https://github.com/alexisread/noreml https://github.com/alexisread/noreml