Live data from Hacker News

Why Janet? (2023)

ianthehenry.com

241–250 of 292 posts

Re: Why Janet? (2023)

#241

Earlier quoted context omitted.

You can replace Java there with pretty much any OOP language, where functions are not first-class citizens, and it will still be true. There are no "false claims" here. The main point is valid. We have orchestrated an entire industry around "objects", while much simpler abstractions have already existed. You probably just have not experienced the "true" nature of Lisp, where you can interactively change any behavior…

> There are no "false claims" here. You wrote: >> The Gang of Four book exists because Java made functions second-class citizens That is a false claim. You asserted a causal relationship between Java and the content of the GoF book that does not exist without time travel. > You probably just have not experienced the "true" nature of Lisp, where you can interactively change any behavior of the running program, directl…

[dead]

Re: Why Janet? (2023)

#242

I have my qualms with Janet. Mostly, it's lack of package management versioning and lack of libraries in general (advanced HTTP routing, etc). I do LOVE that Janet can create binaries with JPM, scripts, and is very portable. I once put the Janet programming language on the Playdate game console as POC. I actually do enjoy writing Janet, but every time I do people think I created the language (I did not).

WUT UP YOU FRICKEN H-nvm.

i watch ur streams on twitch lol

Re: Why Janet? (2023)

#243
post #239

Earlier quoted context omitted.

It's platform-dependent isn't it? Otherwise, the practical differences between Lisp dialects are negligible. For me writing either in Janet or Fennel or Clojure feels almost like writing in the same language. Babashka has replaced bash-scripting for me. I don't hate Bash, but why would I ever choose to use a language that has no true REPL, if I don't have to? bb is pretty much Clojure, which is the greatest choice if…

> Clojure is incredibly data-driven, which wins me over Janet. I'm curious what differences you see? I've been all in on Janet, but barely used Clojure. What more data driven aspects does Clojure have .... offer? My mental model/assumption's always been that Janet's Clojure without JVM and (sadly) not so pure. I don't use any of Janet's C interop facilities. I'd love to know what I'm missing

> I'd love to know what I'm missing

afaik, Janet's immutable structs/tuples are flat copies - no structural sharing. Clojure uses HAMTs. So it's truly immutable by default - you'd transform data without intermediate allocations.

In Clojure, the standard library already knows about your data - it has the tools to group, index, validate, serialize, and transform maps/vectors/sets without you reinventing them. In Janet, you have the building blocks but it feels like you're assembling the furniture yourself.

The trade-off is that babashka adds ~200ms to cold start and can be pretty memory hungry, but god, Clojure is so nice to deal with data. For small scripts it may not matter. For processing log files or CSVs with millions of rows, it does.

Re: Why Janet? (2023)

#244
post #87

Earlier quoted context omitted.

I don't see why Lisp's history would necessarily imply the family is worth learning in 2026. What (other than macros) do lisps offer that other modern languages don't?

You don’t program in Lisp, do you? I used to be confused by the smug Lisp weenies. Now I am one. And the difficult thing I’ve found over the years is that Lisp is sort of unexplainable. You either “get it” or you don’t. Yes, it has macros, but macros are a bit overrated. I’ve been programming in Lisp for decades and I rarely write macros. I think the thing that is difficult to convey is how powerful Lisp’s core execu…

Is the magic a property of the broader language-family (and could be experienced with Janet, Racket, whatever), or Common Lisp specifically? When people praise the core execution environment they're typically praising Common Lisp specifically.

What's the quintessential "now I get it" experience, in your mind?

Re: Why Janet? (2023)

#245

Earlier quoted context omitted.

> it seems to scale well This seems hard to say without knowing how large it is. To me, it seems like a relatively small community, far smaller than HN anyway.

You can see how large it is at https://lobste.rs/stats

Maybe you have to be logged in to see that? Because I don't have a login and all it shows me is a bunch of "no data".

Re: Why Janet? (2023)

#246
post #239

Earlier quoted context omitted.

