[haiku-appserver] Re: drawing thread

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Thu, 14 Oct 2004 15:05:05 +0200 CEST

This looks related:

Adi Oanca <adioanca@xxxxxxxxxxxxxx> wrote:
>       Please, you have to agree, every time we have a better solution we 
> must take action. That is the difference between open/free source and 
> corporate business. (corporate: the code works: OK, DON't change it! 
> )
> > 2) Bugfixes and filling in missing bits, not reimplementations of
> > significant portions of code.
>       Yes, you are right. But this is a bug and also a performance issue.
>       This does not require reimplementation of significant code, just 
> pass 
> some messages to Poller thread.
>       I'm not against reimplementations, at the same time I have to agree 
> we must finish this project.
> > 3) "Premature optimization is the root of all evil."  -- Michael 
> > Phipps
>       Never agreed with that statement. Redesign of a certain component 
> is 
> always a good thing.

I don't want to step on anyone's toes here, but designing first and 
then implement saves a lot of precious time. The "premature 
optimization" thing is important IMO: you may spend lots of time 
optimizing a certain algorithm just to find out later that it has 
almost no impact on performance in the real thing - even if you are 
much luckier with that new code, it took you a lot longer to be where 
you are.
Also, optimized code may often introduce subtle bugs and misbehaviour 
under certain conditions, or just have less features than you'll later 
need. If you change slow but working code at a later time, you can run 
the whole test suite against the new code and can almost be sure 
that'll work. It's usually a lot more expensive to detect these kind of 
bugs during development.
That doesn't meant that you shouldn't optimize *anything* upfront (ie. 
you don't have to use bubble sort everywhere), but that you should 
choose your battles carefully - of course, it doesn't hurt if you use 
the right algorithm from the start.

Of course, we have less time pressure on an open source project. But 
that doesn't mean we should use this time to implement everything 5 
times - we should take us more time to design a component. Errors in 
design may still happen, and it's okay to rewrite a certain component, 
but it should only happen very rarely.


Other related posts: