Yesterday I attended a session on Core Animation. You would not believe what you can do with this new API. The demos were just amazing and wooed the audience. Most importantly for the developers, the API seems really simple to use, which means that soon after Leopard is released you should start to see many applications using it. This may become a problem.
While I can see many legitimate uses if the API to create screen savers and multimedia applications such as Front Row, I am scared that developers will start using 2D animations everywhere. After all, Apple may be obsessed with multimedia but most of the work we all do daily still revolves around, word processing, e-mail and web-browsing. I really think that Apple needs to update quickly the HIG (Human Interface Guidelines) if they want to avoid losing the GUI consistency that we all Mac users love.
Take for example Time Machine. It is an application that runs on its own animated background, with no menu bar. Even though I understand why you wouldn’t want to interact with other applications while restoring files, this could become a dangerous precedent.
So, while Core Animation is amazing all developers should remember Spider-Man, With great power comes great responsibility.
Today’s sessions are over. I spent most of the day learning about technologies that are not really new, such as Core Data but that should help me with my current projects. As I was learning more about the value of current and future Cocoa APIs I couldn’t help thinking if Apple was moving in the right direction.
It seems to me that most analysts think that with the venue of the Internet, OSes are doomed. Sun was probably the first company to suggest that, pushing for light clients, really another name for an appliance that can only run a browser. After seeing initial interest in the concept many started doubting that this vision would ever become a reality because HTML limitations were hindering efforts to move complex client-server applications to the new model. However, new technologies such as CSS are helping the new Web 2.0 applications become more competitive and take on new challenges, which means that once again, talks of the demise of the PC are being heard loud and clear.
It seems to me that Microsoft has accepted that ultimately Windows will become a commodity on the desktop and is working exclusively on providing a solution to the current problems faced by its customers without even trying to set a vision for the role of desktop computers in the future. Apple seems to be moving on a different path. They want PCs to be able to perform tasks so complicated for the browser and so appealing to the users that both will have to coexist for many years to come.
The question is not who is right or who is wrong, the question is will Apple with its small market share be able to influence the whole industry to adopt this new vision. Apple does not seem to be interested in working with other technology heavy weights to promote this vision. That is logical since most of these companies work closely with Microsoft, its main rival. But in order to survive they will need to quickly convince a larger number of consumers that the PC offers value beyond the browser. That is why iLife and iWork are strategic, but they will need many more applications like those. Visually rich apps will be key. That is why technologies such as Core Animation are so important to Apple.
I cannot talk about the contents of these sessions as they are confidential. I can only say that the contents were very informative and everyone seemed pleased. My strongest fear was that most improvements to Leopard were only skin deep but fortunately it doesn’t seem to be so.
What is clear to me though is that the improvements have not been across the board in a uniform way. Some APIs are advancing really quickly while others remain almost stagnant. It seems that Apple has a very clear idea of what they need for their own applications and that these new APIs are driven by these needs. External developers are invited to use those APIs but do not really drive the requirements. Apple may be right, they may know better, but I would love to have a better feedback process at my disposal that would return some say to the Macintosh programer community.
Well, I finally know what it feels to attend a Steves Jobs keynote. I think that we all enjoyed seeing him throw poisoned attacks at Microsoft. However, Apple seems a little defensive by not disclosing the full feature set of Leopard. Such caution seems understandable. It is probably better to keep some secrets until Vista is released so that Microsoft cannot copy those features until their next Windows release, sometime in 2011. As a teaser, the demonstration worked well. I feel however that Apple will have to add more to OS X to make the upgrading process really interesting. As some developers told me, Core Animation seems interesting but most of us haven’t even started doing interesting things with Quartz composer…
What really impressed a lot of developers, though were the hardware announcements. You hace to see the new Mac Pro line. They are simply amazing. Swapping or adding a disk or adding memory is so easy that you simply cannot imagine why not everyone has computers like this one. It will be hard to beat Apple on serviceability.
Time to go, I have to attend a session on development tools..
After waiting in line for over an hour, i finally made it into Mocone West. One hour later we were allowed to the second floor. Now everyone is sitting on the ground, playing with their macs, browsing the internet and discussing rumors while waiting for the keynote.
It is just before 05h30 and I am living the hotel. The weather is cold, really cold, at least for me (since I compare it to the nice climate of Mexico City). So, I guess it is now official. I am freaking nuts! But hey, it is going to be fun!
As I write this post on my way to WWDC, flying somewhere over Mexico, I cannot help think why I am doing this. After all, I have a nice job at IBM which I enjoy and (as a bonus) pays the bills. This doesn’t leave me much time for programming, specially since my family consumes most of the time I have left, which is normal since I really enjoy the quality time we spend together. So why do I always try to find some spare time to run XCode and add some new functionality to my side projects?
Just before boarding the plane I was reading an article in Spanish newspaper El Pais. It turns out that the PC is turning 25 this year. That is a lot, specially considering most marriages do not reach this mark nowadays. In my case, romance with software development is even older than that. It all started in 1980 when I was 13. I had been working hard to buy myself a motorcycle. I had saved enough money to buy it and even had some extra cash. I was going to use it to buy Sony Walkman (the early 80’s iPod). However, when I got to the store something strange happened. I saw a TI-58 programmable calculator at half-price because they had lost the original box. I had always been intrigued by those calculators as I knew they could be used to run simple games. It was a unique opportunity and Sony lost a sure sale. The TI was fun but I quickly outgrew it and move to the HP-41, which was a true dream calculator, even by todays standards. Meanwhile I started programming at school using a mini computer (a PR1ME system which had two 5MB hard disk drives called Castor and Polux). I also joined a TRS-80 user group which introduced me to BASIC. During a summer camp in Germany I also had the opportunity to play with a PET Commodore. So when I sold my motorcycle a year later because I was leaving Geneva to move to Madrid I had a pretty good idea of what computer to buy. It had to support for color, joysticks, floppy drives and be easily programmable in assembly language. The only option at the time was an Apple II.
You cannot imagine how much time I spent on that computer. There wasn’t as much software as there is today and everything needed to be done. I wrote, games, educational software and all kinds of stuff. I simply loved it. The OS was simple but bugs free and never got in my way. I was able to publish my first commercial application for that platform in the US at age 19 and continued for a couple of years while studying at college. During this period I could spend days in front of the computer, producing thousands of lines of assembly language code.
Now back in 2006 it has been 21 years since my first Apple Expo in San Francisco which I attended to find a publisher for a product called “Teacher’s Wizard”. I have just turned 40 and I thought that it was a good moment to look back and also look into the future. I was recently named manager at IBM and technical skills become less important. Most managers use that as an excuse to stop learning. Did I want that? Were my programming days behind me? Hell no. Managing a technical team is nice because you can help a lot of engineers which are normally misunderstood. But that doesn’t mean that I want to resign my technical skills. I still enjoy programming and have lots of projects that I want to bring to reality. The flame is still burning.
So, when I was thinking about what I wanted for my 40th birthday the answer was unambiguous, a new 17” MacBook Pro and a ticket to WWDC to share the passion with fellow programmers. I may not be able to fly to San Francisco next year, because these trips are quite expensive, but I will certainly be watching the keynote through the web while working on my next Cocoa application.
It turns out that all the information provided to developers at WWDC is confidential except for the Keynote. Well, that does come as a surprise. It is probably the first developer conference I attend (and believe me I have been to quite a few) that I will not be able to discuss with my friends and co-workers. I do not see how they expect to enforce that with attendants from all over the world but I will certainly not be the one leaking information.
So, what can you expect to see in this blog. Well, in addition to comments to the keynote I will tell you about the different events organized by Apple, the Design awards and in general my opinion about the event. I may go as far as telling you if all the secrecy seems justified or not. Other than that you will have to go to the rumors sites. Sorry!
Tomorrow I will be flying to San Francisco to attend WWDC. As many (probably most) Macintosh users I have been hearing all the rumors about possible new product launches at the conference. People are talking about new Macs, new iPods and even iPhones (let’s not forget the always popular tablet rumor).
The fact is that few are talking about Leopard, even though this is the only product we know for sure that will be presented at WWDC. Those who mention it usually focus on the applications that come with the OS such as iChat or iCal. When I started thinking about it I felt that this was quite weird. I remember the days when a new OS launch focused exclusively on the its new features. For example, when Prodos 16 was launched (back in the old good Apple II days), it’s major new feature was 16 bit support for larger volumes and files. Everyone was excited (well, kind of). Today, Apple has understood that new OS releases do need to have a broader appeal and therefore they usually try to balance innovation between OS improvements which are critical but seldom understood by the general public and new flashy features such as Dashboard or Exposé which can hardly be described as part of the OS. In fact, they have been so successful at this game that once again Microsoft is copying the model. Vista was supposed to be a major revamp of Windows but it turns out that the most interesting features for developers and power users such as WinFS have not been able to make the cut and will not be included in the final product when released in late 2006 (or 2007). However it seems that there will be a lot of eye candy for the average Joe.
So, do I really care about iChat, iCal, iSync and the other iApps included as part of the OS? Sure, but I want more. I want significant improvements to Cocoa, with new frameworks that will help developers create great new applications faster. For example, what about a new framework for charting? That would be great, suddently all Mac applications could look much more professional than their Windows counterparts. I would also like a new Kernel. Moving to a Linux 2.6 kernel would help Mac users to be able to use all the professional database engines available for that platform and scale better which is important now that most new Macs have dual core processors. Let’s not forget that we are likely to see Macs with four and eight cores before Apple releases another major update to the OS (probably in 2009). Without tweaking the current Mach kernel or moving to a totally new kernel the Macintosh will have a tough time competing as a server platform. Full 64 bit support is also required but Apple seems to have taken care of this aspect, if you look at the WWDC posters pictures published by most Macintosh sites.
What else would be nice? A new release of XCode. Sure Cocoa is great and objective-C is a nice language, but XCode is much worse than Eclipse as a development tool. I really expect Apple to at least improve the text editing functionality of the product with a tabbed text editor that helps me quickly move from one file to the other.
Well, on Monday we will know. I certainly expect Apple to manage to keep a fair balance between end-user features and stuff that really matters. This also means that I do not expect them to talk about iPods unless there is a new API to program to, which, by the way, would be very nice.
I will blog daily during WWDC. Keep visiting this page to find out more about this exciting event from a casual developer perspective.