Portabilità: librerie / estensioni Python C / C ++ vs librerie Java di JRuby

1

Ho avuto qualche discussione con i colleghi che hanno scelto JRuby per la seguente argomentazione:

JRuby può fare uso di tutto ciò che è disponibile in Java, ergo tali programmi sono più portabili bc Java è più portabile.

Probabilmente, l'ampiezza, la capacità e la velocità delle librerie C / C ++ che sono state incorporate per Python è ancora migliore di quella disponibile in Java. Ma poiché questo è C / C ++, tutti i problemi con la portabilità riappaiono in questo modo, o almeno così è andato a finire il loro argomento.

Hai mai avuto un problema simile? cioè, problema con la portabilità delle estensioni di Python?

Personalmente, non ho mai trovato questo problema, ma YMMV, mentre teoricamente e potenzialmente questo è un problema. Sono curioso delle tue esperienze.

    
posta mrkafk 05.02.2013 - 13:10
fonte

1 risposta

1

Questa è una domanda quasi impossibile a cui rispondere in astratto. Dipende dal tipo di programmazione che stai facendo (sistemi, impresa, applicazione) e dalla tua definizione di portabilità.

Al mio attuale lavoro hanno provato JRuby proprio perché aveva la promessa di giocare bene con la JVM (prima di arrivarci). Loro abbandonarono perché, praticamente parlando, trovarono le chiamate in codice a Java piuttosto ingombranti e passarono a Groovy. Ho anche, aneddoticamente, avuto problemi nell'esecuzione di librerie Ruby pure in JRuby - per qualsiasi ragione. Ma scrivere C portatile non è facile. Ero solito eseguire MRI Ruby su Solaris e c'erano alcune librerie native che richiedevano molte modifiche prima di essere compilate.

Potresti trovare più librerie per l'interfacciamento con software "enterprise" e "enterprise" crap ... err ... sistemi in Java che in C / C ++. Ma come ha sottolineato @MrFox, Java non è un linguaggio di sistema. Se la tua definizione di portable viene eseguita su Linux e Mac OSX, molti wrapper Python hanno funzionato per me con pochi o nessun problema (eccetto per alcune cose relative a SciPy). (Ammetto di essere un dilettante pitone e se fossi più duro potrei imbattermi in altri casi limite). Se la tua definizione di portatile include OpenVMS e zVM, allora Java è la soluzione migliore.

    
risposta data 20.03.2013 - 05:08
fonte

Leggi altre domande sui tag