Swift! It actually has a pretty big server community, Vapor and Hummingbird are both great frameworks, Apple has been replacing some of their Java services with it, it's open source and cross platform and Apple seems serious about making it viable on Linux, which it is. No need for Xcode, it has an open source LSP and first class VSCode plugin.
Plus it's a fun language to write. Some people say it's a nicer, higher level Rust.
I also like the look of Kotlin but I've never used it. I think Kotlin and Swift are the two premier modern multi-paradigm languages.
I do like Swift but it also suffers a bit from identity crisis. The compiler experience is quite disappointing too—I found myself helping the compiler more than the compiler helped me.
I've since moved to Rust and have not looked back. Importantly, rust-analyzer runs circles around the Swift VSCode plugin (or Xcode for that matter)
The identitiy is clear, it is a language first and foremost for Apple ecosystems.
It also needs to target GNU/Linux, because Apple got rid of their server offerings, thus anyone doing server code for applications on the Apple ecosystem, that wants to stay in a single language needs to be able to write such software on GNU/Linux with Swift.
Windows well, since they have the open source story, it kind of falls from there as complement.
On the revamped website they are quite clear about the identity.
Cloud Services, CLI and Embedded as the main targets for the open source version.
I'm the same but opposite, I like Rust but find myself using Swift most of the time. They sort of do the same thing but coming from opposite directions. Can't go wrong with either imo.
I really do wanna try Kotlin at some point as well. Rust, Kotlin, and Swift feel like the future of languages to me.
I'm kind of in the same boat although the timeline is more compressed. People claim they're more productive and that AI is capable of building large systems but I've yet to see any actual evidence of this. And the people who make these claims also seem to end up spending a ton of time prompting to the point where I wonder if it would have been faster for them to write the code manually, maybe with copilot's inline completions.
Found it last month, don’t remember how, but I did share it with the rest of my team. Excellent talk, it does have many "eternal" points to rebound on the essay vocabulary.
I think most native apps (at least that I use) are local first. I can't think of a single one that requires a consistent internet connection to function, that otherwise could run locally. The whole "local-first" trend that has cropped up lately was at least partially influenced by web apps like Linear and Figma, and if you look at the libraries and writing being produced on this topic it's almost exclusively Javascript and about making crud web apps local-first.
Perhaps I'm missing something, but aren't local-first apps the overwhelming norm? Like if I think about the apps I use, my friends use etc, most of them are local. Unless the author means "local first web apps", which would make more sense. And I think the oxymoronic nature of a "local first web app" gives a clue as to their unpopularity.
What are some examples of popular apps that do this which aren't web apps, and could feasibly work offline? Every native app I use is local-first. Eg. Photoshop, Blender, Figma, Xcode, Zed, Kitty, Affinity Photo/Designer, Notes, Music, Calendar, Messenger, Maps, Email, etc.
I already explained: "exclusively about apps that store their data in the cloud".
So Photoshop, Blender, etc. -- these are not apps that store their data in the cloud. They're using filesystems. There's no sync. They're not local-first, they're just local.
But the Apple apps -- Notes, Music, Calendar -- they are very much local-first. Their source of truth is in iCloud when you activate that, but they fully work offline as well and then sync once there's a connection. This is completely different from e.g. Photoshop.
> Like if I think about the apps I use, my friends use etc, most of them are local.
Ones that you have to pay for directly?
Aside from game devs it's hard for me to think of who the major players are in that space any more. And now even when the game has a single-player mode it seems to demand an Internet connection, whether for DRM reasons, "anti-cheat" (why do you care?), updates etc.
They aren't major players, but there are still plenty of apps that are more "app with options to save to cloud" than "thin client with maybe some caching options". A quick skim on my phone shows it mostly pertains to apps that connect to other hardware (my router/modem and smart bulb, for instance), utility apps (file exploreres, calculators, and task lists), and local media apps.
But one enables continual revenues streams and the other succumbed to extremely rampant piracy in the app space. As such, even many games on mobile are service games rather than a local single player game.
Even the apps I pay (or paid) for directly are local first. Eg the Adobe suite, Unity Pro, Affinity. Some, like Copilot, do require internet but there is no feasible way to get offline access for an online service.
We don't even really have time or energy to debate the higher levels with other people. Maybe if it's a friend or family or someone you're close with. But arguing with strangers, at least imo, is a total waste of time most of the time.
When we need to power things on the moon, we'll put them there, too. For now, we need to generate the power near (within a few tens of miles) where it must be used. The reason for this is that as we transmit power, we lose some as heat. The further we transmit, the more we lose.
There’s a 50k km difference between the shortest and longest answer to “how far is the moon?”, depending on orbit and phase. The distance can change by about 75m per second.
I don’t know of a reel that can spool up a cable at 270 km/h.
Our current longest power cable is 5376 m long. So we’re only 406k km short of bridging the gap (our longest is only 0.0013% the length required).
Maybe we can offload all bitcoin mining to the moon instead, and just transmit the winning blocks to the earth via radio instead. That way, we can outsource the tremendous emissions caused by bitcoin mining, and use the extra capacity on earth to cut down on fossil fuels.
Is it possible that it's like every other language, with flaws and tradeoffs that don't always make sense to everyone? Why make it more complicated than that?
This might sound bad, but having worked in a few different languages, I find it kind of cute how some parts of Go seem to promote simplicity while others are simply what the authors were used to growing up. Sometimes it frustrates me when I write Go, when I see a tradeoff due to the latter. But yeah. Languages tend to have a lot of subjectivity of their author in them. The more "strict" the language is, the more confined you are to the author's opinions.
Plus it's a fun language to write. Some people say it's a nicer, higher level Rust.
I also like the look of Kotlin but I've never used it. I think Kotlin and Swift are the two premier modern multi-paradigm languages.
reply