4,306 karma · joined October 28, 2010
Also, if you care about that then you can use transients (if no one knows you mutated the data structure then it still counts as immutable) or mutable structures - both of which are pretty simple.
Same with the DnDBeyond boycott drive, did that actually make a dent? To me there is basically no evidence for this supposed level of consumer power that the fandom is claiming they have. WotC's response was the most half-assed, who-gives-a-shit, PR statement I've ever seen. They did not treat it like a real PR issue at all.
> They are the ones looking up obscure 3rd party homebrew fixes for issues inherent in 5e's design.
Well yes, they will definitely be losing those people. However it's a small percentage of DMs who are even aware of 3rd party stuff in the first place. Single digit percentage and on the lower end, at best.
I think it's hard for lots of old players to realize that post Critical Role/Stranger Things, they are a tiny minority of the market now, and they kinda suck as consumers if you are trying to extract video game level profits from your players.
They view D&D as extremely under-monetized (pretty reasonable, they don't make much off each player on average) and they have a huge influx of new fans and interest.
So why does everyone assume they care about the existing fans, who don't give them money, so much? Maybe they just decided they don't care, they'll get new fans who actually spend money and want to play their combined digital VTT/new D&D edition/microtransactions and lootboxes thing?
That's the downside to having that market segment as your customers, the upside is that they are fanatically loyal and are not remotely picky or discerning as customers/consumers.
It's also a longstanding, odd thing that even experienced players will spend a huge amount of time homebrewing hacks to D&D to make it work as a different kind of game instead of learning a new system that works well for the kind of game they want to play. Ttrpg systems seem to have a lot more momentum/brand loyalty than you would guess.
A lot of D&D players play a fairly "adversarial DM" style and, rightly, don't want to play the more narrative focused or rules-light systems that are easy to learn, because giving players freedom will lead to them abusing it. The dynamic is players wanting a power fantasy and relying on the DM to stop them from ruining the game with their rule bending.
I'm one of those people who likes learning new ttrpg systems and trying out different systems, so I'm probably the wrong person to ask about this. It seems like it's a lot of compounding factors, including a lot of growth being driven by streamers and new players who want to play D&D, not some nerd stuff they've never heard of.
The brand is so dominant that in any group most of the players will play D&D or they will not play. If you don't have the brand on your 3rd party product then the average number of units you will sell is around zero.
It's not really Windows, D&D is Windows+Apple+Linux and everything else is one of the BSDs.
The entire industry is obsessed with onboarding and first-experience ease and intuitive interfaces and making things "just work", etc, etc. This includes Linux, which still has rough edges but the approach of just making things simple instead of easy and aiming at advanced users is very rare these days.
So of course that is interesting, probably says some important things, and moves the average salaries up as well. Everything points to "Clojure tends to attract some subset of better devs" rather than it making them better.
There are clearly also effects from the small pool of available candidates, the high output of experienced Clojure devs, etc but generally being in a smaller ecosystem doesn't drive prices up.
I know that the setup for cljs is a bit more involved and things will break sometimes (putting a browser in the loop will do that). I have dev tools open ... but I use it less and less, between hot-reloading and a data browser (portal or reveal) hooked up to the clojurescript repl I only use dev-tools stuff occasionally (the network tab is still very important of course).
It does sound like you are missing something, I'd try out one of the shadow-cljs example projects or walkthroughs to see what an example setup includes as features to see what you might be missing.
It does a very good job at giving developers what they said they wanted, not having to do this constant annoying churn ... and it turns out a lot of people didn't actually want that, they like the churn and the feeling of productivity that merging dependabot PRs gives you.
I don't think you need to explain that, it's a conservative ecosystem for experienced devs, that was the target niche it was always aiming for. It's intentionally built to not reach that level of "mass adoption", mass-adopted, market dominating tools are one small subset of the set of useful software tools.
Probably a much better idea to not choose a language at the "tons of posts about it" phase of the lifecycle. Pick something that enough people actually use that it is considered too boring to be the hot new thing.
As for breaking in, I'd suggest meeting some other developers if you can, small industries have even more of a "recommend a friend" approach to hiring than the average.
If you can't, a small online presence, some open source code or blogging about some Clojure you wrote or similar will probably get you fast tracked. That's not even really necessary, you'll find that most places advertising Clojure jobs are already willing to train people and don't get a ton of applicants, so coming in already knowing the language is going to a big boost.
I do encourage you to build a network of Clojure developers though, from what I've seen for myself and others it is pretty easy to find work once you have this. It is more about choosing between opportunities than trying to find them.
It's also much rarer for someone to have multiple phones and the need to detect that connection.
So there are deeper tracking capabilities and it is easier to connect that tracking data with an official person in order to cross-reference.
It's a trade-off of course, there are fewer job openings, but Clojure isn't that niche, and everyone is aware that it is more difficult to recruit from the small pool of Clojure developers or those willing to learn. So when they find someone with seniority and experience putting Clojure into production they will court you pretty aggressively.
Clojure has more leadership along the lines of "hey, other devs, I am open sourcing this cool stuff that I think is good. Here is my philosophy on why I like these types of libraries and would love contributions if you agree with the direction. I'm happy there are other directions being taken as well, that's great. Oh, also, some non-contributors have been making demands that I spend time on their problems and my answer is a firm no."
I think it is a hugely positive aspect, but I also open source my own libraries and have the same feelings towards people who make demands of me without being willing to contribute so I'm certainly biased.
The "but that's definitely untrue", "yeah, ok, but ... you know what I mean, right?" type comments build a very interesting context for these weird talking point memes.
If you want to blame the internet, then the obvious path is the "shared story" angle. There was a single mainstream dominant narrative for a while, but it couldn't hold up to the public talking directly to each other all the time, it was too full of holes and too clearly mostly a bunch of bullshit (remember the internet era before these "turning points" was heavy on the 'debunking' stuff).
So the elites are fighting over who gets to attempt to put in place the new official narrative (and many hope to make it a dominant narrative again but that seems far fetched to me).
It seems ... very obvious. I guess the problem is that my story depends on the old narrative being a constructed untrue thing and that's too "unamerican" of me?
The choice of default meanings is good too, lists/application, indexed sequences and k/v mappings are useful widely used primitive constructs (clojure makes sets (the math meaning, unordered collection, no dupes) with #{} which is handy).
It cleans up the code nicely, having these literals, and now I find non-clojure styles to be a bit annoying to read with the extra noise from contructor function calls.
And when describing data/DSLs using these literals people generally carry the general meanings over, so things can be a bit more intuitive. And in a lot of places just using ('s and ['s in a way that makes it easy to disambiguate them when reading some DSL or literal value also makes for nicer reading of code (just in terms of a bit less mental parsing effort).
I'm the type to not be immediately a fan of extra syntax added to a lisp, but I've been convinced that edn notation is pretty wonderful and I've been converted.
If you're trying to write applications in a web browser (putting aside all arguments about if we should) then you need to care about rendering performance. And that means dealing with the underlying problem, which is correctly invalidating and regenerating the minimal subgraph of a big dependency graph. And the framework people are constantly trying to find the best way to present the inherent complexity of this problem in a good way, without too much additional complexity.
You like it? That's just a smart, well spoken way to show subservience. "I'm not an activist" ... what does that even mean? Considering what he did, the only thing that could mean in this context is "I don't consider it my place to ask for anything, all my suggestions are just ideas, not demands or anything like that".
It's bowing and scraping to power at it's most plain. It was the right thing to do in this context, necessary to talk to the people he was talking to. But you like it? It just made me sad.
Why wouldn't everyone make it the most engaging virtual car driving experience they can find, what incentive is there to make it "real" in this useful way?
I mean, I get that it's necessary for this to happen for the whole pitch to make sense, but it's just nonsense. Why these weird religious beliefs about 3D stuff, including product placement, which seem to magically behave differently than the 2D versions we've been living with for decades now.
I am just incredibly confused by this. Is it like NFTs where we aren't supposed to believe the cover story and the wink-wink acknowledgement of the grift is a in-joke/cultural thing?
Except maybe Lavabit, that guy apparently shut everything down to avoid doing something along these lines. So maybe he wasn't actually lying.