Lang.NEXT panel

w0rp via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Jun 12 23:44:07 PDT 2014


On Thursday, 12 June 2014 at 17:52:59 UTC, Andrei Alexandrescu 
wrote:
> On 6/12/14, 10:40 AM, Nick Sabalausky wrote:
>> On 6/10/2014 12:35 PM, justme wrote:
>>> On Wednesday, 4 June 2014 at 06:13:39 UTC, Andrei 
>>> Alexandrescu wrote:
>>>> Of possible interest.
>>>> http://www.reddit.com/r/programming/comments/278twt/panel_systems_programming_in_2014_and_beyond/
>>>>
>>>>
>>>>
>>>> Andrei
>>>
>>> IMHO, the coolest thing was when Rob Pike told about the tool 
>>> they made
>>> for automatically upgrading user source code to their next 
>>> language
>>> version.
>>>
>>> That should be quite easy to implement now in D, and once 
>>> done, would
>>> give much needed room for breaking changes we feel should be 
>>> done. Pike
>>> seemed to be extremely satisfied they did it.
>>
>> Personally, I wouldn't be comfortable trusting such a tool. 
>> Besides, I
>> find that upgrading a codebase to a newer language version is 
>> one of the
>> most trivial tasks I ever face in software development - even 
>> in D.
>>
>> It's a cute trick, but not a worthwhile use of development 
>> resources.
>
> I very much think the opposite, drawing from many years of 
> hacking into large codebases. I'm completely with Rob here. On 
> a large codebase, even the slightest manual or semi-manual 
> change is painstaking to plan and execute, and almost always 
> suffers of human errors.
>
> I got convinced a dfix tool would be a strategic component of 
> D's offering going forward.
>
>
> Andrei

I am strongly in favour of a 'dfix' tool. There exist historical 
problems with languages, and you really must break them to make 
things better.

Douglas Crockford was pushing for '~' for string concatenation in 
ECMAScript 6, making '+' do only additon. This would have been 
very similar to how D handles the two, in an arguably correct 
manner, but the commity wouldn't agree to it because it would 
force everyone to change their code. So in the end ES6 is full of 
features, some useful, most seem nonsensical to me, but it 
doesn't really fix any of the issues in ES5, because it's almost 
totally backwards compatible so old code still works.

So I think having tools like gofix and deprecation warnings 
mitigate this issue massively, and it's especially easier when 
you're using an ahead-of-time compiled language like D. So we can 
make changes which break code, but just get rid of cruft likely 
to cause errors. I can't think of nearly as many examples of 
error-prone things in D that I can think of in ES6, though.


More information about the Digitalmars-d-announce mailing list