vibe.d 0.7.24 released

Sönke Ludwig via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Aug 10 11:23:25 PDT 2015


Am 10.08.2015 um 19:32 schrieb Adam D. Ruppe:
> On Monday, 10 August 2015 at 17:27:56 UTC, Sönke Ludwig wrote:
>>  - Json.opDispatch and Bson.opDispatch are scheduled for deprecation
>
> What was your reason for doing that? I find they are kinda convenient
> but also have a way of messing with compile time duck typing so I
> restrict it.... but overall, I still think they're kinda cool.

The main technical reason was CT reflections issues (the particular case 
was that they had always been erroneously recognized as input ranges) 
and the fact that any API change involving the Json struct would 
potentially be a silently breaking change. Another thing that I 
personally always felt was that the syntax had the effect of 
unconsciously hiding bugs, because it *looks* like static field access, 
so your brain thinks that the compiler checks for things like spelling 
mistakes.

My idea for solving this was to provide the basic Json type as pure 
abstraction for the data format, with standard D semantics (opIndex 
field access), while providing a separate type that transparently 
converts to/from the Json type and has all of the dynamic typing 
goodness (i.e. jsvar). So the difference would just be that it's an 
explicit request by the developer (that even saves on keystrokes if the 
type is just called "var") to enter the dynamic world and things get a 
little more obvious to the reader/reviewer.


More information about the Digitalmars-d-announce mailing list