7 ms·
The programming language eco system is really improving rapidly and efficiently. It seemed the developer's toolkit was limited by the languages created 20+ year
by bamazizi 11y ago
The programming language eco system is really improving rapidly and efficiently. It seemed the developer's toolkit was limited by the languages created 20+ years ago but within the last few years we're seeing a renaissance in developer toolkits as well as development philosophies.
Languages like Go, Rust, and now Swift are not only great from almost every aspect over the last generation languages like C, C++, Java, but a lot noobs or scripting language developers are also converting to more low level languages. So the barrier to pick up a lower level language and become productive in it has really diminished.
Go has had a head start and introduced minimal simplicity. It's a great/powerful language and almost everybody can pick it up quickly within a few days. I wouldn't listen to people who dismiss the language for its lack of "features" and have never written more than "hello world" in it.
Swift is "important" because of Apple & iOS. It has a much steeper learning curve than Go and naturally it takes a few weeks of dedication to get comfortable with it. However, once you overcome the introductory challenge then you'll start to appreciate the language and its capabilities.
Already the job market for both languages are really high with higher than average salaries. So learning/mastering both Go and Swift is the best decision you can make.
- justinhj 11y ago"learning/mastering both Go and Swift is the best decision you can make" is a very bold claim. In my area we use Go for some systems but found it scales badly from an engineering point of view to larger more complicated systems, compared to languages like Java and Scala. The JVM has much more mature tooling and libraries too. For mobile applications it will be a while until Swift is stable on Android, so some of the cross platform languages would be a good choice. React Native, Unity, Unreal for example.
- nulltype 11y agoIn what way does Go scale badly from an engineering point of view?
- justinhj 11y agoIt was our opinion that it's harder to write code that will be shared with a bigger team. Some of the factors were the simpler type system, lack of generics meant lots of copy and pasting of common patterns. The package system seemed less comprehensive and flexible in comparison to Java's. These are just subjective issues of course, but I think it's reaching a bit to say that Go and Swift are the best two languages you can learn.
- platz 11y agoNot a go fan, but seems like if anyone has scale problems, google would, and go would give them these issues too which is surprising since that was kind of the goal to solve from their perspective.
- threeseed 11y agoThere's different definitions of scale. He is talking about from an engineering perspective and at Google we have seen nothing other than a few periphery sites being written in Go. I fully agree that Go is a poor language if you are building a large, monolithic application.
- sangnoir 11y ago> I fully agree that Go is a poor language if you are building a large, monolithic application. I find that statement hilarious considering that it was explicitly one of the design considerations[1] for Go. So they either failed massively, or there's a difference in perspective on what a good language for programming in the large is. From Rob Pike's talk[1]: > Go was designed to address the problems faced in software development at Google, which led to a language that is not a breakthrough research language but is nonetheless an excellent tool for engineering large software projects. 1. https://talks.golang.org/2012/splash.article https://talks.golang.org/2012/splash.article
- coldtea 11y ago
- SureshG 11y agoFor android, we already have kotlin (https://kotlinlang.org/ https://kotlinlang.org/), which is very similar to Swift and has 100% interoperability with java.
- niutech 11y agoBetter alternative is Groovy: https://jaxenter.com/groovy-is-the-swift-alternative-for-android-107846.html https://jaxenter.com/groovy-is-the-swift-alternative-for-and...
- seabrookmx 11y agoBetter is very subjective. They both solve a lot of the same problems, but lots of people will go for Kotlin just for static typing.
- niutech 11y agoGroovy 2.0 added static typing: http://www.groovy-lang.org/releasenotes/groovy-2.0.html http://www.groovy-lang.org/releasenotes/groovy-2.0.html
- seabrookmx 11y agoIt added type checking ala. Hack and Typescript. It's optional, and doesn't give you the same compile-time guarantees that a language with pure static typing does. Also, dynamic languages like Groovy take a performance hit. Static typed JVM bytecode runs faster than dynamic bytecode. Whether either of those are relevant to your application really depends, but Kotlin definitely is going to gain some followers due to it's differences from Groovy.
- uxwtf 11y agoI'm learning Swift right now, and really appreciate type checking.
- vorg 11y ago> Groovy creator Guillaume Laforge blogged that, “an acquainted Groovy eye would immediately notice the inspiration the Swift designers took from Groovy.” Guillaume Laforge is NOT the creator of the Groovy Language, James Strachan is. And Swift did not take inspiration from Groovy. What else is inaccurate in the article? 6 months after it was written, Pivotal voted against Groovy's diversion into static typing and Android development by retrenching Laforge and the programmer working on it.