2010-04-22 14 views
8

Ho sentito dire che la libreria standard Java è più grande di quella di Python. Questo mi rende curioso di cosa manca in Python?Cosa c'è nella libreria standard Java a cui mancano Python?

+4

... OMG CORBA? ;-) –

+1

mi manca la battuta – Tshepang

+2

CORBA è probabilmente la cosa più inutile che fa parte della libreria standard di Java - nessuno la usa più, ma è troppo tardi per rimuoverla a causa degli standard di compatibilità a ritroso di Java. Sarebbe stato meglio per essere una libreria esterna. Sono i pacchetti org.omg. * In http://java.sun.com/javase/6/docs/api/overview-summary.html –

risposta

4

Python arriva anche Con batterie incluse ... L'unico posto in cui ho sentito che Python manca è un buon toolkit GUI (no, TK non è paragonabile a Swing xD).

+0

Cosa c'è di sbagliato in PyGtk? –

+1

@Matt, PyGTK non fa parte di stdlib. – Tshepang

3

Python manca di una solida implementazione XML (con supporto XSLT e XPATH completo). Lo stdlib Python ha alcune implementazioni decenti per lavorare con XML (parser DOM, parser SAX e un tree builder chiamato ElementTree), ma XML più avanzato richiede una libreria di terze parti. Ho usato 4XSLT e ora rimando a LXML quando ho bisogno di fare del vero lavoro XML in Python.

+1

Concordo con ciò e aggiungo che in una nota correlata l'implementazione SOAP non è forte. Tuttavia, ci sono buoni pacchetti (gratuiti) di terze parti che riprendono il gioco. E spesso quelli finiscono come parte della lib standard. – zenWeasel

+0

Il parser DOM (se si intende [xml.dom.minidom] (http://docs.python.org/library/xml.dom.minidom.html)) non è affatto buono. Se vuoi analizzare un documento ElementTree è l'unica cosa decente nella libreria standard. –

8

L'unica pecca in Python è che in Python manca un vero metodo di distribuzione canonica. (Sì, ci sono quelli buoni là fuori, ma niente che sia davvero solido come una roccia).

Quale può ostacolare la sua adozione in alcuni ambienti Enterprise.

+2

L'imballaggio e la distribuzione hanno un disperato bisogno di aiuto. Ci sono alcuni con una visione in avanti - speriamo che ci riescano. –

6

Java fornisce numerose implementazioni di interfacce per i tipi di base. Java ha un ArrayList e un elenco a collegamento singolo e un elenco a doppio collegamento, mentre Python ha solo un elenco. Java include molteplici implementazioni di mappe come TreeMap o LinkedHashMap, mentre Python generalmente si attacca alla singola implementazione di dict. Un ordered dictionary was proposed è ora parte di Python 3.1, ma in generale, Java ha un insieme più ricco di collezioni e classi base.

In difesa di Python, tuttavia, la necessità di classi base e interfacce più rigorosamente definite è molto meno necessaria con l'approccio a dattilografia dinamica (in cui le interfacce sono spesso accettate implicitamente).

+2

Inoltre, non dimenticare le raccolte di Java relative alla concorrenza nel pacchetto java.util.concurrent. –

+0

Direi che avere una sola implementazione dei tipi di raccolta di base è un effetto collaterale di supportarli come tipi predefiniti con lo zucchero della sintassi in giro ... Sinceramente, preferisco avere un solo tipo di dizionario e poter usare { } per il costruttore che avere tre o quattro tipi e utilizzare una sintassi più dettagliata (uguale per gli elenchi). – fortran

+0

Esistono anche linguaggi la cui sintassi è così flessibile, che i tipi di libreria appaiono come se fossero tipi incorporati. Ad esempio Scala. –

Problemi correlati