Rant warning on.
Not really about KM, but we all have so much fun talking about other things that I couldn’t resist, and I feel extremely strongly about Swift. I hope this post doesn’t get me banned from the KM forums; t is very nearly shouting, but in exasperation.
I have no idea what you guys are talking about. Swift is repulsive It is endlessly complex. It seems to me to be incomprehensible to ordinary mortals, and even extraordinary developers will struggle with it. It is as if C++ reference values had escaped and proliferated wildly, mutating frequently.
I wrote machine-level programs (as in raw numbers) and a lot in assembly languages. I have worked extensively with Pascal, Lisp, Smalltalk, AppleScript, various shells, C, C++, Java, JavaScript, Emacs Lisp, and Python. I’ve done some in APL,PL/1, Algol, Perl, and Objective C. (Strangely, I skipped Basic.) I wrote one of the first C++ Data Structures books and Bioinformatics Programming Using Python for O’Reilly. I am pretty much an expert in every aspect of object technologies. (Oh, this is sounding awful — I never brag, but occasionally I feel I really need to establish my credentials when making strong statements.) I have taught programming, data structures, databases, and various aspects of object technologies at universities and businesses. I have read a huge number of books programming languages (and just about all aspects of software development).
I have read Apple’s Swift book (which given the challenge the language presents is a truly fine and impressive work). I have read various online introductions. I have worked through tutorials. And now I find myself struggling with a Swift iOS project after what I had thought was sufficient preperation.
Swift seems to incorporate every language feature there ever was, with particular emphasis on what even experienced programmers get tripped up by. It is a huge language. And it gets promoted as fun and easy to learn! I must be missing an awful lot here — I just can’t see how more than a very small minority of programmers will ever master it, and not many will use more than its basic features. But what am I talking about? How would you extract a small subset of the language to keep things simple? The demands in just declaring and using constants and variables are scary. I It sure is fun trying to absorb all that complexity and detail — makes me nostalgic for every language I ever used. I mean there’s enough there to keep learning forever, which is promising in a perverted way.
That all said, I have neither taught nor consulted with people who are learning or using the language, so I am only going by my own reactions not any kind of real-life observations. And I wish everyone all the best with this mess.