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.
  • Lang.NEXT panel Andrei Alexandrescu via Digitalmars-d-announce
    • Re: Lang.NEXT panel Joakim via Digitalmars-d-announce
    • Re: Lang.NEXT panel justme via Digitalmars-d-announce
      • Re: Lang.NEXT pane... Nick Sabalausky via Digitalmars-d-announce
        • Re: Lang.NEXT ... Andrei Alexandrescu via Digitalmars-d-announce
          • Re: Lang.N... Atila Neves via Digitalmars-d-announce
          • Re: Lang.N... John Carter via Digitalmars-d-announce
          • Re: Lang.N... Dicebot via Digitalmars-d-announce
            • Re: L... deadalnix via Digitalmars-d-announce
          • Re: Lang.N... w0rp via Digitalmars-d-announce
            • Re: D... Stefan Koch via Digitalmars-d-announce
          • Re: Lang.N... Bruno Medeiros via Digitalmars-d-announce
            • Re: L... Andrei Alexandrescu via Digitalmars-d-announce
            • Re: L... Stefan Koch via Digitalmars-d-announce
              • R... Bruno Medeiros via Digitalmars-d-announce
                • ... Stefan Koch via Digitalmars-d-announce
                • ... Bruno Medeiros via Digitalmars-d-announce
            • Re: L... Jacob Carlborg via Digitalmars-d-announce
              • R... Bruno Medeiros via Digitalmars-d-announce
                • ... Bruno Medeiros via Digitalmars-d-announce

Reply via email to