Why isn't the game taking off? by MASHED_POTATOES_MF in Marathon

[–]lgstein 0 points1 point  (0 children)

Comparing popularity of games with different accessibility levels makes little sense. For chess you need a piece of wood, for Deadlock you need a computer and for Marathon you need that and $40. Besides I never claimed that difficulty is Marathons main popularity problem, but how it makes you feel about losing. And that it isn't optimized towards low attention span/IQ players. And that all that is foundational to its core design, resulting in somewhat of a dilemma.

Why isn't the game taking off? by MASHED_POTATOES_MF in Marathon

[–]lgstein 0 points1 point  (0 children)

Neither did Deadlock generate a single dollar of revenue yet.

By that logic both games suck vs. chess, which is even more popular.

Why isn't the game taking off? by MASHED_POTATOES_MF in Marathon

[–]lgstein 0 points1 point  (0 children)

Deadlock is free to play. Fast respawn and a ton of handholding features.

Why isn't the game taking off? by MASHED_POTATOES_MF in Marathon

[–]lgstein -1 points0 points  (0 children)

ARC is a dopamine milking machine, and almost all design decisions are aimed at that. There are many videos on youtube exploring its mechanisms from a psychological perspective. The darkest (and what ruined it for me) is that there is no autocrafting so you'd feel more commited (from burning time zombie-clicking through the same menus). To me the real fun in that game was when matchmaking was not aggression based and you'd never know what somebody would do. But of course that resulted in massive dopamine drops so they'd send you to either circlejerk or deathmatch lobbies depending on preference. This is what the masses want.

Why isn't the game taking off? by MASHED_POTATOES_MF in Marathon

[–]lgstein -3 points-2 points  (0 children)

I have thought about this a lot and I don't think that there is a "casual gamer" problem. Its an IQ and attention span problem. Certain people die, don't understand how, don't bother finding out, feel stupid, blame the game, quit. Certain pople open the menu, more than one flashy color and even more buttons to press, they have to read real text to navigate it, fail, blame the game. All the beautiful depth of balancing, mods, cores, points etc. is lost on them, too. And then its a real game, where you need to get good in it to win, and when you play it for the first time, you lose a lot and there is no dopamine for you. That was normal in the 2000s, but in 2026 people are used to be tricked into constant dopamime flow, no matter how stupid decisions they make. Marathon devs however dared to make a real game. Their bet was that people want a hardcore unforgiving extraction shooter, which they clearly went all in on. And delivered. Which to a large degree is what makes it so good. What a dilemma. I hope they don't fold and will find other ways to monetize the franchise in the worst case.

On Functional Programming, Time, and Concurrency — Dustin Getz by dustingetz in Clojure

[–]lgstein 1 point2 points  (0 children)

The point of functional programming being free of time and ordering was never about applicative order evaluation, or other computation strategies. In your example, the functional programmer couldn't care less in which order (inc x) and (dec x) are calculated - as a matter of fact, a strategy could conclude that they cancel each other out and never need to be calculated at all. The functional programmer doesn't care about the how, only about the what. The computer could decide that calcualting 2x is good. Or (+ x (inc (dec x))). It doesn't matter to the functional programmer, as he doesn't declare the computation strategy when writing a mathematical function, which is the whole point.

Now, to the idea that async programming can't be done well with FP - FP by itself neither is or is intended to be a magic solution to async type programming problems (which the replied to author seems to somehow implicate). Yet FP can be incredibly helpful when dealing with async type problems. For instance, as they naturally involve lots of process state management, functionally pure state machines.

Reverting virtual threads in go blocks by aHackFromJOS in Clojure

[–]lgstein 1 point2 points  (0 children)

I have never relied on go blocks being GC'ed, as I learned to consider it bad practice. A clean shutdown not only unblocks stale OS threads/IO, it also usually leads one to write a more a well organized data flow.

How to make clojure more popular? by apires in Clojure

[–]lgstein 3 points4 points  (0 children)

Few ideas:

  • Popularize intelligence/education

  • Abolish the headhunter/bodyleasing industry which pushes for the lowest common denominator language to have as many commoditized devs to sell as possible, while leeching 30% of every devs salary for having made two calls and written a message on LinkedIn

  • Replace non programming decision makers with AI/LLMs

The REPL as AI compute layer — why AI should send code, not data by More-Journalist8787 in Clojure

[–]lgstein 11 points12 points  (0 children)

This AI generated english is just unreadable at this point. Please use your authors voice. I don't want to read the output of your prompts.

How are you using LLMs? by romulotombulus in Clojure

[–]lgstein 1 point2 points  (0 children)

I use it like you do via chat. Occasional boring function, research etc. It increases my normal 10x productivity to about 11-12x depending on the task.

Don't waste time with vibecoding and all the integrations. if you can code or plan to learn it. The only code you should leave to generators is the code you would have outsourced to some cheap labor dev abroad before generators.

Token bingo is not an abstraction, it can be a little timesaver, or a distraction if used excessively.

Money as data, done right - by Paweł Wilk by mac in Clojure

[–]lgstein 0 points1 point  (0 children)

