Live data from Hacker News

Janet: a lightweight, expressive and modern Lisp

janet-lang.org

121–130 of 280 posts

Re: Janet: a lightweight, expressive and modern Lisp

#121
post #39
post #22

Earlier quoted context omitted.

I wonder if his question was not rhetorical, as in: It is really Lisp if it doesn't have cons?

Is it really Lisp without 'lists'? https://janet-lang.org/api/index.html that does not mention list in meaningful ways. It seems to prefer to work with other data structures (like arrays) - which is okay, but then I won't call it a List Processor dialect.

I don't understand why somebody downvoted you, I've seen a number of languages that look like Lisp, but are based on vectors or arrays, and that changes the language drastically. So I'm wondering, too. I was trying to find out whether Janet programs are lists or something else like arrays, but didn't find it in the docs.

Re: Janet: a lightweight, expressive and modern Lisp

#122
post #71
post #68

Earlier quoted context omitted.

tried to install Clojure on Windows. Just flat out gave up.

1 - Download a JVM and make it available on the PATH 2 - Dowload clojure.jar 3 - Start command.com or PowerShell 4 - cd into clojure installation directory 5 - java -jar clojure.jar

> 3 - Start command.com or PowerShell

command.com? Is it 1995?

Re: Janet: a lightweight, expressive and modern Lisp

#123
post #120
post #71

Earlier quoted context omitted.

1 - Download a JVM and make it available on the PATH 2 - Dowload clojure.jar 3 - Start command.com or PowerShell 4 - cd into clojure installation directory 5 - java -jar clojure.jar

Where can I get such a clojure.jar? What worked for me was ... 2 - Download clojure-1.10.1.jar, spec.alpha-0.2.176.jar, core.specs.alpha-0.2.44.jar from mvnrepository.com ... 5 - java -cp clojure-1.10.1.jar;spec.alpha-0.2.176.jar;core.specs.alpha-0.2.44.jar clojure.main

From here, https://clojure.org/guides/getting_started#_installation_on_...

Re: Janet: a lightweight, expressive and modern Lisp

#124
post #39

Earlier quoted context omitted.

Is it really Lisp without 'lists'? https://janet-lang.org/api/index.html that does not mention list in meaningful ways. It seems to prefer to work with other data structures (like arrays) - which is okay, but then I won't call it a List Processor dialect.

I don't understand why somebody downvoted you, I've seen a number of languages that look like Lisp, but are based on vectors or arrays, and that changes the language drastically. So I'm wondering, too. I was trying to find out whether Janet programs are lists or something else like arrays, but didn't find it in the docs.

This does change the language drastically - source code is represented as tuples usually, although all of the core data structures have literal forms. This means writing macros is still easy, although certain idioms like consing are usually replaced by splicing, which is like unquote-splicing in Common Lisp but more general.

Re: Janet: a lightweight, expressive and modern Lisp

#125
post #97
post #71

Earlier quoted context omitted.

1 - Download a JVM and make it available on the PATH 2 - Dowload clojure.jar 3 - Start command.com or PowerShell 4 - cd into clojure installation directory 5 - java -jar clojure.jar

Of course, that's not the official instructions. These are the official instructions: https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Wind... - they've managed to work out what the powershell is for "run untrusted shell script directly from HTTPs". What there should be is an exe or MSI installer like every other Windows program.

The official instructions are here, https://clojure.org/guides/getting_started#_installation_on_...

Not directly the link you provided.

Yes, they require Java knowledge I guess, but then again using guest languages without caring for the host platform is a fallacy.

Now I do agree that an installer would be the right experience to provide.

Re: Janet: a lightweight, expressive and modern Lisp

#126
post #10

Lisp languages should be great for embedding into games to implement game logic, instead of more straightforward solutions such as embedding Lua. I've always wanted to explore this for my iOS side-project game, which now uses an event-based system inspired by ReactiveX, implemented in Lua. This works pretty well but is very hard to debug. The main thing holding me back to try to replace it with something Lisp-like is…

The real power of Lisp becomes apparent when you develop programs top-down with very general data structures with their own accessors and a liberal use of higher-order functions.

I still think that Winston & Horn's classic Lisp (3rd ed.) conveys these ideas very well. SICP is also very good at it, but it's based on Scheme.

Re: Janet: a lightweight, expressive and modern Lisp

#127

Earlier quoted context omitted.

Right, we improved the performance by moving the work out of the JVM. It's my fault that if you trade US equities based on old information you lose money? Edit: Actually, I'm still not sure how to correctly measure GC pauses, other than from inside the application.

It's your fault if you trade equities, or you do anything else in which milliseconds matter, with a software platform that is aggressively optimized for average performance and for server stability at the expense of hard real time guarantees and with a language that privileges enforcing constraints (both to ensure correctness and allow optimizations) over allowing the user explicit control. ("Your fault" at the organ…

The org chose Scala for the trading application in the hope that developers and researchers could both use it, when previously they had been using very different languages. I thought this went mostly well. Scala enables you to use some shenanigans to pretend that a byte-array is an array of structs, and the 31 other threads of the application ran acceptably on the JVM. As an aside, my impression is that Java is somewhat common in the industry.

The application was tested in an environment that's a lot like production, except that we had substantially fewer cores than an exchange running the same number of matching engines, so the incoming ticks were a bit less bursty. That burstiness was important in this instance. A big reason for the differences between the production environment and the test environment was the cost of hardware.

Re: Janet: a lightweight, expressive and modern Lisp

#128
post #67

Earlier quoted context omitted.

You mean that the language should've been called ‘XÆA-12’ instead?

No, it should've been called X Æ A-12. At least one of the normal letters (X or A) should be Cyrillic and at least one of the spaces should be actually a tab.

sounds like a diabolical 'password rule'.

Re: Janet: a lightweight, expressive and modern Lisp

#129
post #123
post #120

Earlier quoted context omitted.

Where can I get such a clojure.jar? What worked for me was ... 2 - Download clojure-1.10.1.jar, spec.alpha-0.2.176.jar, core.specs.alpha-0.2.44.jar from mvnrepository.com ... 5 - java -cp clojure-1.10.1.jar;spec.alpha-0.2.176.jar;core.specs.alpha-0.2.44.jar clojure.main

From here, https://clojure.org/guides/getting_started#_installation_on_...

Maybe I'm blind, but I don't see any such download link. Or did you use

2 - Dowload clojure.jar

as a shorthand for

2.1 - Install Maven

2.2 - Install git

2.3 - Clone https://github.com/clojure/clojure.git

2.4 - Run mvn -Plocal -Dmaven.test.skip=true package

Re: Janet: a lightweight, expressive and modern Lisp

#130
post #85
post #4

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

Names starting with a ‘j’ should be reserved for languages targeting JVM.

In the fine tradition of Jcala, Jotlin, Jroovy and Jlojure.
Post reply on HN