It is hard to believe, but Sun Microsystems released Java 1.0 almost 20 years ago, on January 23rd, 1996. I was an early adopter because I was intrigued by the write once, run everywhere promise. At the time, developing for the Mac did not look like a viable career option and yet I did not like the idea of having to switch platforms. As a result, Java seemed a great option.
Java 1.0 couldn’t do much beyond producing animated content for the browser, but it was easy to learn, mostly because it had so few libraries available at launch. In fact, this was part of the excitement, as so many basic building blocks had to be created in order to allow other developers to build more powerful applications. As an example, during Java’s early days I wrote a GUI for applets (Swing didn’t exist and AWT sucked), inspired by the classic MacOS toolkit. I called it MAE for Java. It was a lot of fun.
Over the next few years, Java grew up. In 1997, version 1.1 added JDBC and the servlet standard, which paved the way for the application server era. I discovered WebLogic at the second ever JavaOne event in San Francisco and even though the product had limited capabilities at the time, it was clear to me that the concept had a lot of potential. Java was quickly becoming a solid platform and a serious contender in the Enterprise world. Over the following years, the J2EE spec (now simply known at JEE) continued to mature in order to address an increasingly large array of IT requirements (SOA, Web development, encryption, MQ integration, O/R mapping, etc.). For those of us who got on the bandwagon early, adopting these technologies was easy. We just had to learn a couple of new APIs each year, a pace which, with hindsight, now seems quite reasonable. Everything was great. So great in fact that I credit Java for developing a whole generation of IT Architects. I am of course talking about senior professionals who usually have somewhere between 15 to 20 years of experience, not the kids just hired out of school by consulting firms and labeled “Architects” to justify higher hourly rates.
So, how can someone become an architect today? It all starts by learning the right programming language. Some languages, like Visual Basic (let’s use a dead language as an example to avoid offending anyone), are great for quickly building specialised solutions, but won’t help you with your career. I for one have never met a CTO or CIO who got his/her job after a successful and gratifying career as a Visual Basic programmer. On the other hand, Java was designed from the beginning as a general purpose language, designed to build any kind of application. Sun Microsystems, which was on a mission to conquer the world, wanted their language to be used for everything, from embedded systems to large distributed enterprise applications. To achieve that goal, they enlisted most of the IT industry leaders (IBM, SAP, Oracle, etc.) to help them provide Java developers with a large selection of rich, stable and supported APIs as well as solid developer tools like Eclipse. The results achieved by this broad industry alliance have simply been amazing. Twenty years later, no other computer language comes even close to the level of versatility Java offers today. Engineers who grew up with Java got progressively exposed to a large number of technologies which allowed them in turn to grow their own career and eventually become Architects or CTOs.
Despite Java’s undeniable success, something weird started to happen somewhere between the releases of J2EE 5 (2006) and JEE 6 (2009). People started to label Java as “heavy”, “complex” and “hard to learn”. Sure, the fact that Oracle bought Sun in 2010, adding fear and uncertainty to the future of the platform, did not help, but this trend started well before the acquisition. Learning Java was becoming increasingly hard for beginners. In my opinion, this doesn’t speak ill of Java, but it does raise some serious questions on how we should teach complex platforms to beginners, an issue we definitively haven’t solved yet. That said, perception is reality and interest in Java started to dwindle, despite the success of Android.
Over the last few years, countless new programming languages have appeared and are now fighting for our attention. Some are great, others not so much. The problem is that, in order to become viable alternatives to Java, specially in the enterprise, these languages will need to mature. Even if the language itself may not have to evolve significally, the plaform will need to grow. In order to solve complex problems, new APIs will have to be built and over time these platforms will inevitably become as complex as Java is now.
I am not saying that we shouldn’t try to replace Java with a better alternative because complexity will inevitably creep into any successful development platform, on the contrary. A better programming language with a strong API library could be a significant boon for developers. I absolutely believe that a better programming language can make us more productive. However, adopting a better language does not make complex projects significantly simpler. You may be able to use less lines of code to achieve you goal, avoid potential errors or even simplify the development of multithreaded code, but in the end, hard problems remain hard to solve and require experienced professionals that can design complex systems. A better language is great but it is pretty much useless if it does not have the APIs enterprise developers require.
On the desktop application front, XML seemed to be the king of the hill, with all major office suite quickly adopting XML, led by MS Office. Interoperability and readability were thought to easily trump other considerations like size and performance, given that desktop PCs, lacked neither storage space nor processing power. That started to change with iWork 13, the newest release of Apple’s productivity suite. The reason Apple adopted a new proprietary binary format for its flagship product was that it was better suited for use on mobile devices such as the iPad and the iPhone, where space and processing power are indeed a constraint. Since portability among different devices was a key requirement, XML was sacrificed on the altar of mobile adequacy. It is hard to blame Apple for their choice when you look at the numbers they presented. Files now open much faster on the iPad and that is a key factor for customer satisfaction. Microsoft may not with away from XML to a binary format immediately, because many customer built applications rely on it, but they must have taken notice.
That leaves a small space for XML in which to grow, mainly in the integration space. It is hard to envision an Enterprise Service Bus (ESB) that is not based on processing and dispatching XML documents. In this context transaction management is still important, which makes SOAP-based services much better suited for the job than alternatives such as REST services. That said, there is pressure in this space too to try to avoid XML. That means that XML’s place in IT will be reduced to the large enterprise sector, the place it was born. While XML may have seemed to be ubiquitous in the beginning, it’s disadvantages ultimately condemned it over the long run.
I must say that I am quite disappointed to see XML fail in so many spaces and applications. I still believe in its many virtues and feel that in most cases its disadvantages are overblown when the architecture of the application is properly designed with NFRs such as performance and security are properly planned for since the beginning. That said, trends and public perception are hard to fight, specially when some of the concerns are absolutely based on facts. It is clear that the use of XML in any application is no longer a done deal. There will be discussions as to what alternative is better for a particular use case. Ultimately, Enterprise Architects will have to take a decision, and that is good, because XML has become what it should always have been, just another tool on their belt.
The Smarter Cities Challenge is a competitive grant program awarding $50 million worth of technology and services over 3 years to 100 cities around the globe. These grants are designed to address the wide range of financial and infrastructure challenges facing cities today. It is an opportunity for cities around the world to get free expert consulting. For more information on the IBM Challenge you can visit the IBM website.
Last year, Pittsburgh, PA applied for such a grant to get ideas on how to solve their traffic congestion problems. After a thorough selection process, they were chosen to become one of 32 cities that would receive free consulting from IBM experts in 2012.
IBM built a team of six executives from around the world (India, Sweden, Mexico and the US) to work on the problem. I was chosen to be part of the team because of the work I had been doing on an internal white paper on traffic as well as my software experience as a senior certified executive IT architect, but each member brought a different skill set to the team. Most of us had never been to Pittsburgh before, and that was a conscious decision, as the program leadership wanted us to take a look at the situation with fresh eyes.
We spent the first ten days of our assignment performing over sixty interviews to a wide array of stakeholders. As expected, they all had their particular point of view on the challenges facing the city, even though several popular themes quickly emerged. During this period we didn’t have many opportunities to visit Pittsburgh, as most of our work was performed at the city Town Hall, located just a couple of blocks from our hotel. However, after we completed the interviews, we had the opportunity to tour the city and visit several boroughs, including East Liberty, Oakland, Shady Side, South Hills and South Side. This allowed us to better understand the complaints we had heard, as well as evaluate the proposals that had been made. By the way, if you have never been to Pittsburgh, you should. The city is really nice and deserves to rank higher as a tourist destination. Each borough has it’s own style and character. I am not surprised Pittsburgh was named the most livable city in the U.S., as it seems a great place to live, work and raise kids.
After completing our analysis, we spent the last days (and nights) of our stay working on our report. On our last day we presented a preview of our findings at a meeting hosted by Mayor Luke Ravenstahl at Carnegie Mellon University.
Producing a report in just three weeks, about a city we didn’t know was a real challenge. Despite all the hard work, and our experience, there are many topics we didn’t have the opportunity to dive deeply into. The city, the Allegheny Port Authority, the county and the state, to name just a few of the stakeholders, already have many experts who understand very well the issues at hand. The problem, as always with large organizations, is to get everyone to work together and to share information. I sincerely hope that our final report, to be published shortly, will help them reach that goal. Since everyone we met was so willing to help improve the city and work has already started on some of our recommendations, I am confident they are on the right track.
Although the markets haven’t closed yet, Right now Apple’s market cap stands at 156.9 billion, 400 million more than IBM’s. This is simply remarkable. After years of being the underdog, the Cupertino based company has left most of its current and past competitors in the dust. Dell, HP and now IBM have all been unable to keep up with the explosive growth of Apple since Steve Jobs returned to Apple.
If someone had told me back in the 90s, when converting someone to the Mac was nearly impossible, that Apple would be able to stage such a comeback, I simply wouldn’t have believed it. Even I who have been a loyal Apple customer since the early 80’s came extremely close to throwing the towel in the late nineties. Then came Steve Jobs, the iMac and the iPod and the rest is history. I am really happy to see a company that has always believed in innovation succeed in the market. Jason Calacanis summed it up very well in a recent TWIT episode saying that if you want to be rich you look up to Bill Gates, if you want to be great you look up to Steve Jobs.
However, market valuations do not always reflect the true health of a company. Apple’s revenue depends on the sales of a very small set of products and therefore is extremely vulnerable to sudden market changes. Companies like IBM which offer a wide selection of software, services and hardware can better adapt, and that is why they have been able to survive for so many decades. For Apple to continue growing they need to offer a wider range of products. They know it and that is why they are investing in a new datacenter in NC and why they will probably launch pretty soon their rumored tablet computer. When Steve Jobs said “See you soon” at the recent iPod media event, he probably meant it.
I was promoted a couple of weeks ago. This was something totally unexpected but it turns out that I am now just a step away from becoming a Distinguished Engineer at IBM, which just a month ago seemed like an impossible goal to achieve. It won’t be easy but I will certainly do my best to try to reach that position.
The best part of the promotion is that I got a larger, closed office. When you spend as many hours as I do at work, you want to feel at home at work. I therefore decided to decorate the walls by hanging pictures of all the tech luminaries that have left their mark on the computer industry as well as the products they brought to market. In a way,this is my personal Computer Hall of Fame.
Well, it turns out that this is much easier said than done. If you look on the web you will not easily find many pictures or stories from our recent past. Try for example looking for images of Sir Clive Sinclair (the man who brought us the ZX 81 and the ZX Spectrum computers) and you will be disappointed by the results. Same story for Sir Alan Sugar, the founder of Amstrad, who brought us the CPC 464 back in the eighties. You may think that this only happens to brit aristocrats, but you would be wrong. I tried to find a picture of former IBM CEO Lou Gerstner and could only find a small picture on IBM’s corporate site. Even worse, I could only find two poor quality pictures of Adam Osborne, the man who brought us the first commercially available portable computer, and passed away just five years ago. There isn’t much information about him in Wikipedia either.
In general, most companies will carry current pictures of their top executives but except for a small number of honorable exceptions (IBM and H-P mainly) they don’t seem to care much about preserving their history. The situation is obviously much worse for dead companies like Netscape, Amstrad or Atari which do not have curators interested in preserving their legacy.
With the Internet focusing mainly on recent events, if we are not careful, in a couple of years we will have lost a large part of our recent history. There are a couple of nice sites that deserve praise, for example folklore.org which extensively documents the history of how the original Macintosh was built, but that is obviously not enough. It would be nice if there was a place for all of us to collaborate on preserving the exciting stories of the computing revolution. On wikia there are 28,586 Star Trek articles, but there is nothing comparable for the computer history. That is really sad.
Several argentinean newspapers (link in Spanish) have reported on a MacBook Air gifted by Mexican billionaire Carlos Slim to Argentina’s president Cristina Kirchner. This is apparently creating a large controversy as the product is perceived as a luxury item. As a result, the presidency will create a public official gift registry to avoid any suspicions of corruption. This is certainly a good initiative implemented in many countries rocked by similar scandals in the past. However, in general the controversy was created over much pricier gifts like the diamonds that African dictator Bokassa gave to French president Valery Giscard d’Estaing back in the 70’s.
What really surprises me is to see how Apple products have become a symbol of luxury recently. I am sure that everyone remembers for example the gold plated iPod that David Beckham received from his team mates. I have seen many CEOs of large enterprises be the single Mac users of their company. For example, I know that Ricardo Salinas Pliego, CEO of Grupo Salinas and one of the wealthiest men in Mexico uses a Mac. At Banorte, one of the large Mexican banks, and probably the fastest growing one, there are only two Mac users. However, those users have a lot of weight as they are the CEO and the Director of Marketing.
What does that mean for the future of the Mac in large companies? Well, it means that the IT staff has no option but to learn how to use those computers and support them. That opens a new market for Apple. It also means that it is becoming harder for IT departments to adopt solutions that exclude the Mac. This is not good news for Microsoft and it could help companies like IBM or Oracle that have developed collaboration solutions that are truly platform independent. Many open-source advocates have long criticized Apple for their proprietary approach to computing. It is time for them to recognize that Apple is helping their cause very strongly by forcing the adoption of open standards.
Yesterday evening I was invited to have dinner at a chinese restaurant, Wing Lei,located inside the Wynn Hotel and Casino. It was a great occasion to spend some time with our customers and talk about all things unrelated to business. I must say however that I was highly disappointed by the restaurant. While I do not have any complaints about the service, I must say that I expected more from a restaurant that was awarded a star by the Guide Michelin. We paid around US$200 per guest and left disappointed and hungry.
Since the Wynn is located in front of the Fashion Show Mall, I spent some time shopping there before dinner. I went into the Apple Store to buy new earbuds for my iPhone because the plastic had started to wear off near the jack connector due to intense use. I was surprised to see that they sent me immediately to the Genius Bar and that they gave me new earbuds without asking questions despite the fact that it was clear that my phone was jailbroken and unlocked. Great customer service! That is why Apple is winning the hearts of even the most diehard Windows users.
I met Jens Alfke during the 2006 WWDC. Apple had organized a party on their campus and during the event attendants had the opportunity to talk to Apple engineers. I had heard about the Pub-Sub API and wanted to learn more. The API allows developers to easily add RSS support to any application. RSS is used today to push web content and podcasts to users but it can be used to publish any kind of content. For example, an RSS feed could contain crosswords or sudokus. This would allow end-users to get a new set of games delivered every day automatically to their computer or mobile device, provided that their RSS reader understands the format these puzzles are distributed in. The Pub-Sub API makes developing such applications much easier as it allows programmers to avoid all the problems related to parsing RSS feeds.
I looked for the Cocoa team and asked one of the Apple engineers about Pub-Sub. It turned out that he had written the API. Jens was very enthusiastic about it and eager to share his knowledge, it was obvious that he was proud about the job he had done. I discussed with him a couple of ideas on how to use his API. I thought that it would be nice to expand the Address Book to support RSS feeds. After all, many of us have now friends who own web sites and keeping in touch with them through the Address Book makes more sense to me than doing it through Mail App. We had a nice conversation and I moved on.
I recently remembered this encounter because of a post that Jens published on his blog. In it Jens announced that he had decided to leave Apple and explained his reasons. I will not judge his reasons, but as a tech manager, what I see is a recognition problem, which is very common in the technical community. Engineers love to solve problems, but after they do, they usually want to be recognized. The problem is that others usually do not care. When I say others, I mean all those who do not realize the complexity of the work that has been done. This applies obviously to salespersons and managers but sadly also to family. I learned that very young, my parents did not understand the complexity behind writing 3D games in assembly language, they thought I was wasting my time. Today nothing much has changed, my wife and daughters don’t get it either, but that is ok. Do you imagine a world in which family love would be measured by the complexity of our work? I don’t think so. Recognition is something that you have to get from your peers in order to be really valuable. I imagine that the idea of being popular among a larger public can seem attractive but developers are not rock stars and never will because in order to be successful we much spend our time out of the public light.
Is it possible to get better recognition as an indie developer? I guess so. Wil Shipley is the closest thing to a rock-star among Mac developers. His multiple successes (first at Omigroup and now at Delicious Monster) are well documented, but this comes at a price, there is only so much you can do nowadays alone or with a very small team. And then, there is only one Wil.
In large companies like IBM, recognition usually comes in the form of an award and sometimes with cash. The technical community accepts the cash but they usually long for something else. At a recent meeting where we discussed the issue, some technical specialists suggested giving interviews as a reward. Others wanted to have their certification credentials printed on their business cards. It is obvious that we face the same problem, proper employee recognition. Some companies like Google allow their employees to spend up to 20% of their time to work on personal projects. This could be a way to allow them to get the recognition they are looking for, outside of the company (and help them understand how hard that actually is), but it is a very expensive proposition that most high-tech company shareholders are not likely to approve.
The truth is that we developers must learn to take pride in our work and live with the recognition of a group of persons we respect. That is the way it works in most professions anyways. I have no idea if there is such thing as an Accountant of the year, but even if there was I couldn’t care less, much in the same way accountants do not care about programmers. Should the picture of chemists be on soap boxes? I don’t think so. Engineers think they deserve recognition because they solve complex problems and have lots of ideas. It may be true, but if others do not see the value of our work we must learn to accept it. We should be grateful to have an interesting job we enjoy. That obviously doesn’t mean that we shouldn’t switch jobs when we no longer have fun, on the contrary, it just means that we shouldn’t do it in search of glory, because we will not find it. Music appeals to everyone, that is why there are rock-stars. Software development only appeals to a few.
As for Jens, I wish him the best in his new endeavor. I am looking forward to try the new applications he his working on, I am sure they will be terrific. I already know he is a great developer, he won that recognition two years ago at WWDC.
I am currently in Dallas, attending a Rational Manager meeting. It is amazing to see how this brand has changed in just a couple of years. Recent acquisitions like Watchfire, Buildforge and Telelogic are quickly expanding the reach of Rational well beyond traditional corporate developers. That means that the organization needs to change in order to understand these new markets and customers. Believe me that IBM is making us work very hard to make sure that this accelerated growth is properly managed. Yesterday our planning session concluded after 10PM and today we worked non-stop from 8AM to 5PM. That is probably why the Rational Upper Management decided that we needed some fun to relax.
Introducing Whirlyball, a game so weird, it could only have been invented in the U.S. If you thought that playing polo on a Segway was strange, you must play this game that is pure extravaganza, combining lacrosse, hockey and basketball with bumper cars.
Surprisingly, we actually had some fun, despite losing all our games except for the final one, thanks to an extraordinary goal during extra-time by MVP player myself. I understand that I may be missing an incredible opportunity to become a pro whirlyball player, but there is simply no way I will play this silly game again.
Six years ago, Informix Software was acquired by IBM. I remember this perfectly because at the time I was an Informix employee and, unlike many of my colleagues, I was quite excited by the news. The truth is that I wanted to join a larger company that would allow me to learn new technologies besides relational databases. That is why, after the acquisition, I spent most of my time working on WebSphere software, but I never forgot my passion for the Informix database engine.
This may seem strange to many as there are many RDBMS out there that are more popular than IDS but I have my reasons. You see, other database engines like DB2 or Oracle might be faster when tuned by experts but Informix achieves excellent performance by just tweaking a couple of parameters. In my experience, an average DBA can get much better results from Informix than from competing products. Since exceptional DBAs are scarce, I feel that IDS is a great choice for most companies unless they need the advanced XML processing capabilities provided by DB2.
Until now IDS was available for most UNIX variants as well as Windows. A Mac OS 9 client SDK was available many years ago but was discontinued when Apple moved to OS X. That is why I was so excited to learn that IBM had ported Informix Dynamic Server to Mac OS X.
However, the exciting news for Macintosh enthusiasts is that this announcement is not just an anomaly. There have been rumblings that at this week’s Lotusphere event in Orlando, IBM was poised to announce several new products for the Mac, including the Lotus Notes 8 client, Lotus Symphony and Lotus Sametime. This was made possible thanks to the efforts put by many IBMers to ensure that Eclipse runs smoothly on OS X.
Besides porting current IBM software to the Mac, IBM has also acquired some Macintosh software through acquisitions. For example, IBM recently acquired Solid, an in-memory database, that has offered for years a Mac OS X version of their flagship product.
While the Mac seems to have so far attracted the attention of the Lotus and DB2 brands within IBM Software Group, what about the remaining brands? Many software developers have long migrated to the Mac platform. It seems only logical that Rational should be interested in that audience. Since many Rational products are built on Eclipse, porting them to the Mac shouldn’t be that difficult. In fact, there already is a Mac version of Rational Application Developer. The problem is that it is for internal use only because it lacks the embedded WebSphere Application Software. This is a major issue. Despite being divided in five brands, IBM SWG products are very much integrated. Porting a single product is moot unless there is a clear strategy to port the whole portfolio.
A decade ago, IBM made a clear commitment to Linux and as a result made all SWG products available on that platform. That corporate commitment is still missing for Mac OS X, but the walls are crumbling, one at a time. For Lotus to make gains against Microsoft, IBM needs to support the Mac (and Linux) in a big way. Many Lotus products are built on WebSphere software and require Rational development tools to be customized. Convincing the WebSphere management team that they need to port some of their products to the Mac won’t be easy. After all, how many servers does Apple sell each quarter? Not enough to support a serious business case.
I do believe though, and this is pure speculation on my part, that it is just a matter of time before other critical IBM products such as WebSphere Application Server, WebSphere Process Server and WebSphere Integration Developer get ported to Mac OS X. It is amazing to see how the success of the Mac on the client side is getting a middleware company such as IBM to progressively port its server software. In the case of Linux it was a well thought strategy to create some competition for Windows. It all made sense as Linux was (and still is) a strong contender on the server side. In the case of Mac OS X, it is an unorganized move, fueled by a single brand and the passion of many IBMers, including myself, who have adopted the Mac as their platform of choice.