Saturday, August 16, 2014

Horses for courses: Stroustrup's InfoWorld interview

In a recent interview for InfoWorld, C++ creator Bjarne Stroustrup talks about why he believes C++ is still going strong in 2014. To me, two statements of his argument stand out:

  • he attributes the popularity partly to the fact that "nothing that can handle complexity runs as fast as C++";
  • he acknowledges that "C++ is designed for fairly hardcore applications" and that it can be part of a mix of different languages (he mentions the fact that he himself uses C++ along with a scripting language such as Unix shell script).

Taken together, these points are broadly fair. What I do wonder, however, is to what extent he is characterising as intrinsic language features what arguably are more compiler features than language features. And inasmuch as C++ forces you to as a programmer to get a little "nearer the metal" than a language such as Java, to some extent it does so because it is based on C rather than because of the object orientation and other features added in C++.

It's also fair to say that not all uses of C++ historically have been for "fairly hardcore" applications and that, as at least one commentator on the site has pointed out, some of the popularity of C++ is surely attributable to the fact that, once a large-scale application is written in one system, it's difficult to find the momentum to shift to a whole new language or development system.

All in all, though, the interview does go to highlight that language wars are largely futile. Languages like Java have a strong footing in their specific domain. And C++ does in its domain. What is more important is to focus on the right tool for the job.

Sunday, August 10, 2014

What are the top 10 programming languages? (And is HTML a programming language anyway?)

This IEEE survey, based on code available in various repositories, concludes that Java is (by a short margin) the most popular language occurring in these sources. If you had expected choices such as Ruby and Objective C to be front runners, then you may be surprised to find that overall, the list of top languages has a distinctly "old school" feel to it: C is a close second to Java, followed by C++ and C#. Objective-C comes a distinctly underwhelming 16th.

We will avoid a debate here (but the article comments needless to say have not) around whether choices such as "HTML", "MATLAB" and "R" count as programming languages.

Of course, the choice of languages reflects the specifically the choice of languages occurring in code repositories rather than the interest in these languages across the industry as a whole. It's frankly improbable that there are more MATLAB programmers than iOS and Mac OS programmers and the vast majority of programmers in the universe have probably never even heard of R. What I suspect this graph is showing us to a large extent is the relative proportion of programmers in various languages who share their code in repositories versus those who keep it under their hat.

Still, for those of us who started learning to program in the 80s, it does seem to indicate that our trusty C skills are not going to be obsolete any time soon... :)

Saturday, August 9, 2014

Will new iOS device sizes open up new markets for developers?

A pertinent point is raised in this Wired article on the new iOS device sizes that are apparently coming later this year. In countries like the US and the UK, where the use of multiple devices is typical, the availability of a larger iPhone or smaller iPad is arguably not a game-changer but simply a "small part of the mix".

But in other countries where the mobile phone may be more of a primary device for users, the availability of the phablet form factor may more strongly influence users' choice of platform. For Apple to have such devices as part of its mix may then open up new markets for developers. As I highlighted in a previous post, the option in Xcode to test our apps on arbitrary screen sizes should probably not be overlooked in the coming weeks...!

Thursday, August 7, 2014

Alleged dates for iPhone 6 (and presumably iOS 8) release

The iPhone 6 release date is now being widely touted as 9 September 2014. It seems fairly likely that some differently sized devices will be released on or around that date. Whether or not the rumours about such devices being specifically sized 4.7" and 5.5" remains to be seen-- as will whether such devices actually turn out to be telephones or something more like versions of the iPad. Or put another way, is the ability to test your apps on an "iPad" of arbitrary size in Xcode a red herring...?

What this does means is that as developers, we have a schedule in place for testing and finishing development of new apps to take advantage of the more "iconic" of the new iOS and Mac OS features that Apple will probably be pushing. If you want to be among the first to take advantage of the new app extensions or continuity features, you have a month or so left! Now is also a good time to start testing your existing apps to see how they will cope with arbitrary screen sizes to make sure that-- as and when the newly sized devices actually appear-- it won't be too much effort to complete the process and get new versions of your apps out quickly if necessary...

