waffle

Appleseed

If the past few weeks has shown anything, it’s that Apple is a big company now. It can take care of itself.

Steve Jobs does not personally build or direct every iPhone feature, every neat idea in iPhoto or even every shade of iPods. Steve Jobs has an uncanny ability to help sort out what it is that people want, and to come back and refine it when it doesn’t. In that sense, Steve Jobs is probably one of the best CEOs any company could have right now.

But Apple is still Apple without Steve Jobs, whether temporarily or not. As I kept telling myself when I watched the keynote, Phil Schiller is probably one of the 100 best presenters in the world — he’s even had a history of being perceived as nicer than Steve, and he’s a marketer. Jony Ive and his team still crank out designs that no one can compete with; not even the Pré, I’m compelled to add. I know not much in depth of the rest of the team, but I know that for almost 33 years, the Apple culture has been inbreeding. For years and years to come, primarily Apple users (new and old) will staff the company. I’ll have to say that Apple’s corporate governance would have to fuck up on an unprecedented scale to veer it off its course.

I’ll have to join the growing ranks of those who conclude that Apple’s next CEO after Steve Jobs — and given time, that’ll eventually happen — must not be someone trying to be Steve Jobs. Steve Jobs is a great fit right now because he’s a genius (in the business and product sense that he knows what must be done and how to go about doing it) and because he’s already very Apple. But Apple’s full of people, including “heirs”, who are geniuses and already very Apple. The entire keynote recently celebrated this happy fact, and it wasn’t just show.

People often print headlines in large, bold text about the period when they lost their way during the intra-Steve era. An angle that’s forgotten here is that while they lost their way, they still managed to do great work. They introduced a Powerbook and invented palmrest areas for laptops (really), multiple-monitor support and why not PDAs. They had at times jittery and greedy management and a lax operations team which led to more products being brought to market than should have been (yes, hello Pippin) and they had tremendous difficulties deciding what OS to build for themselves, but the core that people are so afraid that Apple are about to lose, that of a different engineering and design approach to problems, it didn’t really lose. It was just hampered. I think that if that core hadn’t been there, if that core really had gone with Steve Jobs, they’d have sunk like a brick before the 80′s were over.

Do you think this culture is stronger or weaker now, after 11 years of Steve Jobs running the show fully, which he didn’t during his initial tour?

As for Steve himself… I really do think that he doesn’t have cancer. I think that the word cancer just triggers people to assume that that’s it. It’s not wrong of anyone to suspect recurrence in a recurring disease, but if it really was cancer again, would that have taken a team of doctors several weeks to find out about? My guess is that Steve is currently starring in his own inadvertent House episode, and that the hormone imbalance was a misstep — a symptom rather than a cause — or that the actual answer lies in a combination with another factor and/or the treatment itself.

I hope Steve gets well, I hope Apple continues to prosper under his leadership, and I hope… no, I am convinced that it won’t collapse in a house of cards when one day it’ll have to turn to someone else for a new CEO.

“Moreover” intentionally omitted.

Not Presentable

Windows Presentation Foundation has gone, in my eyes, from being interesting to being just weird.

I’ve been casually looking into WPF for a few weeks. (WPF is one of the “Vista” technologies, along with WF (Workflow Foundation), WCF (Windows Communication Foundation) and, I am told repeatedly, WTF (and you know what that stands for).) I was allured by the promise of a) immediate updates through sane, powerful out-of-the-box data binding, b) resolution independence and c) Microsoft finally, of sorts, dropping the last-generation graphics ball-of-chain that means having a transparent control is halfway between a pipe dream and several kilobytes of P/Invoke and eye of newt.

The first thing that meets you when you create a WPF project in Visual Studio is that the designer is in fact very pale. The window created for you is colored white. The last time I saw this was in Visual Basic 3, and it is my firm belief that it should have stayed there. It takes fiddling just to get the background color back to the system background color.

