Genius revisitado e uma meditação sobre Objective-C

Mais um aplicativo que publicamos na AppStore chamado SigaCor que é uma versão moderna do Genius. É o primeiro Genius completo e grátis da AppStore (AFAIK). Vale a pena baixar: http://itunes.apple.com/br/app/sigacor/id377891433?mt=8

Este aplicativo foi desenvolvido totalmente na linguagem Objective-C o que me leva a fazer uma pequena meditação sobre o assunto.

O que você espera de uma linguagem que se chama Objective-C: que seja parecida com C. É a resposta mais obvia. Acontece que, como diria o capitão Nascimento, não é assim que a banda toca em Cupertino, sede da Apple. Portanto o nome Objective-C acho que é um dos maiores desastres de marketing para programador.

Você abre o exemplo pensando encontrar isto:

1
2
3
void MudaCor (char * colorname) {
        cordefundo = GetColor(colorname);
}

e se depara com:

1
2
3
- MudaCor (NSString * colorname) {
   [myColor changeColorToName:colorname];
}

Isto e outras mudanças sintáticas importantes causam uma frustação no programador que foge e tenta outro caminho para desenvolver para o IPhone.

O problema é que se a linguagem se chamasse Objective-Apple e você não esperasse uma sintaxe como C provavelmente você não fugiria dela e rapidamente estaria usando um framework muito amigável.

Fizemos 13 aplicações com o Phonegap e esta é a primeira com Objective-C. Posso dizer que uma vez vencida a barreira do medo ao Objective-C você acaba gostando dele.

Comments on this entry are closed.

  • akminarrah

    viajo nessa de programação =), mas independente disso esse nome é um “tiro no pé”.

  • lobato

    Objective-C porque ela é escrita EM CIMA de C. Inclusive você poderia escrever o programa inteiro em C se fosse usar OpenGL.

    Mas já que é muito mais fácil usar o Cocoa Touch, você precisa do Objective-C pra poder conversar com as APIs que a Apple disponibiliza.

  • Pedro Paulo

    Lobato eu sei que Objective-C é um SuperSet do C, mas para usar o CocoaTouch você tem que aprender uma nova sintaxe e o nome Objective-C é misleading