- Slow compilation, I think even now immutably concatenating a handful of strings makes the compile time exponential.
- Over reliance on keywords and special case syntax, magic doesn't compose. A bunch of it just supports Optional for example.
- Xcode, nuff said.
- Equatable and Hashable for tuples were implemented with invisible compiler magic, so they wouldn't work with generics.
- Variance is hot garbage, it has variance, but no way to control it.
- No higher kinded types, so useful FP abstractions become a chore to implement.
- I regularly had compiler crashes on comparatively simple code.
- Sometimes absolute nonsense compile errors pointing at random parts of my code.
- SourceKit didn't handle basic stuff like type aliases.
Going on the various things I've seen since we switched our project to JavaScript from Swift it looks like the keyword soup has gotten worse.
It helps if you test declare it like:
let json: [String: Any] = [ /** lots of fields here */ ]
String concatenation: could you give me a specific piece of code that fails? It could be that I really never write code that triggers the problem. Using the + operator to concatenate strings has some performance issues though.I'm not telling you're crazy, I just noticed that things got so much faster in the past two years.