I start writing a ORM (that is how I learn a new language). Very fast I hit problems. The keynote and the state of union say swift is ready for production, but is not there yet. The coding experience is buggy, the repl violate the language (is possible to change a constant to another type!), the importing of other obj-c code is sometimes broken (ie: Not work at all, or yes). A lot of things are not documented (For example, how do a generator?), etc<p>Still, I hope this lang mature and be popular, because I want badly to not use obj-c
The article suffers from a bit from looking at things from a strictly theoretical knowledge (i.e. the first example is not valid Swift code), but it does bring up a few interesting points.
I agree that instances being pass-by-reference is weird, with everything else having copy semantics. It seems as yet another odd artifact of the design constraint that Swift must be ObjC-runtime compatible.<p>I sort of wish they had created a special type annotation to support legacy ObjC classes, and gone for Go-style structs for the non-legacy OO.
> Except that you can still make changes that don’t affect length (immutArray[3] = "Whoopsie")<p>That sounds like a bug to me. I would expect the compiler to detect it as an error (it doesn't). Can anyone point me to the relevant bit of the spec that says you can do that?
Optional types are not the only use of algebraic data types. I agree that it's weird to have them and optional operators in the same language, but I don't see it as a big issue.
"... but this language, once released, will be fixed for a decade at least. Something with that lifespan should be great from day one."<p>I'm not sure why the author believes that once the language ships it cannot change. Surely all languages evolve and change over time, it would be foolish to think Swift as it ships in September will not change for a decade after that.
> So this is a list of things I don’t like about Swift based on things I’ve read in the book, without having experimented with the language myself.<p>I stopped reading about here.
The good part is that the following smooth transition is now possible for the core iOS developers:<p>ObjectiveC -> Swift -> C#: iOS, Android, Windows Phone etc.
FTFA;<p>><i>"So this is a list of things I don’t like about Swift based on things I’ve read in the book, without having experimented with the language myself..."</i><p>Question; why post this then?