L'approvazione della lingua da parte di piattaforme diverse (Android, iOS) danneggia lo sviluppo delle app?

7

Lo sviluppo di applicazioni basate su iOS o OSX richiede in genere la conoscenza dell'Obiettivo C, poiché XCode è altamente personalizzato per questo linguaggio.

Android, d'altra parte, ha scelto Java come lingua preferita per lo sviluppo di app.

Ora so che altri linguaggi di programmazione possono essere utilizzati per sviluppare applicazioni su entrambe le piattaforme, ma siamo onesti, è molto più facile (e incoraggiato) sviluppare app utilizzando queste "lingue native".

Come nuovo sviluppatore di app, sembra che sarebbe molto più semplice se esistesse un linguaggio e un ambiente di sviluppo comuni per lo sviluppo di applicazioni su tutte le principali piattaforme. Questo pensiero è probabilmente troppo idealistico per una discussione di programmazione, e non sarei sorpreso se gli avvoltoi della SE venissero per chiudere questo argomento. Ma, ecco la mia domanda.

Pensi che l'approvazione della lingua crei irragionevoli barriere all'ingresso per i nuovi programmatori, o pensi che sia utile in qualche modo (se così, perché) per queste piattaforme utilizzare ambienti di sviluppo e linguaggi completamente diversi per lo sviluppo di app?

    
posta MSe 05.05.2011 - 17:42
fonte

5 risposte

4

No, non è un problema; qualsiasi programmatore che valga il proprio stipendio dovrebbe essere in grado di imparare rapidamente nuove lingue e toolkit. È solo una barriera per le persone pigre o incapaci. Il punto non è scrivere Java o Obj-C; il punto è creare un'applicazione con tutti gli strumenti disponibili. Se non è possibile distinguere tra la soluzione e l'implementazione di tale soluzione, non si dovrebbe essere in questo business.

Per quanto riguarda i vantaggi, è una questione di compromessi. Avere un toolkit e un'architettura comuni facilita lo sviluppo di applicazioni; non è necessario reinventare la ruota ogni volta che si desidera inserire un menu a discesa sullo schermo. Fornisce coerenza tra le applicazioni e semplifica l'applicazione delle linee guida di usabilità. Significa che devi imparare una nuova lingua e un nuovo kit di strumenti, ma è un bene per te. Può soffocare la "creatività", ma quando penso ai giorni del selvaggio West del DOS e allo sviluppo iniziale di Windows, non è una cosa cattiva . Sarebbe bello se tutti scegliessero la stessa piattaforma? Sì, senza dubbio. Succederà mai?

Non nella mia vita, dannatamente sicuro.

E le piattaforme hanno sempre avuto i linguaggi di implementazione preferiti; il toolkit originale di Macintosh è stato implementato in Pascal , fer cryin 'ad alta voce (hanno fornito collegamenti C, che hanno reso il codice veramente brutto).

    
risposta data 05.05.2011 - 18:29
fonte
1

Alla tua prima domanda: No. Non penso che crei una barriera irragionevole di accesso. Se puoi imparare a programma in Java, piuttosto che imparare Java , allora sai già (per la maggior parte) come programmare in Objective-C.

Al tuo secondo: No, non penso che sia di alcun beneficio reale. Bene, immagino che sia vantaggioso per Apple avere tutti quelli che vogliono svilupparsi per Mac che comprano un Mac ... ma no, non c'è alcun vantaggio percepibile nel frammentare questi mercati simili con una tale differenza.

    
risposta data 05.05.2011 - 17:55
fonte
1

Man, nessuno tra i grandi giocatori si preoccupa dei programmatori e delle loro strane nozioni o equità ed efficienza. Ognuno di loro ha costruito un giardino recintato e ha fatto un sacco di trucchi per far sì che i programmatori si attengano alla loro e solo alla loro piattaforma.

