Posted Mar 28, 2011 6:07 UTC (Mon) by khim
In reply to: Kleckner: Unladen Swallow Retrospective
Parent article: Kleckner: Unladen Swallow Retrospective
This is usual result of "programming for convenience". When you do something not because it's absolutely unavoidable, but because it's easy to do. Later the situation changes... and you have a problem. That's related to our SMP woes: existing programs and languages are often quite inefficient in SMP environment because they include tons of unneeded synchronizations (where in UP is was "easy to do"). The only working solution is employed by kernel people: only introduce carefully designed very high-level boundary around you program (syscalls ABI) and keep internal interfaces unfrozen and slowly changing: then you can remove useless synchronization where it's not actually needed. Sadly few other projects are designed this way: more often then not it's bunch of very small programs with unclean, but frozen API. KDE tries to do things this way but they still have enormous ABI...
to post comments)