I decided to subscribe to a bunch of Cocoa mailing lists, as in Mac OS X cocoa framework in preparation of the hairy ride I’d be subjected to as I try to come to grips with Objective-C and all the other technology required to master development for the Apple platform.

I use Gmail exclusively and while I love web interfaces, these things still don’t scale for large sets of data as you’re basically sending out a massive number of http requests or doing some other batch operation. That’s not to say Google does it better than anyone else. I couldn’t simply archive all the mailing list traffic as I need to ramp up my familiarity but I knew that reading my email on the Gmail web interface, despite the ajax keyboard shortcuts wouldn’t scale either.

So I went back to Alpine, the successor to the very famous unix pine email client with a more liberal license that supposedly scales better. Either way, zipping through the inbox with alpine and keyboard navigation scales for me. I just need to glance through the email quickly and then file them away with a succession of keyboard commands that will sooner or later register in my muscle memory.

With Gmail’s IMAP support I get to keep the web interface when I really need search while syncing the message state between lables/folders.

I took a look at Adobe AIR after being impressed against my will using Twhirl. Not that I have anything against Adobe. I just think their flagship products are over-priced or out of the reach for hobbyists. That doesn’t mean that the company doesn’t have some serious talent. It got me thinking about the big app/big company paradox.

It seems the bigger an organization gets and the larger the code base of a given product gets, the more skilled the developers get while inversely losing the freedom to realize their full potential. As long as they continue developing existing products that may span decades and millions of lines of code, the less developers are able to apply all the things they’ve learned to really improve their products. Instead, they use their creativity and mental resources to navigate tangled code and devise workarounds.

The Cocoa Rewrite

The big deal is CS5, the next-next version of Photoshop. The only supported 64-bit APIs on Mac OS X are Cocoa, and Adobe wants Photoshop to run in 64-bit mode on the Mac, so they’re rewriting the app in Cocoa. That’s huge. Nack writes:

No one has ever ported an application the size of Photoshop from Carbon to Cocoa (as I mentioned earlier, after 9 years as an Apple product Final Cut Pro remains Carbon-based), so we’re dealing with unknown territory.

I don’t think that’s an exaggeration. I don’t think Adobe can flat-out promise that CS5 is going to be Cocoa (or 64-bit) because they don’t know how long it’s going to take. The cross-platform angle is also interesting. Microsoft, for example, develops the Mac versions of its Office apps from an entirely separate application code base than the Windows ones. They ship on different schedules, have entirely separate engineering teams, and have very different UIs. Adobe, on the other hand, develops its Creative Suite apps from a shared code base. New versions ship simultaneously for both Mac and Windows, and they have very similar, if not nearly identical, UIs (for better or for worse).

I think this is why Adobe is releasing some really brilliant new products while stumbling around a bit with their breadwinners. I think this is also why you see so many developers leave large established tech firms to create some brilliant startups. One day, the founder is just another unremarkable employee, the next moment unleashed from all constraints.

If Adobe, Microsoft or any other large software house released their developers from existing projects and told them to build something great out of the remains, they could probably create a couple new products that’ll change the game.

Yongfook has a heart-warming post about how great it is to develop web apps on Windows and how you’d be foolish to use Windows. As much as I’d like to join in on the gratuitous Windows bashing, I can only say that it’s not quite true unless you’re mainly a designer. That’s not to say that the Mac doesn’t offer some compelling perks for web development. However, tools don’t make a hacker.

When I took my current job, one of the chief requirements was that I switch back to Windows for development as company policy doesn’t allow macs and probably never will. While I don’t think I’d ever buy a Windows machine for personal use unless it’s to format the hard drive and install a UNIX distro, but being forced off of the mac was probably one of the best things to happen to me.

The real reason is because technically I don’t use Windows for development. I stopped using Textmate altogether and started using VIM exclusively for coding which I do by sshing into the company test server via putty, launching or resuming GNU screen and developing everything server-side. It’s the most distraction-free environment too because I don’t care to install any third-party crapware for the Windows platform and get to leave behind all my user settings on my home mac. No growl notifications, no F12 dashboard diving, no photobooth picture whoring, and no iTunes library.

Take a look at a screenshot of my development environment:

It’s really no different from the terminal I use on my mac. The only thing missing is the opacity controls (and my do I dearly miss it). Other than that I fake out Monaco fonts with Osaka. Yet it’s a real Windows XP with all the default stuff.

I think the only handicap is for talented designers that benefit from the prettier interface and OS virtualization. However, I will point out that this isn’t because macs are so great. It’s because they finally moved to intel chips and OS X happens to be the only operating system not legally available as a standalone intallation combined with the fact that OS X piggy backs off of linux.

The really brilliant hackers I’ve come to know are both language agnostic and platform agnostic. If anything they choose freedom in the form of linux. However, I will say that the mac is an excellent gateway into hardcore development. You get a nice development stack by default with all the common unix tools but the closer you go to the metal the less eye candy makes a difference to your productivity.

Should software be free as in birds? free as in beer? or free as in speech? I don’t think anyone has the right answer aside from secretly straddling the gray zone between, "piracy is illegal" and "it should all be free".

Daniel Jalkut had an interesting post on the topic of free software. It’s a major dilemma for independent software developers who solely depend on software sales for their income. The mac community is famous for its support of third-party/indie developers.

