One language, many languages

June 2nd was date of the much-anticipated Apple WWDC. I watched it in real-time and I was struck by some new things I’d like to share with you.

For starters, the effort Apple has made to make the WebViews more powerful. Not only will they be activating Nitro, which will make hybrid web applications much faster, but there will also be a new dedicated channel for two-way communications between the web part and the native part of the app. In addition, every WebView will run in a dedicated process that will be able to use the memory more efficiently.

I was really impressed with the fact that Apple is working to facilitate the development of hybrid applications. Otherwise, why create a special object whose sole purpose is to allow the native part and the web part to communicate by exchanging messages? If any of you are interested in learning about all the improvements there will be in iOS 8, I invite you to watch the video of the class that was taught during the WWDC on improvements to the WebViews.

But the thing that struck me the most was Swift, Apple’s new programming language for native applications. Until now, anyone who wanted to develop apps for iOS devices needed to know Objective-C. There was no other way, and I even had to learn it in order to create Caravel and to make Instant Developer able to create installation packages.

In the various forums I follow, I happened to read the reactions of many programmers who complained that they’d have to learn a new programming language and that, after having spent a long time studying and digesting a challenging language like Objective-C, they’d need to learn another one in order to keep developing. Because, while it’s true that in iOS 8 you’ll be able to use either Objective-C or Swift, many people think that in the future Swift will become the most used language for iOS.

While I was reading these posts I was thinking that all this already happened with Visual Basic 6 and C#. When C# came out, many programmers who were used to developing in VB6 had to learn how to do it in C#. All of them, that is, except those who were using Instant Developer: they simply had to enable a new checkbox and recompile to get their web application in C#.

I am increasingly convinced that programmers need to be free to think about the logic of the applications without necessarily needing to learn new languages, especially because it’s one thing to learn a language, but it’s something else to master it to the degree that you’re able to develop complex applications.

What do you think? Have you already downloaded the Swift manual (700 pages) from iBooks? I’ve nearly finished it 🙂