Reinventing the wheel
We coders have a strange standing on reinventing the wheel. Most of the time, a programmer will agree that he should reuse code. It's plain logical. So when we see someone baking his own library we say, 'why don't you use library X'? It usually leads to a heated argument as the programmer in question can't justify his reasons to write a new library instead of reusing something that works (at least in our opinion). On the other hand, when it comes the time for ourselves to make the same choice, we frequently do the same: bake our own code.
There are a few possible explanations for this behavior. A few people don't like to rely on code written by someone else, independent of anything else. But many programmers are quite reasonable in this respect, but even so end up rewriting stuff. I believe that the main problem is a mismatch in the mental model, worsened by the lack of documentation.
In Python land, there are several competing Web frameworks. It's interesting to see how many of them are badly documented, or not documented at all. But even projects that have a good volume of documentation still fail to address the mental model problem. A manual that touches only on practical issues -- mainly, API specs -- is close to useless in this regard.
I would like to see more effort spent on documenting the architectural issues of a framework. Not only 'how do I call this method', but 'how do I structure my app'. That's the really difficult question, and the lack of a satisfactory answer to it is often a good reason to write yet another framework.
There are a few possible explanations for this behavior. A few people don't like to rely on code written by someone else, independent of anything else. But many programmers are quite reasonable in this respect, but even so end up rewriting stuff. I believe that the main problem is a mismatch in the mental model, worsened by the lack of documentation.
In Python land, there are several competing Web frameworks. It's interesting to see how many of them are badly documented, or not documented at all. But even projects that have a good volume of documentation still fail to address the mental model problem. A manual that touches only on practical issues -- mainly, API specs -- is close to useless in this regard.
I would like to see more effort spent on documenting the architectural issues of a framework. Not only 'how do I call this method', but 'how do I structure my app'. That's the really difficult question, and the lack of a satisfactory answer to it is often a good reason to write yet another framework.
8 Comments:
At January 27, 2005 at 11:14 AM, Tim Lesher said…
Excellent point.
I've run into the same problem each time I've tried Zope, Quixote, Nevow, and CherryPy: I work through the toy examples, get my head around what it does, and then... hmm.
At January 27, 2005 at 12:51 PM, remco said…
Carlos, you have proven to be a good documentation writer. Why not start a wikipage for this on the CherryPy website?
I completely agree with you, that it really is missing, but unlike Ian Bicking, i feel there should be not a forced way how to do it. (If i got Ian right). . .
But having documentation that gives enough samples, and tells a user how a site can be setup, would be perfect for everyone i guess.. Noone is forced to use it, and anyone can use samples. Because we are all programmers, and therefor all are creative minds, many people will either reinvent the wheel, or rewrite parts of a 'sample'.. If that's part of being creative, who bothers?! ;)
Cheers!
At November 2, 2005 at 10:52 AM, Roberto Iza Valdés said…
This comment has been removed by a blog administrator.
At January 7, 2006 at 6:28 AM, Roberto Iza Valdés said…
This comment has been removed by a blog administrator.
At August 20, 2007 at 2:02 PM, Unknown said…
This comment has been removed by the author.
At March 4, 2016 at 7:56 PM, Anonymous said…
ninest123 16.03
prada outlet, nike outlet, longchamp outlet, burberry outlet, gucci handbags, ralph lauren polo, cheap jordans, louis vuitton outlet, louis vuitton outlet online, oakley sunglasses, uggs on sale, louis vuitton outlet, tiffany jewelry, replica watches, ralph lauren outlet, michael kors outlet, longchamp outlet, cheap oakley sunglasses, ray ban sunglasses, michael kors handbags, replica watches, michael kors outlet online, oakley sunglasses, uggs on sale, louboutin shoes, christian louboutin, ray ban sunglasses, uggs outlet, nike free, christian louboutin, uggs outlet, tiffany jewelry, nike air max, oakley sunglasses, longchamp bags, uggs on sale, michael kors outlet online, michael kors outlet online, nike air max, louis vuitton handbags, oakley sunglasses, louis vuitton, ray ban sunglasses, louboutin uk, michael kors, tory burch outlet, burberry factory outlet, prada handbags
At July 28, 2019 at 9:46 PM, yanmaneee said…
golden goose outlet
golden goose
michael kors outlet
nike vapormax
retro jordans
calvin klein outlet
nike epic react
nike vapormax
kobe shoes
curry 5
At July 21, 2024 at 9:24 PM, Scott Romero said…
Good reading
Post a Comment
<< Home