Fork me on GitHub

belated happy new year, people of hoplon!

parrot 12

in december hoplon turned 7, pretty sweet


still the best way to make SPAs :)

👍 8

i've used a lot of other things now and i... can't disagree


however i'm close to having a common lisp implementation i can make SPAs with i'd be happy to discuss with anyone interested

💡 8

Are you actually implementing Common Lisp from scratch? Or building on jscl?


from scratch, with some inspiration from jscl

Rohan Nicholls11:01:34

The whole thing? That is some undertaking. Is there a particular reason you want to do this, or is it just very motivated curiosity. 🙂


awesomeness of CL + emphasis on delivery

Rohan Nicholls08:01:11

I’ve worked with CL before and I liked it, but I’m wondering what are the things that make it stand out for you, so much so, that you want to build your own version? After all you put a fair time investment into clojure, so what do you miss? (disclaimer: I’m just curious, not some slavering, clojure-or-die junky. 😉 )


i like that is has a repl-friendly package system and not much else, runtime-wise. so libraries and frameworks can build up from a lower level than possible in clj

Rohan Nicholls16:01:45

Thanks, and it has the pretty awesome condition/restart system. That is something I have missed.


yes. although i don't think i will implement that hehe


i'm aiming for a subset that aligns as closely as possible to JS, so that i can use JS minifiers to good effect (aligning with cljs philosophy here)


what kind of stuff did you do with CL previously?

Rohan Nicholls17:01:07

Just playing around and learning it. Went through On Lisp and Land of Lisp. And implemented a toy http server to test a theory about speed.

Rohan Nicholls17:01:06

So is closure more walled off as far as the internals go?

Rohan Nicholls17:01:59

I found there were, what felt like kludges, in CL, and the lack of repl representation for anything except a list made it somewhat opaque. I was using python 🐍 for work at the time and it was very nice to be able to see the contents of your data at the repl. With Hash-map I overrode the printer which was a very cool thing to be able to do, but still seemed an unnecessary hack.

Rohan Nicholls17:01:27

Clojure had solved some of those problems. I also found the available libraries were not moving with the times as much as with other languages, and found the community was often pretty defensive when asked about a solution for a, b, or c.

Rohan Nicholls17:01:27

I’m sorry but foreign function interfaces are not the answer to everything.

Rohan Nicholls17:01:49

But CL was my first exposure to functional programming which was eye opening and macros. 🤯 wow!

Rohan Nicholls17:01:10

will your implementation be running natively in js, ie. no external lisp needed to compile?


interesting, thanks for sharing your experiences


yes, no external lisp involved


basically this is an experiment to do as much development and tooling in the browser as possible

Rohan Nicholls17:01:15

That is very nice to hear. And quite a challenge I imagine.

Rohan Nicholls17:01:23

Thanks for the read me.


sure, no problem. less challenging than you'd think since everything's been thought of already, more like painting by numbers 😄


i work on it in small chunks, to relax

Rohan Nicholls17:01:38

Something I’ve been noticing in the spa world is that the big players seem to be ignoring the developments that have been happening in the browser and with native web components. Http2 seems to make the whole compile everything into a big blob idea unnecessary. And the native browser api’s have been developing enormously.

Rohan Nicholls17:01:10

Oh and the other thing that most spa’s miss completely is any idea of resilient apps. One of the things I loved about enlive templates is that they took an HTML page and enhanced it. The js adaptation of it was even more useful because progressively enhancing the application was built in.

Rohan Nicholls18:01:24

Both react and Angular just leave you with a div tag on a blank page if something goes wrong. Not at all resilient.


yeah, i think it's making more and more sense to move development workflows into the browser


to the extent that lisp shows us there's a gray area between app/development flows


i know there is an experimental File API now, plus there's workers and wasm. i will probably run gclosure in a web worker for my thing


currently source on disk is still a host dev machine concern though. i communicated with lisp over the browser's remote debug connection

alandipert18:01:41, something in the browser dev vein i saw recently

Rohan Nicholls20:01:42

Interesting :face_with_monocle:. Thanks for the snowpack link. Very interesting. Handles one of the problems with development at the moment. Getting back to the browser has become a theme for me recently as the current state of affairs is out of control.

Rohan Nicholls20:01:51

I’m assuming as this is your way of relaxing; hacking on your CL implementation you do not want any help, turning your hobby into the annoyance of managing people.


i think i'll be open to collaborating on it at some point, i just want to make sure it does what i need first


since it's also a speculative bet on my ability to use CL for SPAs commercially


anyway, if anyone is interested in a demo of what i have so far, i'd enjoy giving one. i have fun talking about it, and CL

Rohan Nicholls05:01:20

I would be very interested, for one ☝️.


first order of business will be some kinda hoplon thing for it


@jjttjj haven't chatted in a long time, what are you up to these days?


Nothing too new, I've been endlessly working on a like a stock market charting/analysis web app, hoping to release something soonish


how about you?


living the abundant life dude, no complaints really


i do R and JS during the day but i've been plugging at CL for a couple years now


is your stock app something you made for yourself, or is it a startup/work kinda thing?


that's awesome! Just something I'm doing for myself for now. hoping to make it like a freemium thing I can make a bit of $ from


very cool. definitely interested in trying it out when you release

👍 4