The second thing that meets you is that the controls are a lot harder to figure out using just the properties. The organization seems odd, and although there are some basic controls, I don’t quite seem comfortable with the toolbox contents. This looks more like something Flash would offer up.

In fact, the property section in particular is so abysmal that it is actually considered standard and encouraged to turn on the other tab in the designer, which shows you the raw XAML, and just edit there. Here, you rig up bindings by writing a special sort of tag-look-alike attribute value that has no equal anywhere else. You configure controls by adding tags manually, and you insert controls by inserting tags manually and include a bogus namespace in the root tag. Manually.

Quick. What does Wikipedia say about XML?

XML’s purpose is to aid information systems in sharing structured data, especially via the Internet, to encode documents, and to serialize data; in the last context, it compares with text-based serialization languages such as JSON and YAML.

An XML language is supposed to be serialized data for information interchange. WPF, until they invent a better designer, requires you to write XML manually. Sure, for some of the weirdest bits you do get Intellisense. You’re still serializing data by hand. If I didn’t know that WCF doesn’t require you to build TCP packets programmatically, XAML and the way it is supported in WPF could very well lead me to think so.

How is this acceptable in the newest graphical toolkit from the biggest software company in the world, for the most widely spread operating system in the world, in 2009? It is well and truly beyond me.

Now, I said something about custom controls above. What I didn’t say is that I haven’t managed to build one. The general sense seems to be that the ListBox control is so awfully flexible you should use it whenever possible, and that might be true. What’s also true, in that case, is that creating custom controls is such a chore that reusing a ListBox instead starts to look like a really good idea.

WPF is built on the principle, more or less, that everything can be data bound. Or dynamically updated. Or something. This is all good, but to make this work practically, it means that these C# properties I love so much just won’t do. Enter dependency properties, which needs several tautological definitions and casting inside an actual C#/CLR property, which it does also need. (Why am I even using a type-safe language any longer?)

The truth is that I spent two nights reading WPF documentation on MSDN, almost as much time playing around in code, and several hours googling for the answer or a helpful tutorial, and I still couldn’t figure out how to assemble a custom control whose content is databound. I can appreciate that Microsoft takes the opportunity to make a clean break with some of the things that were done wrong in Windows Forms, but come on.

There are two more things that bug me specifically about WPF. The first is pretty minor. Its ClearType implementation is awful. The text is blurry and takes effort to read. I’ve seen numerous people assert that “these Mac people with their non-pixel-snapping antialiasing probably like it”. Nope. I’m a big fan of subpixel antialiasing and I’ve used ClearType on Windows ever since I started using the XP preview full time in 2001. But the WPF ClearType implementation just isn’t well tuned at all. The text is wispy. Here’s good news, at last: in WPF4 (WPF in .NET 4.0), this will be fixed, likely by pixel snapping but also apparently in another way, of which we get to know nothing, probably because it hasn’t been decided yet.

The last thing about WPF that sticks out is that everyone using it loves custom design. Everything is on some sort of custom panel floating within the real window. Everything animates hither and fro. Everything is some marvelous shade of purple. I appreciate a good custom interface, but most of these are just custom for the hell of it, because it could be done. Screw established behavior and habits. Screw some semblence of a standard, even on Windows, for how programs behave. Text fields are still text fields, and buttons are still buttons, but that’s about it. (To be fair, this is partially driven by the extent to which it is hard to make a standard-looking Windows program. But with very few exceptions, no one’s searching for the next big UI paradigm either — you know everyone just wants to play with the goddamned Crayolas.)

What sucks most about this is that it’s impossible to search for actual WPF techniques without drowning in a series of styling questions. That’s not the revolutionary part I’m looking for. I’m looking for information on how to write the revolutionary dependency properties using the revolutionary markup language in the revolutionary editor so that I can put the revolutionary data binding (now just sucks half as much as the Windows Forms variant) to good use.

