Nim defaults to this kind of stack management and value semantics, except the `ref` and `ptr` trapdoors are there whenever you need them. So like this, Nim requires no memory annotations or semantics for good, safe default behavior.
Goose is a straightjacket by comparison. I've never enjoyed languages that plant a flag on one mechanism and force users to adapt.
> I've never enjoyed languages that plant a flag on one mechanism and force users to adapt.
Well, the hardware designers have chosen one (or at most a small number of) mechanism[s] and implemented in silicon. The farther you diverge from their implementations, in terms of abstractions, language features, and the like, the more you will pay in performance. Your choice.
The turning point is approaching: Interest rates will gradually overtake all other gov't expenditures. All politics will revolve around shoring up the parasitic drain on the rest of absolutely everything.
I made an internal GUI tool for company in Godot. It uses GDExtension to interact with OS systems, namely serial/COM ports. Yes, you can make quite good desktop GUI applications in Godot, with mostly its default toolkit!
Also, exploring minified Godot template compilation led to me distributing a 24 MB portable package (10MB zipped). Astonishingly efficient.
Yeah, I got the impression that Reticulum's main claim is that it replaces the IP stack with a future-proof, encrypted protocol for routing regardless of the underlying network medium. Which is not an insigificant claim to test, but boy would it be fantastic.
Would say your understanding is correct. It uses something similar to a "gossip" protocol where the public keys of other users are advertised.
So it gets ride of IP addresses and can jump boundaries between different network types. I'm using it for BLE to BLE communication, I've seen videos of people using it for USB to USB communication. There aren't many limitations as long as data can flow.
Was trying to find it but hard. Reticulum only needs some kind of way for bytes to move from one point to another. So USB with the serial data line works as well.
On the video was using for an embedded device without WiFi nor Bluetooth to communicate with the host computer where it was connected.
There's a third way here. It could be called many things: Single ownership by default, automatic stack lifetimes, hidden unique pointers, etc. The main idea is that the lifetime of dynamic heap data is treated no differently to primitive stack data: Clean it when it goes out of scope. Rust and C++ require you to specify this manually, but Nim is unique among native-compiled languages in that is does it by default, with tools to opt-out. An advantage of this approach is that combining immutable values and static analysis can reduce most parameter passing to borrows, again, without needing the programmer to specify, by default. The main cost being that some assignments, especially crossing the variable-to-immutable line or vice-versa, would require a copy.
LLMs are vectoring towards solving problems of software quantity. What remains is judgment, caution, and taste for quality.
Much as computers have made creation in other industries much easier, we're likely to see a glut of crap software made by non-programmers that does not meet any quality bar because these are the sorts who think "lines of code" was the hurdle to overcome.
That is definitely not what the Maya did. Or really any civilization with large permanent cities. The record of forest cutting once settlements reach a certain size is consistent and global. The Amazon simply experienced a full civilizational collapse and more than enough time untouched to recover.
It might suffice to say: The myth of sophisticated indigenous ecosystem engineers who harmonize with nature is a European trope.
Whenever any culture larger and more settled than hunter-gatherers has traditions of forest management and ecosystem balance, don't immediately attribute to them magical wisdom that Europeans somehow lack. Consider that those traditions are an ancient memory of one or more catastrophic ecosystem collapses and the practices of the people who survived them.
I mean throughout the Americas you see really complex polycultural farming traditions including the famous chinampas. In Mesoamerica you also have the milpa cycle which is a system where you clear most herbs and lightly burn it to grow your crops in polycultures. After a few years, you grow more trees and these fields turn more into managed orchards that include both fruit trees and trees grown for lumbar. Eventually you let it progress into a closed canopy system.
That's just one example, but there are plenty other I could think of that are in very stark contrast to anything you see from European civilizations.
With these things it's always an issue of scale. What people don't realize about e.g. homesteading is that it's actually really easy to be entirely self sufficient on very small plots of land. But the tricky thing in the past was transport - when you start shoving many thousands of people into very small areas, you need to start producing more and more food in (relatively) smaller and smaller areas.
Modern times has alleviated this constraint because of mass transport. Now moving tons of cargo hundreds of miles, or even half way around the world, is trivial and relatively rapid, but in ancient times you're looking at moving small amounts of cargo extremely slowly, all under the time pressure of spoilage/infestation. The way places like Rome solved this, or at least alleviated it, was by using river transport but then you're imposing some significant technological, infrastructural, and geographical requirements on settlements.
And then you also need to deal with bad harvests, war, and other such issues. In decentralized systems where most are doing their own thing, this isn't such a big deal. But in a heavily centralized system where potentially millions of people are dependent upon deliveries, a single disrupted harvest could spell the end of a civilization if not properly prepared for. And ancient beliefs that things like human sacrifice could ensure rain were likely in opposition to the rational necessity for preparation of inevitable failures.
---
As a related topic, this is also why war is considered a game of logistics. Think about feeding and providing the other necessities for 10,000 people for just one day. Now imagine doing this for weeks, months, and years - when all those necessities need to come through areas that are potentially being attacked. The fact that war with armies of hundreds of thousands is even possible is quite amazing when you think about the logistics involved just to survive, let alone actually engage in combat.
> Now moving tons of cargo hundreds of miles, or even half way around the world, is trivial and relatively rapid, but in ancient times you're looking at moving small amounts of cargo extremely slowly
This is one of the reasons they flourished near river networks that provided easier transport as well as food. They also build canals, but I’m not sure they were for navigation as much as irrigation.
I recall reading of somewhat similar rotational cropping traditions indigenous to Africa though those centered mostly around root crops like yams. Modern smallholder farms still often practice rotational cropping because of this history (something which the west has only relatively recently come around on).
East Africa practiced stuff like homegardens which can be complex, multi-layered agroforestry systems that usually surround homesteads. I've heard the Hausa traditionally did something similar.
I haven't read nearly as much on African agroforestry systems though so I can't recommend much readings. Most of what I recall comes from a college course I took a very long time ago on economic anthropology
> East Africa practiced stuff like homegardens which can be complex, multi-layered agroforestry systems that usually surround homesteads. I've heard the Hausa traditionally did something similar.
Homegardens seem much smaller in scale than large-scale chinampas as practiced by the Aztecs, right?
To recognize the possibility, one has to grapple with incredible scale and deep time: In roughly 300 million years (1/10th of the time life has been around), the Appalachians split off from the Atlas; the Atlantic Ocean first started splitting open; uplifts underneath North America pushing the West up from the seabed and caused the rivers to carve millions of acres of sandstone landscape down, leaving towering plateaus, cliffs, and eventually river chasms. Over the 3 billion years before that, what was carried away like so much sediment? What was subsumed by subduction boundaries?
On a much more recent timescale, one of the dominant theories of the emergence of civilization places the ancestors of the Sumerians in a stupendously fertile valley at the bottom of what is now the Persian Gulf, eventually flooded during the retreat of the glacial maximum and covered in Tigris & Euphrates sediment. It could be the very origin of regional flood and primordial garden myths. But it's all buried.
Goose is a straightjacket by comparison. I've never enjoyed languages that plant a flag on one mechanism and force users to adapt.
reply