Bwahahah!! Ok, me la sono cercata. In realtà ho cercato anche io su google, volevo un buon gancio per poter esprimere il mio disprezzo per objective-C (nota: mai usato sto linguaggio, ma solo a guardare la sintassi mi si accappona la pelle per il ribrezzo!! XD)
Vedo sto thread solo ora, mah non e' malaccio l' objective-c.
Ha radici da tutta quella branch di next che ai tempi faceva furore tra gli appassionati (tipo 2 in tutto in mondo), ma ha punti interessanti.
- Polimorfismo e multiple inheritance facile da usare tramite protocols che sostituiscono i multiple templates e classi astratte, provatevi a leggervi l' Alexandrescu e vedere che popo' di roba tira su per emularli in c++.
- Extensions molto utili per derivare classi complesse senza troppi casini, provate ad espandere un vector delle stl e ditemi quanto divertente e'...
- Gestione della memoria con garbage collection e ref counting, basta con i super mega template da ultra geek del c++ per farsi uno smart pointer....
- Supporto nativo per localizzazione e locale.
- Sintassi annoying si' ma dopo un po' ci si prende la mano ed ha pure il for in

- accessors carini tramite direttive a'la macro come @property, @syntetize etc... (2.0 only)
- KeyValueCoding (KVC) nativo per collections.
I punti negativi:
-No operator overloading: per concatenare 2 stringhe devi scrivere tipo 60 caratteri ([stringA stringByAppenString:stringB] e se vuoi concatenare C ancora una volta tutto l' ambaradan.
- NSArray e NSDictionary troppo potenti ma inflessibili, in pratica 90% del vostro codice e' un query ad un array od ad un dictionary, ma le chiavi possono solo essere NSObject o se si vuole strict KVC stringhe su stringhe, ossia passi tutto il tempo a convertire tra oggetti. Menata terrificante
- Librerie matematiche inesistenti, anche in C++ ma almeno con un overload puoi fare a+b, qui NO!
Se hai due NSNumber a,b devi fare qualcosa del tipo: [a doubleValue] + [b doubleValue]... Brr...
Se hai una equazione lunghetta e stori qualche dato in un NSArray sei fregato

90% del tuo codice e' conversione. Il peggio quando poi l devi riconvertire in NSNumber... NSNumber* a = [NSNumber numberWithDouble:b]; lol!
Dopo un po' che lo uso pero' direi che se trovate una buona libreria matematica non tornerei mai piu' indietro al c++ se non per ragioni di lavoro...
Cheers,
Dado.