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.