It sucks to try eking out a living in this day and age of rampant piracy of music and videos. I think there is a great psychological divide between paying for intangibles such as software. When you think about it, it’s a bit absurd how people will jump through fire hoops just to skimp on a $5 piece of shareware while thinking nothing of spending $5 or so on a Big Mac with a side order of fries and a coke but would rather use a far inferior free version of software that they use everyday.

Desktop applications have it tough. People with the best chances of succeeding are those that build excellent products, first to market (or dominant share), good customer service and offer something unique. That’s no different from any other business but third-party developers have to compete with open source projects and more importantly with large enterprises starting with the manufacturer of the operating system (and you know they always throw in a cartload of free apps as part of the system).

At the same time, little purchases of $15 – $40 apps eventually add up to quite a sum so the reluctance to pay is understandable. The problem with perceived expensiveness of such shareware to me comes from the fact that there’s little to distinguish them from web apps, open source apps, or utilities bundled with the computer since we’re essentially looking at the same thing. I think our brains are designed to mainly attach a sense of possession to physical objects or intellectual property of our own creation, rather than something like software. The competition from web apps is also tricky because desktop apps don’t have the same advertising monetization options as web apps.

As a Pukka owner I can see why Leo would want Pukka to be free. It’s a small app, it uses a freely available web api to a very free site, many free alternatives (such as the Firefox extension I use away from macs) and is rarely the main focus of your daily activity (unless you’re a really hardcore del.icio.us user). However, that doesn’t do justice to the effort put in by the developer in creating the app, support (he really does a great job answering customers), not to mention how much time you’ll save using it or adding value to del.icio.us itself. I wouldn’t go anywhere near del.icio.us on the mac if it wasn’t for pukka.

At the end of the day, you need to ask yourself long and hard why you wouldn’t hesitate to drop $10 on a piece of software while you could easily spend that much on a daily basis for food and other stuff (including a lot of junk you don’t need).

According to the latest reports, Japan’s largest cell phone carrier will be using Google’s Android OS for mobile devices which is in turn based on WebKit of all things.

NTT DoCoMo Inc. will remove advanced functions and services from its cell phones’ operating software, such as the ability to connect to the Internet, enabling the nation’s handset manufacturers to simultaneously design low-function, low-price handsets for overseas markets and high-function, high-price handsets for domestic distribution based on the same software, The Yomiuri Shimbun learned Saturday.

The decision came as several manufacturers have withdrawn from the saturated domestic cell phone market that currently offers little prospect of generating profits.

DoCoMo hopes the decision will help the handset manufacturers expand internationally, while also expecting it to contribute to its own overseas strategies.

According to the carrier, functions to be removed from operating software will include i-mode, Internet connection services, and FeliCa, an integrated circuit card service that enables handsets to be used for electronic payments.

The company plans to introduce Android, jointly developed with Google Inc. as the new operating software by 2010.

It’s great to see Japan’s largest cell phone carrier wake up to reality but unfortunately this move comes more than a decade late. The move will supposedly open the market for Japanese cell phone manufacturers to approach a more global audience. Of course, manufacturers already have wider access to global markets since Japanese cell networks went 2.5G using CDMA/WCDMA technology.

Yet, the Japanese cell phone market remains an anomaly and obstacle to cell phone manufacturers reaching a global market as seen by Sony Ericsson’s recent review of their relationship with DoCoMo. Right now Japan has three dominant cell phone carriers, DoCoMo (a spin off of the former national telecom NTT) and AU (a private sector joint venture) and SoftBank (which went from a Japanese company to Vodafone back to Japanese). Manufacturers are more or less tied to the cell phone companies they supply phones to. The carriers dictate the specifications and more or less control the model supplied. So, in many cases manufacturers have to differentiate cell phone models per carrier. These contractual obligations as well as Japan’s communication specifications isolated Japanese manufacturers from a global market while keeping global manufacturers from reaching a Japanese audience.

As any casual observer will note, Japanese cell phones are more advanced and feature rich than your typical smart phone found abroad (not to mention more styles). Technology such as i-mode pioneered cell phone web-browsing before it reached critical mass abroad. The fact that Japan shied away from cross-carrier SMS compatibility also propelled Japan’s widespread adoption of cell email as the dominant form of text messaging too. Even with the advent of the iPhone, I think it will be a long time before you can watch TV on your phone or get 3G-level bandwidth on it.

However, I honestly don’t see Android really gaining any real ground even if DoCoMo was to give it a full push. The handset market is really cut throat for the typical manufacturer with low margins and lots of restrictions. The move to linux is welcome and understandable but how many companies can add the touch and flair to it like Apple did with the iPhone. Plus, the iPhone is more or less a complete OS X system optimised for mobile devices. There’s a certain degree of feature parity between OS X and it’s little cousin. As phones gain more disk space and processing while reducing size, the Android might be too limited for future needs.

The other thing is that Google really doesn’t have a major, practical stake in this. It doesn’t affect the bottom line like search so I don’t see them committing major resources unless they’re looking to buy a cell phone carrier ala SoftBank of Japan. I just don’t see the point of adopting Android or for handset manufacturers to team up with competition to lower the barrier of entry into an already crowded and lacklustre field while committing precious engineering resources to bring third party code up to par with what they developed with their own resources.