Quale linguaggio orientato al Web funzionerebbe meglio con i dati binari? [chiuso]

0

Voglio creare un servizio in cui le persone possano caricare file. Tuttavia, dal momento che lo storage di file costa denaro, voglio comprimere i file in modo che occupino meno spazio. Vorrei scrivere il mio algoritmo di compressione, tuttavia, PHP non ha buoni modi per gestire i dati binari (che è necessario per molti algoritmi di compressione). Quindi mi sono chiesto, quale sarebbe stato un linguaggio migliore per creare un sito simile in questo?

Ho conoscenza di PHP (e Javascript, HTML e CSS) ma non ho esperienza con altre cose come Ruby, Perl, Python e altri linguaggi di sviluppo web.

    
posta Qqwy 27.11.2011 - 23:24
fonte

4 risposte

6

PHP supporta una varietà di algoritmi di compressione e librerie popolari di compressione , come Bzip2, LZF e Rar, e per gli scenari più comuni offre un eccellente supporto per lavorare con i dati binari. È disponibile almeno una implementazione PHP di un algoritmo di compressione , a dimostrazione che è possibile. PHP e qualsiasi altra lingua interpretata potrebbero risultare inefficienti per l'attività, ma i problemi di efficienza dipendono in gran parte dalle specifiche dell'implementazione e dall'utilizzo effettivo della libreria, per la quale non si forniscono informazioni sufficienti.

Ti consiglio di non provare a creare il tuo algoritmo di compressione e utilizzare invece una libreria stabilita, non ha senso reinventare la ruota. Non devi usare PHP se non lo vuoi, ogni lingua orientata al web ha il supporto per le librerie di compressione popolari. Puoi utilizzare Gzip e Zlib moduli principali o moduli gzip o bzip2 di Python . Non so quale tipo di supporto per la compressione abbia Ruby, ma questa domanda StackOverflow può aiutare tu, se scegli Ruby.

Ma se per qualsiasi motivo vuoi davvero scrivere il tuo algoritmo di compressione originale, dovresti probabilmente scegliere C. C è estremamente portabile * e se riesci a creare effettivamente una libreria di compressione, allora puoi usalo da PHP tramite un'estensione o in Python tramite un modulo. Entrambe le estensioni PHP e i moduli Python sono anche comunemente scritte in C, e sarebbe abbastanza facile scriverne una se si è trattato di scrivere un algoritmo di compressione. E c'è sempre l'opzione vecchia scuola della programmazione web C tramite CGI , se non ti dispiace immergerti in un mondo di dolore.

* Esistono compilatori C per quasi tutte le piattaforme immaginabili e modi per utilizzare le librerie C da quasi tutte le altre lingue.

    
risposta data 27.11.2011 - 23:33
fonte
1

Haskell, Ruby, Python, Java e altri linguaggi JVM e C # e altri linguaggi .NET hanno tutti un buon supporto per la programmazione e la programmazione web rispetto ai dati binari.

Personalmente troverei Ruby e Python il più semplice da usare.

    
risposta data 27.11.2011 - 23:34
fonte
1

Qualsiasi linguaggio che permetta di mescolare bit e byte può essere usato per scrivere un compressore. Sono abbastanza sicuro che PHP ti permetta di mescolare bit e byte, ma è passato un po 'di tempo da quando ho scritto qualcosa. Vari ambienti javascript come Node.js hanno anche il supporto per i dati binari, quindi non è questione di quale linguaggio orientato al web funzionerebbe meglio con i dati binari, ma quanta parte di una penalizzazione delle prestazioni che sei disposto a prendere scrivendo un compressore in uno.

    
risposta data 28.11.2011 - 00:18
fonte
1

In verità, è meglio che lo usi per utilizzare un pacchetto di compressione preesistente. In realtà non hai intenzione di fare meglio di gzip o bzip2 o simili.

Ricorda anche che se stanno caricando immagini, suoni o video, i file sono già compressi, quindi non sarai in grado di comprimerli più lontano.

Detto questo, se vuoi lavorare con i dati binari, controlla Erlang. È un linguaggio fantastico e ha una sintassi davvero fantastica per lavorare con i bit.

Dichiarazione di non responsabilità: Ho scritto un libro su Erlang

    
risposta data 28.11.2011 - 13:05
fonte

Leggi altre domande sui tag