His life is a confluence of two extreme passions: Writing and Tech! He loves music to a fault. Warning: leave his headphones and nobody gets hurt!

Back in 1991, Microsoft released Visual Basic as a way to streamline the development of Basic, one of the earliest popular programming languages with a graphical user interface (GUI). More recently, circa 2009, Google released Go, its own programming language. Programming languages are a matter of religion for so many developers. For Apple, Google, and even Microsoft way back when to release a new programming language means an uphill battle against the habits and routines of developers, who are set in their ways. So there must be a carefully considered business case for this, right? Apple and Google must make money from this, right? Except that they don’t. Not really. The two languages have a lot in common. Both Google’s Go and Apple’s Swift were designed to fix the problems that developers were having with older programming languages. Swift is enough like Objective-C, the programming language that dominates iOS coding, that developers picked it up quickly — in fact, it’s similar enough that Objective-C and Swift code can be used side-by-side in the same app. But Objective-C is over 30 years old at this point, and Swift is an effort to modernize it to make apps easier to write and run faster. Similarly, Go was designed to make it easier to build complex systems. The old workhorses of the networked software programming industry, C++ and Python, just couldn’t keep up with the demands that Google was placing on it. “Go was born out of frustration with existing languages and environments for systems programming,” says the official Go FAQ. Hence, Go was born. It’s made to be easier for coders to pick up, but still fixing a lot of the speed and performance problems of its forebears in the era of the gigantic data centers that we call “the cloud.” As an open source project, developers all over the world are contributing to Go and making it better. One fringe benefit for Google and Apple is that making your own programming language makes recruitment easier — for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who’s already proficient in the language since she would need less training. Plus, any cool problems that developers in the wild solve with languages like Swift or Go, Apple and Google can adopt for their own businesses. But for the most part, these languages are released into the world for the sole purpose of helping developers build better software. Go hasn’t seen the explosive growth of Swift — not least because it targets more complex, so-called “system level” programming. The Go project has described itself as “designed by Google to help solve Google’s problems, and Google has big problems.” You can use Go for a mobile app if you really want, but it’s not what the language is best at. Red-hot container startup Docker uses Go for some of its internal projects, as does growing cloud hosting service DigitalOcean. If Swift is for making iPhone apps, Go is for the servers that hold that app’s data. “From our point of view, the language is easy to pick up and performant in production, so we will continue to explore the possibilities,” says DigitalOcean software engineer Brian Liles. But in general, it hasn’t taken off yet. The final word here is that Google and Apple are both pushing programming languages because new advances in technology are being underserved by existing languages and techniques. It’s a way to advance their own agendas, even if it’s to get more people interested in what Google and Apple are doing. But as New Relic’s Karon points out, faster, less buggy code doesn’t automatically make your app worth using. Languages like Swift and Go aren’t silver bullets that make an app useful or fun to use. You need good design and good features, too. “Code is not really the part that gates performance on mobile.

Related Post

Come On, Will You Go Without Sharing This?

Leave a Reply

Your email address will not be published. Required fields are marked *