1 |
On Sun, Feb 23, 2014 at 5:12 PM, Mick <michaelkintzios@×××××.com> wrote: |
2 |
|
3 |
[ snip ] |
4 |
|
5 |
> Well, I'm no authority on this since I can't code, |
6 |
|
7 |
My point exactly. |
8 |
|
9 |
> but here's a starter for 10: |
10 |
> |
11 |
> http://www.faqs.org/docs/artu/ch01s06.html |
12 |
|
13 |
Funny you mention this; the second definition is by Robert Pike, who later said: |
14 |
|
15 |
"Not only is UNIX dead, it's starting to smell really bad." |
16 |
|
17 |
> http://people.fas.harvard.edu/~lib113/reference/unix/co-unix4.html |
18 |
|
19 |
You can hear in [2] the best response to the famous quote by Henry |
20 |
Spencer ("Those who don't understand UNIX are doomed to reinvent it, |
21 |
poorly."): |
22 |
|
23 |
"Those who don't understand UNIX are condemned to quote Henry Spencer." |
24 |
|
25 |
And that's the point; the people doing this changes *obviously |
26 |
understand Unix*. They understand it so well that they are able to |
27 |
look at it honestly, beyond dogma or articles of faith, and see its |
28 |
downsides, so they can try to fix them. |
29 |
|
30 |
> http://en.wikipedia.org/wiki/Unix_philosophy |
31 |
|
32 |
This reminds me of the people that quote from religious books to argue |
33 |
about anything non theological. The "rules" and "sound bites" in the |
34 |
links you provide are there to summarize rules of thumb; they are NOT |
35 |
scripture, and they are certainly NOT the only way to get a |
36 |
technically good program that is easily maintainable. In other words, |
37 |
you can ignore most of them, or just following them to a point, and |
38 |
anyway end up with a sound design and a technically great program that |
39 |
is easy to maintain and extend. |
40 |
|
41 |
The people with coding experience (or most of them anyway) understand |
42 |
this; we are not a religion, we don't have prophets that speak the |
43 |
undeniably truth. We have highly skilled developers who can have |
44 |
opposing views on how to design and implement many different ideas, |
45 |
and that doesn't (necessarily) means that any of them are wrong. |
46 |
|
47 |
There are many ways to solve a problem of sets of problems. Having |
48 |
Emacs doesn't mean vi is "wrong", nor having GNOME means KDE is |
49 |
"wrong", nor the other way around. |
50 |
|
51 |
>> I've now concluded it's a myth, much like invisible pink unicorns. |
52 |
>> |
53 |
>> Is it like the kernel? A huge monolithic chunk of code with support for |
54 |
>> modules? |
55 |
> |
56 |
> I would think that although the kernel has grown over the years, it has not |
57 |
> done so like systemd. You can still *not* build modules you don't need in |
58 |
> your kernel. |
59 |
|
60 |
This has nothing to do with "Unix principles"; it's just that someone |
61 |
willing and able implemented the different options. |
62 |
|
63 |
>> Is it like X11? A huge monolithic chunk of code that has a bizarre build |
64 |
>> system for years, and took something like 5 years of hard work to get it |
65 |
>> modular? And is 20 years behind the times? And *still* requires devs to |
66 |
>> jump through hoops to get a rendered image through a compositor and back |
67 |
>> up the the GPU? |
68 |
> |
69 |
> The X11 devs saw the error of their ways and ended up breaking up the big |
70 |
> monolithic Xorg code and releasing it as a modular package since X11 7.0, if I |
71 |
> recall right. |
72 |
|
73 |
The X11 devs decided that X11 is crap, and therefore they are working |
74 |
now in Wayland. Yes, Wayland is basically written by the same people |
75 |
who maintains X.org. Again, see [2], it's pretty awesome. |
76 |
|
77 |
>> Is it like perl? Support every possible way to do something if it |
78 |
>> remotely makes sense to do it, no matter how bizarre the syntax? |
79 |
>> Is it like python? Pick ONE way to do it and stick with it dammit! |
80 |
>> Is it like php? Do whatever you feel like? |
81 |
>> Is it like command line text processing tools that only do one narrow |
82 |
>> thing well? [1] |
83 |
>> Is it like bash? I can't find a decent description of how bash came to |
84 |
>> be except it's like Vogons - wasn't designed and didn't evolve, it just |
85 |
>> sort of ... congealed |
86 |
> |
87 |
> Designing a programming language is not exactly parallel with designing an OS, |
88 |
> although similarities exist (e.g. re-use code where you can and don't re- |
89 |
> invent the wheel). |
90 |
|
91 |
I'm pretty sure there are lots of people who vehemently believe that |
92 |
the "Unix principles" can apply to everything, even programming |
93 |
languages. You would be cataloged as an heretic for saying that is not |
94 |
exactly parallel. |
95 |
|
96 |
>> Not to rain on anyone's parade, but there's a prize of 40 internets up |
97 |
>> for the first person who can clearly and unambiguously define "Unix |
98 |
>> design principles" with specificity so that it is globally applicable. |
99 |
> |
100 |
> The Unix design philosophy may not be globally applicable, but has served |
101 |
> Linux well over the years. |
102 |
|
103 |
No; what has served Linux is to have developers willing and able to |
104 |
write the necessary code, following whatever design they decide is the |
105 |
correct one. |
106 |
|
107 |
> Lennart has de facto introduced a different way of |
108 |
> developing his Linux code, which to others and me seems more restrictive. |
109 |
|
110 |
First of all, it's not only Lennart; the systemd repo has (literally) |
111 |
dozens of contributors with write access. |
112 |
|
113 |
Second of all, calling "restrictive" the tightly integrated approach, |
114 |
is exactly as constructive as calling "anarchic" the loosely |
115 |
integrated one. Like "Unix principles", it means nothing and it says |
116 |
nothing. |
117 |
|
118 |
> I am not saying that his coding is poor (I'm not qualified to judge), or that |
119 |
> systemd is wholesale bad. But, is this a whole new design paradigm in the |
120 |
> development of Linux that we should applaud and follow, or just a mistake |
121 |
> borne out of ignorance/arrogance/expedience? |
122 |
|
123 |
Or people willing and able to try new ideas that they believe are awesome? |
124 |
|
125 |
> Time will tell. |
126 |
|
127 |
Indeed; although, as I see, time is already telling us. |
128 |
|
129 |
Regards. |
130 |
|
131 |
[1] http://proness.kix.in/talks/foss.in07-plan9.pdf |
132 |
[2] http://www.youtube.com/watch?v=F6PFjoYuml0&t=28m27s |
133 |
-- |
134 |
Canek Peláez Valdés |
135 |
Posgrado en Ciencia e Ingeniería de la Computación |
136 |
Universidad Nacional Autónoma de México |