The Tiobe Programming languages index came up with the following October headline: Java is losing ground despite its new version 7 release.
I'd say - its about time, just following the all Java frameworks becomes a full time job, not to mention mastering them...
Sudden popularity of Objective-C can only be explained by a continued craze of iPod/Phone/Pad; I fully expect it to retreat as more Android contenders move into the niche, and Apple's iron grip on the development market slips (see my post on how Amazon.com had circumvented it with HTML5 app)
C# is still climbing the stairs; I have suspicion that it rules supreme in Windows platform development world. The decision to discontinue support Mono project that would allow .Net Framework to be used on Linux platform was, IMHO, a shortsighted one, and will come back to haunt Microsoft in the future; maybe Miguel de Icaza can pull it through with his Xamarin project.
I attribute raising popularity of SQL procedural extensions such as PL/SQL and Transact-SQL to the growing dissatisfaction with ORM (such as Hibernate and MS Entity Framework) among the developers; in many cases the developers' productivity gained from the ability to work in a familiar environment is all but negated by the poor performance as a result of the inefficient query syntax that such frameworks tend to produce...
At a risk of incurring wrath of Apple aficionados I would like to ponder the question what made Steve Jobs a hero of the self-styled “free thinkers” with sizeable disposable income to plunk on gadgets…
Visionary? A hit-and-miss record rather
Moral authority? Uhm…not really
Philanthropist? Ahm… next question!
Technical prowess? Jobs' supposed opus magnum was a Breakout game - designed by Steve Wozniak, for which Steve Jobs got $5,000 bonus from Atari (generously paying Wozniak a whopping $375). Otherwise, name a single app that Steve developed by himself, or device - electronic or otherwise - he had designed.
So, what’s left? Impeccable timing and marketing savvy, no-nonsense authoritarian leadership style, greater-than-life personality and healthy disdain for conventions. With these qualities he had changed the world - at least in minds of the consumer clamoring for the gadgets...
R.I.P, Steve. It was a great ride.
Yet I cannot help but wonder: Dennis Ritchie died on October 12, 2011. I wonder how many of those mourning Steve Jobs would know his name... Ritchie was one of the key developers of the original Unix operating system, and the principal designer of C programming language. Does not ring any bells? Oh, the Internet basically runs on Unix; your iPhone/pod/pad run on Unix-derived system, your favorite apps - from Microsoft Word to Skype to Chrome Browser are written in C; entire Windows/MacOS/Linux/Android operating systems are written in C or its derivatives.. The changes that Ritchie brought about are infinitely more profound than a slick package design, and has affected life of every single person on this planet - yet he's not a household name, and unlikely to become one...
P.S. An interesting post from Nuno Barreiro comparing respective contributions of Steve Jobs and Richard Feynman adds yet another perspective... alas, not in Steve Jobs favor.
Mono Project is (was?) at forefront of bridging the gap between Windows in Linux world for .Net developers. The latest release 2.10.7 supports Solaris, MacOS, Windows and various flavours of Linux + Android; the MonoTouch project allows developers to create native iPhone/iPad apps.
And yet Attachmate decided to throw the baby with the water! The official end of Mono at Attachmate came Friday, May 13, which was the last day of employment for the Novell’s Mono team, a move announced on May 2.
Miguel de Icaza ventured out on his own with the new company Xamarin
This would be a great opportunity for Microsoft to bring .Net Linux development in house,their real chance to compete with Android/iOS.
But if the past is any indication of the future they will pass on it. What a shame…
Thirty plus years of a proud history came to an end: Novell is no more
Those old enough to remember glory days of Digital, Informix and Borland will take the assurances of the new master - Attachmate Corporation with a grain of salt, recalling what had happened to the revolutionary technologies pioneered by the respective companies.
There will be seismic shifts in the industry; organizations (my own included) would have to make tough choices about what to do with Novell technologies acquired over the years.
Of particular interest to me is what would happen to the Mono Project - "an open source implementation of Microsoft's .Net Framework based on the ECMA standards for C# and the Common Language Runtime." While only a blip on the corporate balance sheet, it gave many people assurance that this time things might be different; that Microsoft finally gets it, and open source will lead the way out of corporate slumber... It remains to be seen how the thing will work out, but I would not hold my breath for Attachmate making commitment to open source; it is simply not in their DNA; I wonder though whether Microsoft would recognize the opportunity, and take the Mono team (lead by Miguel de Icaza) in.
Another cool piece of technology I've been watching was Novell Pulse - cloud-based, real-time collaboration platform for the enterprise - written in Scala programming language. RIP?
Market consolidation spells trouble for technology innovation...
It is not uncommon to hear from developers during an interview: “I do not remember all these details, I can always look them up”… And this might be a valid response – up to a point.
It used to be simple – all one had to learn was 32 keywords in C, learn the grammar and then use his imagination to create applications. Early on it was understood that re-using code will increase productivity, so the concept of library was born, later augmented by MFC and OWL… The trend continued towards ever greater modularity – the foundation classes were eventually integrated into run-time frameworks, such as Java Foundation Classes (JFC) and Common Run-time Library (CLR) in .Net… Suddenly, a developer had thousands of functional libraries built by professional teams, and incentive to re-invent the wheel diminished accordingly…
Would it be a reasonable expectation for a developer to know every single of the classes rolled into JFC or CLR? No. Would it be reasonable to expect them to be familiar with hierarchy of the classes? Yes. A developer needs to know how and where find a piece of code to accomplish what is needed.
To be productive in either Java or .Net, a developer must have working knowledge of the most commonly used classes, plus a good understanding of where to find the rest. He (or she) must control the urge to create something that might already exist in the environment and leverage the existing capabilities to create new ones.
When hiring a developer I expect him to be fluent in the technology; at the same time I am extremely wary of both the “native speakers” – someone who is so immersed in the technology (Java, C#) that he forgets the rest of the world; on the other side of the spectrum - also to be avoided - are the phrase-book tourists who know a dozen of cookie-cutter recipes and lack either ability or curiosity about the technology to become fluent in it. The former might indicate a technology bigot who is so set in his ways that he would never be able to work with any other technology that business might require in the future, the latter might be an indication of a “fly-by-night operator” – someone who is chasing “hot” technologies to make a quick buck (or suffering from programming variety of ADHD).
NB: Interesting perspective taking my point ad absurdum can be found in this blog post: How to Find Crappy Programmers
P.S. I emphasize “might” word in the above paragraph, as I have met - on a rare occasion - “native speakers” who spoke several disparate technologies, and were open to learning new ones… and some phrase-book savvy developers could be made to see the light, given sufficient time and money. Al in all, I would consider a "native speaker" a highly specialized "tool" that could be very sucessfully utilized on certain types of the project, while "phrase-book savvy" should not be relied upon for tasks that could require even a modicum of creativity.
Yet to be fluent you only need a fraction of it. Here's one bold attempt at classification:
"To be uncertain is to be uncomfortable,but to be certain is to be ridiculous. " Chinese Proverb
The European Commission today (January 21, 2010) cleared Oracle's agreement to acquire Sun Microsystems. What does it mean for the development community, specifically for the future of Sun's crown jewels: MySQL, OpenOffice, GlassFish EE server, NetBeans... Oracle had almost a year to figure things out.
NetBeansis especially vulnerable given tha Oracle has competing JDeveloper (and Bea Java Dev tool); maybe it will be released as open source project to the community? Rolled into JDeveloper? Discontinued?
Why would Oracle need GlassFish when it already has Bea and Oracle AS? Cannibalization is very likely.
MySQL? Anybody's guess, but I bet that it will be supported and development will continue; maybe will undergo Oracle-ization (for example, replace MySQL procedural extensions - just introduced in version 5.0 - with robust mature PL/SQL). Will it still be free? Given $1 bln Sun had spent acquiring it, and $7+ bln Oracle spent acquiring Sun, it seems plausible to assume that Oracle would try to squeeze some dough out of it. Its own flagship database sales were stung by ascending SQL Server and IBM.. I see PostgreSQL as a winner, the only enterprise capable true open source RDBMS on the market.
Java. Once positioned as a spear at Microsoft's heart; not anymore - the landscape has changed, notably with Google becoming a major player, and Microsoft wisely playing its cards by releasing C# as open standard. Yet, I do not see Oracle donating Java to the open source community, most likely we'll see variations of Sun's controlled "Community Development Process". Oracle made significant investment into Java, supporting it inside its products, and even creating its own IDE... but what is going to happen to infant JavaFX ? RIA market is getting saturated - Flash/Flex, Silverlight, AJAX (and Ajax support frameworks such as GWT)... Apache Pivot looks darn promising.. Will Oracle have enough resources to spread around?
Solaris. SUN's very own implementation of Unix operating system, arguable the best out there, AIX and HP-UX market penetration notwithstanding. For a long time Oracle and Solaris were inseparable; if an Oracle DBA did not run his database on Solaris he was somewhat deemed less competent. Then Linux came of age, and Oracle made huge bet on it (remember "Linux makes Oracle Unbreakable!",or was it other way around?). Now they OWN the platform that they flagship database was designed for. Will they ditch Linux? Unlikely. Linux is on upswing, it is robust, reliable and has enterprise level support. Will Oracle push Solaris? Not exactly their domain of expertise, and market of operating systems is not as lucrative as it used to be. Then there is issue of the Sun's proprietary hardware - hugely overpriced, increasingly obsolete... Sun recognized that they cannot charge premium prices for the hardware that is becoming a commodity, and released x86 version of Solaris; it flopped (why x86 Solaris when I can run x86 Linux?). Apple seems to be able to create perception of superiority of both software (Mac OS) and hardware (Apple), but I credit Steve Jobs for it (to support my suspicion, follow the ups and downs of Apple stock plotted against timeline of Steve's health news; also, reliability of Apple laptops lags that of Asus , Toshiba and Sony - yet there is unshakeable perception that Mac is light years ahead of lowly PC... yalk about selling sizzle!)
My bet is that Solaris will be retired over period of time in favour of Linux.... R.I.P.
NB: FUD - Fear, Uncertainty and Doubt
Ten years of .NET - Did Microsoft deliver?
[... If the goal of .NET was to see off Java, it was at least partially successful. Java did not die, but enterprise Java became mired in complexity, making .NET an easy sell as a more productive alternative. C# has steadily grown in popularity, and is now the first choice for most Windows development. ASP.NET has been a popular business web framework. The common language runtime has proved robust and flexible ...]
[... Job trend figures here show steadily increasing demand for C#, which is now mentioned in around 32 per cent of UK IT programming vacancies, ahead of Java at 26 per cent ...]
My own non-scientific trend analysis (both manual search on dice.com and using Google Trends) shows that demand for Java skills is tapering off, and that for Microsoft's .Net is rising steadily. I foresee approximately equal adoption rates for both, with developers feeling at home in both worlds while focusing on one. Or maybe Oracle makes Java an open standard, and Microsoft will be able to roll it into .net family of languages...:)
With the ever increasing levels of cross-pollination, the technology is quickly becoming interchangeable, and so do skills.