Dopo aver letto questa pillola ho deciso
di provare se questo D valeva o meno la pena, quindi sono andato sul sito della Digital Mars
ed ho scaricato direttamente il compilatore D , e' un file zip che va dezzippato in c:\
inoltre ho scaricato un editor generico che fa' la sintax highlight .
potete trovarlo qui
per utilizzare l-editor con d basta andare sotto Tools>Preference e dal menu di sinistra selezionare Syntax Type, selezionando una voce Empty basta riempire i tre campi con :
Description : riempire questo campo con quello che si vuole(io ad esempio ho scritto D)
Lang Spec : in questo campo mettere d.spc
Keywords: qui mettere d.key
bene, fatto cio dal menu di sinistra selezionate Tools>User Tools
e nella prima voce empty mettete
Menu Text : Compila
Command : C:\dmd\bin\dmd.exe (presupponendo abbiate installato il compilatore in C:\dmd\)
Argument : -v $(FileDir)\$(FileName)
spuntate inoltre Capture Output e Save Before execute.
fate un bel Apply e OK;ora con Ctrl+1 potrete compilare un sorgente e premendo F10 avrete una console per testarlo.
in caso il compilatore generasse errori bastera selezionare la riga desiderata e l' editor diligentemente ci portera'
sull' errore(ricordate quindi di spuntare Capture Output)

ora avrete l' editor e il compilatore funzionanti..
e la guida html del linguaggio in C:/dmd/html/d/index.html
quindi fate un po' di prove per testarlo..
io ho provato a fare qualcosa con i thread..
ecco il codice:
codice:
import std.thread;

class mio : Thread{

	char[] str;
	int delegate() dg;
	int runna(){
			for(int i=0;i<100;i++)
				printf("questo e' il thread '%.*s' di %d\n",(str~\0),i);
			return 0;
	}
	this(char[] s){
		dg=&runna;
		str=s;	
		super(dg);		
	}
}
int main (char[][] args){
	mio a=new mio("primo 3d");
	mio b= new mio("secondo 3d");
	a.start();
	b.start();
	b.wait();
	return 0;
}
.
Lati positivi di questo compilatore
  • e' veloce a compilare anche su un pc relativamente lento (P100).
  • utilizza un sistema di garbage collecting, simile a java ma molto piu' veloce di quest' ultimo..
  • ha ereditato molte cose positive del c,del c++,di java e c# tralasciando cose inutili.
  • e' un linguaggio ad oggetti ma pensato per la programmazione pratica piuttosto che alla teoria della programmazione ad oggetti, per questo esiste la possibilita di usare goto, assembly inline e altre forme di ottimizzazione del codice impossibile in altri linguaggi OOP
  • ha un set di funzioni base,la libreria PHOBOS, abbastanza buono(anche se piuttosto ridotto) tra cui alcune per le REGEXP, per i SOCKET, per i Thread e per i file zip
  • si interfaccia direttamente alle funzioni c senza wrapper intermedi
  • esistono diverse librerie in rete, tra cui la DUI che permette di usare le Gtk su sistemi win98+
  • una cosa curiosa e' che il compilatore riconosce un codice "immerso" nell' Html , cioe' ignora l' Html e estrapola il codice da esso..
    quindi e' possibile creare un ide che mostra colorazione sintattica, scritta direttamente nel sorgente,
    visualizzato magari con un browser implementato dentro..
    e il file risulta compilabile ugualmente..