Wednesday, June 18, 2014

New proposal for a Java bridge to native APIs

A new Java interface to native APIs, dubbed Project Panama, has been tentatively proposed. At this stage, it's hard to tell if it will go anywhere. What is true is that so far, the Java Native Interface as always been something of a second-class citizen. Although there are other projects such as Java Native Access designed to ease the pain of access to native APIs from Java,  a way to do so from within the standard libraries would surely be welcomed by many.

Friday, June 13, 2014

Is a split-screen interface really coming to the iPad?

You may recall a rumour that the iPad would soon be getting a split-screen interface, allegedly allowing two applications to run side by side in Landscape mode. The rumour has been received with skepticism and, given that WWDC2014 has now passed without a whiff of such a feature, appears so far to be untrue.

I actually assumed that the sources behind the rumour were actually referring to the new App Extensions framework-- whereby an application can offer up certain types if "plugin" to other applications-- that will indeed be introduced in iOS 8.

However, it appears that the rumour department of 9to5mac are persistent with their story. They cite apparent evidence in the form of a de-compiled section of code from the beta development kit which includes references to calls that apparently are designed to support a "multiple app display layout" of some sort.

My thoughts:
  • the de-complied code presented isn't exactly a smoking gun; it's not terribly clear exactly under what circumstances this code is intended to be used;
  • given that this year's update is highly developer-focussed, and that a split-screen feature could have significant implications for developers, it's an odd feature to "sneak in" outside of the developer conference-- Apple have now spilt the beans on various major new features to the OS, so it seems slightly unnecessary for them to be so secretive over this specific feature if it is really in the pipeline any time soon;
  • with the App Extensions framework, Apple have clearly put some thought into how they want app-app interaction to work; it seems a little clunky for them to introduce a separate feature that simply lets two arbitrary apps sit side by side;
  • on the other hand, there is good evidence that Apple are planning to introduce devices with more diverse screen sizes, and a larger-sized device would make a split screen function a little more viable.

Which iOS innovations are most anticipated by users?

At the beginning of last week, Apple made some fairly major announcements for the forthcoming update to its operating systems in what was-- in the words of Apple's CEO-- "the mother of all releases for developers". And it's fair to say that the new features open up a range of potential for new types of applications for Mac-- and for iOS in particular-- that were previously not possible. At some point or other, a release packed with features for developers will hopefully translate into a release packed with new features and applications for consumers.

Certain of these features, such as the new Health application which was widely leaked even before the event, appear to have been latched on to by the media despite the fact that they are probably only relevant to a minority of developers. Whereas, for example, CloudKit-- which has huge implications for the ease with which developers can now create a whole class of scalable client-server applications with minimal investment-- appears to be a subject of salivation for developers whose implications have yet to be appreciated by other commentators.

But as tech heads, it's still helpful to try and get an ear to the ground when it comes to finding out what matters to users. One insight is provided by French site igen, which is currently running a poll among users on which feature they have been most interested by.

At present (out of just over 2,000 respondents), the front runners are features at the "business" end of the spectrum: Continuity and iCloud Drive (50% and 16% respectively of respondents selecting these as their preferred feature). Interactive notifications and innovations in the messaging system, despite their swagger-laden demos at the KeyNote, have so far raised less of an eyebrow (12% and 6%). HealthKit receives an extremely low level of interest (3%), perhaps because of a current lack of adoption among health providers in Europe compared to the US (if not because of the fact that data privacy is more firmly entrenched in French law and digital ethos). Unfortunately, the survey did not single out App Extensions, which will effectively enable whole new categories of applications to be developed for the two operating systems.

You might not have rushed to incorporate Continuity or iCloud Drive into your apps. But from one informal survey at least, it appears that if you do so, you will be responding to two of the most anticipated features among users.