4 ms·
> I've always heard about this possibility but I wonder how one would rewrite code, should the need arise. Wouldn't it be hard to do without effectively making
by boogies 6y ago
> I've always heard about this possibility but I wonder how one would rewrite code, should the need arise. Wouldn't it be hard to do without effectively making a derivative work?
This is an issue GNU has faced, they recommend optimizing for different things:
> If you have a vague recollection of the internals of a Unix program, this does not absolutely mean you can’t write an imitation of it, but do try to organize the imitation internally along different lines, because this is likely to make the details of the Unix version irrelevant and dissimilar to your results.
> For example, Unix utilities were generally optimized to minimize memory use; if you go for speed instead, your program will be very different. You could keep the entire input file in memory and scan it there instead of using stdio. Use a smarter algorithm discovered more recently than the Unix program. Eliminate use of temporary files. Do it in one pass instead of two (we did this in the assembler). — https://www.gnu.org/prep/standards/standards.html#Reading-Non_002dFree-Code https://www.gnu.org/prep/standards/standards.html#Reading-No...
In fact RMS had experience from his competition with Symbolics:
http://www.gnu.org/gnu/rms-lisp.en.html#foot-6 http://www.gnu.org/gnu/rms-lisp.en.html#foot-6
> The Symbolics source code was available at MIT, where I was entitled to read it, and at first that's how I found out about their changes.
> But that meant I had to make a special effort to solve each problem differently, in order to avoid copying Symbolics code. After a while, I concluded it was better not to even look. That way I could write code in whatever way was best, without concern for what might be in Symbolics' code.
(of course, this applies more to larger utilities, inopinatus’ comment https://news.ycombinator.com/item?id=24955918 https://news.ycombinator.com/item?id=24955918 should come in handy for smaller code snippets)