Fork me on GitHub
#off-topic
<
2022-01-03
>
Faris04:01:34

This is an interesting article about the missing books that Haskell should have (according to the author). Wonder what kind of books are missing in Clojure? https://github.com/graninas/The-Voids-Of-Haskell

adi13:01:27

I'd like to see one called Leveraging Clojure. The hosted nature is truly coming into its own these days. People are deriving tremendous leverage across hosts (frontend, backend, mobile, scripting, ML/Stats, DBs, Ops/build tooling etc.). The why and how to truly Leverage Clojure still feels a bit like black magic. It's sort of "but of course" once we see the value of "it's just data", and develop a sense for the language of the system. But even then the knowledge is very tribal. Some people are waaaay ahead of the curve than most of us. I feel like there is increasingly a good business case, where the vast majority of one's software + staffing requirements could be served via the leverage of a combined Clj + Cljs + graal ecosystem.

💯 3
2
respatialized15:01:27

I would like to see a book that covers the topic of "growing a system." I want to see a REPL-driven program grow over time into a production system, and I want to see how the author thinks about breaking up the system into subcomponents as it grows and how they manage the relationships between subsystems. Taking a developmental approach to "Clojure in the large" is probably the best way to teach the idioms of how to manage a program/system as it grows in complexity. Ideally such a book would be written with a minimum number of libraries; I would like to see how the built-in capabilities of Clojure as a language can be used to solve these problems instead of the "just use mount/integrant/whatever" suggestion.

5
metal 1
👀 1
Faris16:01:00

Thats interesting, do you know of a similar book in other languages?

respatialized20:01:46

The closest analogue I can think of is https://aosabook.org/en/index.html , which blends architectural analysis, performance considerations, and project history a bit in each subject, but isn't a single sustained treatment of a single system changing over time.

Martynas Maciulevičius21:01:21

It would be nice to have this repository for Clojure. 😄

👍 1
adi13:01:27

I'd like to see one called Leveraging Clojure. The hosted nature is truly coming into its own these days. People are deriving tremendous leverage across hosts (frontend, backend, mobile, scripting, ML/Stats, DBs, Ops/build tooling etc.). The why and how to truly Leverage Clojure still feels a bit like black magic. It's sort of "but of course" once we see the value of "it's just data", and develop a sense for the language of the system. But even then the knowledge is very tribal. Some people are waaaay ahead of the curve than most of us. I feel like there is increasingly a good business case, where the vast majority of one's software + staffing requirements could be served via the leverage of a combined Clj + Cljs + graal ecosystem.

💯 3
2
solf14:01:54

Game dev question. Any game IDE/framework/mix of tools that: • allows me to write the game logic in clojure on the editor of my choice • allows a graphic designer friend to be relatively independent with the assets, scene building, etc • is geared towards 2d games • can target the web Probably asking for too much, specially with that first bullet point. I’m mostly looking for something that would make a fun experience for both me and my non-coding friend. I’ve never tried Unity (Arcadia), but I’d probably find it too complex for what we want to do (graphically simple 2d games)

solf14:01:59

My best bet is probably something like a JS library (PixiJS?) + a separate graphic editor (Aseprite, Photoshop, …) and write something some glue code to connect the two (so we can have assets live-reload for example)

cp4n15:01:50

There is a project that lets you use Clojure with Godot engine/editor: https://github.com/arcadia-unity/ArcadiaGodot

cp4n15:01:09

This guy made a simple 2D game with it and put out the source as an example: https://github.com/russmatney/lil-shooter

solf15:01:20

Didn't knew that, thanks! Between unity or Godot I'd rather use Godot for sure. I'll check it out :)

Faris15:01:08

Are there any good books on documentation? Does anyone have any recommendations?

Cora (she/her)15:01:44

can you elaborate on what you mean?

Faris16:01:38

I have to admit the idea is pretty vague in my head 😅. I'm thinking something like "Working Effectively with legacy code" but for documentation. Basically how to document an old app where all the domain knowledge is in the head of one developer.

Faris16:01:52

I hope this made sense.

Cora (she/her)16:01:45

yep! it does, but I don't know of a book that covers it

❤️ 1
p-himik17:01:27

This message won't substitute a book, but seems like this approach works decently well: • Hire a middle dev • Make him change things gradually in all the parts of the codebase • Note every time he says "what the hell" and make him write a documentation page about that place once he achieves enlightenment

respatialized15:01:27

I would like to see a book that covers the topic of "growing a system." I want to see a REPL-driven program grow over time into a production system, and I want to see how the author thinks about breaking up the system into subcomponents as it grows and how they manage the relationships between subsystems. Taking a developmental approach to "Clojure in the large" is probably the best way to teach the idioms of how to manage a program/system as it grows in complexity. Ideally such a book would be written with a minimum number of libraries; I would like to see how the built-in capabilities of Clojure as a language can be used to solve these problems instead of the "just use mount/integrant/whatever" suggestion.

5
metal 1
👀 1
andy.fingerhut17:01:10

Holy cow, there is semver version 2.0.0 published now. Now I'm curious what they changed to bump up the major version number 🙂

😀 2
😂 3
Alex Miller (Clojure team)17:01:58

Makes you wonder if you switch your versioning scheme from semver 1 to 2, is that a major or minor version bump of your own?

😂 2
borkdude17:01:04

Maybe you should adhere to <your-version>-<semver-version> e.g.: 0.1.0-2.0.0 to know how to interpret your version number.

😀 1
😂 1
andy.fingerhut17:01:12

Hmm, so I can use 0.x.y-1.0.0 to mean that the API can have breaking changes as long as it starts with "0.", but maybe I could also use "x.y.z-0.1.0" to mean "not following semantic versioning at all" 🙂

borkdude17:01:40

Or perhaps we can also depend on git SHAs on the semantic versioning repo.

p-himik17:01:02

That's a decent idea for a dystopian/horror software development novel.

😀 3
lilactown18:01:07

I saw a go lib that basically said that their lib version would always be http://1.999.xxx in protest of some versioning scheme that the go team was pushing for

borkdude18:01:28

Perhaps instead of having a semantic version, one should have a programmatic way to figure out if a library can be safely upgraded, like some sort of exception or warning if you go from version X to Y

lilactown18:01:11

I think that the practice that some popular JS libs have gone where they offer a "codemod" in the form of a CLI script that automatically upgrades call sites for breaking changes is nice

lilactown18:01:02

obviously it doesn't cover more complex breaking changes, but codemods can also potentially detect and warn against those cases

gklijs20:01:24

For Rust there is, https://github.com/rust-lang/rust-semverver haven't used it yet.

andy.fingerhut20:01:07

In case not everyone has this background, Rich Hickey has ranted a bit against semantic versioning: https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/Spec_ulation.md

2
andy.fingerhut20:01:20

And looking at that transcript, apparently there was already version 2.0.0 of semver in 2016.

✔️ 1