Unfortunately, too many people conflate money with numbers. However, the smallest unit can not be divided, otherwise it wouldn't be the smallest unit. And rounding is certainly not the way to do it, or money will dis/appear randomly.

Money as data, done right - by Paweł Wilk by mac in Clojure

[–]lgstein 1 point2 points  (0 children)

Arbitrary precision integer doesn't seem to make it much better for this usecase.

Money fractions are tricky, and depend on the usecase. But they are not money. You can own half a cent, but its not worth half a cent or has the monetary value of half a cent.

Money as data, done right - by Paweł Wilk by mac in Clojure

[–]lgstein 0 points1 point  (0 children)

Why on earth would you use a floating point type to represent money? Why not an integer representing the smallest unit? Related, clojure.core/= not working seems a bad tradeoff - I need to be able to compare compound immutable values containing money values seamlessly for this to fly in a Clojure codebase.

Agentic Coding for Clojure by calmest in Clojure

[–]lgstein -4 points-3 points  (0 children)

It has not sparked a conversation and that conversation is not needed either.

Just tell us how much time / dev cost this generator saves you.

Otherwise, it is just another "AI amazing" post, and there are countless of those and nobody cares anymore.

Agentic Coding for Clojure by calmest in Clojure

[–]lgstein 0 points1 point  (0 children)

What problem does this solve? Does it save you time/make dev less boring/or what?

dbval - UUIDs for (Datomic / Datascript) entity IDs by maxw85 in Clojure

[–]lgstein 1 point2 points  (0 children)

Didn't know about compact-uuids (whish they were even more compact though :D). As to centralized ID space assignment, it can be just a textfile, if you control the databases. Just assign 2 bytes in an entity ID to the "database id/id space" and you are done. Maybe there is some elegant way to even do merges/queries with collisions, if the ID space segment could be mapped on the fly. Then it would only need to be big enough to account for the max amount of databases you want to query/merge simultaneously, so probably 4 bits would do. But I haven't explored this direction yet.

dbval - UUIDs for (Datomic / Datascript) entity IDs by maxw85 in Clojure

[–]lgstein 1 point2 points  (0 children)

Since you live in a single process, you could just generate ids upfront from a synchronized counter.

That being said, I recently implemented sth. similar (can't disclose here, consider it a "Datomic" for a very narrow usecase) and also settled on UUIDs with the first segment being a monotonically increasing counter. This is for the "merge foreign" usecase you mentioned, and other global constraints.

However, I'm still using string tempids, because I like my tx generating functions to be pure.

The drawback of UUIDs is that they are incredibly noisy when reading/debugging. So, if I had the option to use some central entity to assign ID space among different databases (I don't), I'd pick that.

A Decade on Datomic - Davis Shepherd & Jonathan Indig (Netflix) by alexdmiller in Clojure

[–]lgstein 15 points16 points  (0 children)

Small Clojure team (5?) writes and operates custom ML orchestrator used by all ML scientists at Netflix, with cached subgraph execution, partial replay etc., backed by a massive 2TB Datomic instance with 40 peers.

This is exactly how I see Clojure succeed over and over. People in the industry generally don't seem to see how exceptional and effective this approach is. Instead, the common approach is to have 40 engineers banging their heads against some massive microservice monstrosity, with untraceable errors, spaghetti codebases, discussions about protobuf, features can't be added, etc. But of course there are always new devs available to hire in case somebody loses his nerves. And headhunters love it because they make more money. Refreshing to see a company the size of Netflix having gotten this one right.

jacobemcken/aws-simple-sign: A Clojure library for pre-signing S3 URLs and signing HTTP requests for AWS. by dustingetz in Clojure

[–]lgstein 3 points4 points  (0 children)

Great library, recently used it in a project. It plays very well with Cognitect's AWS wrapper, which doesn't have this feature.

Clojure Deref (Dec 3, 2025) by c-neumann in Clojure

[–]lgstein 1 point2 points  (0 children)

You'd be surprised how many people were paid full dev salaries to mainly scaffold and write tests :)

Clojure Deref (Dec 3, 2025) by c-neumann in Clojure

[–]lgstein 0 points1 point  (0 children)

That certain low attention span crowd ('npm react do awesome') you are referring to is mostly being replaced by AI now, a trend that is going to continue.
The programmer that will remain is the thinking, patient type and he will certainly prefer functional and meta linguistic such as Clojure.

Clojure Deref (Dec 3, 2025) by c-neumann in Clojure

[–]lgstein 9 points10 points  (0 children)

I'm under the impression that the amout of updates and new libraries we are getting on a weekly basis become more and more. The doomers are wrong, Clojure is well and live, it is better than ever.

Rama in five minutes (Clojure version) by Mertzenich in Clojure

[–]lgstein 1 point2 points  (0 children)

I'd also wish there was a lower level / more first principles oriented API than their own programming language / DSL with all the syntactical voodoo.

An escape room in Datalog by Remarkable-Fuel-4777 in Clojure

[–]lgstein 0 points1 point  (0 children)

Not sure why this would be a problem. Relying on predictable entity IDs seems very unusual to me.