std.uni vs std.unicode and beyond?
Jonathan M Davis
jmdavisProg at gmx.com
Wed May 22 20:15:27 PDT 2013
On Thursday, May 23, 2013 03:42:56 deadalnix wrote:
> On Thursday, 23 May 2013 at 01:24:42 UTC, Idan Arye wrote:
> > Doing it while keeping `std.uni` would create a duplication in
> > both API and implementation, since `std.unicode` will contain
> > all the functionality of `std.uni`. Eventually `std.uni` would
> > have to be removed, because if Phobos would keep the old
> > versions forever whenever a better version that does the same
> > thing comes it will become very cluttered. Java walked that way.
> >
> > Once the old `std.uni` will be finally removed - code will
> > break.
>
> Yes, that is exactly what is needed. Today we only consider not
> breaking at all, or breaking it as of next version of DMD and
> without any support for what come before the breakage. This
> boolean choice mindset isn't helping.
Every time that a library change is introduced it's done in a way that allows
the programmer time to migrate their code. I'm not aware of any case thus far
where we've purposefully changed library code in a manner which immediately
broke user code. We don't even do that with the compiler. The problem is all
of the times that it happens on accident (particularly with compiler
regressions). So, regardless, we're not going to immediately break code out
from under people.
So, the question is whether it's worth making people change their code
sometime between when we make the change and when std.uni finally goes away.
And I don't think that making people change their code is worth it regardless
of how gradual it is. std.uni is not as good a name as std.unicode, but it's
just not worth forcing people to change their code in order to fix it. If we
keep trying to tweak the names of modules and functions and whatnot, we'll
never be in a state where people can rely on their code compiling across
compiler versions. Tweaking some stuff is necessary, and we did a lot in the
past to fix symbol names, but we've pretty much stopped doing that, and we have
to draw the line somewhere. The general push has been to stabilize our the
compiler and Phobos, and tweaking names does not help with that and generally
has a low ROI.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list