Java vs Phyton?

Mi è venuta la voglia di iniziare a programmare applicazioni grafiche di un certo livello e mi chiedevo se è meglio iniziare a farlo in linguaggio Java o Phyton. Qual è meglio per gli esordienti come me? Non ho mai toccato un linguaggio di programmazione, avendo fatto il classico 

9 risposte

Classificazione
  • 1 mese fa
    Risposta preferita

    @nicoladc89

    Per affermare queste convinzioni su Java vuol dire che in ambito professionale non lo hai mai usato oppure parli per sentito dire.

    1) La documentazione, e tutto il resto lo trovi online anche per C, C++ e Phyton , riguardo alla documentazione è una prassi su tutti i linguaggi.

    2) La memoria la devi gestire e se affermi una castroneria vuol dire che non hai mai programmato in JAVA, per quanto riguarda C e C++ la gestione della memoria è diretta con la conseguenza di essere più complessa ma puoi sempre crearti degli header dove non devi scrivere il codice volta per volta.

    3) Ha una struttura talmente vincolata che per fare determinate operazioni più complesse sei costretto a scrivere una libreria in altri linguaggi per fare prima, l'esempio palese lo vedi quando inizi a programmare per dispositivi mobile.

    4) Niente puntatori, per te sarà un pregio ma quando devi creare un software impazzisci per scalare le gerarchie delle classi, certo per uno che deve solo fare il compitino da presentare al prof delle superiori te ne sbatti, poi piangi perchè devi crearti delle routine per tenere aggiornate le variabili e lavorare con miliardi di globali, ma ovviamente te non hai idea.

    5) Ho visto pochissimi software scritti in Java per ambiente desktop e nessun sito scritto in java, normalmente sono in PHP, Phyton e ASP.NET, i nuovi browser neanche supportano piu il plug-in di Java per il user side, considerando che è molto pesante per le istruzioni complesse fare girare un software in java in JVM riduce del 12% le prestazioni , immagina se deve soddisfare un migliaio di client.

    6) La sintassi è simile a C# non centra niente con C e C++7) Sarà il linguaggio più usato al mondo ma le aziende attualmente richiedono altro, considerando che Google rilascerà Fuchsia il 70% delle aziende che sviluppano software sono già migrate al nuovo OS, e credimi Se Java è attualmente in Stallo con l'uscita di Fuchsia avrà un crollo di richieste così elevato che darà inizio al suo declino.Perfino Oracle ha smesso di migliorare gli header fermandosi alla versione attuale da piu di 4 anni.

    8) Come hai affermato Java necessita una JVM e deve neccessariamente essere aggiornata per questioni di sicurezza a ogni release se non aggiorni il software con i nuovi header perche i vecchi vengono deprecati il software non funziona oppure ha problemi causando errori sgradevoli.

    Io lavoro per un'azienda come programmatrice in Java da ben 7 anni, quindi di esperienza ne ho, e continuo a preferire C e C++, anche perchè  molte librerie me le scrivo in  C e C++ che poi uso in Java visto che non esistono determinate istruzioni, che a me servono e io non vado su internet a cannibalizzare codice sorgente altrui.

  • Anonimo
    1 mese fa

    Concordo con Tip, chi inizia a programmare studia C e poi C++ perchè ti insegnano la cosa più importante: come ragionare per risolvere un codice.... almeno le basi di questi linguaggi vanno imparate

  • 1 mese fa

    In realtà non ha un càzzo senso iniziare da C e C++, è come prendere la patente facendo le guide con una Ferrari, anzi con una Formula 1 senza traction control.

    Io sono abbastanza convinto che il miglior linguaggio di programmazione per cominciare, anzi il secondo miglior linguaggio per iniziare, dopo ti dico perché, sia Java. Per questi motivi

    1. È molto ben documentato a differenza di C e C++, tu vai online e trovi tutta la documentazione ben fatta su qualsiasi cosa, trovi pure il codice sorgente delle classi. Inoltre ti insegna a documentare a tua volta ciò che fai

    2. Non devi gestire la memoria, che per un esordiente è solo una rottùra di còglioni, fa tutto la JVM, quindi non ti troverai con un segmentation fault a metà esecuzione e non dovrai perdere due ore per capire il perché. 

    3. È meglio strutturato, ti "obbliga" a fare le cose con un criterio, a separare le cose.

    4. Niente puntatori, un'altra cosa che per un esordiente è solo una rottùra di còglioni

    5. Ti obbliga fin quasi dall'inizio a cominciare a gestire le eccezioni

    6. Ci fai qualsiasi cosa, software desktop, software mobile, siti web, applicazioni web ecc... Voglio vederti a fare un sito web in C.

    7. Ha la sintassi molto simile a quella di C e C++

    8. È il linguaggio di programmazione più usato al mondo, quello per cui c'è maggior richiesta di lavoro.

    Ma come dicevo è il secondo migliore linguaggio con cui iniziare a programmare, perché il primo è l'italiano, carta e penna. Non si impara a programmare con un tutorial su un linguaggio di programmazione, per farlo si deve andare a scuola e studiare per anni. Prima di imparare a parlare in un'altra lingua, devi cominciare a pensare nel modo giusto e quello si fa con carta, penna e lingua italiana. Ma non solo devi avere delle basi matematiche, devi sapere come funziona un computer, ma prima di tutto devi imparare a elaborare ciò che hai, studiare le informazioni che possiedi e trovare il modo di usarle, che poi è il vero succo dell'informatica, lo studio e l'analisi delle informazioni. La programmazione a quel punto è solo scrivere ciò che hai analizzato, formalizzato e progettato in un'altra lingua. 

    E poi, prima ancora di mettersi a fare roba con un linguaggio di programmazione, si parte da esercizi semplici e si deve cominciare fin da subito a fare le cose con criterio, dare nomi comprensibili alle variabili, commentare e documentare il codice, scriverlo in modo pulito e strutturato, pensare fin da subito ai possibili errori ed evitarli (per dire in Java se devi prendere in input un numero, ma inserisci una lettera, lancia un errore, non fa robe a càzzo come C, quindi lo capisci subito che lì devi mettere un controllo sull'input). 

    Questo è ciò che fanno i programmatori per quasi tutto il tempo, sistemare il codice, scovare gli errori e rendere tutto sempre di più a prova di idìota. Per poter farlo però si deve avere tutto in ordine, altrimenti nessuno capisce più una sèga. È molto più importante fare le cose ordinate che farle geniali. Il primo libro da leggere quando si comincia a programmare dovrebbe essere Clean Code di Robert Cecil Martin.

    Nessuno più scrive algoritmi, gli algoritmi li hanno già scritti tutti. Ovviamente devi sapere come funzionano, quando usarli, al limite come modificarli ecc.. ma qui siamo già molto più avanti di quel che pensi.

     ___________________________

    @Lidia@F

    "vuol dire che in ambito professionale non lo hai mai usato" e chi càzzo sta parlando di ambito professionale?

    Qui stiamo parlando del miglior linguaggio per iniziare, per imparare, per fare quei quattro esercizi idioti dei primi anni di programmazione, non di ambito professionale (campo comunque in cui Java è più diffuso di C++ e C messi insieme e visto che da qualcosa si deve cominciare, tanto vale cominciare da quello che ha più richiesta). Non a caso ho scritto che iniziare da C e C++ è come prendere la patente facendo le guide con una Formula 1 senza traction control. 

    1. X è documentato meglio di Y non significa X è documentato e Y no. Ma che X ha una documentazione migliore di Y e Java ha una documentazione migliore di C e C++

    2. "Miglior linguaggio per iniziare" in Java puoi letteralmente sbattertene i cosiddetti per anni di gestire la memoria. Tradotto: niente segmentation fault mentre stai facendo un programmino del càzzo per trovare i primi 100 numeri primi. Di quello di occuperai più tardi. 

    3. Appunto

    4. "Miglior linguaggio per iniziare", ora dimmi se secondo te c'è anche un solo tizio al mondo che inizia con il dover scalare le applicazioni che fa. Cominciare a scrivere codice senza aver a che fare con i puntatori, ti consente di arrivare a farlo che sei molto più sgamato, quindi diventa più facile farlo.

    5. Nessun sito scritto in Java? No, solo Yahoo, Amazon, Twitter, Google, Youtube, Linkedin, Netflix e Ebay tanto per citarne alcuni. Un sito web non è solo client side cara mia e Java - a differenza di C e C++ - ti consente di approcciare ogni tipo di applicazione - beh, tranne le "applicazioni Kernel", ma dubito che uno cominci da quello - senza cambiare linguaggio. Nel frattempo con un solo linguaggio hai cominciato a capire come realizzare applicazioni di ogni genere, con un solo ambiente di lavoro, un solo manuale, ecc... Poi quando hai imparato, puoi dedicarti a tutto ciò che vuoi. 

    La JVM riduce le prestazioni del 12% e sai quanto ce ne frega. A parte il fatto che non è più così da anni, ma poi: "miglior linguaggio per iniziare".https://github.com/juditacs/wordcount

    6. La sintassi di Java, C#, Perl, PHP, Objective-C, Ruby, C++, Javascript si chiama C-style Syntax o C-Syntax. Sintassi sostanzialmente identica a C, quella di Java è un po' più user friendly.

    7. La principale fetta di mercato di Java non è Android, ed è comunque il linguaggio più usato al mondo e la gente non è che cambia tutta la tecnologia in due mesi eh. E poi ripeto "miglior linguaggio per iniziare".

    8. Chissenefrega, ripeto, "miglior linguaggio per iniziare"

    In sostanza prima di dare sfoggio della tua saccenteria, cerca di a. capire cosa leggi b. contestualizzare il discorso. E se hai 7 anni di esperienza, forse sarebbe pure il caso che smettessi di dire "io preferisco C e C++": è un discorso da idioti, un programmatore usa il linguaggio che deve usare, quello più adatto, se deve programmare in C, programma in C, se deve programmare in Java programma in Java, le lotte ìdiote tra linguaggi sono solo lotte idiòte. Qui lo ripeto per l'ennesima volta, parliamo di iniziare, poi con il tempo uno trova una strada, magari si finirà a lavorare in un centro di ricerca in cui si usa Python e Mathematica o in una grossa istituzione finanziaria in cui si usa COBOL. O in Haskell, Fortran, OCaml e chi più ne ha più ne metta.

    Per quanto riguarda cannibalizzare il codice altrui. 1. Ripeto, cerca di capire quello che leggi. 2. Gli algoritmi ci sono già tutti, ormai non ci si inventa più un càzzo praticamente. Solo gli imbècilli si mettono a pensare, scrivere, testare, ecc... un algoritmo che è già stato scritto 30 anni fa. Hai bisogno di un algoritmo di routing, cerchi un algoritmo di routing e lo usi, mica ti metti a studiarne uno per i cavoli tua. È per questo che a scuola ci insegnano gli algoritmi, per conoscerli e usarli, come si fa in ogni càzzo di campo scientifico. Pensi che un fisico che deve calcolare l'energia cinetica di un corpo in movimento stia lì a riscoprire la formula per farlo o si limiti usare quella che c'è già da secoli?

  • Tip
    Lv 4
    1 mese fa

    Ah! La domanda del secolo.  Java , phyton, quello, quell'altro?

    Io, ad una persona che inizia a programmare per la prima volta, consiglio il c o il c++.

    Phyton non lo consiglio per la ragione che non ti permette di entrare nel modo di pensare della programmazione. Per esempio, python non ti richiede di pensare se la variabile che stai dichiarando è un intero, una stringa, un numero double etc... Questo all'inizio magari ti sembrerà un vantaggio, ma poi quando ti trovearai a programmare qualcosa di più complesso, ti perdi subito. 

    Java invece mi sembra un linguaggio troppo complesso, una persona che non ha mai toccato un  linguaggio di programmazione si trova subito faccia a faccia con concetti come quello della classe.

     

    Infine, non pensare di poter iniziare a programmare e  fare applicazioni subito. Ho conosciuto tanti che non sapevano le basi della programmazione e si sono buttati a programmare bot di telegram , di discord , o plugin per certi videogiochi. Sbagliato ( nella mia modesta opinione). 

  • Che ne pensi delle risposte? Puoi accedere per votare la risposta.
  • 1 mese fa

    Concordo con TIP sul fatto che Java più tempo passa meno viene usato e appen inizieranno a montare sui dispositivi mobile il nuovo sistema di Google che non usa Java lo stesso Java verrà abbandonato.

    Riguardo alle applicazioni puoi crearle sia in C che in C++, inoltre imparando C impari a programmare, il che ti porterà ad un punto che il resto dei linguaggi quali, Phyton, PHP, FB,  ti risulteranno relativamente semplici  da usare.

    @nicoladc89Piacere il mio secondo nome è nessuno.Dichiarare che tutti gli algoritmi sono già stati scritti questo palesa la tua assoluta ignoranza e il fatto che dipendi così tanto dal lavoro altrui da essere cerebralmente chiuso.In poche parole per te se non esiste devi aspettare che qualcuno la crea... Sei triste.Giusto ieri ho creato un algoritmo in C che a un dizionario assegna un valore  ad ogni parola quindi converte un testo in valore numerici per comprimere testo e istruzioni inviati tramite QRCode flash e successivamente per riprogrammare telecamere wireless.Non dubito che qualcun'altro non ha già creato qualcosa di simile, ma posso mettermi a cercare su internet per mesi qualcosa che mi creo in poche ore ?

  • 1 mese fa

    Abbassa la cresta.

    Programmare non significa fare applicazioni grafiche; anzi, nel 99% dei casi si tratta di puri algoritmi di funzionamento dell'elaboratore.

    La grafica è solo l'ultimo strato, quello più esterno, di un programma. La parte più importante è quella sotto al cofano, ovvero quella che fa funzionare tutto.

    Qui tu menzioni 2 famosi linguaggi di programmazione, che probabilmente hai trovato su internet o ti ha consigliato qualche amico, dicendo che non hai mai programmato in vita tua.

    A questo punto direi che, prima di iniziare con i linguaggi (che sono l'ultima cosa che si studia e a dire il vero anche la più semplice), devi studiare per bene il funzionamento di dell'elaboratore e un po' di matematica (venendo dal classico queste cose non ti saranno famigliari, suppongo). Poi studi la programmazione, perché non hai ancora alba di cosa sia e prima di prendere in mano un linguaggio ne devi fare di strada.

    Imparare a programmare è la parte più difficile: devi infatti imparare ad analizzare e scomporre i problemi, per poi trovare gli algoritmi che li risolvono nel modo più efficiente possibile.

    E ovviamente per imparare a programmare non ti serve un computer. Ti bastano carta e penna e tanta tanta logica.

    Una volta che sei in grado di scrivere algoritmi complessi (e ti assicuro che non è una cazzáta) sei libero di prendere in mano i linguaggi che vuoi.

    Ma ti prego, non fare come la maggior parte dei principianti, che non sapendo programmare si fionda sui linguaggi di programmazione.

    Il linguaggio di programmazione è solo uno strumento per comunicare con il computer; non impari da lì a programmare.

    Crederai mica che le aziende assumano il primo pîrla che ha imparato un linguaggio da YouTube?

    Non è una cosa da tutti la programmazione. Ciao

  • 1 mese fa

    bisogna capire che intendi anche per grafica... se interfacce tra i due python forse va meglio (ma conosco poco java) se per grafica intendi video games.. forse meglio java ma con c/c++ non sbalgi di sicuro.

    come gia detto da altri se pensi di inzziare programmando grafica stai facendo un errore colossale!

  • 2 sett fa

    Impara i fondamenti della programmazione.

    I linguaggi di programmazione sono strumenti nell'arsenale di un programmatore gia.

    Java

    Java è un linguaggio di programmazione orientato agli oggetti progettato da un team di ingegneri del software guidati da James Gosling Jr. presso Sun Microsystems nel 1995.

    La filosofia alla base era "Write One, Run Anywhere" (WORA), il che significa che è stato progettato per funzionare senza alcuna modifica del codice su più macchine e piattaforme che supportano la Java Virtual Machine (JVM). Il codice Java viene compilato in bytecode, un linguaggio intermedio che viene tradotto direttamente in codice nativo.

    La sintassi di Java prende in prestito pesantemente dal C ++ e da altri linguaggi orientati agli oggetti come Smalltalk, Ada e Modula-3, da qui la sua forte influenza di tipizzazione. Pertanto, i programmatori che hanno precedenti esperienze con C ++ e quegli altri linguaggi troveranno molto comodo imparare.

    Java ha molta trazione nell'impresa, specialmente nel settore FinTech (tecnologia finanziaria).

    Esempio "Hello, World"

    Il tradizionale "Hello, World!" programma scritto in Java:

    class HelloWorldApp {

        public static void main (String [] args) {

            System.out.println ("Hello, World!"); // Stampa la stringa "Hello, World!" alla console.

        }

    }

    Python

    Python è un linguaggio di programmazione orientato agli oggetti e tipizzato dinamicamente progettato da Guido Van Rossum nel 1991. Python supporta più paradigmi di programmazione tra cui orientato agli oggetti, imperativo, funzionale e procedurale.

    A differenza del bytecode di Java, Python è un linguaggio interpretato, il che significa che utilizza un interprete. Questo lo rende un po 'più lento di Java.

    La sintassi tipizzata da papera di Python può sembrare un po 'strana per i programmatori provenienti dal mondo C / C ++, ma la maggior parte dei programmatori trova più facile e divertente lavorarci una volta capito.

    Ancora più importante, la sintassi più semplice di Python lo rende un linguaggio più produttivo di Java.

    Considera lo stesso programma "Hello, World" ora scritto in Python:

    # Questo programma stampa "Hello, World!"

    print ('Hello, World!')

    Python ha guadagnato molta trazione nel settore, specialmente nelle aree dello sviluppo di applicazioni web, sviluppo di giochi, scienza dei dati, apprendimento automatico e analisi dei dati.

    Entrambe le lingue hanno il loro posto nel toolkit di un programmatore. Per me, non importa quale dovresti imparare per primo. Come programmatore di carriera, incontrerai progetti che richiedono la conoscenza di Java e ci saranno progetti che richiedono la conoscenza di Python.

    Ogni programmatore ha il proprio stile di apprendimento personale. Se ti piace imparare cose "più facili", inizierai con Python. D'altra parte, se preferisci imparare nel modo più duro, opterai per Java.

    Entrambi sono linguaggi di programmazione maturi che hanno dato ai programmatori molte soddisfazioni.

    Una cosa è certa: nessun linguaggio di programmazione è migliore dell'altro. Anche se setacci Internet alla ricerca di visualizzazioni, non otterrai mai una risposta completa. Queste sono decisioni personali.

    I linguaggi di programmazione hanno innescato guerre di religione con ogni persona che tira nella propria direzione. Una volta che impari a "programmare", questo cesserà di essere un problema per te.

    È solo una questione di preferenza.

  • 1 mese fa

    Secondo me per iniziare meglio python 

Altre domande? Fai una domanda e ottieni le risposte che cerchi.