Ero uno sviluppatore Java da molto tempo, ma recentemente mi sono unito a un team Haskell. Nel mondo java, se hai un grande progetto, con diversi team che lavorano su di esso, un approccio comune è quello di utilizzare un server artefatto come Maven per facilitare e velocizzare lo sviluppo. Numerosi strumenti di costruzione, come Ant, Maven, Gradle, possono costruire il progetto e carica un file jar sul server degli artefatti che può essere utilizzato dal resto del team senza dolore Perciò, dividendo il progetto in sottoprogetti più piccoli, anche il tempo di costruzione viene drasticamente ridotto.
Sul lato Haskell,
stiamo usando cabal
per costruire il progetto.
Il nostro progetto richiede circa 10-15 minuti per la realizzazione senza ottimizzazione.
Ci vogliono alcune ore se l'ottimizzazione del compilatore è attiva, il che è doloroso.
Mi chiedo, come possiamo fare la stessa cosa che facciamo in Java qui. C'è un modo semplice per compilare e caricare il binario dei pacchetti (librerie) in un server artefatto e utilizzare i binari predefiniti al momento della compilazione? So che dal momento che Haskell genera codice macchina (piuttosto che codice byte in Java) potrebbero esserci problemi di compatibilità, ma probabilmente possiamo avere file binari diversi per architetture / sistemi operativi diversi memorizzati sul server artefatto.