Avventure e disavventure di uno sviluppatore C# .NET alle prese con lo sviluppo di applicazioni per iOS (iPhone e iPad).   Un linguaggio diverso è una diversa visione della vita.  Federico Fellini Nello scorso intervento ho raccontato un cambio di scenario singolare: la perdita del primato di centralità di Microsoft nel panorama IT, più che altro […]" />
Home » Languages and Technologies » Un programmatore C# dentro una mela

Un programmatore C# dentro una mela

Non-buttiamoci-giù-Nick-Hornby--e1294252855269

Avventure e disavventure di uno sviluppatore C# .NET alle prese con lo sviluppo di applicazioni per iOS (iPhone e iPad).

 

Un linguaggio diverso è una diversa visione della vita. 
Federico Fellini

Nello scorso intervento ho raccontato un cambio di scenario singolare: la perdita del primato di centralità di Microsoft nel panorama IT, più che altro dal punto di vista dei tanti sviluppatori professionisti, cioè che ci campano di questo lavoro. Persone che hanno sempre avuto a che fare con Windows, Visual Studio, C#, SQL Server ed ASP.NET e che si vedono all’improvviso (in meno di due anni) nella condizione necessaria di mettere il naso al di fuori di questo stretto ma accogliente recinto.
Cosa accade quando ti chiedono una graziosa e a la mode app sul cellulare? Attenzione, non sto parlando di giochini, cataloghi o di app vetrine, roba che probabilmente non avete trattato nemmeno quando si faceva tutto in casa Microsoft e che si era sempre scelto di non fare perché il proprio campo erano i gestionali, ma di restare sul pezzo, cioè il gestionalino, ma questa volta sul cell!
Magari il vostro cliente più importante, che avete sempre reso felice con la vostra fantastica e funzionalissima applicazione desktop e, più di recente, web, s’inventa all’improvviso questa ferale esigenza di offrire ai propri agenti di vendita lo stesso piccolo gestionale ma sul cellulare della Mela Morsicata. Manco il tempo di adattarsi al web, di prendere pratica con gli stylesheet, javascript, jQuery e le compatibilità cross browser, che subito tutto questo lotto diventa un must have nel bagaglio culturale di un programmatore, ma non più sufficiente per continuare a campare con una discreta fiducia nel futuro.
O è magari il vostro capo, per il quale avete ingegnerizzato una soluzione architettural/gestionale di cui andate fieri e della quale non smettete ancora di vantarvi nei vostri ritrovi settimanali del circolo della birra, che si improvvisa con la sconcertante richiesta di scrivergli il client di acquisizione ordini del vostro gestionale sul Galaxy fighissimo che ha preso in promozione, perché sicuramente le vendite s’impennano. O è magari semplicemente un vostro desiderio immanente: siete voi stessi che gradireste una deriva mobile del vostro lavoro, per stare al passo coi tempi, per il vostro mutuo che dovrete continuare a pagare anche se Visual Studio dovesse passare di moda come i pantaloni a zampa d’elefante di qualche tempo fa. E voi che fate? Che opponiate resistenza emotiva oppure no, la faccenda è fin troppo chiara: per un po’ dovrete dismettere il vostro Windows 7 con Windows Commander e altre diavolerie custom che vi permettono di cominciare a fare cose prima ancora che appoggiate le vostre dita sulla tastiera, dovrete chiudere Visual Studio, che ormai avete personalizzato persino con un code snippet che vi riscrive kernel32.dll in un paio di shortcut e con NuGet col quale ormai fate pure i bonifici e le vostre lambda expression C# che assumono conformazioni così bislacche e astruse da far apparire Salvador Dali un pittore didascalico. E per cosa: per un nuovo fiammante iMac d’alluminio e con il design di una Porsche, sì sì, proprio voi che siete stati abituati alla plastica nera del nostro desktop HP  e che l’unica cosa di alluminio sulla vostra scrivania è stata per anni la lattina di Coca Cola, il cui contenuto ha ripetutamente impiastricciato i tasti della tastiera.

Mela_morsicataChe poi il design e l’alluminio sono pure benvenuti, visto che ormai persino i brutti PC stanno diventando belli. Il problema è quando entrate in un sistema Mac OSX e, ancor più drammaticamente, quando aprite Xcode, il Visual Studio di Apple. E se questo non vi basta, il colpo di grazia ve lo da’ Objective C.
Ecco un piccolo assaggio di quello che vi troverete davanti per la prima volta, magari provenendo da C#, Java o persino dall’ostico linguaggio C++:

[dict setObject:[NSNumber numberWithInt:prio++] forKey:[NSNumber numberWithInt:matcher.type]];

Prese singolarmente le keyword danno effettivamente la sensazione che si tratti di un linguaggio di programmazione o roba simile. Dict è sicuramente un dizionario, setObject è un metodo scritto in camelCase, NSNumber magari è un tipo non primitivo, ecc… Il problema è la visione d’insieme. Uno lo guarda per un istante e ci capisce poco, poi guarda un po’ meglio, dicendo a se stesso che è stato un po’ troppo affrettato o presuntuoso nel volerci capire tutto e subito, ma niente ancora. Poi comincia dubitare delle proprie facoltà mentali, infine comincia ad avere un attacco di coprolalia acuta ed inizia ad profferire ad alta voce gustosi anatemi contro la mamma, la sorella e diversi altri congiunti del signor C Oggettivo e capisce che qualcosa è definitivamente cambiato nel proprio piccolo mondo a finestre, magari per sempre.

E non finisce qua. Simili sensazioni le proverete al cospetto di Xcode e di Mac OSX. Si badi bene, prima che si accendino i flamer e per onestà intellettuale: non sto asserendo la superiorità di una soluzione rispetto ad un’altra o anche semplicemente della maggior produttività di una tecnologia sull’altra, parlo di sensazioni emotive, di cambiamenti, di abitudini e certezze che si perdono. E queste sono sì soggettive, ma così forti ed intense che nessuna disamina che valuti comparativamente le caratteristiche delle due tecnologie per decretarne la presunta migliore potrà smettere di suscitarle. Perché, ebbene sì, pure un programmatore ha un’anima, nonostante questa immagine ci crei raccapriccio…

P.S. per chi non fosse un esperto Objective C, ecco l’equivalente dell’istruzione di cui sopra in C#:

dict[matcher.type] = prio++;

P.S.2: è un mondo veramente difficile…

Appuntamento al prossimo post sull’argomento.

Condividi in rete

  • Facebook
  • Twitter
  • Google Plus
  • RSS
Un programmatore C# dentro una mela Reviewed by on . Avventure e disavventure di uno sviluppatore C# .NET alle prese con lo sviluppo di applicazioni per iOS (iPhone e iPad).   Un linguaggio diverso è una dive Avventure e disavventure di uno sviluppatore C# .NET alle prese con lo sviluppo di applicazioni per iOS (iPhone e iPad).   Un linguaggio diverso è una dive Rating:
scroll to top