Swift design talk

Last night I presented a small introductory talk on Swift under hopefully-not-too-pretencious name of "Swift Design". I talked about what could have been the primary goals of Swift and how Apple has achieved them, doing sort of speculative reverse engineering of Swift design choices. I have uploaded the PDF and…

Read this article

Clashing protocol functions cannot be disambiguated

I'm going to classify this as Swift issue but only because it's a new language. The same problem exists in Objective-C. I've already reported it to Apple and it's on Open Radar as well. Description Consider a class implementing two protocols with clashing function declarations (name + all parameter types). Currently…

Read this article

Frugal cloud

Why do we optimize? I'm used to optimizing the speed and memory consumption to improve the user experience, to allow new features that would otherwise be prohibitively expensive, to be able to do more in less, to avoid forcing customers to upgrade their hardware unnecessarily and so on. But this…

Read this article

Continuous development

In the past year there have been two major productivity boons in my workflow: git which I now use exclusively and which I could only use privately before (and was thus using it in a half-assed way) using modules (npm, RubyGems and to some minor extension CocoaPods) (well, these two…

Read this article

Swift generics and overloading issue

I'm working on implementing a set of protocols and a helper class for Visitor pattern in Swift. Unfortunatelly, instead of finishing that and publishing that code I ran into a compiler issue (I think) that prevents any kind of elegant automation of double-dispatching. I have submitted the issue to Apple…

Read this article

`diff Swift C++`: `switch` on steroids

switch statement in C++, C# or Java is pretty much what we have had since the beginning of the 70s. Java and C# improved it a bit by disallowing automatic fallthrough between case statements and support of string values for matching. But Swift greatly improves switch: Implicit fallthroughs between case…

Read this article