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.

Max Desiatov

Links

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.

Code

JP Simard submitted two
pullrequests, 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!