Swift is Open Source

First of all, let’s thank the people who contributed their meaningful time to the make the Swift programming language open source, so Thank you Apple and Thank you to the people who made this possible. πŸ‘πŸ» Swift is Open Source! πŸŽŠπŸŽ‰
“Today is the result of an amazing amount of work by dedicated and phenomenal teams of people across Apple. Proud to be part of the team!” – @clattner_llvm
After a very short time of being open sourced, the Swift programming language already surpassed every other language on GitHub by becoming the top programming language that is actively being developed on GitHub. How cool is that? 😎

Contributions

Alas, with Swift being open sourced, a lot of pull requests has been created and most of the first ones were teased by other developers as too pedantic.

Fix a typo

These PRs consists of grammar, typos, and some minor fixes that contribute as little to the Swift programming language, but as Christ Lattner tweets:
Making small improvements is the way everyone starts getting involved! – @clattner_llvm
So, no worries, don’t hold that pull request and just push that button.

Swift Evolution

On the lighter side of this small fiasco, one developer stood out of the others, the first independent proposal that has been accepted was to remove C-style for-loops authored by Erica Sadun.
First independent Swift language evolution accepted, proposed by well known iOS dev and author @ericasadun : https://lists.swift.org/pipermail/swift-evolution-announce/2015-December/000001.html@clattner_llvm
The proposal titled Remove C-style for-loops with conditions and incrementers was approved and will be deprecated in Swift 2.2 and will be removed entirely in Swift 3.0, with coverage removed from the Swift programming language to match the revisions in the current 2.2 update. By removing the C-style for-loops, there are two other implementation that I can think of, first is by using for-in statement and the second is by using the stride() function:
let array = 1...10

for var i in array {
    print(i)
}

for var j in 0.stride(through: array.count, by: 2) {
    print(j)
}
and should display something like:
1
2
3
4
5
6
7
8
9
10
0
2
4
6
8
10
One of the reasons removing of the C-style for-loop has been proposed is because of the removal of increment (++) and decrement (--) operators. This proposal has been submitted by Chris Lattner himself.

How to contribute

Some people gave ideas on how to contribute, including some of mine:
  • … searching for β€œfixme” is one good place to start!@ayanonagon
  • Implement a shell script in Xcode that will turn FIXMEs/TODOs into a warning:
    TAGS="TODO:|FIXME:|NOTE:"
    find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$|($ERRORTAG).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/" | perl -p -e "s/($ERRORTAG)/ error: \$1/"
    
  • Install the todo-show plugin if you are using the Atom Editor
  • Add unit test. You will learn a lot and make project safer.@KostiaKoval
For a much more detailed updates and progress, might as well go to Swift.org
Angelo Villegas is an iOS Software Engineer from Manila. Building native iOS apps using Xcode, Objective-C and Swift, contribution to the open-source community and writing articles on AngeloVillegas.com