Swift Evolution acceptances: The big three
ericasadun.com
ericasadun.com
You can argue that Rust, Nim, or Go are better, for example, but the community and support Apple give Swift give it a big advantage. Simply look at the number of Swift books published in the first 18 months:
http://www.h4labs.com/dev/ios/swift.html?q=github.com&age=10...
There's so much happening in languages now, it's a wonderful time to be a developer! People will always argue about which is the best, why Go needs generics, etc., but when you're a "right tool for the job" kind of developer, your toolbox is looking pretty sweet right about now.
At QConLondon next week, I'm hosting the "Modern Native Langauges" track which will have presentations on Rust, Go, Pony and Swift:
https://qconlondon.com/track/modern-native-languages
The presentations are being recorded and will be published at http://www.infoq.com/qcon-london-2016/ over the next few months (you can see last year's conference content at http://www.infoq.com/qcon-london-2015/ if you're interested).
It's certainly a great time to be a developer with an interest in languages!
SwiftAndroid: https://github.com/SwiftAndroid
Swift for Cygwin: https://github.com/tinysun212/swift-cygwin-bin
I see Swift more as a way to bring FP concepts to the masses via the desire to target iOS/AppStore.
Personally I am already sold to other ML influenced languages.
Don't see it on their roadmap: https://github.com/Microsoft/WinObjC/wiki/Roadmap
But there's an open issue for it so that's promising: https://github.com/Microsoft/WinObjC/issues/25
https://www.packtpub.com/application-development/swift-essen...
There's a discount available until 20th March:
50% on eBook: SSEE50 30% on Print: SSEE30
These changes look great and will really improve the clarity of the standard API, and are just good coding guidelines in general.
I write web applications all day, and no current web language is as fun to write in as Swift.
- Higher-kinded types
- Strictly-typed "throw"
I'm not sure about dropping "Type" from protocols because it's pretty commonly used to separate the protocol definition (which is extended to provide most of the implementation) from the concrete base implementation, e.g. RAC's SignalProducerType/SignalProducer.
T?.flatMap(T -> R?) -> R?
[T].flatMap(T -> [R]) -> [R]
However, you cannot write a protocol for "things that can be flatMapped", because you cannot refer to a Self<T> specialized with a different type (Self<R>). With HKTs, you can do that, which would let you write something like this: protocol FlatMappable
{
typealias Value
func flatMap<R>(Value -> Self<where Value == R>) -> Self<where Value == R>
}
That's not useful on its own, but it means that you can now write functions and extensions that reason about the general concept of anything FlatMappable (this is most of the way to what is known as monads, FWIW).http://www.h4labs.com/dev/ios/swift.html
I'd like to add more features but I don't want to reinvent everything. Anyway, Go and App Engine handle the load well and so far it has been free.
You will likely run out of the free tier and into significant spending during the spike pretty soon.
If you ran a highly interactive page that required a lot of non-trivial server-side processing, I'd understand.
But blogs serve the same static content to almost every request. I don't see why burning a whole lot of CPU and IO on it by running python/php/ruby and hitting a database many times is worth it. Serving a set of static files automatically generated by a blog engine (like Jekyll) seems much more reasonable to me.
Regarding comments: Disqus or something like that could help. Or you could turn the comments off during a spike: seeing the content without comments is a much better user experience than seeing a 500 Server Error page.
I'm a little flummoxed by the new effort for first argument labels. Function names often imply the meaning of their first arguments very effectively and the new splits in function names seem arbitrary at times. Labeling subsequent arguments is an excellent feature of Swift but first argument labels often seem to complicate the syntax, especially labels like of: which don't always imply much about the meaning of the argument by themselves.
To me, it makes a lot more sense to just call these remove, substring, and join, and label the first argument to express what's removed, substringed, or joined with. This makes the first parameter consistent with subsequent parameters, and makes the actual function name purely about the function's, uh, function.
Removing technical dependencies to avoid such problems is throwing the baby out with the bathwater.
Besides, WordPress is dead simple to set up on almost any shared hosting plan. The static blogging solutions you probably have in mind for the most part aren't.