Bruce Markham's Personal Soapbox
# Friday, April 09, 2010
One Bad Apple Spoils The Bunch

I’ve been struggling the past several months. What used to be a tingle of distaste for a brand has become a torrent of madness. Where once reason and uncertainty made me bite my tongue, familiarity has now bred contempt. I speak of course, of Apple.

In the interest of full disclosure, I’ll say here and now: I’ve never owned an Apple product. (I’ve also never employed a prostitute or smoked PCP, but I can still argue against their use.)

For the longest time, I avoided Apple products because the only things in that categorization were computers - and I knew how to use my PC quite well, thank you. Fast forward a decade and a half, Apple is the biggest sensation in tech. Even the pundits that despise Apple can’t keep their mouths shut about ‘em. (Myself included.)

Apple has graced us this month with the release of the iPad. For those of you not following the situation, the iPad is basically a giant iPod Touch:

  • Boasting 9+ hours of battery life, the 1.5lb iPad is heavy enough that you won’t want to hold it for more than an hour at a time lest you change your workout regiment. (Or integrate it in.)
  • With its “9.7-inch (diagonal) LED-backlit glossy widescreen Multi-Touch display” you’ll get to use your favorite content-consuming apps at double the size, but it’s ineffective “fingerprint-resistant oleophobic coating” will make it look like a CSI crime scene and leave you needing to carry a terry cloth with you everwhere.
  • With it’s built-in speaker, microphone, bluetooth, and video codecs – you’ll be able to do all of your favorite multimedia consumption, except for video conferencing or taking pictures because it doesn’t currently have a camera.
  • Being one of the only “large” mobile multi-touch devices on the market, it features one of the largest on-screen keyboards out there – but the extended typing they claim you can easily do on it is still so unwieldy they’ve simultaneously released a keyboard attachment.
  • It also features the all-acclaimed Safari Mobile, supporting large chunks of HTML 5 and CSS 3, so it’s ready for the web of tomorrow - but without Flash support it’s useless for 90% of today’s internet.

Okay, so the hardware sucks. The browser sucks. Shouldn’t it be about the apps?

I’m a software developer, so I can appreciate “apps” - little nuggets of easy-to-maintain code and functionality that are sold individually, for cheap prices, to the masses - little nuggets of code that are small enough, I would be tempted to find a means to simultaneously develop for multiple app platforms easily, so that I can move on to the next app without hassle.

And you know what? Microsoft gets this. Google gets this. Apple hates it.

Fresh out of the pearly gates of Cupertino, the Apple iPhone OS 4 SDK license agreement says, amongst many things:

Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs
(e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

What this means, in layman’s terms, for any programmer or software shop that used to sneak apps across the Apple border by cross-compiling their Flash, Java, or C# into C/C++/Objective-C before deployment, they are simply out of luck.

My brain is simply without recourse in its search for a plausible explanation. The most I can figure is, Apple doesn’t want the slew of upcoming Windows Phone 7 apps to be translated and submitted to the Apple App store. (That is, they want developers to pick a side and stay on it.) Or they just really really really want to absolutely kill Flash. It’s no secret that Jobs hates Flash. The fact that his complaints against Adobe and Flash are retorted with the reality that Apple doesn’t have any decent high-performance APIs to code against, doesn’t seem to weaken his resolve.

Despite my nay-saying in the past, and my general bias towards the Microsoft development stack, I have been secretly enthused the last 4 or 5 weeks with the possibility of writing a .NET app that would run on Windows, Xbox, Zune, & Windows Phone 7 – and then using Mono to run it on Mac, iPhone, iPod, and iPad – all with 90% shared code – but Apple has eliminated that possibility. I am no longer tempted to take a bite out of the Apple development community.

This one’s got a worm in it.


Friday, April 09, 2010 3:44:00 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0]  winpho | computers | wp7 | iPad | iPhone | html5 | iPod | pure-rant | windows | xbox | apple | winmo | zune | silverlight | technology | xna | flash | microsoft | current events | dotnet

# Thursday, February 18, 2010
And Bananas

A friend of mine just today posted an epic (4,500 words!) blog post he has been working on for well over a week – which basically boils down to why “Apple is awesome and the iPad is the future”. This has inspired me to pen my own views.

Frankly, there are several debates here:

  • Form vs. Function
  • aka Functionality vs. “Just Works”
  • Flash vs. Html 5
  • aka “Future Shock” vs.. All Of The Above
  • (maybe others, but the above seem most currently relevant)

Form vs. Function…

