
JACL: JavaScript Assisted Common Lisp - register
https://tailrecursion.com/JACL/
======
didibus
So, a JavaScript assisted Common Lisp that has no demo that I can run in the
browser? Or am I missing the link? It looks very interesting otherwise.

~~~
kazinator
I read the paper on JACL. Unfortunately, it is too humble. My take-away
message was that if I wanted some CL-like environment in JavaScript, I should
probably try SLip or Valtan.

------
jandrese
It's interesting to think what the world would look like if Netscape had
decided to put Lisp in the browser instead of inventing Javascript.

~~~
JadeNB
One can easily imagine it going at least two ways: in one, Lisp becomes as
much a lingua franca as Javascript is; in the other, people don't flock to
Lisp as they did to Javascript, and so the programmatic web never takes off
(which may or may not be a bad thing).

~~~
enitihas
It is almost impossible to see a world where people wouldn't flock to a
language due to pragmatic reasons. People didn't go to js because it was good,
just because it was the only option. If you don't, your competitor would, and
likely put you out of business. People didn't make so many Objective c apps
because of it's capabilities, but because it was what you use to make iOS
apps, and that's where the money was. There is no chance the programmatic web
would have ever depended on programmer's preference for language.

~~~
JadeNB
> If you don't, your competitor would, and likely put you out of business.

I think you're looking farther along the curve than I am. Before businesses
considered the possibilities of the Javascript-ified web, they had to be shown
the possibilities by non-commercial hackers, who aren't worried about their
competitors putting them out of business, but are driven only by the desire to
play with cool toys.

The browser provided an easy-to-program source of cool toys. If it had been
harder to program, then the hobbyists who drive later trends might have looked
elsewhere, and we wouldn't have the do-everything-through-rich-Web-interfaces
world in which we live today, but would find the default interface … somewhere
else; who knows? (That is, I don't think anyone would ever say "I won't use
the programmatic web because of Lisp; I'll hold out for Javascript", but I can
imagine someone, if Javascript didn't exist, saying "it's too hard to innovate
quickly in Lisp; let's find another platform where it's easier.")

None of this is a prediction, just a reminder that where we are now isn't
inevitably, but the end result of many many small nudges, some of which we
recognise and some of which we don't.

~~~
enitihas
> The browser provided an easy-to-program source of cool toys. If it had been
> harder to program.

It was harder to program though. The amount of gotchas in JavaScript are so
high compared to many other popular mainstream programming languages of even
that era, and not to mention hou could only use it in a browser, which was
severely lacking in functionality compared to native APIs. So the hackers who
wanted cool toys already had far better options, which goes to show even if js
was much worse it couldn't have done badly.

Although there is not much data that I am aware of about the early websites
making cool things with javascript, if we take iOS and Objective C, it wasn't
cool hackers filling the app stores with cool toys, but real businesses
looking to make money.

Hell, even Mosiac and Netscape didn't want to be cool toys, theh wanted to be
real businesses making lots of money.

------
lgessler
When I saw this I thought "I wonder why someone would make a JS-hosted Lisp
when ClojureScript exists and is used widely." I then found that the author
has had significant involvement in the Clojure community, which piqued my
curiosity even more. Alan, if you're reading this, I'd be interested to hear
about why you're pursuing this project!

~~~
wooby
Hi, thanks for your interest. The main thing I'm after is a "residential" [1]
Lisp development system, where applications and tools co-evolve in the same
environment.

Most contemporary compile-to-JS languages _target_ the browser, but do not
_inhabit_ it. I'm excited about a system that encourages apps and tools to
evolve organically together, instead of tools developing separately from
applications, which is the status quo.

Other than that, Common Lisp has some really interesting capabilities relative
to ClojureScript, and is also fun!

1:[http://bitsavers.org/pdf/xerox/interlisp/Interlisp_Reference...](http://bitsavers.org/pdf/xerox/interlisp/Interlisp_Reference_Manual_Oct_1983.pdf)
section 1.2

~~~
didibus
I do think Common Lisp is fun and different form Clojure, and it's cool to see
it in the browser as well, and I totally support that effort.

But, with regards to your description of inhabiting the browser, what would
differ with JACL say compared to self-hosted ClojureScript?

~~~
wooby
The JACL reader is asynchronous, and so JACL can read characters from external
sources (in-browser REPL, DevTools connection, websocket, experimental File
API) without blocking the event loop and without relying on an external tool.
JACL app artifacts will be created by dumping the Lisp image using a Lisp
function.

Other than these technical differences, there seems to be a difference in
"philosophy of use". I have the sense that the ClojureScript project does not
emphasize or particularly support the idea of using self-hosted ClojureScript
to build web apps.

~~~
didibus
Hum, I see. Yes, the maintainers of ClojureScript believe the bundle sizes
would be too big if you always had to include the compiler with the APP. (also
because the Google Closure compiler JS implementation is not as full featured
as the Java one)

But it sounds in your case, maybe that can be removed before shipping? But
used while developing?

~~~
wooby
Yes. My plan is for the image dumping facility to support tree-shaking and
direct linking. I think tree-shaking by itself might produce reasonably-sized
images, for my purposes at least. If not, the direct-linking would make
Babel/Google Closure applicable.

~~~
didibus
That would be really cool. Will keep an eye out, good luck on your efforts.

