yield thought

it's not as hard as you think

Posts Tagged ‘language

Chicken Little and 3.3.1’s Great Big Loophole

with 10 comments

I thought someone else would say this, but either they haven’t or they didn’t say it loud enough and now I can’t take the waiting any more, so here goes:

Chicken Little

Oh noes, my pythons iz banned!

On April 8th, Apple added some onerous conditions to section 3.3.1 of their iPhone Developer Agreement, explicitly prohibiting interpreters, translation layers and cross-platform toolkits from the Apple Store. It set off a wave of discussion that still echoes around to this day, and it pretty much killed Flash dead.

Much as I hate Flash, that’s not what I want to talk about. I want to talk about the reaction from most of the programming community:

The sky is falling, the sky is falling!
— Pretty much everyone

Some bloggers even complained that kids wouldn’t be able to grow up learning how to program in Apple’s Brave New World. What?

You can write in any language you want so long as it compiles to Javascript and runs in the browser, or runs on a server somewhere online
— The oddly-overlooked truth

Local applications are already dead. Whether they’re on the desktop or on the phone, their days are numbered. The resurgence in phone apps for the iPhone / iPad is a temporary blip. The future is in the cloud, in the browser and on servers.

Where will kids learn to program in Apple’s new world? On programming sites, interpreting their code in the browser, pulling in web services they way you and I learned to pull in local APIs. You don’t like Javascript? Don’t worry – You have options and they’re only going to keep getting better. Suddenly Bespin doesn’t look so dumb any more, does it? Mix in Github and free online hosting services like Google App Engine and you can see the parts are already assembling.

In fact, with 3.3.1 Apple has shot itself in the foot by ensuring that all the best developers are going to work extra hard to get their applications running in the browser; a bit of a home goal for iAd and a gift to Google – and the rest of us. After all, web apps are fundamentally easier to develop and support.

So here’s to Apple’s 3.3.1 clause and all its consequences: Thanks, Steve!

Written by coderoom

May 7, 2010 at 7:45 am

Posted in Business, Programming

Tagged with , , ,

4 Wrong Ways and 1 Awesome Way to Choose a Language

with 22 comments

Over the years I’ve seen many different reasons for working with one programming language over another, but nobody has ever told me about the single most important one of all: the community.

In the past, I’ve thought lots of other things were important; maybe this time is no different. When I was a teenager, I thought speed was most important, so I gave up Visual Basic for Delphi and eventually Delphi for C++.

When I started work I thought that fantastic tools and a really well-documented, solid API were most important, so I started using C# with Visual Studio (this was back before Java’s tools community really took off).

For a while I even agreed with Joel that the language and environment don’t really matter, it’s what you’re building with them that counts. I played around with Haskell but it turned out that the environment did matter a bit, after all.

Then I discovered Python, and thought readability, expressiveness and an awesome standard library were the most important things to look for in a language.

All of these things are true, but none of them compare to the effect of working in a language with a vibrant, smart community. Recently I was doing some Django-based web development, touching JQuery, the incredible Raphael Javascript library and Flash. Well, actionscript.

Ayayayayay. Actionscript. On the face of it, it’s fine – it’s more or less ECMA with a few, mostly optional, modifications. But what really, really hurt was the average level of programmer ability in the community. My workflow for personal projects in Python had become something like this:

  1. Want to do something I’ve never done before
  2. Search for it
  3. Discover there’s already a module in the standard library for that, or
  4. Find two or three beautiful, elegant solutions have been posted online, ready to use

Trying to do the same when learning Actionscript was like drowning in quicksand. It’s the blind leading the blind out there… there seem to be the same number of great programmers but a lot more noise from complete beginners offering each other tidbits of programming wisdom, such as:

make a loop (a while loop I think)

and asking insightful, topical questions in a clear, well-thought out manner:

Hi friend how are you? 🙂 i have a questions how loaded image mc parent ???

Unfortunately, all this noise pollutes the results for the keywords you wanted to use to such an extent that it becomes difficult to find the people who know what they’re doing.

90% of effective web development today is about putting together pieces that already exist. This is great – the reusability holy grail we’ve been searching for is finally coming closer! So, for the sake of your own sanity, when choosing a language to use for your next project make sure you pick one with an active community whose code you’ll want to reuse.

Postscript: I think this is why some Django developers suffer from Rails envy. There’s such an awesome Rails community and ecosystem out there, making truly beautiful things. Just looking at heroku.com or vanity.labnotes.org is enough to make me consider laying down my beloved Python even though I always swore they’d have to pry list comprehensions and meaningful indentation out of my cold, dead hands.

Written by coderoom

December 15, 2009 at 10:27 am

Posted in Programming

Tagged with , , , ,