[Python] Python vs Java

Alessandro Re ale a ale-re.net
Lun 29 Dic 2014 15:35:51 CET


2014-12-29 13:31 GMT+01:00 Carlos Catucci <carlos.catucci a gmail.com>:
>
> 2014-12-29 12:12 GMT+01:00 Alessandro Re <ale a ale-re.net>:
>>
>> quanto la sintassi del linguaggio è adatta al problema? Java e
>> Python, seppure piuttosto diversi in termini di aspetto estetico,
>> ricadono nella stessa famiglia di linguaggi multi-paradigma
>> "imperativi/oggetti/funzionali", quindi anche da questo punto di vista
>> sono fondamentalmente equivalenti... Chi sostiene il contrario, di
>> solito, è perché confonde questo punto con il punto successivo:
>
>
> Mi permetto di dissentire. In entrambi tutto e' a oggetti, solo che in
> Python non devi definire una classe per scrivere Hello World!
> Io ho usato Java dalla 1.2 alla 1.5. Gia' li era diventato un bailamme
> ingestibile. Senza contare tutto il tempo che si perdeva nelle
> ricompiilazioni per fare un semplice test funzionale.
> Con python ho trovato uno strumento perfetto. Lo so che ci sono cose per cui
> non e' perfetto, ma si puo' integrare bene con piccole parti scritte con
> altri linguaggi.

"Tutto è a oggetti" è una cosa un po' forte da dire... È vero che in
Java hai bisogno di definire una classe per fare un hello world, ma di
fatto puoi fare un programma imperativo come nel caro vecchio C usando
solo metodi statici. In Python hai metodi, ma anche funzioni.

Ora, l'OOP per come lo vedo è solo un modo di organizzare le cose, e a
me sembra che sia in Java che Python si possano scrivere dei bei
programmoni assolutamente senza organizzare le cose in classi e
oggetti... Quindi, come dicevo, ritengo che entrambi i linguaggi siano
piuttosto flessibili sul paradigma che si può usare... E Java 1.8, se
non erro, innalza le funzioni ad elementi di prima classe portando
Java alla programmazione funzionale vera e propria.

> Sul deploy, si lo so che ci sono dipendenze, ma non e' che java ne sia poi
> cosi' privo. Dipende sempre dagli approcci.
> Poi nessuna guerra di religione.

Bhe con java si ha almeno una dipendenza obbligatoria: la jvm :D
Quindi non ne é privo, ma per molte cose quella basta e avanza, e
spesso il deploy viene fatto fornendo tutte le dipendenze necessarie
con l'eseguibile; la JVM è l'unica cosa "grossa" che l'utente deve
procurarsi. E secondo me è anche un buon concetto.

@Marco Ippolito, per tornare alla tua questione, ovviamente non so che
uso fate dei pacchetti NLP di Stanford, ma alcuni degli algoritmi
usati in quel campo non sono molto leggeri dal punto di vista
computazionale... Quindi magari non è affatto un problema di Java.


Maggiori informazioni sulla lista Python