Differences between D2.0 and D1.0

Robert Fraser fraserofthenight at gmail.com
Mon Nov 19 14:23:00 PST 2007


Paul Anderson wrote:
> Is there a summary somewhere of the differences between 1.0xx and 2.0xx?
> 
> This would be handy for someone making a choice for development:  
> 
> Does 2.0 have a "must have" feature that 1.0 doesn't? 
> 
> Is the feature I'm relying on in 1.0 going to go away someday? 
> 
> Is the feature I like only in 2.0 and subject to change or elimination?
> 
> I know the intent of the 1.0 version was to have a "stable" base, but having 2.0 in the background doesn't make me confident about committing to 1.0. I'd like to have a place where I could see what I was getting/giving up.
> 
> Paul

Check the changelog for 2.0; you'll see a number of features. The big 
ones I think are:

* Const (which is going to be changing in the next few releases)
* C++ interface
* __traits
* Closures
* Overload sets
* Foreach range statement
* opStar

1.0 is stable, and will remain so. Most 1.0 features will probably 
remain in 2.0, also. Right now, 2.0 is in turmoil (the const thing is 
going to change soon), so I'd recommend sticking to 1.0 if you're new or 
want to do any real work, while 2.0 is great for exploring & smaller 
projects where maintainability isn't as big a deal.

1.0 does get a few breaking changes, though -- most notably, a paser 
bugfix eliminated the ability to do:

version(Windows) { extern(Windows): }
else { extern(C): }

It also changed the .init default property from a variable initializer 
to a type initializer, which broke some code (and killed a very cool 
feature, IMO).



More information about the Digitalmars-d mailing list