This week is quite interesting, as Swift 3 evolution will finish today in the preparation for the imminent release. The fate of accepted-but-not-implemented proposals will be decided today as well. More details are available on Erica Sadun’s blog. As we also know, on the 1st of August work on Swift 4 evolution will commence. Personally, while it is known that introducing binary compatibility will be the main focus of Swift 4, I hope that some language-level improvements to asynchronous code will be proposed and accepted in Swift 4 time frame. This would bring Swift on a par with other modern languages, such as Go and Rust. Fingers crossed, in a week we will see some high-level vision presented by the core language team. In the meantime, let’s get started with this week’s issue.
A very good overview talk from Ian Partridge presented yesterday on Linuxing in London meetup. The best part, in my opinion, is the benchmark data comparing different families of languages in terms of CPU and memory consumption. Swift position in this graph is expectedly quite good. The deck also contains a quick introduction to IBM’s Kitura framework.
This document from Swift compiler source repository is not easy to find, but it
uncovers loads of tips on how to easily optimise your Swift code. Among those
are recommendations to reduce dynamic dispatch in method declarations when not
needed, container types optimisations, use of
Unmanaged and many others.
Apple has introduced some improved support for machine learning in its platforms at WWDC this year, but it leaves a lot to be desired. While you can run inference with neural networks on a device, it takes huge amount of time to set up. The provided APIs are very low-level and, as far as I know, none of that covers the actual training process. The WWDC session on neural networks also covers only low-level concepts. It is definitely still a long way to go, especially when compared to Google’s TensorFlow machine learning library. Adit Deshpande has published probably the best introduction to convolutional neural networks I’ve seen. While the article doesn’t have any code examples, the basic concepts are explained really well, so you can start prototyping some simple neural networks in Swift with relatively little effort.
Junior B. published a great article in which he describes his first experience with server-side Swift. It covers a short overview of available frameworks, basics of using Vapor and Redbird Redis library. The main goal was to write a Hacker News clone, which was then published on GitHub.
This post by Lightstep is an interesting perspective on how microservices will probably go the way of information superhighway, colour television and horseless carriages. Some buzzwords go away, while the phenomenon itself stays and seems fairly obvious in a hindsight.
Very interesting story about building a service with minimal resources, while trying to stay scalable and reliable with a sudden influx of new users.
JP Simard submitted two pull requests, which were merged last week bringing SourceKit to Linux! 🎉 As I’ve mentioned in the previous issue, SourceKit plays vital role in developer tools, allowing to parse, format and process Swift source code easily. SourceKit on Linux means that SwiftLint is coming to Linux too!
MongoKitten 1.3.0 was recently tagged. It supports Swift 3.0 and is compatible with SwiftPM. This library provides a nice DSL for writing queries and document creation.