Hacker News new | ask | show | jobs
by dep_b 3325 days ago
Good move. Out with possible null pointers everywhere for no freaking reason at all. It's 2017.

Apple did a great job with Swift but launched it when it wasn't mature yet but Kotlin will have JetBrains level of IDE support from the get go so and it's mature already only a luddite would stay with Java.

2 comments

Apple released Swift early (June 2014) so that it could be used in real programs, and so that developers could provide feedback. You weren't, and still aren't, forced to use it. Although, it seems to have matured enough in 3 years to the point where it's probably the best iOS development language.

Kotlin was released in 2011. I bet that if Google had adopted it three years ago, it would have helped accelerate Kotlin adoption and Kotlin would be even further along today, having a much larger developer community.

Kotlin was released on 15 February 2016.[0]

[0] https://blog.jetbrains.com/kotlin/2016/02/kotlin-1-0-release...

That's the 1.0 release, but it has been in public alpha / beta since 2011 or 2012.

https://blog.jetbrains.com/kotlin/2012/04/kotlin-m1-is-out/

It went 1.0 last year. It was in development for 5 years, and some people did adopt it for Android development before 1.0

https://en.wikipedia.org/wiki/Kotlin_(programming_language)

Anyway, that's my point. Apple iterated Swift quickly in 3 years, and Swift is a very nice language now. Some sort of support, or even acknowledgement, from Google could have accelerated Kotlin.

Given that most developers still complain about the state of Swift and its tooling I'm not sure Google's approach is wrong here. Most serious Android developers have been aware about Kotlin for a while, and today it's mature enough to be openly endorsed by Google.
Right. Swift might be done in version 4.0. Or even 5.0. No ABI stability for example so you're always shipping up to 10MB of Swift runtimes with your app, which is still a considered a lot for a mobile app unless you work at Facebook. The constant IDE crashes are gone luckily but sometimes compiling gets reaaallllyyyy slllooowwwwww all of a sudden just when your product hits a certain critical complexity.

Seems that automatic type inference is something that's really nice for one page programs but explodes in complexity for the compiler once you start to do it in big programs with complex structures (nested dictionaries) or methods (like chaining flatMap with filter with join).

I'm trying to work with R.Swift and IBAnalyzer nowadays to have a 100% "if it compiles it doesn't crash" solution even while using Storyboards and that alone increases my productivity more than any left over annoyances at the moment might decrease.

Swift 1.x was horrible though. I had to pick up a project left half finished by a junior to finish it. What a nightmare. Every new Xcode point release broke everything

> it's mature already only a luddite would stay with Java.

Don't confuse professional programmer who would use language whatever client/employer decides with luddite.