Association for Computing Machinery ha annunciato che Python è molto più popolare di Java o C++ nelle Università statunitensi.

Python
Sono molte le applicazioni presenti nei repository Linux scritte in Python, noto linguaggio di programmazione molto apprezzato dai developer del sistema operativo libero e non solo. A quanto pare Python è un linguaggio di programmazione molto più popolare di Java, questo almeno nelle università statunitensi. A segnalarlo è un recente report rilasciato dall’Association for Computing Machinery (ACM) indicando come nelle università statunitensi Python sia molto più utilizzato nei vari corsi d’informatica confronto Java, C++ ecc.

Stando alla Association for Computing Machinery (ACM) Python viene utilizzato in ben 8 corsi su 10, stessa cosa sui corsi online dove il linguaggio di alto livello sviluppato da Guido van Rossum viene da Coursera, edX, Udacity, e molti altri.

Python non solo supera Java per popolarità ma anche C++, inoltre il linguaggio di programmazione viene sempre più richiesto dalle aziende come ad esempio istituti finanziari, ecc.

Python è il linguaggio di programmazione del futuro? 

  • Matteo Valeri

    spero di no, sto imparando proprio ora a programmare con Java

    • vasco

      sei ancora in tempo per cambiare e tornare sulla strada giusta:)comnq in bocca lupo

    • grogdunn

      continua pure con java 🙂 e magari buttaci dentro Java 8 ^^ che comunque male non fa ^^ per imparare ad usare il pitone sei sempre in tempo 🙂

  • Matteo Iervasi

    Noo! Sono da poco passato da C++ a Java e mi sto trovando veramente bene con questo linguaggio!

    Pyhton com’è? Carino? Perchè pensavo che vorrei provarlo in futuro…

    • la sintassi di python è molto semplice, se conosci java e sai usare bene gli oggetti, la programmazione multihread ecc… alla fine un linguaggio di programmazione vale l’altro, perchè devi solo imparare la nuova sintassi

    • grogdunn

      per alcune cose è molto comodo (visto che ha una valanga di librerie) ma personalmente non mi ci trovo tantissimo…

    • TopoRuggente

      Vale la pena, anche se non lo uso molto devo ammettere che ti permette di raggiungere velocemente alcuni degli obiettivi.

      Potendo poi includere codice in C, C++ le possibilità sono molte.

      Magari non è la soluzione definitiva, ma una spolveratina la merita.

  • Fabio Da Ronta

    Io l’adoro. Perfettamente integrato con linux, semplice, potente e versatile. Come IDE PYCHARME è il top..anche nella versione free. Pip è un gestore di estensioni potentissimo… Insomma…un linguaggio niente male per le applicazioni di backend. Per il front-end ancora c’è da lavorare. Sicuramente Tornado e Django, hanno ridato nuova vita ad un linguaggio che sembrava in decadenza.

    • asd

      C’è anche web2py, semplice, ben documentato, compatibile all’indietro, non so quanto tengauna sua app in termini di traffico ma per applicazioni a basso traffico o che possono stare dietro a un proxy non ci sono problemi. Tanto per rimanere in tema, è nato come materiale didattico…

    • Marco

      PyCharm forse intendevi

      • Fabio Da Ronta

        Si…correttore android maledetto

        • SGAB

          Ecco perchè non lo uso!

  • SGAB

    A me piacciono il C e il Python.

  • Ilgard

    No.
    È un linguaggio di scripting: per molte cose è più immediato di un linguaggio di programmazione tradizionale, è normale che diventi più popolare.
    Ma è anche decisamente più inefficiente senza considerare che è molto meno portabile di Java.
    Il mio parere è che con l’aumento di potenza a disposizione dell’utenza si punterà sempre di più su linguaggi che sfruttino macchine virtuali che garantiscono una più facile manutenzione ed una maggiore portabilità.

    • abral

      Guarda che Python è basato su VM esattamente come Java.

  • Eugenio

    Bisogna considerare che i numeri, naturalmente non vanno mai
    di pari passo col miglior linguaggio… ma col linguaggio che
    generalmente è più facile da imparare e da usare soprattutto iniziando a contare i principianti/hobbisti che sono di fatto come numero la fetta di torta
    più grande.

    Personalmente (quindi non fatemene una colpa se siete contrari):
    – Python è l’unico linguaggio sotto interprete che perdono e accetto in ambiente GNU/Linux. Utile per tutti gli ambiti dove è richiesta una certa velocità di programmazione e dove le prestazioni possono stare bene al secondo posto.
    – Java certamente superiore… come sintassi è fantastico, il top quasi! Ma non ho mai digerito il suo environment fatto a mò di scatola di sardine, quindi alla fine lo evito perché limita la mia fantasia.

    • Fabio Da Ronta

      Oddio sulle prestazioni parliamone. Se ti serve un webserver con altissime prestazioni c’è solo tornado. Ed è in python.

    • abral

      Python viene spesso usato per fare calcoli scientifici.

      • Eugenio

        Non mi meraviglia affatto

  • Eugenio

    “Python è il linguaggio di programmazione del futuro?”: come spiegato in atro commento anche io rispondo NO secco. Non perché non lo è, ma perché non ha senso la domanda.

    • SGAB

      Un Kernel non si può scrivere in Python o Java, il C e Assembly bastano e sono già futuristici dal passato.

      • abral

        I kernel si possono scrivere anche in Python o Java, con delle piccole parti in Assembly.

        • SGAB

          Davvero? Ma bisognerebbe includere un interprete Python, e in più sarebbe lento.

          • abral

            Certo, in Python non l’ho mai visto, però ad esempio in Java esiste. Non sono poi così lenti.

        • Kopacevo

          I kernel (come qualsiasi altro programma) si possono scrivere in tutto quello che vuoi. I problemi li vedi dopo però… ecco perché Linux (come tutti gli OS maturi) ha scelto una strada più sicura per le sue fondamenta: C++ ed Assemmbly

          • abral

            Anche perché quando Linux è stato sviluppato i linguaggi come Java erano veramente molto più lenti. Ora la differenza si è ridotta molto.
            Utilizzare un linguaggio come Java o Python per scrivere parti del kernel potrebbe essere in realtà un’ottima idea, perché aumenterebbe molto la manutenibilità del codice (e anche la velocità di sviluppo).

  • domenico

    personalmente java non lo sopporto preferisco di gran lunga il c++
    python e´ fichissimo e per cominciare e´ ideale, meglio di java sicuro

    • perchè ritieni che sia meglio di java?
      secondo me il java ha enormi vantaggi rispetto al c++, ovviamente ha anche degli svantaggi, però tra java e python gli svantaggi delle performance rispetto al C/C++ sono più o meno gli stessi ma java è praticamente ovunque oggigiorno.

      secondo me è meglio insegnare il java, perchè imparare da soli il java è più difficile che imparare da soli il python, anche se alla fine la programmazione è sempre quella, però il java secondo me è più difficile e anche di molto.
      il python me lo sono studiato da autodidatta e non ho avuto grosse difficoltà, mentre invece il java da autodidatta sarebbe stato molto più difficile, infatti sono contento che l’ho imparato in università, perchè quando arrivi a programmare multithread non è tanto immediato e semplice, specialmente per i problemi che si possono incorrere

  • Roberto

    Dire che e’ “il linguaggio del futuro” e’ grossolano. Diciamo che ha un compromesso di pro e contro che a molti sta a far gola.

  • ale

    Con il python non mi ci trovo molto devo dire, anche per come è strutturato, per il fatto che bisogna indentare obbligatoriamente ed altre cose, insomma come linguaggio di scripting preferisco di gran lunga il “there’s more than one way to do it” del Perl che è opposto alla filosofia python, ed è anche molto più potente, però anche python è valido, soprattutto per quelli che iniziano a programmare (anche se io sono dell’idea che uno debba partire dal c)

    • TopoRuggente

      Quoto in pieno.
      C sicuramente è la base, PERL è molto più potente, ma ha un difetto o il programmatore è “ordinato” o il codice diventa illeggibile in breve tempo.

      Python ha il vantaggio di semplificare la lettura del sorgente … che per un linguaggio di script non è cosa da poco.

    • “…per il fatto che bisogna indentare obbligatoriament…”
      perchè normalmente tu non usi l’indentazione nel tuo codice?
      indentazione e commenti sono 2 cose fondamentali nella programmazione, senza di questi diventa solo un mucchio di lettere senza senso, perchè sia te che altri che eventualmente devono in futuro metterci mano, se manca uno di questi 2 diventa difficile o impossibile metterci mano per modificare.

  • Marco

    Io vorrei incominciare a sviluppare web su linux. Metto in chiaro fin da subito che vomito (per allergia) al solo sentir nominare php, perl e java x platform. C’è qualcosa di potente? Che mi consigliate? si può in c++?

    • SGAB

      No, le Web Apps sono interpretate mentre il C++ è compilato. Potresti provare con l’HTML5 r JavaScript (meglio il primo).

      • Bred01

        xD

      • abral

        JavaScript è il linguaggio di programmazione per HTML5, un po’ difficile usare HTML5 senza usare JavaScript…

    • ale

      Si puoi in c++, configura il web server per eseguire programmi cgi e a quel punto puoi usare qualsiasi linguaggio, ovviamente per il c/c++ prima lo devi compilare e poi mettere nella directory cgi del web server

      Anche se alla fine il c++ non è il metodo migliore per fare queste cose, un linguaggio scripting andrebbe meglio

      • Marco

        Ok, ma così non dovrei anche costruirmi un environment per farmi servizi complessi e che posso riusare in più applicazioni business? speravo che ci fosse qualcosa di fatto ma per ora mi sembra che di così completo esista purtroppo solo J2EE

        • ale

          Già, per quello ti ho detto che non è il metodo migliore, usa un linguaggio di scripting o java e vai mille volte meglio

          • Marco

            No il punto è che vorrei avere tutta l’artiglieria pronta che possa eseguire anche lavori molto complessi su server. Lo scripting lo lascerei solo come guscio che vede l’utente.

          • abral

            Se hai tutta questa esperienza, fatti semplicemente le parti critiche in C++ e tutto il resto in Java…

          • Marco

            Infatti… mi sembra l’ultima spiaggia, conosco queste possibilità, ma vorrei evitare

          • abral

            Perché vorresti evitare?

          • Marco

            Perché sono sempre alla perenne ricerca di qualcosa di puro, sintetico e completo che mi eviti miscugli di varia natura. Lo so che hai ragione anche a farmi questa domanda e non sei il primo a farmela… in questo caso dovrei ricorrere a tecniche di marshalling su java con tutti i rischi sulla sicurezza

          • abral

            Certo molto più sicuro che fare tutto in C++! Puoi anche usare JavaScript con node.js o Python con Tornado e farti solo le parti critiche in C++.

            P.S.: Su Windows cosa hai usato?

          • Marco

            Il .Net Framework 4.5 compilato in C++ e SQL Server esteso con librerie in sovrapposizione alle normali SP per interagire direttamente con i dati massivi

          • abral

            Che intendi per “.NET Framework 4.5 compilato in C++”? Intendi che hai scritto il tuo software in C++/CLI?

    • TopoRuggente

      Credo che sia meglio che prima tu ti chiarisca le idee.

      La tua frase è tipo, vorrei abbandonare Windows, ma i sistemi operativi Posix mi fanno schifo …

      La possibilità ce l’hai, ma nel tempo che tu scrivi una app in C++ in Java, PHP, Ruby o Perl sono già alla quinta release.

    • Maudit

      Non vuol dire un granché “sviluppare web su linux”, ogni cosa ha il suo strumento. Tu cosa vuoi fare?
      In c++ si può, ma di certo non ci farei la “pagina del mio cane” con i “commenti dei miei amici”.

      • Marco

        Lavorare

        • Marco

          Va beh, lo dico. Devo creare una piattaforma web capace di comunicare (lato server con accesso diretto ai socket) con un numero pressoché infinito di centrali telefoniche wholesale sviluppate nei più disparati linguaggi. Devo quindi creare una micro rete tra servizi comunicanti tra loro. Ogni servizio svolge un compito (solitamente abbastanza complesso e corposo) su server dedicati. I risultati (GB di informazioni) dell’operato gestito devono confluire sul web server centrale che a sua volta interfaccia i vari livelli di controllo dall’admin agli utenti finali esponendo nuovi servizi richiamabili da infiniti siti web che alla fine svolgono il compito minore. E questi ultimi per me possono anche essere in php, java, ruby non m’importa.

          • Maudit

            Ma non volevi solo “cominciare”? Non so se stai facendo una domanda retorica, in caso contrario prima di domandarti “quale linguaggio” dovresti documentarti sulle architetture utilizzate per gestire sistemi distribuiti, verificare quale si adatta maggiormente al tuo progetto e poi scegliere il linguaggio.
            Non credo che avresti dei dubbi, perché il linguaggio da utilizzare verrebbe da sè. In C e C++ (aggiungiamo Java) puoi fare qualsiasi cosa, non escluderei però la possibilità che esistano linguaggi specializzati (o librerie specifiche, stando a c++ e java) per gestire situazioni come quella che hai indicato.

          • Marco

            Incominciare su “Linux” perché voglio espandermi. Il progetto che ho citato in verità esiste, l’ho già fatto ma gira su una rete di Windows server 2012. La scommessa è riuscire a mettere insieme nella nube anche Linux e quindi sono alla ricerca “non tanto di linguaggi” perché tanto ho già un’ottima base, ma di environment server completi java escluso.. per il semplice motivo che ci ho già provato, ma sbrocca non appena i dati aumentano oltre misura… php, perl e ruby non ne parliamo poi… non reggono.

          • Marco

            Per environment intendo architettura… tutti mi confermano che l’unica completa su Linux è solo java… e il mio morale va giù allora perché ho già provato. C++ lato server su Linux non gode di grande fama ed è privo di architetture complete, ci metterei mesi a sviluppare i primi moduli. Almeno per quello che sono riuscito a sapere.

          • Maudit

            L’architettura in informatica è, genericamente parlando, la definizione di come le parti di un sistema sono organizzate e comunicano fra loro.
            E’ una definizione, non l’implementazione concreta.
            Parlando di architetture avevo frainteso la portata del tuo progetto, quello che stai cercando tu è un framework con le funzioni belle e pronte.
            Quali sono le incompletezze che hai riscontrato in c++ sotto linux? A me non risulta che manchino le librerie, nè che siano incomplete.

          • Marco

            Ho bisogno di un framework per metà per velocizzare le parti più futili… e come ho scritto sopra l’altra metà deve avere accesso diretto alla memoria e conoscere la concorrenza computativa degli altri server. Quindi il framework lo lascio da parte per lavori delicati che altrimenti mi vanificherebbe tutto il progetto.

          • Maudit

            Ok, ma quali sono le incompletezze del c++ allora?
            Non ho capito con esattezza i termini del problema, ma probabilmente dovresti dare un’occhiata alle librerie ACE. Comunque, buona fortuna.

          • abral

            Da come parla mi sa proprio che sta inventando cose.

          • Marco

            Fammi un esempio di cosa mi sono inventato

          • abral

            Nel senso che parli in maniera strana, prima facendo credere di non sapere nulla, poi dicendo che hai fatto dei sistemi complessi, perché non spiegarsi bene da subito?

          • Marco

            C’è un motivo: il mio quesito vuole essere uno sprone agli sviluppatori di linux a fare qualcosa di più completo, potente, libero e meno incapsulato. E poi non credo ci sia bisogno di aggiungere altro alla semplice domanda: oltre a php, perl,(ruby),java, ecc… c’è qualcosa di meglio per incominciare (in modo pesante sottinteso)?

          • abral

            Beh, se chiedi un linguaggio “per incominciare” e chiedi “si può fare in C++?”, fai credere ai tuoi interlocutori che tu non hai alcuna conoscenza in merito… Invece puoi dire “ho già conoscenze in ambito Windows, vorrei iniziare anche su Linux, su Windows uso AAA con BBB, cosa mi consigliate su Linux che abbia più o meno le stesse caratteristiche?”.

          • Marco

            Boh veramente con la mia ricerca vorrei anche riuscire a dimostrare a me stesso che linux è meglio delle soluzioni windows… quindi lascio carta bianca a tutti nel rispondermi, poi valuto e rispondo a chi è serio.

          • abral

            Ma se non ti spieghi non troverai mai una risposta adatta…

          • Maudit

            Java in quel contesto non può “sbroccare”, se il tuo programma lo fa, è più probabile che il motivo sia un problema di configurazione (di linux) o di come hai implementato il codice. Ammesso che tu stia parlando seriamente, se fossi in te verificherei questa possibilità.
            PHP, perl e ruby non è che “non reggono”: con quello che vuoi realizzare tu e rispetto alla scala di “infiniti” che hai indicato, hanno poco o nulla a che fare.

          • Marco

            Invece si sbroccano perché devo trattare con dati incapsulati (tecnicamente boxing) il meno
            possibile con gestione diretta dei puntatori perché devo inoltre tenere
            conto dei limiti del server e di quanti dati (gestiti direttamente)
            riesce a contenere ed elaborare velocemente superando in prestazioni le
            computazioni di grandi masse di dati come se fossero su sql ma gestite
            almeno 100 volte più velocemente. Se il trattamento dei dati è più lento di quello ottenibile su sql, il gioco non vale la candela. Su Microsoft riuscivo a portare le mie librerie c++ su sql per potenziarlo enormemente. In Linux forse questo me lo sogno, ma spero di sbagliarmi.

    • Matteo

      Vomiti sentir nominare php? Se non vuoi imparare il php o l’asp allora non incominciare a fare sviluppo web.

      P.S. sono un web developer

      • Marco

        non ho nominato asp

        • Matteo

          Nemmeno l’sql ma un ambito web è un linguaggio abbastanza importante…

          • Marco

            D’accordissimo 😉

    • abral

      Certo che si può in C++… Ogni linguaggio può fare tutto. Io ti consiglio JavaScript con node.js, c’è una comunità enorme di sviluppatori su github, quindi troveresti tantissimo codice da riusare.

  • SGAB

    Sembra ci sia un Down del servizio di cloud storage mega.

    • Massimo A. Carofano

      Funziona perfettamente, devi cambiare i DNS del tuo pc (o router).
      Ad ogni modo, siamo offtopic!

    • non è un down di mega, ma in italia lo hanno bloccato come tanti altri servizi cloud e quindi devi cambiare dns

  • ekerazha

    Python, il linguaggio per chi non è in grado di programmare.

    • Simone

      “Python è una antica parola africana che significa ‘C++ è troppo complicato'”

    • Iacopo

      Eh sì, tipo gli sviluppatori di Dropbox e Youtube.

  • EnricoD

    A me invece al corso di Informatica hanno insegnato Fortran 95 alla male peggio, invece ricordo che java andava di moda nei corsi ed esercitazioni dei miei ex coinquilini ingegneri del software

    • TopoRuggente

      Fortran 77 !!!

      • EnricoD

        ??

  • Hombre Maledicto

    Python è ottimo per insegnare “programmazione” a chi è totalmente digiuno – è strutturato per essere semplice, la sintassi è pulita ed è ultraconveniente se si è pigri , dato che si trascina dietro IDLE ed ha una shell interattiva.

    Stando alla tendenza, quindi, il linguaggio del futuro è LOLCODE 😉

    • darindandan

      Nella mia facoltà hanno iniziato ad insegnarlo l’anno scorso, al secondo anno è arrivata gente che ancora non ha capito una mazza e si ritrovano a programmare in Java come se fosse Python… Devo dire che rimpiango i tempi in cui studiavamo C con tutti i suoi bei puntatori a puntatori XD

      • ale

        Il C secondo me resta il linguaggio da dove cominciare a programmare, anche perchè ti insegna la logica della macchina con i puntatori, la gestione della memoria, ecc, imparato quello tutti gli altri linguaggi vengono da se, secondo me uno non può dirsi programmatore se non sa il c, i linguaggi di alto livello hanno un astrazione troppo elevata, esistono “programmatori” abituati a python ed altri linguaggi di altissimo livello che non sanno la differenza fra byte e un bit, non sanno cos’è un indirizzo di memoria e non sanno nemmeno fare conversioni in binario o esecadecimale, che dovrebbero essere le basi secondo me, inutile imparasi a memoria le funzioni del python se non si sa nemmeno cosa si sta facendo, per quello c’è tempo dopo, io consiglio sempre di partire con il c, cosa che fra l’altro ho fatto io a suo tempo, quando avevno ancora 15 anni, il primo linguaggio che ho imparato è stato appunto il c, ed anche da autodidatta, mi ero comprato il mitico K&R ed avevo imparato dopo circa un anno che ci andavo dietro, ma erano anche altri tempi, python ed altri linguaggi c’erano ma non li conosceva nessuno

  • Cristian Puddu

    Da noi (e credo non solo in Italia) ci sono state un po’ di cosette che hanno rallentato questo linguaggio, che altrimenti sarebbe esploso un po’ ovunque non solo a livello didattico ma anche nel mondo lavorativo (che non dimentichiamo sono due cose diverse)…
    1) la nascita dei due rami 2 e 3. E’ stato un grave errore.
    2) il fatto che non si è data la giusta attenzione al mondo mobile. (si esiste qualcosa, ma non è paragonabile agli altri framework). Mentre Phonegap, Corona sdk e tutti gli altri esplodevano, Python era lì immobile incapace di produrre qualcosa di realmente utile.

    • floriano

      python non mi convince, sia come prestazioni, sia come sintassi, sia come sviluppo improvvisato (ramo 2/3).. lo vedo bene solo nei gestionali per sostituirte il visual basic, come software di sistema troppa cpu e ram

      • abral

        Dipende sempre da cosa devi fare. Se devi sviluppare un client email, Python può andare bene. Se devi sviluppare un sofware per cui le prestazioni sono critiche, al massimo Python lo puoi usare per effettuare prototipi, oppure puoi sviluppare i moduli critici in C e il resto in Python (come viene spesso fatto nelle applicazioni scientifiche che usano Python).

  • FG

    Nella mia scuola (liceo scientifico) insegnano il C.
    Secondo voi hanno fatto la scelta giusta?

    • floriano

      si

    • SGAB

      Il C è un ottimo linguaggi può essere ottimizzato, ed è più leggero del C++, portabile (solo da sorgente) e complicato,ti permette di abituarti alla programmazione e di passare facilente ad un linguaggio più semplice (Python, Java) o a uno più difficile (Assembly).
      Bella la tua scuola, dove vivi?

    • Matteo

      E’ giusto farlo in una scuola superiore. Io ho fatto un istituto tecnico con indirizzo elettronico e mi hanno insegnato interfacciarmi con un microcontrollore in C e inseguto in Assembly (comandare dei nastri trasportatori in Assembly non era cosa da poco).

      Il problema è che te lo rifilano anche a ingegneria per un anno intero, senza passare a cose più recenti come per esempio il python.
      Cmq si, imparare a usare il C ti aiuta a ragionare a livello di programmazione.

      • abral

        Beh “recenti” che significa? C viene usato ancora tantissimo in tutti gli ambiti, non conoscerlo a fondo significherebbe una mancanza enorme.

  • edoardo

    portabilità!

    • Phoenix

      Hai ragione. Maaaa … la portabilità spesso ha un prezzo ed è bella solo quando i livelli di astrazione sono inesistenti … è per questo motivo che sia python, sia java perdono. Perdono perché mascherano con la loro realtà virtuale agli occhi di chi la vede come credibile. Se si va avanti così, continueremo ad assistere alla produzione di macchine sempre più potenti a livello hardware, con software che in efficienza invece migliora a passo di lumaca … chissà perché??? Al giorno d’oggi i computer attuali potrebbero essere molto più prestanti se non fossero così pieni di labirinti per fare 1 + 1 = 2. Questo mi dispiace 🙁

No more articles