PDA

View Full Version : Programmare su mac


lucaippo17
30-10-2006, 16:15
Probabilmente entro breve dovrò programmare una semplice interfaccia grafica x un progetto all'uni, e lo vorrei fare sul MBP
Ma se sotto windows nn ci sono problemi e basta procurarsi Visual Studio, sotto mac nn saprei proprio dove andare a parare.
Posto che il linguaggio nn sarebbe un problema (== me lo imparo) volevo sapere cosa usano i programmatori sotto mac:
-quale programma/suite mi consigliate
-quale linguaggio vi sentite di raccomandarmi
-quali dritte credete siano fondamentali

grazie delle info ;)

alexbau
30-10-2006, 16:21
che io sappia si usa XCode che e' presente nel DVD di installazione di Os X... pero' di piu' nin zo...


Alex

lucaippo17
30-10-2006, 16:33
che io sappia si usa XCode che e' presente nel DVD di installazione di Os X... pero' di piu' nin zo...


Alex

e alla prima domanda abbiamo risposto...
avanti con le altre 2 ;)

malag
30-10-2006, 16:58
e alla prima domanda abbiamo risposto...
avanti con le altre 2 ;)

Hmm..non capisco bene le domande..vuoi un consiglio su che linguaggio di programmazione usare ?
Sotto Mac e sotto windows puoi usare gli stessi linguaggi...C, C++, Java...ecc
Quale usare..beh..dipende da che cosa vuoi fare.
XCode serve a produrre programmi per Mac OS, ma immagino non sia il tuo caso visto che è un progetto per l'uni...

lucaippo17
30-10-2006, 17:45
Hmm..non capisco bene le domande..vuoi un consiglio su che linguaggio di programmazione usare ?
Sotto Mac e sotto windows puoi usare gli stessi linguaggi...C, C++, Java...ecc
Quale usare..beh..dipende da che cosa vuoi fare.
XCode serve a produrre programmi per Mac OS, ma immagino non sia il tuo caso visto che è un progetto per l'uni...

allora, il prgramma deve rimanere e girare sul mio MBP, quindi credo che Xcode vada bene, a meno che nn mi sbagli...

x il linguaggio volevo sapere cosa consigliate... nn me ne intendo molto, ma ci saranno delle librerie grafiche, ho sentito parlare di cocoa, di objective-c/cocoa, di java/cocoa ecc...
volevo sapere cosa consigliate e perchè, semplicemente dato il fatto che se esistono + linguaggi/environment saranno diversi, e qualcuno sarà preferibile.
E io di mio nn ne preferisco nessuno perchè apparte il C e il VB conosco poco.

Spero stevolta di essermi spiegato :p

SonyMMX
30-10-2006, 17:52
Programma in Cocoa se deve rimanere sotto Mac OS X.

http://developer.apple.com/cocoa/

kalebbo
30-10-2006, 18:26
Allora, per programmare in OS X ti serve XCode che puoi installare dal dvd di tiger installando i Developer Tools.
Cocoa è un framework di programmazione, ovvero un insieme di librerie accessibili ai linguaggi di programmazione Objective-C ed a Java.
Altrimenti c'è Carbon, un framework per C/C++ .
Ma programmare in Cocoa è fortemente consigliato per vari motivi, tra i quali la portabilità tra varie versioni del OS.
Objective-C è una specie di C ad oggetti con una sintassi tutta particolare: diciamo che se non hai idea di cosa sia la programmazione ad oggetti non te lo consiglio, visto che Objective-C non è proprio il linguaggio ad oggetti migliore su cui imparare.
Ti consiglio invece di usare Java e Cocoa, personalmente lo trovo molto comodo.
Passiamo all'interfaccia grafica: Cocoa mette a disposizione delle comode librerie, ma quello che è ancora meglio è che l'interfaccia grafica si costruisce in maniera visuale esattamente come su visual studio, grazie al comodissimo programma Interface Builder che trovi nella cartella Developer/Applications, ma che puoi lanciare anche da dentro XCode una volta che hai creato un progetto Cocoa semplicemente cliccando sul file MainMenu.nib.
La sigla nib è un acronimo per "Next Interface Builder", dove Next era l'OS dalle cui ceneri è nato OS X, ed indica che quelli sono file di interfaccia grafica.

Spero di esserti stato d'aiuto.
Ciao!

fdfdfdddd
31-10-2006, 14:46
Ciao,

programmare su Mac OS X significa nel 90% dei casi intendere Cocoa e Objective C. Cocoa perché è il framework di riferimento, quello "nativo". L'ObjectiveC perché è il linguaggio storico con cui è stato immaginata la programmazione con Cocoa (sin dai tempi di NeXT ... il "papà" di OS X).