> Clojure is incredibly data-driven, which wins me over Janet. I'm curious what differences you see? I've been all in on Janet, but barely used Clojure. What more data driven aspects does Clojure have .... offer? My mental model/assumption's always been that Janet's Clojure without JVM and (sadly) not so pure. I don't use any of Janet's C interop facilities. I'd love to know what I'm missing

> I'd love to know what I'm missing afaik, Janet's immutable structs/tuples are flat copies - no structural sharing. Clojure uses HAMTs. So it's truly immutable by default - you'd transform data without intermediate allocations. In Clojure, the standard library already knows about your data - it has the tools to group, index, validate, serialize, and transform maps/vectors/sets without you reinventing them. In Janet,…

this is good to know :) my use for janet hasn't involved much processing of external data but i'll keep bb in mind when the use case arises. thank you for the information!

Re: Why Janet? (2023)

#247
post #216
post #26

Earlier quoted context omitted.

Came here for this comment. Janet would score positively in my mind if the evolutionary dead-end PEG were replaced with a grammar parser that is known to work under all circumstances.

Under what circumstances does PEG not work?

Many. I don't have enough room on HN to show a representative sample of the shortcomings. Read the relevant literature or converse with an LLM to learn more.

Typical example, ported from https://news.ycombinator.com/item?id=16600224>:

    (pp
      (peg/match
        '(capture
          '{
            :main (* :B)
            :B (+
              (* :A "x" "y")
              :C)
            :A (+
              true
              (* "x" "z"))
            :C (+
              (* :C "w")
              "v")})
        "xzxy"))
This almost trivial grammar works without any problem in known good parsers. If you want to try out grammars in the wild in Janet, it is nearly guaranteed that they are complex enough for peg to shit itself.

Re: Why Janet? (2023)

#248

Earlier quoted context omitted.

> it seems to scale well This seems hard to say without knowing how large it is. To me, it seems like a relatively small community, far smaller than HN anyway.

You can see how large it is at https://lobste.rs/stats

It shows "No data" for each of the 5 metrics though?

Re: Why Janet? (2023)

#249

> SETQ is def At first I said "what" out loud, since SETQ doesn't create bindings, it only updates them then I read the doc ( https://janet-lang.org/docs/bindings.html ) and the author is indeed wrong ("bindings created with def are immutable"). He probably meant "SETQ is set". I really want to like Janet, as it seems to be the sweet spot between Guile, Tcl and CL (minus the speed/maturity of SBCL) but I have a visce…

Square brackets’ use is very consistent and rather logical in how they are used in Clojure’s syntax. When round brackets are used, the first element in the list defines how the rest of the list is interpreted, for example: (func a b c) — run a function with its parameters (macro x y z) — expand a macro with its parameters ([p q r] …) — “bare” function body that starts with a vector of parameters, and executable forms…

Huh, now it makes more sense for me too. Thank you!

Re: Why Janet? (2023)

#250

Earlier quoted context omitted.

> I think someone should start a community online where AI isnt allowed. In case you haven't followed the saga, the latest[1] digg.com relaunch failed because they couldn't deal with the bot onslaught [2]. Whoever finds a reliable way to keep AI out of an online community first is likely to become a very rich person. [1] Second-to-last, actually, seeing as there seems to be a new homepage right now. [2] https://www.t…

I suspect real ways to keep AI out of a community, or really to have an online community at all, are going to be structurally incompatible with making anyone rich. The possibility of getting rich poisons the incentives.

It can't just be money. It also has to remove any notion of score or ranking. There should be NO incentive to artificially increase anything.

Look at Advent of Code. Free site, fun community, but it had a leaderboard. The moment AI was advanced enough, it began dominating the leaderboard. The solution: kill the leaderboard. Sure, you can still solve all the problems with AI and get yourself full points, but you're not competing against anybody, so why bother?

As soon as you can get ahead of others at something, even for something as stupid as a karma score on Reddit or on Hacker News, somebody's going to want to increase it badly enough to start cheating.

Post reply on HN