# Bad interfaces: education, not philosophy (reply to krixano) // 19-10-24

I've been to Munich on continued formation, visiting a part of Infineon
(located at a place they call "Campeon", haha), and shortly at the
"Deutsches Museum" (including a visit to DL0DM) with colleagues from
work, for continued formation. Thanks to the train ride, I had some time
for phlogging.

[krixano][1] claims Unix programmers are coding in a way so as to make
life simpler for themselves but not for their users.  I beg to differ,
because as far as I know, most of them also are the first users of
their programs.

The Unix philosophy is to have simple tools, which do one job well and
can be combined for complicated tasks. This implies that users at the
minimum know how to build pipes at the command line and how to work with
files. In addition, it may lead them to scripting in the shell.

Of course I agree there are a lot of questionable designs in the wild,
and one should keep in mind what others might need, be it the next
programmer working on the code or an end user.  But in my opinion,
it's not an inherent issue with the Unix philosophy, but of programmers
not grasping the importance of good definition and implementation of
interfaces -- for APIs and functions as well as CLI/GUI.

Often, people also don't think enough before they talk and don't
define well enough what they're talking about, which is a big source
of misunderstandings and conflicts.  So it's not a question of coding
philosophy, but rather of good education in general.

:.

[1]:
gopher://zaibatsu.circumlunar.space:70/0/~krixano/phlog/102019_Unix.txt

*written on PalmIII*