tag:blogger.com,1999:blog-6655746112052720933.post2079954757031608654..comments2022-03-30T18:43:33.525-05:00Comments on Notes on Haskell: Rewriting SoftwareAdam Turoffhttp://www.blogger.com/profile/11941071792943377879noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-6655746112052720933.post-65449278029746161912007-08-23T07:18:00.000-05:002007-08-23T07:18:00.000-05:00I believe Firefox being open source makes the diff...I believe Firefox being open source makes the difference. It's not as if you got paid to work on the Firefox project (at least not in the beginning).<BR/>Developing concepts, trying new things, writing your code from scratch - that is fun and rewarding.<BR/>Maintaining thousands of lines of crappy code, fixing bugs you didn't put in, working with concepts you find appalling and aged - that is no fun. You got to be paid to do that. <BR/>Firefox would have not worked if Netscape just open sourced their crappy code and everyone had been forced to work with that. Programmers interesting in browser technology would have just flocked to other project or started their own. Maybe we'd seen a great windows version of Konquerer instead.<BR/>Working with legacy code is no fun, you cannot force open source developers to do that. Throwing away the old code base was the only way to end up with a great browser, because it had to be inspiring, interesting and motivating to work on the code.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-1344997099591229452007-08-23T07:17:00.000-05:002007-08-23T07:17:00.000-05:00i dont like arguments based on one example, once s...i dont like arguments based on one example, once someone felt from 3rd floor and he wasnt even hurt, so that means that jumping from 3rd floor is not dangerous.<BR/><BR/>i think rewrite is always a bad idea, many bugs were found and fixed, not just trivial bugs. maybe there is alot of hacks, but hacks can be refactored too.<BR/><BR/>Latly i was working to extend my old home-grown project and it was really bad, but now after alot of refactoring i think its beautiful. I did re-write parts that really were terrible, but if i have to do the whole thing again it would took me alot of time and finally i would give up.<BR/><BR/>However is program is trivial you can always try to re-write it, but if its not than i think you shouldnt.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-48334010694989444122007-08-23T02:26:00.000-05:002007-08-23T02:26:00.000-05:00Paid software versus free software, that's a huge ...Paid software versus free software, that's a huge part of the difference. In paid software, you usually have competitors and it's the competitors who are driving much of the need for a rewrite (OMG, we can't compete! They're so much better than we are that we have better rewrite this!). If they stall to long on whatever they're doing, the competition will have 'em for breakfast. <BR/><BR/>Free software projects, on the other hand, often have either less competition or are less worried about it. They're usually open-source and if the main project languishes, others often come in to pick up the slack while the rewrite is being finished. Financial pressure is what so much of this is about.<BR/><BR/>Now if only programmers could swallow their ego and forgo useless rewrites ...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-80319386394798092372007-08-21T22:23:00.000-05:002007-08-21T22:23:00.000-05:00@Doh!You're not in a position to even begin to mak...@Doh!<BR/><BR/>You're not in a position to even begin to make that judgement. The word is that the code was a mess--a huge mess--and if code is bad enough, it takes longer to fix it than it does to start from scratch.<BR/><BR/>Consider that Netscape was first forked off Mosaic code back when there was no CSS and the layout engine was extremely simplistic (no tables for crying out loud). There's no credible reason to second guess Netscape's management. IE ate their lunch because <I>it was bundled</I>--what would stringing people along with a few more bassackwards releases of Netscape 4 have done? It doesn't seem likely that they could have gotten CSS support anywhere near IE5-level.dasil003https://www.blogger.com/profile/13716765530135421686noreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-73202314000518726832007-08-21T21:34:00.000-05:002007-08-21T21:34:00.000-05:00Tell anyone who owned stock in Netscape that a rew...<I>Tell anyone who owned stock in Netscape that a rewrite was a good idea. </I><BR/><BR/>That's precisely the point. Viewed in the short term (the company and its shareholders), the rewrite was a waste of time and money because it produced no (short term) value. Viewed in the long term (the project, the web, etc.), the rewrite was worthwhile, because it produced lasting value (for the web, eventually).Adam Turoffhttps://www.blogger.com/profile/11941071792943377879noreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-66934252793645644182007-08-21T13:29:00.000-05:002007-08-21T13:29:00.000-05:00The choice here is not simply a binary decision of...The choice here is not simply a binary decision of whether or not to rewrite. In most cases there is a 3rd way: incremental evolution. Evolution from Netscape to Firefox would still produce Firefox in all its glory, without seceding the browser market to IE. <BR/><BR/>Joel says as much in the later part of the article. The lesson I take away is not "don't rewrite", but "don't rewrite all at once."Adam Hupphttps://www.blogger.com/profile/08128471062899994165noreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-42946090495760639592007-08-21T12:31:00.000-05:002007-08-21T12:31:00.000-05:00I agree with Doh! here. The rewrite was great for ...I agree with Doh! here. The rewrite was great for the masses but a terrible idea for Netscape as a company.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-73111971055590166032007-08-21T11:12:00.000-05:002007-08-21T11:12:00.000-05:00Tell anyone who owned stock in Netscape that a rew...Tell anyone who owned stock in Netscape that a rewrite was a good idea. Just because firefox eventually turned out well doesn't mean that it was better or faster than working with the existing codebase would have been. We arguably could have had firefox two years earlier and have 50% of the browser market now if there wasn't a rewrite.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6655746112052720933.post-84837775264288556342007-08-21T08:17:00.000-05:002007-08-21T08:17:00.000-05:00Well if I read "rewrite" then I mostly think of th...Well if I read "rewrite" then I mostly think of the idea rewriting some software in another language. Especially from "non-mainstream" languages to mainstream languages and for that I can not see any good reason. And I also can not see any good reason to rewrite a working software just because one can. But what I has especially about rewrite is that you simply can forget the old software, you can run that software with the old libraries but <BR/>if there are bugs you are "alone" you are forced to update your software just because the library developes just do not find backware compatibility worthwhile...<BR/><BR/>The problem with any rewrites is the SSS ;-)(second system syndrom) which you can find in the literature as one of the most dangerous things for programmers. <BR/><BR/>That means: While you have learned so much during development you write your second version with a lot of new things and most of the time fail miserably. <BR/><BR/>However I also have seen that software really does age. And what happens is that constraints under which once software was written have vanished. But the software still uses "old tricks". So it's seems some sort or rewriting must take place to keep the software running. <BR/><BR/>Regards<BR/>FriedrichAnonymousnoreply@blogger.com