Very few parts of .NET are exceptional. The concept of LINQ is, the implementation of LINQ to Objects is, Parallel FX is, and the upcoming plan to open up the C# compiler as a library and provide a definitive code model by making the syntax trees public certainly is. But that’s about it. I’ve learned to not become terribly excited because Microsoft has a legendary ability to overengineer almost any problem, pimp that implementation and supersede it three years later with a new acronym.

WPF had a lot going for it, most sprung from a mostly clean break with necessarily GDI(+)-backed windows. It saddens me not only that it fails on many of those counts now, but especially that the worst fails are those that are the hardest to fix without remaking WPF entirely. I hope Microsoft will be able to patch up what can be done as they adopt it for Visual Studio 2010. The only known screenshot of the full WPF-powered Visual Studio shell actually doesn’t look half bad.

Moreover, I advise that the iPhone software platform must be opened.

Pré, Conceived

I’ve just managed to find my way to an actual video of the Palm Pré in use, and I have to say that it confirms a large part of my previous warm fuzzies.

Let me put it bluntly: I love the iPhone despite its weaknesses, but I will likely get a Palm Pré when they come out here in Sweden.

Often, users of any Apple product are portrayed as mythical nutjobs, cult members willing to take any beating at the altar of having a fancy logo and a lot of aluminium on their electronics. While Apple users have been few (globally speaking), the size of the base has always been large enough that there’s been a number of over-enthusiastic fellows in just this way; plenty enough to confirm the stereotype by anecdotal evidence. I’ve always held that like the other 99.997% of Apple users, I’m not one of them. I just have, you know, standards.

People keep telling me that “if iPhone is so bad at some things, and Apple are so draconian with others, why stay around?” As established, I have standards. I tried using my old Sony Ericsson Z800 for ten minutes just a few months ago, and I couldn’t stand it. Same with someone’s Sony Ericsson X1 and the HTC Touch. I don’t want to switch to a worse product just to make a statement; even if half a million people did it, it’d be lost in the static. Apple’s products are that good; they attract that much people.

However. I am, it turns out, amenable to switch to something that looks to be better.

Two years ago almost to the day, the original iPhone was presented for the very first time. Most of the old guard took to trashing it in public and copying it in private. I chose the word copying because they didn’t clone it (although certainly, some gentlemen did). They considered how the iPhone looked and seemed to work, and asked themselves two questions: How much can we steal? and What is superflous glamour?

In the process of removing the superflous glamour, like, say, the accelerometer, multi-touch or a graphics chip to provide animations that are smooth enough to track your finger, they killed the concept, and in the process of backing away just enough from the concept, they arranged for a speedy burial.

I’ve kept a hopeful eye to this end of the market, but HPC’s, Sony Ericsson’s, RIM’s and Motorola’s attempts have all failed in precisely the way I expected them to. It’s like a Lada with a hood ornament, judicious chrome application and a trendy plate sealing off engine access under the hood, as if there was valuable electronics powering useful functions behind it; it’s still a Lada, you’ve just failed at making it handle and look better.

The iPhone rethought the way mobile phones should work, successfully. The Pré not only rethought the way Palm’s ailing own devices should work, but the way the iPhone should work. Multi-tasking seems so easy, it’s not even funny; the device seems to respond very well, and the card metaphor is a good fit. IMs and SMS messages from the same contact even shows up in the same display. And although development isn’t open as in Android open, you appear to get better access to the device’s databases and other applications.

Palm is one of the few companies I believe could have created this general interface before the iPhone came around, because they have a record of good interface design, although the team responsible for it must have gone into hibernation shortly following the completion of the first Palm Tungsten design.

It’s a rare moment to see Apple genuinely beaten at their own game, but at least from now, at least from my angle, that’s what it looks like. And with that in mind, I can’t wait to snaffle a Pré for myself, and for the iPhone to hopefully improve and drop some of the worst decisions in response to actual, worthy competition.

Moreover, I advise that the iPhone software platform must be opened.

Confession

Every time I hear the name “Windows 7″, I think of this:

Moreover, I advise that the iPhone software platform must be opened.

« Newer posts · Older posts »