2009-02-15 6 views
7

Sto lavorando su C++ dagli ultimi 4-5 anni. Recentemente ho comprato iphone e macbook e voglio fare qualche programmazione per iphone.Studio Objective-C, Ruby OR Python?

Così ho iniziato a leggere un libro su Objective-C. Ho anche imparato che possiamo programmare con Ruby e Python su MAC.

Quindi la mia domanda è quale studiare? In che lingua voi ragazzi vedete il FUTURO ???

Possiamo programmare con queste lingue su altre piattaforme? O questi sono limitati solo su MAC?

Sono solo un principiante nell'obiettivo C. Avere qualche pensiero esperto sulla strada da percorrere.

AC

+5

Nessuna lingua è "il FUTURO", e che cos'è l'eccesso di punti interrogativi ??? – womble

+0

Ok, un punto interrogativo. Ma perché -2 voti? Questa domanda non è valida? – anand

+4

Non è valido.Probabilmente dovrebbe essere etichettato come "soggettivo". E la tua grammatica e sintassi rendono il post piuttosto fastidioso da leggere. Usando una buona grammatica e evitando cose come "u" invece di "tu", ti fa apparire più intelligente e rende le persone più disponibili a rispondere alle tue domande. –

risposta

8

Uso tutte le lingue C++, Ruby, Python e Objective-C. Mi piacciono tutti in modi diversi. Se vuoi entrare nello sviluppo di Mac e iPhone come altri, ti consiglio Objective-C.

Uno dei vantaggi non menzionati è che Objective-C è un superset di C appropriato (il C++ è quasi un superset), il che significa che è possibile trasferire tutte le conoscenze di programmazione C da C++ a programmazione Objective-C. In effetti puoi anche mescolare il codice C++ nel codice Objective-C.

Non è possibile farlo in modo trasparente in Python e Ruby. Il motivo per cui è possibile farlo è che Objective-C è in realtà un linguaggio molto semplice.

In origine era solo C con un preprocessore custom made che ha avuto dichiarazioni come questa:

[rectangle setX: 10 y: 10 width: 20 height: 20]; 

e convertito a questo prima della compilazione:

objc_msgSend(rectangle, "setX:y:width:height:", 10, 10, 20, 20); 

A parte che Ruby, Python e Objective -C sono molto simili nel loro modello a oggetti almeno rispetto a C++. Nelle classi C++ vengono create in fase di compilazione. In Objective-C, le classi Ruby e Python sono cose create in fase di runtime.

ho scritto alcune cose su why Obj-C is cool here

4

Come Perlite, sto solo andando a sottolineare che OS X ha Perl e Python o Ruby.

Per quanto riguarda Perl/Python/Ruby, i programmi sono quasi completamente multipiattaforma. È abbastanza facile eseguire un programma Perl/Python/Ruby su qualsiasi piattaforma e funziona più o meno lo stesso. Potrebbero esserci alcune piccole differenze, ma non sono importanti.

Objective-C, sebbene non strettamente limitato a OS X, viene utilizzato solo in ambienti basati su OpenStep, che in genere significa OS X e iPhone. L'unico compilatore Objective-C che conosco è gcc, e immagino che tu possa scrivere Objective-C su Linux, ma non so se il supporto di Windows sia molto buono (se esiste).

Per quanto riguarda la lingua del "futuro", tutte le 3 (o 4) lingue verranno utilizzate in modo molto ampio in futuro. Nessuno può realmente prevedere questo tipo di cose, e nessuna delle due lingue si spegnerà (a meno che Apple non passi a una nuova lingua come "standard" per fare programmi Mac), quindi sarai abbastanza sicuro con qualsiasi loro.

Il mio consiglio: provali tutti e vedi quale ritieni più adatto al tuo stile e impara quello.

+0

SO è possibile sviluppare applicazioni desktop con perl/ruby ​​/ python come possiamo fare in C++? O ci sono solo linguaggi web? – anand