Apple has always been about form. Microsoft has always been function. The dichotomy is evident from the first steps taken by each: Jobs deliriously struggled to make the perfectly pretty computer that wouldn’t intimidate the home user, Gates created connived a programming environment that would bring developers to the same level playing field.

This dichotomy continues today. Apple makes these bubblegum-perfect consumer devices – all made by one company, designed to span out and touch everyone. Microsoft focuses its expertise on an OS and programming platform that entices developers like never before.

Windows has never been really pretty – (not until Vista/7, anyway) – and I have no qualms with that. I don’t need pretty, and I don’t think even Mac users seriously stick to that as legitimate point in their favor.

Consider the following code check-in statistics from Ohloh:

image

Keep in mind that Ohloh tracks code statistics solely for open-source projects. Also keep in mind that C# is primarily a Windows programming language, and Objective-C is primarily a Mac programming language. I hear all the time of C#/VB/C/C++ people writing code for Mac/Linux – because it is possible – but I’ve never heard of someone using Objective-C to write a Windows or Linux application. So I’m assuming that taking a language-preference pulse of the open-source community is a reasonable measurement of the health of said code ecosystems as a whole…

…and it looks like Mac is sadly lacking. Objective-C tumbled around the time Microsoft released .NET 2.0, and Objective-C has managed to stay down throughout the entire stint of iPod/Phone/Pad popularity.