C'è la soluzione Cocoa + Java, personalmente te la sconsiglio, non fosse altro per la mancanza di buona e diffusa documentazione.

Objective C è un linguaggio orientato agli oggetti sulla linea dello SmallTalk ... lo troverai molto differente dai vari linguaggi supportati da VisualStudio. Così com'è differente la parte "visuale" ... a differenza di VisualStudio Xcode (ed in particolare Interface Builder) non è pensato per "appiccicare" codice ai vari bottoni ed elementi della GUI, ma per essere usato come "modello" per le classi che andrai ad implementare.
C'è da dire che a differenza del C++, che è un linguaggio diverso dal C, ObjectiveC non è altro che l'ANSI C con sopra un layer ad oggetti. La differenza nella sintassi si risolve con una semplice osservazione

C++/Java/VB: Oggetto.Metodo(parametro);
Objective C : [Oggetto Metodo:parametro];

Seccatura dell'attuale Objective C (che verrà superata dalla prossima versione, che verrà rilasciata con Leopard ed Xcode 3.0) è che ha una gestione semiautomatica della memoria, quindi niente garbage collector ...

Una soluzione molto VisualStudio like è RealBasic ... è una sorta di clone di VisualBasic 6, è caruccio anche per il fatto che è in grado (nella versione Professional senza limiti) di generare eseguibili per OS 9, OS X, Windows e Linux (con gtk).

Una cosa ...Xcode con Cocoa e ObjectiveC o Java richiede uno studio abbastanza impegnativo, RealBasic o simili è molto più "facile".

Criceto
31-10-2006, 15:04
Cocoa è un framework di programmazione, ovvero un insieme di librerie accessibili ai linguaggi di programmazione Objective-C ed a Java.


L'accesso a Cocoa da Java è stato di recente deprecato.
Per ora funziona ancora, ma è lecito aspettarsi che con Leopard non sarà più così. Quindi l'unico linguaggio da usare per Cocoa è l'Objective C.

Comunque con Leopard uscirà una versione aggiornata del linguaggio denominata Objective C 2.0 che supporterà (tra le altre cose) la garbage collection come in Java.

kalebbo
31-10-2006, 15:11
L'accesso a Cocoa da Java è stato di recente deprecato.
Per ora funziona ancora, ma è lecito aspettarsi che con Leopard non sarà più così. Quindi l'unico linguaggio da usare per Cocoa è l'Objective C.

Comunque con Leopard uscirà una versione aggiornata del linguaggio denominata Objective C 2.0 che supporterà (tra le altre cose) la garbage collection come in Java.

Questo non lo sapevo, grazie mille per l'informazione!
Ho fatto bene allora a cominciare a studiare Objective-C, anche se devo ammettere non mi piace un granchè, ma forse è perchè sono ancora agli inizi :/

fdfdfdddd
31-10-2006, 15:13
Questo non lo sapevo, grazie mille per l'informazione!
Ho fatto bene allora a cominciare a studiare Objective-C, anche se devo ammettere non mi piace un granchè, ma forse è perchè sono ancora agli inizi :/

Dai, vedrai che è solo una questione di mentalità ... le differenze di grammatica sono praticamente solo quelle che t'ho detto su ... per il resto la vita del programmatore OS X è semplificata da Cocoa e Objective C :-)

lucaippo17
31-10-2006, 17:41
Ciao,

programmare su Mac OS X significa nel 90% dei casi intendere Cocoa e Objective C. Cocoa perché è il framework di riferimento, quello "nativo". L'ObjectiveC perché è il linguaggio storico con cui è stato immaginata la programmazione con Cocoa (sin dai tempi di NeXT ... il "papà" di OS X).

C'è la soluzione Cocoa + Java, personalmente te la sconsiglio, non fosse altro per la mancanza di buona e diffusa documentazione.

Objective C è un linguaggio orientato agli oggetti sulla linea dello SmallTalk ... lo troverai molto differente dai vari linguaggi supportati da VisualStudio. Così com'è differente la parte "visuale" ... a differenza di VisualStudio Xcode (ed in particolare Interface Builder) non è pensato per "appiccicare" codice ai vari bottoni ed elementi della GUI, ma per essere usato come "modello" per le classi che andrai ad implementare.
C'è da dire che a differenza del C++, che è un linguaggio diverso dal C, ObjectiveC non è altro che l'ANSI C con sopra un layer ad oggetti. La differenza nella sintassi si risolve con una semplice osservazione

