In the fourth lecture of a course in my first term of praxis called Praxis, Prof. Foster talked
about the Teardown studios (i.e. its a studio that we teardown some home electrical
supplements and analyze their designs). Due to the demands of needing hacksaws for tearing
down items, the studios acquired them between Tuesday and Wednesday. By getting the
of the UNIX operating system, which was developed at Bell Laboratories by Ken Thompson,
Dennis Ritchie, and others (King, 2008). UNIX was written in assembly language, which usually
makes the programs written in such language painful to debug and hard to enhance (King,
called New B at first). In 1978, Ritchie and Brain Kernighan published C Programing
Language, (known as K&R) which became the bible of C programmers. However, feedbacks
about this book were not all positive: K&R was fuzzy about some language features, so
compilers often treated these features differently. Also, K&R failed to make a clear distinction
between which features belonged to C and which were part of UNIX (King, 2008). Besides,
since C was still developing, the bible seemed to be outdated and needed to be improved.
Then, from 1983 to 1989, C was standardized under the auspices of ANSI (American National
Standards Institute). It was approved by ISO in 1990, so this version of C is called C89 or C90.
The iterative improvement of C never endsC99 appeared in 1999 and many more C-based
After reading the history of C, its clear how C has evolved. People gathered feedbacks
from the previous versions of C and then improved the language to eliminate the drawbacks.
type is obviousfeedbacks we get from others. There are many ways to get this kind of
feedbacks. For example, if you want to improve a program you write, you can ask people who
used this program for feedbacks or simply add a small program which ask feedbacks from
users (actually, the latter is more effective as many programs are widely-used now). This can
be seen through many companies such as apps for IOS where they ask you to evaluate them
on Apple Store. The other type of feedback is the ones from ourselves. As engineers who
design the item, our own feedbacks may have even better impacts than those who arent a
professional in this section. For instance, when feedbacks on a hairdryer is collected, normal
users may focus on something like This hairdryers color isnt good enough, whereas the
engineers who design the hairdryer may come out with something like this hairdryer is good
in terms of design for safety, but I still need to improve its usability by doing such and such
because By comparing the two kinds of feedbacks, we can see both of the feedbacks
provide information, but the information provided by the engineers are easier to apply to
further engineering design; and engineers usually justify their feedbacks and try to eliminate
the bias in their feedbacks, whereas normal users may provide some feedbacks based on their
personal thoughts (e.g. I hate dark colors so I think the black color of this hair dryer is bad),
In my mind, engineers are people who design things that thrive in making the world
better and better. However, theres a problem: how do we know if the things we design
function well and what can we do to make them function better? The answer is we need
feedbacks to know if they function well, and iterative improvement based on the feedbacks
Reference:
King, K. (2008). C programming. 1st ed. New York: W.W. Norton & Co.