Application innovation always comes from application developers – and frankly, .NET developers have more to innovate with than Objective-C developers. When you combine this with Microsoft’s push to make “form” more important (look at Windows 7 and Windows Phone 7 Series, for Christ's sake) – this isn’t a point so easy for Mac fans to argue anymore. Moving forward…

…Functionality vs. “Just Works”

This has been the biggest ongoing point for Apple and fans. I hear things like:

  • I plug in “X” and it just works
  • I don’t need to see my file system
  • My <insert technophobe relative> can use it

Followed by, (from geeks/nerds):

  • but I have a PC for “Y”

Why? Mayhaps that Apple’s dominance over their own platform has painted them into a corner where they can literally control everything. Is it a bad thing? No. It ensures quality. But choice suffers.

I can buy my applications, hardware, and music from anywhere – for my PC - and I’ll know it can work. Heck, I can buy Mac hardware and make it work. The operative benefit – choice. I don’t want to use a cookie-cutter computer, because I want my computer to fit *me*. I never pay extra for fancy looking chasses, I don’t buy fancy graphics cards for work, and I don’t have a finger-print scanner on my gaming computer at home. And you know what? Both computers cost the same, each only 2/3s of what it would cost to get the same thing on the Apple route, and both with amazing performance for what they are supposed to do.

And I’ve never, ever, had a Windows crash that didn’t come from me trying something nerdy and predictably dangerous with my system configuration.

If you don’t want choice, then buy a Dell. Heck, buy a Mac. But you will always reach that point where “Well, I wish I could…” or “Why did I pay…”. Sure, I know not every computer user can be a nerd – Apple rightfully seeks to change that - but then, seriously, if you aren’t at least a little bit of a computer nerd, why are you reading this?

Flash vs. Html 5

I would like to segway into the root cause of this post. The iPad is coming. You’ll never look at Playtex the same again. (Har har!) And I’ll admit, we’ll probably never look at tablets the same way again…

There, I said it. But I’ll finish the sentence with “…but the iPad is not the future of tablets. Or the web.”

Why? Flash runs everywhere! Except for the iPad/Phone/Pod OS. Despite the fact that the iPad will be popular, and sell like hotcakes, to all those people that could finally figure out an iPod Touch and never their PC, 90% of the web is currently inaccessible to this demographic. And I don’t think Flash (or technologies like it), are going to die out anytime soon.

People say that HTML 5 is an open standard, and that Mobile Safari will give it a leg up. Poppycock! Even at Apple’s wonderful growth rate, they still probably have another 15 years (if that is even enough) to catch up with the kind of market share they need to make Flash and its brethren hurt.

Why? In the meantime, Microsoft is leveraging their platforms – the ones that developers love so much – on more and more platforms all the time. Windows Phone 7 is undoubtedly going to have its “native” apps be Silverlight – which means they will run anywhere, out of the box, without recompile. (Anywhere = Windows, Mac, Linux). Windows Phone 7 games… (well, you know, the ones tied into Xbox Live, the largest online game network?) …written in XNA. Which runs on Windows, Xbox, and Zune.

Both Silverlight and XNA are merely buzzwords for subcomponents of the .NET initiative. English? A C# programmer like me can write an app that runs on any of the above platforms, with minimal design overhead in consideration of portability. That means my app choices for these platforms will be more numerous, as well as cheaper.

HTML 5 will raise the bar on what comes built-in to a browser. There is no doubt on that. But baked-in will never be enough. There will always be a 3D app, an involved game, or sensitive business logic, that will need a runtime to run in. And the runtime will always run faster than JavaScript. Be that runtime Silverlight, Flash, or Java applet.

“Future Shock”

I’ve heard this one batted around the interwebs. It seems to be Custer’s Last Stand in the Mac world. “But, but, Mac is innovative!”

Yes they are. The innovation has brought droves of “normal” people to computing electronics, without even realizing what they are doing. But the people doing actual computing, are the ones in that playground just over the rainbow. The one where anyone can write software without corporate approval. The one where anyone can choose their hardware without it coming with a ridiculous price tag. The one where the real innovation is not in the basics, but in the ground of “what’s next?”, not re-hashing for the dumber demographics what was 8 years ago.

I love that Apple is innovating. I love that the attention of detail they have paid brings a sense of panic to their competition. Apple is definitely competition.

But when I ask “what’s next?” – I sit down on my PC and start typing. I don’t wait for Apple to spoon-feed me something my computer can already do.


Thursday, February 18, 2010 12:07:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  javascript | computers | iPad | iPhone | html5 | iPod | pure-rant | windows | xbox | apple | response-to-friend | winmo | zune | technology | silverlight | xna | flash | microsoft | dotnet

# Tuesday, January 27, 2009
Purpose : Hyperbole and Non-Sequitors
begin rant\

I am proud of those close to me that spend time reflecting on their feelings and interpretations of the world. There are too many people out there that don't care at all. And sure, you can use introspection as a means of validation and never actually change - but you definitely can't change at all if you don't perform analysis of any kind.

For the sake of argument, I would lay out an assumption before I continue: there is neither an after-life nor a deity to govern us. (Which includes reincarnation, purgatory, haunting houses, etc.) From that assumption we move forward into: we have one life - does it have a purpose?

This depends on the context. Are you spiritual? Or are you a link in the chain of the evolution of the gene pool? Do you have family that worked hard to bring you into this world, and keep you here? As we grow older: do you have children? And even as abstract of a question as, do you have bills to pay?

Amongst these, there are definitely functions to fulfill. You can spread the word of Jesus, or create as many offspring as possible, or be there to comfort those close to you. But to find purpose, we have to refine the definition. So let's take a look at a definition:


Or alternatively:


Notice, that predominantly, the definitions involve choice, i.e. you can define your own purpose.

One thing that is hard for jaded, non-religious people to see is the utilitarianism of being nice. For them, existing is the only goal. I've even heard phrases like "Compassion is out because it assumes humans are worth having compassion for, if you exist you are guilty." Of what? Existing? Surely we all agree that we are all here, and we can all agree that most of us want to keep being here.

When one has been without the illumination of compassion, and doesn't have spiritual beliefs motivating one towards compassion, sure, it is easy to forgo. But I posit that the main reason that compassion has come into power as a revered quality is because it is absolutely necessary. John Nash, in his studies of economics, proved that acting on behalf of the group, instead of oneself, has higher gains. Granted, it isn't self evident. The world won't change for you just because you put on a happy face, but if you purposefully pay it forward, the great puzzle of 6 billion pieces that we call humanity does become a bit more coherent.

But such niceties has its limits. It's easy to perceive diminishing returns when you are interacting with people that do not share the same values. For example, giving money to substance-bound family member to pay the bills almost seems like negative progress. The point is to be edifying, not just nice. Tell the ugly truth, not beautiful lies. When you compose yourself, you can relieve your burden and enlighten other people in a singular motion.

Can you change the world, or even just other people? No. But by providing opportunities, you might help someone else see the necessity of self-change. And regardless, you are still helping yourself. You're analyzing the situation for your own benefit. You are finding room to expand in.

Because after all: your existence may be your existence, and my existence may be my own existence, but our existence is ours, both in isolated groups and as a whole. Aspiring to change it is both the most selfless and selfish thing you can do.

The only way to go wrong is to not understand your own purpose. Be it following Jesus, stopping global warming, or just buying dolphin-safe tuna. If you do it from within the wrong personal context, you'll just reinforce that you don't know what you are doing. And sooner or later you'll do the wrong thing for the right reasons, and it won't matter anymore. You screwed up.

/end rant
Tuesday, January 27, 2009 9:06:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  pure-rant