This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-01-13
Channels
- # aleph (1)
- # announcements (14)
- # aws (8)
- # babashka (3)
- # beginners (49)
- # cider (6)
- # clara (7)
- # clj-kondo (58)
- # cljs-dev (17)
- # clojure (65)
- # clojure-dev (45)
- # clojure-europe (5)
- # clojure-italy (4)
- # clojure-nl (25)
- # clojure-norway (3)
- # clojure-uk (68)
- # clojurescript (10)
- # cursive (5)
- # datomic (12)
- # emacs (24)
- # fulcro (149)
- # hoplon (56)
- # kaocha (2)
- # luminus (18)
- # malli (7)
- # off-topic (12)
- # other-languages (82)
- # reagent (16)
- # reitit (7)
- # shadow-cljs (44)
- # spacemacs (4)
- # tools-deps (48)
- # xtdb (17)
in december hoplon turned 7, pretty sweet
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
Are you actually implementing Common Lisp from scratch? Or building on jscl?
from scratch, with some inspiration from jscl
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
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
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?
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.
So is closure more walled off as far as the internals go?
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.
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.
I’m sorry but foreign function interfaces are not the answer to everything.
But CL was my first exposure to functional programming which was eye opening and macros. 🤯 wow!
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
https://gist.github.com/alandipert/cb5def6eec333926e50b672a407b25ab is the working README, to give you some add'l context
basically this is an experiment to do as much development and tooling in the browser as possible
That is very nice to hear. And quite a challenge I imagine.
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
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.
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.
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
https://www.snowpack.dev/, something in the browser dev vein i saw recently
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.
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
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
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?