Quali linguaggi di programmazione dovrei imparare a diventare uno sviluppatore Ubuntu? [chiuso]


22

Anche se ho usato NetBeans una volta per un progetto, quali lingue devo imparare per diventare uno sviluppatore Ubuntu a tutti gli effetti?

Il mio progetto in NetBeans (solo Java) era di progettare una calcolatrice (relativamente semplice). Inoltre, come impariamo a creare visualizzatori di immagini, browser, ecc.?

Inoltre, quale sarebbe la lingua migliore per determinate applicazioni?


3
È piuttosto soggettivo ... Esempio: perl può essere un sostituto di python e viceversa, ma troverai utenti perl / python che disprezzano python / perl per nessun motivo se non la mancanza o la forzatura del rientro;)
Rinzwind

Se puoi essere più specifico su ciò che vuoi scrivere, potremmo essere in grado di rispondere meglio, ma bash quindi ..., È probabile che tu ottenga molte opinioni diverse e potresti chiederlo meglio nei forum di Ubuntu: Sviluppo e programmazione
Warren Hill,

Risposte:


31

La risposta è semplice e non molto utile. Qualunque lingua sia necessaria. Ubuntu è un sacco di software, alcuni scritti in C, alcuni in C ++, alcuni in Python, Perl, bash ... e altri. Dovresti assolutamente imparare lo scripting con bash e dovresti scegliere una lingua come Perl o Python, possibilmente quest'ultima. Inoltre, l'apprendimento del buon vecchio stile C non fa mai male a nessuno: impari di più su come funzionano i programmi, cosa sono le librerie, molte cose su altri strumenti.

Altrimenti, trova prima un compito, una nicchia, qualcosa su cui devi lavorare o qualcosa che manca o qualcosa che è semplicemente affascinante e ti piacerebbe lavorarci. E poi scopri quale lingua sarà buona per quello scopo.


5
Semplice ma preciso;) Qualunque sia la lingua necessaria per svolgere il lavoro nel modo più efficiente.
Rinzwind,

3
Poiché OP menziona la sua esperienza in Java, vale la pena ricordare che Java funziona anche su Ubuntu. Non è nemmeno necessario ricompilare (quando si
esegue il

@ BlueRaja-DannyPflughoeft A meno che tu non stia sviluppando un'applicazione che richiede chiamate di sistema di basso livello. Abbastanza spesso vedrai applicazioni che forniscono librerie specifiche della piattaforma per queste funzionalità. Ma generalmente sì, hai ragione.
Dennis Eichhorn,

spesso che tutto ciò che può essere compilato per una certa architettura della cpu può fare il lavoro. Ci sono aspetti più importanti da considerare quando qualcuno vuole sviluppare per una piattaforma specifica. Ad esempio, quanto tempo deve iniziare quella persona, vuole occuparsi della gestione della memoria, vuole fare programmi multipiattaforma, che tipo di programmi vuole fare, sa lavorare in gruppo , Vuole creare computer che servano panini con pancetta mentre massaggia gli utenti o un sistema di aria condizionata mobile, il cielo è il limite che alcuni dicono, ecc ...
userDepth

7

Se hai intenzione di scrivere applicazioni per Ubuntu che possono essere eseguite su più dispositivi e fattori di forma (desktop, telefono, tablet, TV ...), ti consiglio di imparare QML e JavaScript . Essenzialmente:

  • Usa QML per scrivere app Ubuntu convergenti che attraversano fattori di forma e dispositivi
  • Utilizzare JavaScript per integrare QML quando si scrivono app Ubuntu e per scrivere webapp Ubuntu

Puoi dare qualche dettaglio in più sul perché questi due sono adatti?
don.joey,

Fatto, spero che fornisca una guida chiara :)
David Planella,

5

Dovresti imparare:

  • JavaScript: come la maggior parte dei framework UI / env. sono / saranno basati su JavaScript; ti servirà comunque un giorno o l'altro.

Quindi per tutto il resto avrai bisogno di qualcos'altro:

  • C ++ / C
    • pro: incredibilmente veloce, accesso a funzionalità di basso livello
    • contro: un sacco di tempo per imparare a scrivere qualcosa di stabile, terribile comunità
  • Rubino:
    • pro: facile da imparare, davvero piacevole da scrivere, ottima comunità
    • contro: potrebbe essere lento per alcune attività (davvero)
  • Pitone:
    • pro: molti pacchetti sono in python, ottima community, veloci, ecc.
    • contro: python 3 (solo kindin ')

Ma ci sono ancora molte altre lingue come Java, ecc. Tuttavia, quanto sopra può essere più facile per iniziare, tranne C / C ++ ma che vale la pena imparare in quanto sarai in grado di usarlo con molte altre lingue (ad es. pitone, rubino, ecc.)


1

Il lavoro di programmazione consiste sia nel codice reale, sia nel modello mentale sottostante.

Insegnare a te stesso un linguaggio di programmazione è facile purché tu abbia i concetti di base su come funzionano i computer, tuttavia, al fine di dare un utile contributo a un progetto, devi anche capire il design dietro di esso.

Il mio suggerimento è quindi quello di aderire a un progetto a cui ti interessi e utilizzi spesso, e quindi iniziare con il lavoro di garanzia della qualità:

  • se è presente una segnalazione di bug piuttosto vaga, provare a replicare il problema e migliorare la descrizione. Punti bonus per un test automatizzato.
  • se esiste un vecchio bug che non ha avuto alcuna attenzione per un po ', prova a vedere se esiste ancora e aggiorna la segnalazione di bug
  • se ci sono errori testuite, prova a scoprire cosa sta succedendo per far fallire questo test

Ciò ti consentirà di conoscere la parte difficile e concettuale del progetto su una curva di apprendimento gestibile, mantenendo il tuo interesse (perché è un progetto a cui tieni) e dandoti l'accesso alla comunità intorno al progetto. Il vero linguaggio di programmazione (qualunque sia usato nel progetto) è qualcosa che puoi imparare al volo.

Per un esempio di entrata in qualche modo graduale, guarda i miei contributi al progetto Beignet . La conoscenza del linguaggio di programmazione (C / C ++ in quell'istanza) non è certamente il fattore limitante qui.


0

Dovresti imparare ... tutti loro! O meglio, meta- impara tutte le lingue. Quando conosci due o tre lingue, puoi imparare rapidamente qualsiasi nuova lingua simile a queste. Se conosci abbastanza lingue, le "virtualmente" le conosci tutte e, cosa ancora più importante, comprendi ciò che fa parte della lingua e ciò che riguarda la programmazione indipendentemente dalla lingua. In definitiva, lingue specifiche sono irrilevanti.

Quindi potresti voler imparare Java, C, Scheme, OCaml, Assembly (almeno due architetture), Forth e un po 'di Prolog, non necessariamente in questo ordine. La seconda lingua sarà la più difficile, perché dovrai imparare entrambi nuovi concetti e dimenticare i concetti che hai imparato con la prima lingua ma che hai scoperto essere sbagliati. Successivamente è facile e diventa solo più facile.

Quindi, quando si ha a che fare con uno specifico compito di sviluppo, utilizzare il linguaggio più adattato in base alla disponibilità e al supporto di compilatori e librerie, conoscenza dei collaboratori, vincoli politici della direzione e così via. La flessibilità della mente è la chiave. Conoscere molte lingue garantisce questa flessibilità.


Tutti loro? Veramente? Dai un'occhiata qui per il classico programma "HelloWorld" in pochi. La maggior parte dei programmatori conosce solo poche lingue. È importante solo conoscere quelli di cui hai bisogno.
Warren Hill,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.