I've tried to come to terms with TypeScript during the last two months, but I am sorry, it is still too messy and does not give me enough guarantees about my code.
What I would love is a Swift to TypeScript / JavaScript compiler.
I've tried to come to terms with TypeScript during the last two months, but I am sorry, it is still too messy and does not give me enough guarantees about my code.
What I would love is a Swift to TypeScript / JavaScript compiler.
Well yes, anticipating future developments is one of the main things a software developer does. And IMO one of the main differentiators between junior and senior developers. A library that has a history of regular maintenance is unlikely to get suddenly dropped. And a library that has a large user base will have its maintenance picked up by others if the original maintainer(s) do step down. If the library doesn't meet these criteria then you probably shouldn't be using it.}
I don't think you can realistically use Swift client-side. But Rust is an increasingly viable option (for browsers that support WASM). WASM compilation is built in to the official toolchain, and the js/ts-interop story is quite good too at this point (modulo some overhead when calling between JS and wasm).
I beg to differ. I've been using it client-side for years. I do not like the hybrid offerings.
Rust seems like an excellent server language, and I look forward to seeing it get more mindshare. Swift smells a lot like Rust.
But I’ve used PHP for my backend work. I’m not really a backend engineer, and I am sure it could be done better; even with PHP.
One of the reasons for my choosing PHP, is because it is so widely known, and is a perfectly good language, as long as it is written well.
There was that study that was done recently, where they showed what I call “the fishtank graph.”
This was the graph that showed which server languages were in use.
PHP was this fairly steady line along the top, and every other language looked like gravel in a fishtank, along the bottom.
I have been thinking about Rust, but it has too much stuff like ownership I rather don't want to think about on top of the already complicated things my code does.
A compiler from Swift (or a subset of Swift) to TypeScript would make it a viable option for me. Maybe I write it myself.
There's a couple of other heuristics for whether or not something is worth using on a project (like complexity of learning, and context within a larger stack), but suffice to say it's about looking past a specific problem and on to subsequent problems down the line.
Projects die all the time or start being very lazy with the maintenance. Not that I expect anything more, there is literally no money in them.
The criteria I like to use is "Will I be able to fork it and fix it when it goes unmaintained"?
I feel like Dart gets me reasonably close to the kind of elegant, intuitive code I can write in Python...but with static typing.
What I like about Swift is its "protocol oriented programming", which is basically pragmatic Haskell type classes. There is just so much done right in Swift, that I have a hard time going back to any language that doesn't have it:
* protocols, integrated with struct/enum/class
* dot-syntax when the context is known (like .blue instead of Color.blue)
* immutable data structures via copy-on-write, nicely integrated into the language
* best integration of optional type (like Int?) I've ever seen in a language
* (optional) named function parameters (in the beginning I was annoyed, but now I am a big fan)
* the way exceptions work
* cheap garbage collection (kinda; ARC is working like garbage collection for most of the code I write)
* great package system
* great IDE (Xcode)
It made me switch to Thunderbird. I had to sift through tons of mails to unsubscribe, without the Promotions/Social/Updates tabs.
The ones that kept sending me mail go to spam now.
I think I've just come to a point where I don't want to split my attention between formalisms for reasons that have nothing to do with the formalism, and just its ecosystem.