You are viewing a single thread.
View all comments View context
3 points

As @yogthos@lemmy.ml mentioned, they differ in implementation:

  • The Hy compiler works by reading the Hy source code into Hy model objects and compiling the Hy model objects into Python abstract syntax tree (ast) objects. In other words, at runtime it is essentially Python source code. Similar to Typescript and CoffeScript (JS).
  • Basilisp is hosted on the Python virtual machine, so its compiler generates native Python bytecode. Similar to Clojure and Scala (Java/JVM) or Elixir (Erlang/BEAM).

Personally in these cases, I prefer the second approach, because the first one is basically “syntactic sugar”: a Python lispy syntax (embedded), on the other hand Basilisp is a “more complete implementation”, that is, a language independent of the host language with all the strengths and weaknesses of its host system/VM.

permalink
report
parent
reply
1 point

I agree, the second approach is more direct, so the only limitation comes from the properties of the VM itself. Transpiling to Python means also inheriting semantic quirks of the intermediate language. It makes sense for ClojureScript to do it, since js is the layer that browsers expose, but if you have the option to target the VM bytecode directly then that’s a much better option.

permalink
report
parent
reply
2 points

Exactly, The transpilers are necessary when the target system only works exclusively with a single language.

permalink
report
parent
reply

Lisp Community

!lisp@lemmy.ml

Create post

A community for the Lisp family of programming languages.

Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language. Only Fortran is older, by one year.

History

Associations and meetings

Resources - TODO

Related communities (dialects) - TODO

Community stats

  • 3

    Monthly active users

  • 124

    Posts

  • 119

    Comments