Live data from Hacker News

Janet: a lightweight, expressive and modern Lisp

janet-lang.org

41–50 of 280 posts

Re: Janet: a lightweight, expressive and modern Lisp

#41
post #34
post #23

Okay, so when Clojure came along, it came with a strong underlying philosophy of what the language was supposed to be/do. Among them were design decisions such as, e.g.,: - VMs, not OSes, are the platforms of the future, so target the JVM - Object Orientation is overrated, but polymorphism is a good thing - Multi-core is here to stay, so use immutable data structures to greatly facilitate writing correct concurrent p…

The first point clearly didn't pan out. In reality, applications ended up bundling their own OSes along, so Clojure is stuck with antiquated VM on its ankle for no good reason.

> antiquated VM

I'm always flabbergasted about the ignorance against the JVM on this site. There is nothing out there that has seen similiar research and optimisations and has so good monitoring/debugging tools.

Re: Janet: a lightweight, expressive and modern Lisp

#42
post #18

Earlier quoted context omitted.

And the motivation for designing the new language. What problems does it solve better than existing languages? How does it promote the creation of maintainable programs? Etc, etc.

> What problems does it solve better than existing languages? How does it promote the creation of maintainable programs? I broadly agree that widespread adoption probably requires answering some sort question like these. But sometimes people create languages just because they are fun to create, and they think other people might enjoy using them.

Just taking into consideration that most engineering degrees have of some of compilers design course, there are thousands of programming languages born every year across the globe.

So it needs more than just "grammar + semantics + basic library" to actually be relevant.

However that is how many nowadays mainstream languages have started, so luck also plays a big role.

Re: Janet: a lightweight, expressive and modern Lisp

#43
post #38

Earlier quoted context omitted.

> but when I try to reason about common subproblems I really have no idea how to map them to something like Lisp. For example how to efficiently implement a message bus with observers that can register for certain events. I think that's a badly posed question. The main benefits of using Lisp are its introspection and interactivity. You can use the REPL to inspect your message bus at runtime, you can modify parts of i…

This is a very classic Lisp answer in that "productivity" is considered in the pure abstract, and that the specific question of how to do a specific thing - the actual productive result - is uninteresting. Who would expect the classic book on Scheme to teach you how to write Scheme programs?

SICP isn't a book on Scheme. It is not a Scheme tutorial; it uses Scheme to teach programming. One can learn Scheme by following the book and inferring everything that is done in there, but the topic of the book isn't teaching Scheme, it's teaching programming.

Re: Janet: a lightweight, expressive and modern Lisp

#44
post #41
post #34

Earlier quoted context omitted.

The first point clearly didn't pan out. In reality, applications ended up bundling their own OSes along, so Clojure is stuck with antiquated VM on its ankle for no good reason.

> antiquated VM I'm always flabbergasted about the ignorance against the JVM on this site. There is nothing out there that has seen similiar research and optimisations and has so good monitoring/debugging tools.

My position on the matter might be summarized as "No TCO, no copyable stackful coroutines, no buy." Separately from that a lot of my experience with the JVM involves things like trusting the JVM's claim that it spent 0 microseconds GCing a certain thread that was running code specifically designed to produce no garbage, then running the code in production for one day and losing tens of thousands of dollars, then learning that even if the JVM pauses your thread for 1ms for heap compaction it will still tell you it spent 0 micros on GC.

Re: Janet: a lightweight, expressive and modern Lisp

#45
post #38

Earlier quoted context omitted.

> but when I try to reason about common subproblems I really have no idea how to map them to something like Lisp. For example how to efficiently implement a message bus with observers that can register for certain events. I think that's a badly posed question. The main benefits of using Lisp are its introspection and interactivity. You can use the REPL to inspect your message bus at runtime, you can modify parts of i…

This is a very classic Lisp answer in that "productivity" is considered in the pure abstract, and that the specific question of how to do a specific thing - the actual productive result - is uninteresting. Who would expect the classic book on Scheme to teach you how to write Scheme programs?

Regarding productivity, I don't consider it abstract. I feel a concrete efficiency boost from the two things I mentioned, which are interactive and incremental development with a very short feedback loop (no time wasted while waiting for the toolchain to do its work) and the ability to introspect and debug the live system (since I do not need to bother with external debugger and tooling).

What exactly do you mean by "uninteresting"?

Re: Janet: a lightweight, expressive and modern Lisp

#46
post #26
post #4

2020: a programming language is named Janet; a child is named X Æ A-12. How did we come to this.

It's not really something new. Ada ( https://en.wikipedia.org/wiki/Ada_(programming_language) ) was created 40 years ago. Kids with crazy names is a long standing tradition, going back millenia :-)

Also Amos, Haskell, Idris, Joy, Miranda or Yorick. Arguably Dylan or Pascal.

I'm more confused by a name starting with a capital "J" not being associated with Java, as once was custom.

As for kid's names, definitely[1].

[1]: https://www.youtube.com/watch?v=Jg9w0YSMLHY

Re: Janet: a lightweight, expressive and modern Lisp

#47
post #41
post #34

Earlier quoted context omitted.

The first point clearly didn't pan out. In reality, applications ended up bundling their own OSes along, so Clojure is stuck with antiquated VM on its ankle for no good reason.

> antiquated VM I'm always flabbergasted about the ignorance against the JVM on this site. There is nothing out there that has seen similiar research and optimisations and has so good monitoring/debugging tools.

I did a JVM targeting language as a research project, and was involved into porting KVM to an obscure architecture. It's been a while of course (early 00s) so maybe I misremember something or there were huge strides of progress in JVM.

Can you jump over 64Kb in bytecode yet? Allocate a lexically scoped variable?

Of course, enormous amount of work has been put into making this particular pig fly at reasonable speed. Doesn't change the fact that most usability complaints about Clojure stem from reliance on JVM piggybacking.

Re: Janet: a lightweight, expressive and modern Lisp

#48
post #47
post #41

Earlier quoted context omitted.

> antiquated VM I'm always flabbergasted about the ignorance against the JVM on this site. There is nothing out there that has seen similiar research and optimisations and has so good monitoring/debugging tools.

I did a JVM targeting language as a research project, and was involved into porting KVM to an obscure architecture. It's been a while of course (early 00s) so maybe I misremember something or there were huge strides of progress in JVM. Can you jump over 64Kb in bytecode yet? Allocate a lexically scoped variable? Of course, enormous amount of work has been put into making this particular pig fly at reasonable speed. D…

so what's better and out there and reasonable stable?

Re: Janet: a lightweight, expressive and modern Lisp

#49
post #48
post #47

Earlier quoted context omitted.

I did a JVM targeting language as a research project, and was involved into porting KVM to an obscure architecture. It's been a while of course (early 00s) so maybe I misremember something or there were huge strides of progress in JVM. Can you jump over 64Kb in bytecode yet? Allocate a lexically scoped variable? Of course, enormous amount of work has been put into making this particular pig fly at reasonable speed. D…

so what's better and out there and reasonable stable?

x86-64

Re: Janet: a lightweight, expressive and modern Lisp

#50
post #3

I'm beginning to create a lisp webserver using sbcl for a personal project. I find this interesting but i'd like to know if a webserver library exist for janet yet, and how does it perform compared to sbcl performance-wise (x2 to x5 does not bother me, anything beyond that would not be great). I'd like to know if a slime/swank can be used with janet (although this is really not a requirement) [edit] i just thought th…

I'd offer an alternative to the one linked on the main page in Joy[1]. Quick and easy to get started with.

1: https://github.com/joy-framework/joy

Post reply on HN