Motivation for Overengineered API?

There seems to be a decent dislike for the horribly redesigned APIs that are designed for infinite flexibility and thus don't simplify simple things. However, there seems to be no shortage of APIs that require you to use 8 different classes and write 20 lines of the template only for simple, common tasks. I will not mention names because this should not be a glimpse of whether specific APIs are more complex.

What do you think is the main reason for these terribly overloaded APIs? What do you think should happen to prevent API developers from creating such monsters?

Edit: IMHO, even creating reusable code is really a good answer, because if the API is ridiculously difficult to use and requires tons and tons of template, the benefits of reuse become dubious.

+5
source share
7 answers

I do not think that something can prevent people from experiencing problems. This is inherent in problem solving. Methodologies like XP are trying to dissuade him, but when it comes to it, everyone thinks: "But if I make it more general, then I can reuse it in such and the same"

0
source

, . , "1- ", , .

The Mythical Man-Month .

+8

- , ) / ) .

+2

, . Windows api - .

- . windows api, . api, , ... : " 1 , (1, 1) (8, 1) - ".

api ... , , , , , .. api - : dpLine (documentHandle, x1, y1, x2, y2, , ); // x1, x2, y1, y2

, , gdi api . , , , /, , . , , . ; , . , . , , . IMO, , api, , .

-Don

+2

"Premature optimization is the root of all evil."

--Don Knut

However, it is very, very tempting, because programmers instinctively relate to efficiency and skill.

+1
source

The second systemic effect?

+1
source

I think Python suffered from the second effect of the system. In version 2.x, there are two types of classes and different semantics.

Hopefully Python 3.0 will resolve most of this.

0
source

All Articles