Ma come una discussione puramente teorica, sì, avrebbe beneficiato se potessimo indirizzare tutte le piattaforme dallo stesso ambiente di sviluppo.

  • Avrebbe ridotto al minimo gli sforzi di sviluppo e manutenzione se esisteva un ambiente di sviluppo unificato
  • Avrebbe indirettamente obbligato le piattaforme a supportare più o meno la stessa funzionalità accessibile in maniera unificata, cosa che avrebbe semplificato la vita degli sviluppatori
  • Avrebbe creato un'esperienza utente unificata se l'applicazione Windows Phone appariva e si comportava in modo identico all'applicazione iOS

Ma poi avrebbe anche cancellato i confini tra le piattaforme e l'avrebbe portato a chi fosse in grado di spedire l'hardware più densamente compatto al minor costo possibile. E non lo vogliono di sicuro.

    
risposta data 05.05.2011 - 17:51
fonte
0

Per la tua prima domanda, o conosci i concetti necessari per programmare per iOS o Android o qualsiasi altra cosa, oppure no. Se non lo fai, probabilmente non sarai in grado di creare una nuova app. Se lo fai, imparare la lingua sarà facile. Sarà più difficile imparare i framework e le librerie, ma puoi farlo.

Per la tua seconda domanda, la molteplicità degli ambienti è nata per buone ragioni. Aziende diverse iniziano con obiettivi diversi e iniziano in momenti diversi. La programmazione per Mac, per Mac OSX o iOS, è nata con il cubo NeXT qualcosa come vent'anni fa circa (mai notato tutti i prefissi NS per NeXT Step?). Al momento, Objective-C era un contendente, e NeXT e Apple hanno messo un sacco di lavoro nell'ambiente nel tempo.

Google è arrivato molto più tardi, con molto meno bagaglio e probabilmente obiettivi di design un po 'diversi, e finito con qualcosa di molto diverso con cui lavorare. Non avrebbero usato Objective-C, perché pensavano che Java fosse una scelta migliore.

L'unico modo in cui iOS e Android avrebbero avuto la stessa lingua nativa sarebbe stato se Apple avesse convertito oltre vent'anni di lavoro in Java, senza alcun guadagno reale, o se Google avesse deliberatamente continuato a essere più compatibile con iOS. Nessuno dei due sarebbe successo. Apple, in particolare, non è diventata la società di computer e tecnologia più redditizia al mondo cercando di fare ciò che tutti gli altri hanno fatto un po 'meglio o un po' meno.

Inoltre, nessuno è abbastanza intelligente da configurare il miglior ambiente di sviluppo possibile per una determinata applicazione. Le persone sono abbastanza intelligenti da inventare caratteristiche diverse, alcune delle quali saranno migliori e adattare le funzionalità di altre persone al proprio sistema.

Non accetteremo la convergenza delle piattaforme fino a quando non sapremo cosa è meglio, e non penso che succederà nella mia vita. Java è meglio di Objective-C? Molto probabilmente, anche se sono lingue molto diverse. Java è la lingua migliore per lo sviluppo di app mobili? Spero sinceramente di no. Se avessimo una piattaforma comune, qualcuno con un'idea migliore otterrebbe un'immensa quantità di resistenza, molto più di oggi, e lo sviluppo del software ristagnerebbe.

    
risposta data 05.05.2011 - 19:44
fonte
0

Sono d'accordo con il pensiero generale di "Non imparare una lingua, impara a programmare. La lingua è solo uno strumento."

Direi anche che avere un ecosistema più ampio e diversificato rende migliori ambienti di programmazione, giocattoli di strumenti e prodotti finali in generale. Costringe tutte le parti a creare, adattare e innovare su più livelli.

C'è anche il problema di ottenere questi pesi massimi del settore nella stessa stanza e convincerli a concordare qualsiasi cosa senza sottomettere il processo.

    
risposta data 05.05.2011 - 20:08
fonte

Leggi altre domande sui tag