{ "@context":[ "https://www.w3.org/ns/activitystreams", {"Hashtag":"as:Hashtag"} ], "published":"2024-10-10T07:46:54.177Z", "attributedTo":"https://k.matthias.org/actors/relistan", "to":["https://www.w3.org/ns/activitystreams#Public"], "cc":["https://k.matthias.org/actors/relistan/followers"], "content":"

I have been working in Swift recently, given that our frintend is iOS. I’m not impressed with the language. It doesn’t know what it wants to be.

It’s a functional language that has to run on a legacy stdlib that is object oriented, so it just mashes both together. The closest analogue I’ve used before is Scala, which I think is worse than Swift. Second, the way that Swift allows monkey patching of stdlib objects by libraries is concerning. This can be done OK if used carefully and in a very limited way. Worse is that lots of libraries do it in place of better implementations that are less invasive. It’s a lazy crutch. Because you can monkey patch stuff but then not re-open those patches elsewhere, it means that you have no control over the boundary of the library and the library may make other choices for your code impossible. Kind of a crazy thing.

It also has a weak collections library and poor time and calendar functions. It’s not all bad. The tooling is reasonable and there is at least one good testing framework. Still, for a modern language, it’s not at all impressive. I was hoping for better. 

", "mediaType":"text/html", "attachment":[], "type":"Note", "id":"https://k.matthias.org/objects/D7pU8P9GIxQ" }