That makes sense. I didn't find many surveys available, so I referenced the ones I could find.
hallettj
It's hard to predict the future, but I can point to a couple of indexes.
TIOBE measures language popularity according to a variety of factors. It has Java on a steady downward trend over the last couple of decades, but shows it as still very relevant. TIOBE does not show comparable growth for Golang. I don't see much growth in the top 10 for languages that are especially suited to autoscaling. C# looks to be steady as a language in a similar niche as Java.
OTOH another survey from devjobsscanner that looks purely at job postings shows Java openings as very steady over the last couple of years. It also shows Java as more popular than Golang.
So I don't know exactly what conclusion to draw from that. But learning a new language can be a helpful exercise regardless to broaden your perspective, and to keep your skills sharp.
Personally for the purpose of producing resource-efficient binaries for scaling I prefer Rust. It's design incorporates some correct-by-construction strategies that promote high-quality code. And it's well-suited for compiling to WASM so you can do stuff like deploy small services to Cloudflare workers for wild scaling. But I guess Rust isn't making a big showing in the popularity charts. And Golang is popular for its lower learning curve.
Hmm, good point. The pig AI requires a lot more computations than wheat or pumpkins which are managed by random tick updates.
You have two options depending on how you set your Typescript config.
Option 1, the default:
declare const xs: number[]
const x = xs[4] // inferred type is `number`
Option 2, using the noUncheckedIndexedAccess
setting:
declare const xs: number[]
const x = xs[4] // inferred type is `number | undefined`
Your AI assistant appears to assume option 2. Maybe you have that option enabled in your project?
I'm sorry you had to spend a lot of time and frustration on this problem. But fundamentally Rust and Typescript have the same limitation: neither will catch out-of-bounds access errors on variable-length collections at type-checking time. They don't have the necessary information to do that.
Rust can catch out-of-bounds access on a fixed-length array if you use a literal number for the index access. But Typescript can do the same thing if you use a fixed-length tuple type (e.g. [number, number]
instead of number[]
).
I agree that The Visitor is a great choice! Although depending on OP's goal I'd argue for Duet because,
- It's another excellent, self-contained story
- It keeps the story in the usual space station setting
- You get more time with the regular cast (IIRC)
- There is less hand-wavy scifi stuff going on
So it might be a simpler introduction to the rest of the show.
Those factors aside, yeah The Visitor is probably the more compelling story.
Either way, DS9 has the best character writing, and is therefore the way to go!
If you're getting started with programming the first resource I point people to is Scratch. It's the easiest way to get started, and teaches programming concepts with guide-rails. I recommend looking at a game someone else has made on the Scratch website, and "remixing" it to tinker, and understand how it works.
When you hit the limitations of Scratch, and want more I agree with other commenters that Godot or LÖVE are good next steps.
Is Tuvix managing other positions single-handed, or are there many Tuvices?
You might be interested to learn some history of societies without state-issued currency. The book "Debt: The First 5000 years" by David Graeber has lots to say about pre-modern systems of account. I'm aware there are some criticisms of the book so I don't want present it as absolute truth - but it is an interesting on read, and it cites lots of anthropological studies.
One of the points of the book - and I see there are also other anthropologists who take this view - is there is no evidence that there has ever been a barter economy. Economics curriculum typically talks about prehistoric barter as an introduction; but it looks like the barter story may have been made up by Adam Smith. Smith's "Wealth of Nations" is highly insightful, and even predicts problems with capitalism that we currently face. But he probably didn't have the anthropological background to write authoritatively about economies of prehistoric societies.
Graeber does claim that there have been times when barter has been a stop-gap when there is a problem with money supply. So that's a case where something like your app might come in,
When barter has appeared, it wasn’t as part of a purely barter economy, and money didn’t emerge from it—rather, it emerged from money. After Rome fell, for instance, Europeans used barter as a substitute for the Roman currency people had gotten used to. “In most of the cases we know about, [barter] takes place between people who are familiar with the use of money, but for one reason or another, don’t have a lot of it around.
These were temporary situations. The fall of Rome probably seemed like the end of the world to some people at the time. But new societal structures and currencies filled the gaps.
May I ask what brand of LECA you use? I've read contradictory things about pH of LECA being basic. I got a bag of Growit, and tested it with tap water - the water is indeed very basic compared to my control even after lots of rinsing and repeated soakings. I'm wondering if some brands are better at living up to claims of being pH neutral than others.
I do the same - except I upgraded to 64 GB at a point in my life when I was doing Haskell programming on a largish project, and I learned that 32 GB is not sufficient to run the LSP and the compiler at the same time.
The Android app is also bad. They never figured out how to use the correct fullscreen API, so you see the white bar / soft button at the bottom while videos are playing. And they didn't get the media API right either so bluetooth headset play/pause buttons don't work.