+0

È possibile sviluppare applicazioni desktop con Perl/Python/Ruby come qualsiasi altra lingua. Almeno, Perl e Python lo so. Non sono sicuro su Ruby, ma è probabile. Niente è "solo" un linguaggio web (beh, forse PHP). –

+0

@Chris http://gtk.php.net/ = P –

10

Se si desidera programmare per iphone, è necessario utilizzare l'obiettivo-C. L'intera iPhone API si basa sull'obiettivo-C, e hai i vantaggi di utilizzare il generatore di interfacce e il supporto IDE di Xcode.

2

Se si programma con Objective-C, l'obiettivo principale dovrebbe essere la scrittura di applicazioni Cocoa su Mac. Oltre a ciò, ha poco senso. Ruby e Python sono utili linguaggi di scripting e ci sono anche dei ponti per scrivere le applicazioni Cocoa.

Se vuoi scrivere app sul Mac, vorrei iniziare con Objective-C. C'è più supporto disponibile.

In termini di futuro, sembra che molte persone stiano saltando sul carrozzone Ruby al momento. In bocca al lupo.

+0

sembra che tu abbia saltato sul carro del busto pure –

7

Objective-C è l'unico modo per programmare un iPhone se si desidera produrre programmi nativi che possono essere venduti nell'App Store.

Alcuni dei concetti più avanzati in Objective-C vengono ora aggiunti a linguaggi come C# (ad es. Metodi di estensione in C# v3.0). Imparare a pensare in Objective-C sarà utile, il modello OO che impari sarà applicabile alla maggior parte degli altri linguaggi e ambienti come aggiunta alla tua esperienza C++.

modello a oggetti di Ruby è più vicino a quello di Objective-C che è Python quindi suggerisco anche l'apprendimento di Ruby, ma non prima di aver le tue abilità Objective-C in giù solidamente.

Nota che puoi usare Objective-C++ e usare C++ per tutti tranne il tuo codice GUI avendo suffissi .mm sui tuoi file - questo funziona su iPhone e Mac. Data la tua esperienza C++, che ti aiuta a essere produttivo.

Se si desidera programmare iPhone, non preoccuparsi di apprendere la nuova gestione della memoria Objective-C 2.0, ma è comunque possibile utilizzare il modello Proprietà (iPhone ha effettivamente un sottoinsieme del runtime Objective-C 2.0).

2

Per programmare su Mac OS X, hai davvero bisogno di una buona base in Objective-C. La stragrande maggioranza della documentazione assumerà l'obiettivo-C. Anche se scegli di programmare alcune applicazioni in un'altra lingua, sarà meglio averne una buona comprensione.

3

Come è stato notato da altri, se si desidera programmare l'iPhone, Objective-C è la strada da percorrere.

Objective-C è piuttosto specifico per Mac; ovviamente, il compilatore Gnu Objective-C è disponibile anche per altre piattaforme, e c'è anche GnuStep, ma penso che l'applicabilità principale di Objective-C oggi sia per la programmazione di Mac e iPhone.

Python e Ruby sono invece disponibili su un numero elevato di piattaforme (inclusi Windows e molti dialoghi Unix). Personalmente, preferisco Python, ma direi che entrambe le lingue sono molto utili e facili da approcciare.

Si noti inoltre che sia Python sia Ruby dispongono di bridge Objective-C disponibili, che consentono di scrivere applicazioni Cococa piuttosto elaborate in una di queste lingue.

7

Quale lingua si vede il FUTURO ???

Futuro di cosa? sviluppo di iPhone? Objective-C.

Servizi Web? Python/Ruby in parallelo per un po '. Almeno finché le persone non inizieranno a provare a fare manutenzione su grandi applicazioni Ruby e si sentiranno frustrati dalla sua opacità.

Sviluppo di motori di gioco in tempo reale? Applicazioni integrate? Futuro di cosa?

