Mi piace molto l'ambiente live smalltalk (anche se ho solo sperimentato un po 'con Pharo), ma c'è una cosa che non posso davvero usare per lo sviluppo di tutti i giorni. Sembra che non sia possibile creare un eseguibile standalone nativo dal sistema smalltalk. L'eseguibile standalone nativo significa creare un singolo file eseguibile (PE su Windows, ELF su linux, Mach-O su macosx), che un utente potrebbe eseguire facendo doppio clic su di esso senza la necessità di installare ambienti di esecuzione aggiuntivi. Mi manca qualcosa ed è infatti possibile creare un eseguibile standalone nativo con smalltalk?Eseguibile standalone nativo con smalltalk?
Se parliamo di Pharo in particolare. So che l'ambiente di Pharo include un compilatore just in time efficiente (che genera un vero codice nativo dal bytecode VM di Pharo), so che l'immagine della VM può essere ridotta tagliando il codice che la mia applicazione non avrà mai bisogno. Quindi in pratica abbiamo già quasi tutto (tranne il linker credo) per poter creare eseguibili autonomi nativi. La compilazione incrociata non dovrebbe essere un problema anche se inseriremo tutti gli elementi di generazione del codice (per tutti i processori di destinazione) nell'immagine.
So che nel mondo smalltalk è considerata una buona cosa distribuire l'intera immagine VM separatamente dall'ambiente runtime, in modo che l'utente possa hackerare il software che sta utilizzando. Tuttavia non vedo alcun valido motivo per cui non dovrebbe essere possibile fornire il tuo software smalltalk come eseguibile indipendente compilato nativo. Potresti spiegarmi perché non è una cosa comune da fare nel mondo di smalltalk? Esiste qualche buona implementazione smalltalk che permetta di farlo?
Per riassumere tutto questo. Sogno un ambiente live smalltalk, dove potrei sviluppare e testare il mio software, ma poi (quando il software è effettivamente pronto per la consegna) cross-compilo a eseguibili nativi per windows, linux e macosx dalla mia singola macchina di sviluppo. Sarebbe davvero fantastico.
Questo non è specifico per Smalltalk, ma per alcuni dialetti. Esistono diversi prodotti Smalltalk in un file .exe (ad esempio). –