C++/Java/VB: Oggetto.Metodo(parametro);
Objective C : [Oggetto Metodo:parametro];

Seccatura dell'attuale Objective C (che verrà superata dalla prossima versione, che verrà rilasciata con Leopard ed Xcode 3.0) è che ha una gestione semiautomatica della memoria, quindi niente garbage collector ...

Una soluzione molto VisualStudio like è RealBasic ... è una sorta di clone di VisualBasic 6, è caruccio anche per il fatto che è in grado (nella versione Professional senza limiti) di generare eseguibili per OS 9, OS X, Windows e Linux (con gtk).

Una cosa ...Xcode con Cocoa e ObjectiveC o Java richiede uno studio abbastanza impegnativo, RealBasic o simili è molto più "facile".

Direi che per il momento dovrò accontentarmi di RealBasic, sia perchè purtroppo il tempo stringe e nn posso permettermi di perdere troppo tempo ad imparare un linguaggio che giudicate difficile, sia perchè capisco ancora poco di programmazione a oggetti, sia perchè il Basic lo conosco e quiandi nn dovrei trovare troppi problemi (almeno spero :p ), sia per la sua portabilità

Poi ovviamente faccio conto di dedicarmi all' objC a tempo perso e imparare piano piano, senza pressioni
Il java nn lo tocco nemmeno, visto che mi fa un po' schifo, e che poi come avete detto verrà probabilmente abbandonato x accedere a cocoa

Grazie mille a tutti, siete stati gentilissimi e chiarissimi ;)

clasprea
31-10-2006, 18:16
Secondo me dipende anche dall'entità del progetto: cioè cosa intendi epr interfaccia grafica? Perchè se non è molto complessa come cosa forse ti possono già bastare le funzioni "standard" di java, che così produrranno files che girano su qualunque sistema operativo.

Criceto
31-10-2006, 18:25
Secondo me dipende anche dall'entità del progetto: cioè cosa intendi epr interfaccia grafica? Perchè se non è molto complessa come cosa forse ti possono già bastare le funzioni "standard" di java, che così produrranno files che girano su qualunque sistema operativo.

Interfaccia Java ... :Puke:
Davvero Java fà vomitare. Meglio usare AppleScript Studio, allora. Almeno l'interfaccia è nativa OS X!!

fdfdfdddd
31-10-2006, 19:14
Beh, le applicazioni desktop Java "standard" (che ne so ... tipo Xnap, quindi niente Cocoa) girano un po' lentamente su OS X e la GUI non si può certo dire integrata con il resto dell'OS ...

Guarda, RealBasic 2006 ultima versione l'ho acquistata qualche settimana fa per fare qualche esperimento, la risposta della GUI dell'IDE è un po' lenta (su PPC lo è decisamente), ma il risultato è di buona fattura alla fine. Sono sicuro che ti troverai bene.

lucaippo17
31-10-2006, 19:24
Devo semplicemente progettare una interfaccia di controllo di un processo dinamico, insomma acquisisco dati tramite UART (ade esempio) e devo reinviarli tramite la stessa periferica. Diciamo un semplice pannello di controllo con qualche "if" visto che quasi tutto il grosso della programmazione sta nello scrivere la rom del microcontrollore.
Direi che è decisamente preferibile la semplicità e la funzionalità, anche perchè nn ho molto tempo, e credo (spero) che realbasic possa bastarmi.
ho appena scaricato la demo e devo dire che mi sembra ben fatto x i 10 minuti che ci ho smanettato

clasprea
31-10-2006, 19:52
Interfaccia Java ... :Puke:
Davvero Java fà vomitare. Meglio usare AppleScript Studio, allora. Almeno l'interfaccia è nativa OS X!!

sì lo so che non è il massimo, ma va tutto rapportato al lavoro che si deve fare ;)

lucaippo17
06-11-2006, 14:54
ma una guida su real basic è introvabile?
visto che la tab-completion è un po' "zoppa", c'è un modo x conoscere quali sono i comandi validi? in modo da nn trovarmi con mille errori di sintassi ("expected int32" ecc...) durante la compilazione?

fdfdfdddd
06-11-2006, 15:54
ma una guida su real basic è introvabile?
visto che la tab-completion è un po' "zoppa", c'è un modo x conoscere quali sono i comandi validi? in modo da nn trovarmi con mille errori di sintassi ("expected int32" ecc...) durante la compilazione?

Beh, la guida è a corredo con il software ... dal menu aiuto c'è sia una guida al linguaggio (reference) che un tutorial e un manuale d'uso.