"Possiamo programmare con questi linguaggi su altre piattaforme o sono limitati solo su MAC?"

Ruby e Python: Sì. Questi sono progettati per funzionare su qualsiasi piattaforma che supporta C.

Objective-C: Sì. È open source, è nel GCC, è dovrebbe funzionare quasi ovunque.

L'apprendimento di una nuova lingua è non un gioco a somma zero. Puoi imparare più di una lingua; imparare Objective-C ora non ti impedisce di imparare Python o Ruby in futuro.

+2

PHP funziona molto bene per i servizi Web, quindi non puoi dire solo Python o Ruby per un servizio Web. –

+0

La domanda elenca in modo specifico Python, Objective-C e Ruby. La domanda non ha menzionato PHP. –

1

Objective-C è solo Mac/iPhone e consiglio di sapere se si desidera sviluppare applicazioni per Mac/iPhone. Python è tutto ed è futuro, ma python è più preferibile per lo sviluppo web. Python è Google :) Python è web, giochi, scienza, grafica, desktop, ecc. Inoltre è un'ottima scelta se sei uno sviluppatore C/C++.

Non so se posso consigliarti di imparare Ruby ...

2

Ruby. Con Ruby sarai in grado di eseguire sia lo sviluppo web (Rails/Sinatra/etc.) Che il programma molto presto sulla piattaforma MAC/Iphone con il progetto Macruby. Perché non ottenere il meglio da entrambi i mondi?

Tommy

+0

Non che imparare Ruby non sia una cosa buona di per sé, ma non ci sono prove che MacRuby sarà mai supportato su iPhone. La piattaforma è severamente bloccata e Apple detta ciò che gli sviluppatori possono fare a un livello insolito. Non solo in termini di tecnologie di sviluppo e API che puoi utilizzare, ma anche delle funzionalità che la tua app potrebbe implementare. Quindi, anche se Apple * potrebbe * un giorno consentire alle app MacRuby di utilizzare la compilazione in anticipo (tutte le lingue interpretate sono attualmente vietate), a parte il jailbreak, non c'è motivo di presumere che ciò accada. (In realtà, sembra improbabile.) – Mason

2

Solo i miei due centesimi ... Come sono sicuro che stai a conoscenza, Apple e altri nelle rispettive comunità sta facendo un sacco di lavoro con Ruby e Python, sia per lo sviluppo Mac e iPhone . Objective-C ti introdurrà praticamente nelle arene Apple solo in questi giorni (anche se forse non è una cosa brutta;) Tuttavia, se stai solo andando a imparare una lingua nel prossimo futuro, pensa a dove la userai, e per che cosa. Ruby e Python ti porteranno molto di più se stai guardando oltre il solo desktop Mac e iPhone.

2

Ho scritto piccoli giochi, interpreti e tonnellate di cose terribili in Ruby. Non lo consiglierei di scrivere programmi intensivi di IA, ad esempio, ma è divertente da imparare e potente per la maggior parte delle applicazioni. Anche quando svolgo la maggior parte del mio lavoro in C++, Ruby è la mia lingua preferita per ragioni soggettive.

L'obiettivo C come diceva la maggior parte della gente è un must nello sviluppo di iPhone e divertente se sei entusiasta dell'apprendimento delle lingue.

Non ho provato Python, ma non sento nulla ma le cose positive su di esso, e PyGames è piuttosto popolare.

Vorrei imparare i tre (beh ... salterò l'obiettivo C a meno che non siate curiosi di entrare nello sviluppo di iPhone), la maggior parte delle lingue che conoscete, il miglior professionista che sarete. Come diceva sempre un mio buon professore, non si tratta di essere il maestro in una sola lingua, si tratta di conoscere i pro e i contro di ognuno per scegliere quello giusto in base al particolare problema che si vuole risolvere.

Cheers!

Problemi correlati