Scegliere tra C#, Javascript e Boo

Unity consente di sviluppare i propri script di gioco indifferentemente in tre linguaggi di programmazione: C#, JavScript e Boo.

Cerchiamo di capire quali sono le differenze tra i tre, e quale linguaggio conviene scegliere quando si decide di iniziare a sviluppare con Unity 3d.

Innanzi tutto facciamo una premessa: tutti e tre i linguaggi sono equivalenti in termini di funzionalità e non presentano alcuna differenza sostanziale in termini di performance del gioco finale. La decisione è quindi una scelta del tutto personale che può essere presa sia in considerazione delle osservazioni che andiamo ad effettuare sia dalla consoscenza pregressa di uno dei linguaggi di programmazione.
C# - Questo linguaggio, molto diffuso in ambito Windows, è molto conosciuto e documentato. È molto semplice trovare esempi di codice, forum, documentazione, nonché amici o conoscenti in grado di dare suggerimenti  su questo linguaggio. Molto nutriti sono anche gli esempi di codice e gli script Unity già realizzati.
Questo linguaggio rientra nella categoria degli strict languages,  questo rende la stesura più pesante, ma ci evita non pochi errori a runtime.

UnityScript (Non proprio JavaScript) -  È un linguaggio di facile apprendimento. Presenta gli stessi vantaggi del c# dal punto di vista della documentazione e degli esempi di codice. La differenza sostanziale sta nel fatto che non essendo un linguaggio strict può nascondere degli errori che vengono rilevati solo in fase di esecuzione.
Boo -   È un linguaggio molto potente e dalla sintassi elegante. Tuttavia, non essendo un linguaggio molto diffuso al di fuori di Unity, non è così semplice reperire esempi di codice o documentazione come per i due linguaggi precedenti.

"Linguaggi Lazy e Strict - Nella programmazione, la valutazione lazy o pigra è una tecnica che consiste nel ritardare una computazione finché il risultato non è richiesto effettivamente.

I benefici della valutazione pigra includono: aumento delle prestazioni per evitare calcoli non necessari, evitare condizioni di errore nella valutazione di espressioni composte, capacità di costruire strutture dati potenzialmente infinite, capacità di definire strutture di controllo come astrazioni invece che come primitive.

I linguaggi che effettuano una valutazione lazy possono essere ulteriormente suddivisi in linguaggi che utilizzano una strategia di valutazione call-by-name e quelli che utilizzano una strategia call-by-need. I linguaggi lazy più realistici, quali l'Haskell, utilizzano call-by-need per ragioni di prestazioni, mentre linguaggi più teorici fanno uso della strategia call-by-name per questioni di semplicità.

L'opposto della valutazione lazy è la valutazione eager, a volte nota come valutazione stretta (strict evaluation). La valutazione eager mira a determinare il valore di una computazione il prima possibile, anche se esso non è richiesto in quel momento. Questo è il comportamento tipico della maggior parte dei linguaggi di programmazione."


Nessun commento:

Posta un commento