www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www distros/screenshot.uk.html distros/po/scree...


From: GNUN
Subject: www distros/screenshot.uk.html distros/po/scree...
Date: Thu, 4 Aug 2016 05:57:33 +0000 (UTC)

CVSROOT:        /web/www
Module name:    www
Changes by:     GNUN <gnun>     16/08/04 05:57:33

Modified files:
        distros        : screenshot.uk.html 
        distros/po     : screenshot.uk-en.html screenshot.uk.po 
        gnu/po         : rms-lisp.uk.po 
                         why-programs-should-be-shared.uk.po 
        server         : body-include-2.uk.html 
        server/po      : body-include-2.uk.po 
Added files:
        gnu            : rms-lisp.uk.html 
        gnu/po         : rms-lisp.uk-en.html 

Log message:
        Automatic update by GNUnited Nations.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/distros/screenshot.uk.html?cvsroot=www&r1=1.7&r2=1.8
http://web.cvs.savannah.gnu.org/viewcvs/www/distros/po/screenshot.uk-en.html?cvsroot=www&r1=1.7&r2=1.8
http://web.cvs.savannah.gnu.org/viewcvs/www/distros/po/screenshot.uk.po?cvsroot=www&r1=1.22&r2=1.23
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/rms-lisp.uk.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/po/rms-lisp.uk.po?cvsroot=www&r1=1.5&r2=1.6
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/po/why-programs-should-be-shared.uk.po?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/gnu/po/rms-lisp.uk-en.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/server/body-include-2.uk.html?cvsroot=www&r1=1.86&r2=1.87
http://web.cvs.savannah.gnu.org/viewcvs/www/server/po/body-include-2.uk.po?cvsroot=www&r1=1.89&r2=1.90

Patches:
Index: distros/screenshot.uk.html
===================================================================
RCS file: /web/www/www/distros/screenshot.uk.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- distros/screenshot.uk.html  1 Apr 2016 08:59:29 -0000       1.7
+++ distros/screenshot.uk.html  4 Aug 2016 05:57:32 -0000       1.8
@@ -15,9 +15,10 @@
 веб-навігатора]"
   width="100%" /></p>
 
-<p class="c">Вигляд екрану дистрибутива Trisquel 
GNU/Linux з GNOME, вільного стільничного
-середовища; LibreOffice, вільним пакетом офісних
 програм; GIMP, вільним
-графічним редактором; GNU IceCat, вільним 
браузером на базі Mozilla FireFox.</p>
+<p class="c"><small>Вигляд екрану дистрибутива 
Trisquel GNU/Linux з GNOME, вільного
+стільничного  середовища; LibreOffice, вільним 
пакетом офісних програм;
+GIMP, вільним графічним редактором; GNU IceCat, 
вільним браузером на базі
+Mozilla FireFox.</small></p>
 
 <h3 class="c"><a href="/distros/free-distros.html">Спробувати 
GNU/Linux</a></h3>
 
@@ -96,7 +97,7 @@
 <p class="unprintable"><!-- timestamp start -->
 Оновлено:
 
-$Date: 2016/04/01 08:59:29 $
+$Date: 2016/08/04 05:57:32 $
 
 <!-- timestamp end -->
 </p>

Index: distros/po/screenshot.uk-en.html
===================================================================
RCS file: /web/www/www/distros/po/screenshot.uk-en.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- distros/po/screenshot.uk-en.html    1 Apr 2016 08:59:30 -0000       1.7
+++ distros/po/screenshot.uk-en.html    4 Aug 2016 05:57:33 -0000       1.8
@@ -11,9 +11,9 @@
   width="100%" /></p>
 
 <p class="c"><small>Screenshot of the Trisquel GNU/Linux distribution
-running GNOME, a free desktop environment; LibreOffice, a free office suite;
-GIMP, a free image manipulation program; GNU IceCat, a free web browser based
-on Mozilla Firefox.</small></p>
+running GNOME, a free GNU desktop environment; LibreOffice, a free
+office suite; GIMP, a free GNU image manipulation program; and IceCat,
+a free GNU web browser based on Mozilla Firefox.</small></p>
 
 <h3 class="c"><a href="/distros/free-distros.html">Try GNU/Linux</a></h3>
 
@@ -76,7 +76,7 @@
 
 <p class="unprintable">Updated:
 <!-- timestamp start -->
-$Date: 2016/04/01 08:59:30 $
+$Date: 2016/08/04 05:57:33 $
 <!-- timestamp end -->
 </p>
 </div>

Index: distros/po/screenshot.uk.po
===================================================================
RCS file: /web/www/www/distros/po/screenshot.uk.po,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- distros/po/screenshot.uk.po 4 Aug 2016 05:33:30 -0000       1.22
+++ distros/po/screenshot.uk.po 4 Aug 2016 05:57:33 -0000       1.23
@@ -14,9 +14,8 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: ENCODINGLanguage: uk\n"
-"X-Outdated-Since: 2016-07-13 17:25+0000\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<"
-"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Lokalize 2.0\n"
 
 #. type: Content of: <title>
@@ -38,11 +37,6 @@
 "веб-навігатора]"
 
 #. type: Content of: <p>
-#| msgid ""
-#| "<small>Screenshot of the Trisquel GNU/Linux distribution running GNOME, a "
-#| "free desktop environment; LibreOffice, a free office suite; GIMP, a free "
-#| "image manipulation program; GNU IceCat, a free web browser based on "
-#| "Mozilla Firefox.</small>"
 msgid ""
 "<small>Screenshot of the Trisquel GNU/Linux distribution running GNOME, a "
 "free GNU desktop environment; LibreOffice, a free office suite; GIMP, a free "

Index: gnu/po/rms-lisp.uk.po
===================================================================
RCS file: /web/www/www/gnu/po/rms-lisp.uk.po,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- gnu/po/rms-lisp.uk.po       4 Aug 2016 05:33:29 -0000       1.5
+++ gnu/po/rms-lisp.uk.po       4 Aug 2016 05:57:33 -0000       1.6
@@ -14,9 +14,8 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Outdated-Since: 2014-04-04 23:59+0000\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<"
-"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Lokalize 2.0\n"
 
 #. type: Content of: <title>
@@ -801,15 +800,13 @@
 msgstr ""
 "Зрозуміло, машин зараз більше і ми вже так 
не робимо. Ми заклали &ldquo;"
 "caar&rdquo;, &ldquo;cadr&rdquo; і так далі, і зараз при 
нагоді ми могли б "
-"закласти іншу циклічну конструкцію. Ми ох
оче розширимо його в деяких "
-"межах, але ми не хочемо розширювати його 
до рівня Загального Ліспа. Я одного"
-" разу "
-"реалізовував Загальний Лісп на 
машині-Ліспі, і мені він не так вже"
-" сподобався. Одна "
-"з речей, які мені страшенно не 
подобаються&nbsp;&nbsp; аргументи-ключові "
-"слова&nbsp;<a href=\"#foot-8\">(8)</a>. На мій погляд, це 
виглядає не "
-"зовсім по-ліспівськи; іноді я пишу так, але 
зводжу до мінімуму кількість"
-" випадків, коли я це роблю."
+"закласти іншу циклічну конструкцію. Ми ох
оче розширимо його в деяких межах, "
+"але ми не хочемо розширювати його до рівня 
Загального Ліспа. Я одного разу "
+"реалізовував Загальний Лісп на 
машині-Ліспі, і мені він не так вже "
+"сподобався. Одна з речей, які мені 
страшенно не подобаються&nbsp;&nbsp; "
+"аргументи-ключові слова&nbsp;<a 
href=\"#foot-8\">(8)</a>. На мій погляд, це "
+"виглядає не зовсім по-ліспівськи; іноді я 
пишу так, але зводжу до мінімуму "
+"кількість випадків, коли я це роблю."
 
 #. type: Content of: <p>
 msgid ""
@@ -819,12 +816,12 @@
 "to write a lot of it in to make it easily extensible, like the editor. The "
 "question was what it should be."
 msgstr ""
-"На цьому проекти GNU, пов'язані з Лиспом, не 
закінчилися. Згодом, "
-"приблизно в&nbsp;1995&nbsp;році, ми 
розмірковували над організацією проекту "
-"графічного робочого середовища. Було 
ясно, що для програм середовища нам"
-" потрібна мова програмування, на якій була 
б написана значна її частина, щоб "
-"зробити його легко розширюваною, як 
редактор. Постало питання про те, якою"
-" повинна бути мова."
+"На цьому проекти GNU, пов'язані з Лиспом, не 
закінчилися. Згодом, приблизно "
+"в&nbsp;1995&nbsp;році, ми розмірковували над 
організацією проекту графічного "
+"робочого середовища. Було ясно, що для 
програм середовища нам потрібна мова "
+"програмування, на якій була б написана 
значна її частина, щоб зробити його "
+"легко розширюваною, як редактор. Постало 
питання про те, якою повинна бути "
+"мова."
 
 #. type: Content of: <p>
 msgid ""
@@ -842,20 +839,17 @@
 "applications. We would then recommend that as the preferred extensibility "
 "package for all GNU programs."
 msgstr ""
-"У той час для цих цілей посилено 
просувався TCL&nbsp;<a href=\"#tf2\">[2]"
-"</a>. Я був дуже невисокої думки про TCL, в 
основному тому, що це був не "
-"Лісп. Він виглядав злегка подібним на 
Лісп, але семантично він ним не був, і"
-" він "
-"був не таким зрозумілим. Потім хтось 
показав мені оголошення, в якому"
-" компанія Sun намагалася найняти 
кого-небудь для роботи над TCL, щоб зробити"
-" його &ldquo;"
-"стандартом де-факто для мови 
розширень&rdquo; в усьому світі. А я подумав: "
-"&ldquo;Нам потрібно запобігти цьому&rdquo;. Тому 
ми почали робити Scheme "
-"стандартною мовою розширень GNU. Не 
Загальний Лісп, бо він був занадто "
-"великий. Ідея була в тому, що у нас буде 
інтерпретатор Scheme, "
-"спроектований для компонування у додатки 
так само, як це робили з TCL. "
-"Тоді ми стали б рекомендувати це як 
бажаний пакет розширень "
-"для всіх програм GNU."
+"У той час для цих цілей посилено 
просувався TCL&nbsp;<a href=\"#tf2\">[2]</"
+"a>. Я був дуже невисокої думки про TCL, в 
основному тому, що це був не Лісп. "
+"Він виглядав злегка подібним на Лісп, але 
семантично він ним не був, і він "
+"був не таким зрозумілим. Потім хтось 
показав мені оголошення, в якому "
+"компанія Sun намагалася найняти 
кого-небудь для роботи над TCL, щоб зробити "
+"його &ldquo;стандартом де-факто для мови 
розширень&rdquo; в усьому світі. А "
+"я подумав: &ldquo;Нам потрібно запобігти 
цьому&rdquo;. Тому ми почали робити "
+"Scheme стандартною мовою розширень GNU. Не 
Загальний Лісп, бо він був "
+"занадто великий. Ідея була в тому, що у нас 
буде інтерпретатор Scheme, "
+"спроектований для компонування у додатки 
так само, як це робили з TCL. Тоді "
+"ми стали б рекомендувати це як бажаний 
пакет розширень для всіх програм GNU."
 
 #. type: Content of: <p>
 msgid ""
@@ -871,14 +865,14 @@
 "Scheme. Then you could load that into any application and customize it in "
 "your favorite language and it would work with other customizations as well."
 msgstr ""
-"Є одна цікава вигода, яку можна отримати з 
застосування такого "
-"потужної мови, як варіант Ліспа, в якості 
первинної мови розширень. Ви "
-"можете реалізовувати інші мови 
переведенням їх на вашу первинну мову. Якщо 
"
-"ваша первинна мова&nbsp;&nbsp; TCL, ви не можете 
легко впровадити Лісп "
+"Є одна цікава вигода, яку можна отримати з 
застосування такого потужної "
+"мови, як варіант Ліспа, в якості первинної 
мови розширень. Ви можете "
+"реалізовувати інші мови переведенням їх 
на вашу первинну мову. Якщо ваша "
+"первинна мова&nbsp;&nbsp; TCL, ви не можете легко 
впровадити Лісп "
 "переведенням його на TCL. Але якщо ваш 
первинна мова&nbsp;&nbsp; Лісп, то "
 "неважко реалізовувати інші мови, 
переводячи їх. Наша ідея полягала в тому, "
-"що якщо б кожний відкритий додаток 
підтримував Scheme, то ви могли "
-"б написати реалізацію TCL, Python або Perl на Scheme, 
яка переводить цю "
+"що якщо б кожний відкритий додаток 
підтримував Scheme, то ви могли б "
+"написати реалізацію TCL, Python або Perl на Scheme, 
яка переводить цю "
 "програму на Scheme. Тоді ви могли б 
завантажувати її в будь-який додаток і "
 "надбудовувати його під свою улюблену мову 
і він працював би і з іншими "
 "надбудовами."
@@ -900,20 +894,20 @@
 "interested in this project, please get in touch. So that's the plan we have "
 "for the future."
 msgstr ""
-"До тих пір, поки мови розширення слабкі, 
користувачам доводиться"
-" застосовувати тільки ту мову, яку ви їм 
надаєте. Що означає, що людям, "
+"До тих пір, поки мови розширення слабкі, 
користувачам доводиться "
+"застосовувати тільки ту мову, яку ви їм 
надаєте. Що означає, що людям, "
 "залюбленим, в яку б то не було дану мову, 
доводиться боротися за вибір "
 "розробників додатків&nbsp;&nbsp; кажучи 
розробнику програми: &ldquo;"
 "Закладіть, будь ласка, в свій додаток мою 
мову, а не його&rdquo;. Тоді у "
-"користувачів взагалі не буде 
вибору&nbsp;&nbsp; яким би додатком вони "
-"не користувалися, він приходить з однією 
мовою, і у них немає іншого виходу."
-" Але коли у вас потужна мова, яка може 
реалізовувати інші мови, переводячи "
-"з них, то ви надаєте користувачеві вибір 
мови, і нам більше не "
-"доводиться вести війну мов. Саме це, як ми 
сподіваємося, зробить Guile, "
-"наш інтерпретатор Scheme. У нас є людина, яка 
цього літа працює "
-"над завершенням транслятора з Python на Scheme. 
Я не знаю, чи повністю він "
-"завершений, але якщо хтось зацікавлений у 
цьому проекті, нехай зв'яжеться."
-" Ось такі у нас плани на майбутнє."
+"користувачів взагалі не буде 
вибору&nbsp;&nbsp; яким би додатком вони не "
+"користувалися, він приходить з однією 
мовою, і у них немає іншого виходу. "
+"Але коли у вас потужна мова, яка може 
реалізовувати інші мови, переводячи з "
+"них, то ви надаєте користувачеві вибір 
мови, і нам більше не доводиться "
+"вести війну мов. Саме це, як ми 
сподіваємося, зробить Guile, наш "
+"інтерпретатор Scheme. У нас є людина, яка 
цього літа працює над завершенням "
+"транслятора з Python на Scheme. Я не знаю, чи 
повністю він завершений, але "
+"якщо хтось зацікавлений у цьому проекті, 
нехай зв'яжеться. Ось такі у нас "
+"плани на майбутнє."
 
 #. type: Content of: <p>
 msgid ""
@@ -929,14 +923,14 @@
 msgstr ""
 "Я не говорив про вільне програмне 
забезпечення, але дозвольте мені коротко "
 "розповісти вам трохи про те, що це означає. 
Вираз &ldquo;вільна "
-"програма&rdquo; передбачає не вартість; воно 
не означає, що ви "
-"отримаєте її безкоштовно. (Можливо, ви 
заплатили за копію або отримали копію "
-"безкоштовно.) Воно означає, що у вас як у 
користувача є свобода. "
-"Життєво важливо те, що ви вільні 
виконувати програму, вільні вивчати, що "
-"вона робить, можете змінювати її під свої 
потреби, вільні перерозповсюджувати"
-" копії серед інших і вільні публікувати 
поліпшені, розширені версії. Ось що"
-" означає вільна програма. Якщо ви 
користуєтеся невільною програмою, то ви"
-" втратили життєво важливу свободу, тому 
ніколи цього не робіть."
+"програма&rdquo; передбачає не вартість; воно 
не означає, що ви отримаєте її "
+"безкоштовно. (Можливо, ви заплатили за 
копію або отримали копію "
+"безкоштовно.) Воно означає, що у вас як у 
користувача є свобода. Життєво "
+"важливо те, що ви вільні виконувати 
програму, вільні вивчати, що вона "
+"робить, можете змінювати її під свої 
потреби, вільні перерозповсюджувати "
+"копії серед інших і вільні публікувати 
поліпшені, розширені версії. Ось що "
+"означає вільна програма. Якщо ви 
користуєтеся невільною програмою, то ви "
+"втратили життєво важливу свободу, тому 
ніколи цього не робіть."
 
 #. type: Content of: <p>
 msgid ""
@@ -950,13 +944,13 @@
 "to cooperate."
 msgstr ""
 "Призначення проекту GNU полягає в тому, щоб 
полегшити людям відмову від "
-"зневажаючих свободу, пануючих над 
користувачем невільних програм "
-"наданням вільних програм для їхньої 
заміни. Для тих, у кого немає "
-"моральних сил для відмови від невільних 
програм, коли це означає яку-"
-"небудь практичну незручність,&mdash; для них 
ми намагаємося дати вільну "
-"альтернативу, щоб ви могли перейти до 
свободи з меншими зусиллями і "
-"меншими жертвами в практичному сенсі. Чим 
менші жертви, тим краще. Ми "
-"хочемо полегшити для вас співпрацю і 
вільне життя."
+"зневажаючих свободу, пануючих над 
користувачем невільних програм наданням "
+"вільних програм для їхньої заміни. Для тих
, у кого немає моральних сил для "
+"відмови від невільних програм, коли це 
означає яку-небудь практичну "
+"незручність,&mdash; для них ми намагаємося 
дати вільну альтернативу, щоб ви "
+"могли перейти до свободи з меншими 
зусиллями і меншими жертвами в "
+"практичному сенсі. Чим менші жертви, тим 
краще. Ми хочемо полегшити для вас "
+"співпрацю і вільне життя."
 
 #. type: Content of: <p>
 msgid ""
@@ -969,13 +963,12 @@
 "you're free to help yourself.  Divided and helpless is the state of users "
 "using non-free software."
 msgstr ""
-"Співпраця&nbsp;&mdash; це питання свободи. Ми 
звикли думати про свободу "
-"і співпрацю з товариством як про 
протилежності. Але в даному випадку "
-"вони на одній стороні. При вільних 
програмах ви вільні співпрацювати з "
-"іншими і допомагати самим собі. При 
невільних програмах хтось домінує "
-"над вами і роз'єднує людей. Вам не 
дозволяють обмінюватися з ними, ви не "
-"вільні співпрацювати або допомагати 
суспільству, точно так само, як ви не"
-" вільні "
+"Співпраця&nbsp;&mdash; це питання свободи. Ми 
звикли думати про свободу і "
+"співпрацю з товариством як про 
протилежності. Але в даному випадку вони на 
"
+"одній стороні. При вільних програмах ви 
вільні співпрацювати з іншими і "
+"допомагати самим собі. При невільних 
програмах хтось домінує над вами і "
+"роз'єднує людей. Вам не дозволяють 
обмінюватися з ними, ви не вільні "
+"співпрацювати або допомагати 
суспільству, точно так само, як ви не вільні 
"
 "допомогти самим собі. Роз'єднаність і 
безпорадність&nbsp;&nbsp; стан "
 "користувачів, які застосовують невільні 
програми."
 
@@ -995,21 +988,21 @@
 "Software and Free Society&rdquo;, is on sale and can be purchased at <a href="
 "\"http://www.gnu.org/\";>www.gnu.org</a>. Happy hacking!"
 msgstr ""
-"Ми виробили запаморочливе число вільних 
програм. Ми зробили "
-"те, що, як стверджувалося, ми ніколи не 
зможемо зробити; у нас є дві "
-"операційні системи з вільних програм. У 
нас є безліч додатків, "
-"і нам, очевидно, ще багато належить пройти. 
Отож, нам потрібна ваша допомога. "
-"Я хотів би попросити вас стати 
добровольцями проекту GNU; допоможіть нам "
-"розробити вільні програми для нових 
завдань. Загляньте на <a href=\"/"
-"help/\"> http://www.gnu.org/help</a> за пропозиціями того, 
як допомогти. Якщо "
-"ви хочете замовити щось, на це є посилання 
з домашньої сторінки. Якщо ви "
-"хочете почитати про філософських питаннях
, загляньте в /philosophy. Якщо ви "
-"шукаєте вільні програми для користування, 
загляньте в /directory, де "
-"зараз перераховано близько 1900&nbsp;пакетів 
(це тільки частина всіх вільних "
-"програм, які є). Будь ласка, пишіть нові 
програми і передавайте нам. "
-"Мій збірник нарисів, &ldquo;Вільні програми і 
вільне суспільство&rdquo;, "
-"знаходиться у продажу, і його можна 
придбати на <a href=\"http://www.gnu.org/";
-"\">www.gnu.org</a>. Всього найкращого!"
+"Ми виробили запаморочливе число вільних 
програм. Ми зробили те, що, як "
+"стверджувалося, ми ніколи не зможемо 
зробити; у нас є дві операційні системи "
+"з вільних програм. У нас є безліч додатків, 
і нам, очевидно, ще багато "
+"належить пройти. Отож, нам потрібна ваша 
допомога. Я хотів би попросити вас "
+"стати добровольцями проекту GNU; 
допоможіть нам розробити вільні програми "
+"для нових завдань. Загляньте на <a href=\"/help/\"> 
http://www.gnu.org/help</"
+"a> за пропозиціями того, як допомогти. Якщо 
ви хочете замовити щось, на це є "
+"посилання з домашньої сторінки. Якщо ви х
очете почитати про філософських "
+"питаннях, загляньте в /philosophy. Якщо ви 
шукаєте вільні програми для "
+"користування, загляньте в /directory, де зараз 
перераховано близько "
+"1900&nbsp;пакетів (це тільки частина всіх 
вільних програм, які є). Будь "
+"ласка, пишіть нові програми і передавайте 
нам. Мій збірник нарисів, &ldquo;"
+"Вільні програми і вільне суспільство&rdquo;, 
знаходиться у продажу, і його "
+"можна придбати на <a 
href=\"http://www.gnu.org/\";>www.gnu.org</a>. Всього "
+"найкращого!"
 
 #. type: Content of: <ol><li>
 msgid ""
@@ -1019,11 +1012,10 @@
 "Others particularly including Eugene C. Cicciarelli and Mike McMahon "
 "contributed substantially later on."
 msgstr ""
-"Гай Стіл склав початковий симетричний 
набір команд Emacs; потім ми з "
-"ним почали реалізовувати Emacs (на базі TECO), 
але після однієї тривалої "
-"спільної сесії розробки Стіл почав відх
одити, тому Emacs закінчував "
-"я. Інші, зокрема, Юджин Чиччареллі і Майк 
Мак-Магон внесли свій внесок "
-"значно пізніше."
+"Гай Стіл склав початковий симетричний 
набір команд Emacs; потім ми з ним "
+"почали реалізовувати Emacs (на базі TECO), але 
після однієї тривалої "
+"спільної сесії розробки Стіл почав відх
одити, тому Emacs закінчував я. Інші, "
+"зокрема, Юджин Чиччареллі і Майк Мак-Магон 
внесли свій внесок значно пізніше."
 
 #. type: Content of: <ol><li>
 msgid ""
@@ -1031,9 +1023,9 @@
 "Lisp Machine came before Greenberg's implementation for Multics.  I "
 "apologize for the mistake."
 msgstr ""
-"Берні Грінберг стверджує, що реалізація 
Emacs Дана Уайнреба для машини-"
-"Ліспа вийшла раніше реалізації Грінберга 
для Multics. Я прошу вибачення за "
-"цю помилку."
+"Берні Грінберг стверджує, що реалізація 
Emacs Дана Уайнреба для машини-Ліспа "
+"вийшла раніше реалізації Грінберга для 
Multics. Я прошу вибачення за цю "
+"помилку."
 
 #. type: Content of: <ol><li>
 msgid ""
@@ -1041,10 +1033,10 @@
 "that they could continue working at the AI Lab.  Symbolics hired them full "
 "time instead, so they stopped working at MIT."
 msgstr ""
-"План Ґрінблета наскільки я розумію, 
полягав у тому, щоб наймати людей "
-"з лабораторії за сумісництвом, щоби вони 
могли продовжувати працювати в "
-"Лабораторії штучного інтелекту. Symbolics 
замість цього наймала їх на "
-"повний робочий день, тому вони припиняли 
працювати в інституті."
+"План Ґрінблета наскільки я розумію, 
полягав у тому, щоб наймати людей з "
+"лабораторії за сумісництвом, щоби вони 
могли продовжувати працювати в "
+"Лабораторії штучного інтелекту. Symbolics 
замість цього наймала їх на повний "
+"робочий день, тому вони припиняли 
працювати в інституті."
 
 #. type: Content of: <ol><li>
 msgid ""
@@ -1058,17 +1050,17 @@
 "початковий період колишні хакери 
Лабораторії штучного інтелекту, як у "
 "Symbolics, так і в LMI, продовжували вносити свої 
зміни в систему машини-"
 "Ліспа інституту&nbsp;&nbsp; хоча за контрактом 
цього не вимагалося. План "
-"Symbolics полягав у тому, щоб перервати цю 
співпрацю у "
-"односторонньому порядку."
+"Symbolics полягав у тому, щоб перервати цю 
співпрацю у односторонньому "
+"порядку."
 
 #. type: Content of: <ol><li>
 msgid ""
 "It was not that I cared particularly about the fate of LMI, but rather I did "
 "not want to let Symbolics gain through its aggression against the AI Lab."
 msgstr ""
-"Не те щоб мене особливо турбувала доля LMI, 
але я просто не хотів "
-"дозволити Symbolics нажитися на своїй агресії 
по відношенню до Лабораторії "
-"штучного інтелекту."
+"Не те щоб мене особливо турбувала доля LMI, 
але я просто не хотів дозволити "
+"Symbolics нажитися на своїй агресії по 
відношенню до Лабораторії штучного "
+"інтелекту."
 
 #. type: Content of: <ol><li>
 msgid ""
@@ -1077,10 +1069,10 @@
 "source code was available at MIT, where I was entitled to read it, and at "
 "first that's how I found out about their changes."
 msgstr ""
-"З цього твердження було зроблено 
неправильний висновок, що я ніколи-ніколи 
не "
-"заглядав у програми Symbolics. Насправді тут 
йдеться, що я "
-"це робив спочатку. Вихідний текст Symbolics 
був доступний в інституті, де "
-"я мав право його читати і спочатку саме 
так я дізнавався про їхні зміни."
+"З цього твердження було зроблено 
неправильний висновок, що я ніколи-ніколи "
+"не заглядав у програми Symbolics. Насправді 
тут йдеться, що я це робив "
+"спочатку. Вихідний текст Symbolics був 
доступний в інституті, де я мав право "
+"його читати і спочатку саме так я 
дізнавався про їхні зміни."
 
 #. type: Content of: <ol><li><p>
 msgid ""
@@ -1090,19 +1082,19 @@
 "whatever way was best, without concern for what might be in Symbolics' code."
 msgstr ""
 "Але це означало, що я був змушений вживати 
особливі зусилля, щоб вирішувати "
-"кожну задачу по-іншому, аби уникнути 
копіювання програм Symbolics. "
-"Через деякий час я зробив висновок, що 
краще навіть не дивитися. Так я міг "
-"писати програми яким завгодно найкращим 
чином, не озираючись на те, що "
-"могло бути в текстах Symbolics."
+"кожну задачу по-іншому, аби уникнути 
копіювання програм Symbolics. Через "
+"деякий час я зробив висновок, що краще 
навіть не дивитися. Так я міг писати "
+"програми яким завгодно найкращим чином, 
не озираючись на те, що могло бути в "
+"текстах Symbolics."
 
 #. type: Content of: <ol><li>
 msgid ""
 "Symbolics at one point protested to MIT that my work, by thwarting their "
 "plan, had cost Symbolics a million dollars."
 msgstr ""
-"Symbolics якось висловила в інституті протест, 
в якому говорилося, що "
-"моя робота, перешкодивши їхнім планом, 
коштувала компанії Symbolics мільйон"
-" доларів."
+"Symbolics якось висловила в інституті протест, 
в якому говорилося, що моя "
+"робота, перешкодивши їхнім планом, 
коштувала компанії Symbolics мільйон "
+"доларів."
 
 #. type: Content of: <ol><li>
 msgid ""
@@ -1187,4 +1179,3 @@
 #. type: Content of: <div><p>
 msgid "Updated:"
 msgstr "Оновлено:"
-

Index: gnu/po/why-programs-should-be-shared.uk.po
===================================================================
RCS file: /web/www/www/gnu/po/why-programs-should-be-shared.uk.po,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gnu/po/why-programs-should-be-shared.uk.po  4 Aug 2016 05:33:29 -0000       
1.1
+++ gnu/po/why-programs-should-be-shared.uk.po  4 Aug 2016 05:57:33 -0000       
1.2
@@ -14,8 +14,8 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<"
-"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Lokalize 2.0\n"
 
 #. type: Content of: <title>
@@ -30,8 +30,7 @@
 
 #. type: Content of: <p>
 msgid ""
-"<strong>by <a href=\"http://www.stallman.org/\";>Richard "
-"Stallman</a></strong>"
+"<strong>by <a href=\"http://www.stallman.org/\";>Richard Stallman</a></strong>"
 msgstr ""
 "<strong><a href=\"http://www.stallman.org/\";>Річард 
Столмен</a></strong>"
 
@@ -47,14 +46,14 @@
 "1983&nbsp;року, хоча неясно, чи був текст 
написаний у той час або раніше. У "
 "травні 1983&nbsp;року він виношував плани 
розробки вільної операційної "
 "системи, але до того часу він, можливо, ще 
не прийняв рішення зробити її "
-"системою типу Unix, а не подобою 
машини-Ліспа Массачусетського тех
нологічного"
-" інституту."
+"системою типу Unix, а не подобою 
машини-Ліспа Массачусетського "
+"технологічного інституту."
 
 #. type: Content of: <blockquote><p>
 msgid ""
-"He had not yet conceptually distinguished the two meanings of "
-"&ldquo;free;&rdquo; this message is formulated in terms of gratis copies, "
-"but take for granted that this means users also have freedom."
+"He had not yet conceptually distinguished the two meanings of &ldquo;free;"
+"&rdquo; this message is formulated in terms of gratis copies, but take for "
+"granted that this means users also have freedom."
 msgstr ""
 "Він ще не провів різниці між двома 
значеннями слова &ldquo;<span lang=\"en"
 "\"xml:lang=\"en\">free</span>&rdquo;; це повідомлення 
формулюється в "
@@ -69,10 +68,10 @@
 "sold for an arm and a leg (usually after being written at gov't expense)."
 msgstr ""
 "П'ять років тому вважалося само собою 
зрозумілим, що будь-якою корисною "
-"програмою, написаною в SAIL, MIT, CMU і т. д., 
будуть обмінюватися. З тих пір "
-" ці університети стали діяти точно як 
програмувальні "
-"фірми&nbsp;&mdash; усе корисне продається за 
шалені гроші (як правило, "
-"після того, як це напишуть за державні 
дотації)."
+"програмою, написаною в SAIL, MIT, CMU і т. д., 
будуть обмінюватися. З тих "
+"пір  ці університети стали діяти точно як 
програмувальні фірми&nbsp;&mdash; "
+"усе корисне продається за шалені гроші (як 
правило, після того, як це "
+"напишуть за державні дотації)."
 
 #. type: Content of: <p>
 msgid ""
@@ -81,9 +80,9 @@
 "share, and haven't affected EMACS, so I suspect they are bogus."
 msgstr ""
 "Люди всілякими способами доводять, що 
роздавати програми шкідливо. Ці "
-"надумані проблеми ніколи нас не турбували 
в ті часи, коли ми <em>хотіли</"
-"em> обмінюватися, вони ніколи не зачіпали 
EMACS, тому я підозрюю, "
-"що все це дурниці."
+"надумані проблеми ніколи нас не турбували 
в ті часи, коли ми <em>хотіли</em> "
+"обмінюватися, вони ніколи не зачіпали EMACS, 
тому я підозрюю, що все це "
+"дурниці."
 
 #. type: Content of: <p>
 msgid ""
@@ -95,28 +94,26 @@
 msgstr ""
 "Наприклад, кажуть, що компанії будуть 
&ldquo;красти&rdquo; програми і "
 "продавати їх. Якщо це так, то це не гірше, 
ніж якщо б їх продавав Стенфорд! "
-"Принаймні у людей була б можливість 
отримати безкоштовну копію. "
-"Користувачі хочуть купувати програми з 
підтримкою? Так нехай продають "
-"контракти на підтримку&nbsp;&mdash; але самі 
програми нехай роздають "
-"безкоштовно."
+"Принаймні у людей була б можливість 
отримати безкоштовну копію. Користувачі "
+"хочуть купувати програми з підтримкою? 
Так нехай продають контракти на "
+"підтримку&nbsp;&mdash; але самі програми нехай 
роздають безкоштовно."
 
 #. type: Content of: <p>
 msgid ""
 "I think I can dispose of any reasons you may think exist for not sharing "
 "software.  But more important is the reason why we <em>should</em> share:"
 msgstr ""
-"Як на мене, то я можу оскаржити будь-які 
причини заборони на обмін"
-" програмами, які "
-"тільки можуть прийти в голову. Але 
головне&nbsp;&mdash; це чому нам "
-"<em>потрібно</em> обмінюватися:"
+"Як на мене, то я можу оскаржити будь-які 
причини заборони на обмін "
+"програмами, які тільки можуть прийти в 
голову. Але головне&nbsp;&mdash; це "
+"чому нам <em>потрібно</em> обмінюватися:"
 
 #. type: Content of: <p>
 msgid ""
 "We would get more done with the same amount of work, if artificial obstacles "
 "were removed.  And we would feel more in harmony with everyone else."
 msgstr ""
-"Якщо усунути штучні перешкоди, то ми 
будемо робити більше при тому  "
-"обсязі робіт. І ми будемо в більшій 
гармонії з іншими людьми."
+"Якщо усунути штучні перешкоди, то ми 
будемо робити більше при тому  обсязі "
+"робіт. І ми будемо в більшій гармонії з 
іншими людьми."
 
 #. type: Content of: <p>
 msgid ""
@@ -124,10 +121,9 @@
 "of computer science.  Universities used to defend the principle of "
 "scientific cooperation.  Is it right for them to throw it over for profit?"
 msgstr ""
-"Обмін програмами&nbsp;&mdash; це та форма, яку 
наукова співпраця "
-"приймає в області інформатики. Раніше 
університети захищали принцип "
-"наукової співпраці. Правильно для них 
буде відмовлятися від нього "
-"заради наживи?"
+"Обмін програмами&nbsp;&mdash; це та форма, яку 
наукова співпраця приймає в "
+"області інформатики. Раніше університети 
захищали принцип наукової "
+"співпраці. Правильно для них буде 
відмовлятися від нього заради наживи?"
 
 #. type: Content of: <p>
 msgid "Should we let them?"
@@ -141,9 +137,9 @@
 "if you start sharing, other people might start sharing with you."
 msgstr ""
 "Вже зараз аспіранти працюють над 
програмними проектами, призначеними "
-"спеціально для продажу. Але якщо б ми 
створили атмосферу поглядів, яка "
-"була п'ять років тому, університет не 
посмів би цього робити. А якщо ви "
-"станете обмінюватися, то інші теж можуть 
почати обмінюватися з вами."
+"спеціально для продажу. Але якщо б ми 
створили атмосферу поглядів, яка була "
+"п'ять років тому, університет не посмів би 
цього робити. А якщо ви станете "
+"обмінюватися, то інші теж можуть почати 
обмінюватися з вами."
 
 #. type: Content of: <p>
 msgid "So let's start sharing again."
@@ -156,11 +152,11 @@
 
 #. type: Content of: <div><div><p>
 msgid ""
-"Please send general FSF &amp; GNU inquiries to <a "
-"href=\"mailto:address@hidden";>&lt;address@hidden&gt;</a>.  There are also <a "
-"href=\"/contact/\">other ways to contact</a> the FSF.  Broken links and "
-"other corrections or suggestions can be sent to <a "
-"href=\"mailto:address@hidden";>&lt;address@hidden&gt;</a>."
+"Please send general FSF &amp; GNU inquiries to <a 
href=\"mailto:address@hidden";
+"\">&lt;address@hidden&gt;</a>.  There are also <a href=\"/contact/\">other 
ways "
+"to contact</a> the FSF.  Broken links and other corrections or suggestions "
+"can be sent to <a href=\"mailto:address@hidden";>&lt;address@hidden"
+"org&gt;</a>."
 msgstr ""
 "Будь ласка, надсилайте загальні запити 
фонду та GNU за адресою <a href="
 "\"mailto:address@hidden";>&lt;address@hidden&gt;</a>. Наявні також 
<a href=\"/"
@@ -168,25 +164,25 @@
 "і інші виправлення чи пропозиції можна 
надсилати за адресою <a href=\"mailto:";
 "address@hidden">&lt;address@hidden&gt;</a>."
 
+#
+#
+#
 #.  TRANSLATORS: Ignore the original text in this paragraph,
 #.         replace it with the translation of these two:
-#
 #.         We work hard and do our best to provide accurate, good quality
 #.         translations.  However, we are not exempt from imperfection.
 #.         Please send your comments and general suggestions in this regard
 #.         to <a href="mailto:address@hidden";>
-#
 #.         &lt;address@hidden&gt;</a>.</p>
-#
 #.         <p>For information on coordinating and submitting translations of
 #.         our web pages, see <a
 #.         href="/server/standards/README.translations.html">Translations
 #.         README</a>.
 #. type: Content of: <div><div><p>
 msgid ""
-"Please see the <a "
-"href=\"/server/standards/README.translations.html\">Translations README</a> "
-"for information on coordinating and submitting translations of this article."
+"Please see the <a href=\"/server/standards/README.translations.html"
+"\">Translations README</a> for information on coordinating and submitting "
+"translations of this article."
 msgstr ""
 "Ми намагалися зробити цей переклад точним 
та якісним, але виключити "
 "можливість помилки ми не можемо. 
Надсилайте, будь ласка, свої зауваження і "
@@ -202,14 +198,13 @@
 
 #. type: Content of: <div><p>
 msgid ""
-"This page is licensed under a <a rel=\"license\" "
-"href=\"http://creativecommons.org/licenses/by-nd/4.0/\";>Creative Commons "
-"Attribution-NoDerivatives 4.0 International License</a>."
-msgstr ""
-"Ця сторінка доступна на умовах <a rel=\"license\""
-" href=\"http://creativecommons.org/licenses/by-nd/4.0/deed.uk\";> 
ліцензії"
-" Creative Commons Attribution-"
-"NoDerivatives (<em>Із зазначенням 
авторства&nbsp;&mdash; Без "
+"This page is licensed under a <a rel=\"license\" href=\"http://";
+"creativecommons.org/licenses/by-nd/4.0/\">Creative Commons Attribution-"
+"NoDerivatives 4.0 International License</a>."
+msgstr ""
+"Ця сторінка доступна на умовах <a rel=\"license\" 
href=\"http://";
+"creativecommons.org/licenses/by-nd/4.0/deed.uk\"> ліцензії Creative 
Commons "
+"Attribution-NoDerivatives (<em>Із зазначенням 
авторства&nbsp;&mdash; Без "
 "похідних творів</em>) 4.0 Міжнародна</a>."
 
 #. TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.
@@ -222,4 +217,3 @@
 #. type: Content of: <div><p>
 msgid "Updated:"
 msgstr "Оновлено:"
-

Index: server/body-include-2.uk.html
===================================================================
RCS file: /web/www/www/server/body-include-2.uk.html,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -b -r1.86 -r1.87
--- server/body-include-2.uk.html       3 Aug 2016 15:59:36 -0000       1.86
+++ server/body-include-2.uk.html       4 Aug 2016 05:57:33 -0000       1.87
@@ -52,14 +52,14 @@
 <li id="tabAboutGNU" class="active">
     
     <!--#echo encoding="none" var="MARK_START" -->
-<a href="/gnu/gnu.html">ABOUT&nbsp;GNU</a>
+<a href="/gnu/gnu.html">ПРО&nbsp;GNU</a>
     
     
   <!--#echo encoding="none" var="MARK_END" -->
 </li>
 
    <!--#else -->
-<li id="tabAboutGNU"><a href="/gnu/gnu.html">ABOUT&nbsp;GNU</a></li>
+<li id="tabAboutGNU"><a href="/gnu/gnu.html">ПРО&nbsp;GNU</a></li>
 
 <!--#endif -->
 <!--#if expr="$REQUEST_URI = /^\/philosophy\//" -->

Index: server/po/body-include-2.uk.po
===================================================================
RCS file: /web/www/www/server/po/body-include-2.uk.po,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -b -r1.89 -r1.90
--- server/po/body-include-2.uk.po      4 Aug 2016 05:33:29 -0000       1.89
+++ server/po/body-include-2.uk.po      4 Aug 2016 05:57:33 -0000       1.90
@@ -15,9 +15,8 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Outdated-Since: 2016-08-03 15:55+0000\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<"
-"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Lokalize 2.0\n"
 
 #. type: Content of: <p>
@@ -88,7 +87,6 @@
 
 # type: Content of: <body><div><div><div><ul><li>
 #. type: Content of: <div><ul><li>
-#| msgid "<a href=\"/gnu/gnu.html\">About&nbsp;GNU</a>"
 msgid "<a href=\"/gnu/gnu.html\">ABOUT&nbsp;GNU</a>"
 msgstr "<a href=\"/gnu/gnu.html\">ПРО&nbsp;GNU</a>"
 

Index: gnu/rms-lisp.uk.html
===================================================================
RCS file: gnu/rms-lisp.uk.html
diff -N gnu/rms-lisp.uk.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gnu/rms-lisp.uk.html        4 Aug 2016 05:57:33 -0000       1.1
@@ -0,0 +1,590 @@
+<!--#set var="ENGLISH_PAGE" value="/gnu/rms-lisp.en.html" -->
+
+<!--#include virtual="/server/header.uk.html" -->
+<!-- Parent-Version: 1.77 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>Мій досвід роботи з Лsспом і розвиток GNU 
Emacs - Проект GNU - Фонд вільного
+програмного забезпечення</title>
+
+<!--#include virtual="/gnu/po/rms-lisp.translist" -->
+<!--#include virtual="/server/banner.uk.html" -->
+<h2>Мій досвід роботи з Ліспом і розвиток GNU 
Emacs</h2>
+
+<blockquote><p>(Запис промови Річарда Столмена, 
виголошеної 28&nbsp;жовтня 2002&nbsp;року
+на Міжнародній конференції по 
Ліспу).</p></blockquote>
+
+<p>Оскільки жодна з моїх звичайних промов 
не має ніякого відношення до Ліспа,
+то ні одна з них не підходить для 
сьогоднішнього виступу. Тому мені
+доведеться імпровізувати. Позаяк у своїй 
професійній діяльності мені
+доводилося виконувати досить багато 
роботи, пов'язаної з Ліспом, у мене,
+мабуть, є що розказати.</p>
+
+<p>Моя перша зустріч з Ліспом сталася, коли 
я прочитав посібник Лісп&nbsp;1.5 у
+старших класах. Саме тоді мене вразила 
ідея, що може бути така мова
+програмування. Можливість зробити 
що-небудь на Ліспі вперше з'явилася у
+мене, коли я був на молодших курсах в 
Гарварді і писав інтерпретатор Ліспа
+для PDP-11. Це була дуже маленька 
машина&nbsp;&mdash; у ній було щось на
+зразок 8k пам'яті,&mdash; і мені вдалося 
написати інтерпретатор довжиною в
+тисячу команд. Це залишало мені трохи 
місця для даних. Це було до того, як я
+дізнався, як виглядають справжні програми, 
які виконують справжні системні
+завдання.</p>
+
+<p>Я почав виконувати роботи над справжньою 
реалізацією Ліспа з Джоном-Л Уайтом
+відразу, коли мене прийняли у <abbr 
title="Massachusetts Institute of
+Technology">MIT</abbr>. Туди мене прийняв не Джон-Л, а 
Расселл Нофтскер, що
+було вельми іронічно з огляду на те, що 
трапилося згодом&nbsp;&mdash; він,
+вірогідно, сильно про це шкодував.</p>
+
+<p>У сімдесяті роки XX&nbsp;століття, до того, 
як моє життя в політизувалося
+внаслідок жахливих подій, я просто робив 
одне розширення одних програм за
+іншими, і більшість з них не мали жодного 
стосунку до Ліспа. Але водночас я
+писав текстовий редактор Emacs. Цікава думка, 
закладена в Emacs, полягала в
+тому, що в ньому була мова програмування, і 
користувацькі команди
+редагування писалися на цій 
інтерпретованій мові програмування, тому 
під час
+редагування у редактор можна було 
завантажувати нові команди. Можна було
+підредагувати програми, якими 
користуєшся, а потім продовжувати 
редагувати
+ними. Отже, у нас була система, корисна не 
для програмування, і все-таки під
+час користування нею можна було 
програмувати. Я не знаю, чи це була перша
+така система, але це точно був перший такий 
редактор.</p>
+
+<p>Ця атмосфера побудови гігантських, 
складних програм для застосування в
+своєму власному редагуванні, а потім 
обміну ними з іншими людьми, живила дух
+вільної співпраці, який панував тоді в 
Лабораторії штучного інтелекту. Ідея
+була в тому, що можна передати копію 
програми, що в тебе є, тому, кому вона
+потрібна. Ми обмінювалися програмами з 
усіма, хто тільки хотів ними
+користуватися, програми були людським 
знанням. Отож, хоча і не було
+організованої політичної думки, яка б 
поєднувала те, як ми обмінювалися
+програмами зі облаштуванням Emacs, я 
переконаний, що між ними був
+зв'язок&nbsp;&nbsp; можливо, неусвідомлений. Я 
думаю, що саме природа нашого
+способу життя в Лабораторії штучного 
інтелекту привела до створення Emacs і
+зробила його таким, яким він був.</p>
+
+<p>У первісному Emacs Ліспа не було. Мовою 
низького рівня&nbsp;&mdash;
+неітерпретованою мовою&nbsp;&nbsp; був 
асемблер PDP-10. Інтерпретатор, який
+ми писали, насправді писався не для Emacs, він 
писався для TECO&nbsp;<a
+href="#tf1">[1]</a>. Це був наш текстовий редактор і 
вкрай потворна мова
+програмування, настільки потворна, 
наскільки це взагалі можливо. Причина
+була в тому, що вона не була спроектована 
як мова програмування, а натомість
+як мова редактора і команд. Були такі 
команди, як &ldquo;5l&rdquo;, що
+означало &ldquo;пересунутися на п'ять 
рядків&rdquo;, або &ldquo;i&rdquo; з
+наступним рядком та <em>ESC</em> для того, щоб 
вставити цей рядок. Можна
+було набрати рядок, який був послідовністю 
команд, який називався командним
+рядком. Він завершувався символами <em>ESC</em> 
<em>ESC</em>, і тоді
+послідовність виконувалася.</p>
+
+<p>Втім люди хотіли доповнити цю мову 
засобами програмування, тому вони додали
+деякі засоби. Наприклад, однією з перших 
була додана конструкція циклу, це
+були <em>&lt;</em> <em>&gt;</em>. Нею оточували 
команди, і це був цикл. Були
+інші незрозумілі команди, якими можна було 
користуватися для умовного виходу
+з циклу. При створенні Emacs ми&nbsp;<a 
href="#foot-1">(1)</a> додали
+можливість створення підпрограм з 
іменами. До того це був ніби Бейсик, у
+назвах підпрограм могло бути тільки по 
одній букві. Писати на цьому великі
+програми було важко, тому ми дописали 
програму, щоб у них могли мати довгі
+назви. Насправді там були доволі х
итромудрі засоби; здається, засіб
+&ldquo;unwind-protect&rdquo; Лісп запозичив з TECO.</p>
+
+<p>Ми почали закладати досить хитромудрі 
засоби, і у всіх у них був потворний
+синтаксис, який тільки-но можна придумати, 
і це працювало&nbsp;&nbsp; люди
+все одно були у змозі писати на цьому 
великі програми. Очевидним уроком було
+те, що така мова, як TECO, неспроектована як 
мова програмування,&mdash; є
+хибним шляхом. Мова, на якій ви будуєте 
свої розширення, повинна
+замислюватися як мова програмування не 
заднім числом; її відразу слід
+проектувати як мову програмування. 
Фактично, ми виявили, що найкращою мовою
+програмування для цих цілей був Лісп.</p>
+
+<p>Це відкрив Берні Грінберг&nbsp;<a 
href="#foot-2">(2)</a>. Він написав версію
+Emacs на MacLisp в Multics, і він писав свої програми 
на MacLisp
+прямолінійним методом. Сам редактор був 
повністю написаний на Ліспі. Emacs
+для Multics мав великий успіх&nbsp;&nbsp; 
програмування нових команд
+редагування було таким зручним, що навіть 
секретарки в його конторі почали
+навчання користуванню ним. Вони 
користувалися посібником, яке хтось 
написав
+і в якому було показано, як доповнювати Emacs, 
але там не говорилося, що це
+програмування. Тому секретарок, які 
думали, що не можуть програмувати, це не
+відлякувало. Вони читали посібник, 
виявляли, що можуть робити щось корисне,
+і вчилися програмувати.</p>
+
+<p>Отож, Берні зрозумів, що застосунок &mdash; 
програма, яка робить щось
+корисне для вас&nbsp;&nbsp; всередині якої був 
Лісп і яку ви можете
+доповнювати, переписуючи програми на 
Ліспі,&mdash; насправді дуже хороший
+спосіб навчитися програмувати. Це дає 
людям можливість писати невеликі
+програми, які для них корисні, чого в 
більшості областей ви напевно не
+можете. Вони можуть отримувати заохочення 
від практичної користі для них
+самих на стадії, де це найважче&nbsp;&mdash; коли 
вони не думають, що можуть
+програмувати,&mdash; поки вони не дійдуть до 
точки, в якої вони вже стали
+програмістами.</p>
+
+<p>У цей момент люди почали міркувати, як 
отримати щось подібне на платформі,
+де у них не було повної реалізації Ліспа. У 
MacLisp для Multics був
+компілятор та інтерпретатор&nbsp;&mdash; це 
була повністю оснащена система
+Лісп&nbsp;&mdash; але людям кортілося 
впровадити подібне на інших системах,
+де у них не було вже написаного 
компілятора Ласпа. Ну, якщо у вас немає
+компілятора Ласпа, ви не можете написати 
весь редактор на Ліспі&nbsp;&mdash;
+він був би занадто повільним, особливо 
перемальовування, якщо б довелося
+виконувати Лисп на інтерпретаторі. Таким 
чином, ми розробили гібридну
+техніку. Ідея полягала в тому, щоб писати 
інтерпретатор Ліспа і
+низькорівневі частині редактора разом, 
тоді частини редактора ставали
+вбудованими засобами Ліспа. Це були б 
будь-які частини, в оптимізації яких
+ми відчували необхідність. Цю  методику ми 
вже свідомо практикували у
+первісному Emacs, тому що були певні вельми 
високорівневі функції, які ми
+перереалізували на машинній мові, 
переробивши їх на примітиви
+TECO. Наприклад, був примітив TECO для 
заповнення абзацу (насправді для
+основної роботи із заповнення абзацу, тому 
що деякі з найменш ресурсомістких
+частин роботи виконувалися на вищому 
рівні програмою TECO). Можна було
+виконувати всю роботу, написавши програму 
на TECO, але вона була занадто
+повільною, так що ми оптимізували її, 
переносячи частину її на машинну
+мову. Тут (в гібридної техніки) ми 
скористалися тією ж ідеєю: велика частина
+редактора буде написана на Ліспі, але 
певні його частини, які потрібно було
+виконувати особливо швидко, будуть 
написані на низькому рівні.</p>
+
+<p>Таким чином, коли я писав свою другу 
реалізацію Emacs, я дотримувався цієї
+схеми. Мова низького рівня більше не була 
машинною мовою, це був Сі. Сі
+виявилася доброю, ефективною мовою для 
переносних програм, призначених для
+виконання у операційних системах на 
кшталт Unix. Там був інтерпретатор
+Ліспа, але я реалізував засоби для 
вирішення спеціальних завдань редагування
+безпоередньо на Сі&nbsp;&nbsp; сюди входили 
маніпуляція буферами редактора,
+вставка тексту на початок, читання і запис 
файлів, оновлення буфера на
+екрані, управління вікнами редактора.</p>
+
+<p>Доречі це був не перший Emacs, написаний на 
Сі і працював в Unix. Перший був
+написаний Джеймсом Гослінгом, його 
називали GosMacs. З них вийшла дивна
+історія. Спочатку він, здавалося, 
перебував під впливом тієї ж самої
+атмосфери обміну і співробітництва 
початкового Emacs. Я спочатку випускав
+початковий Emacs для людей в 
Массачусетському технологічному
+інституті. Дехто захотів перенести його на 
Twenex&nbsp;&nbsp; спочатку
+редактор працював тільки у Несумісній 
системі поділу часу, якою ми
+користувалися в інституті. Вони перенесли 
його на Twenex, це означало, що в
+світі було кілька сотень обчислювальних 
систем, в яких потенційно можна було
+його застосовувати. Ми почали поширення 
серед них із правилом &ldquo; ви
+повинні надсилати назад свої 
поліпшення&rdquo;, щоб ми всі могли отримувати
+з цього користь. Ніхто ніколи не намагався 
стежити за дотриманням цього, але
+наскільки я знаю, люди дійсно 
співпрацювали.</p>
+
+<p>І Гослінг, на перших порах, здавалося, 
брав у цьому участь. Він написав
+підручник, в якому він називав цю програму 
Emacs, сподіваючися, що інші
+члени співтовариства будуть покращувати 
її, поки вона не заслугожить цієї
+назви. Це був правильний підхід до 
спільноти&nbsp;&nbsp; просити їх
+приєднатися і поліпшувати програму. Але 
після цього його ставлення,
+здається, змінилося, і він продав програму 
одній компанії.</p>
+
+<p>В цей час я працював над системою GNU 
(вільною операційною системою типу
+Unix, яку багато хто помилково називає 
&ldquo;Linux&rdquo;). Вільного
+редактора Emacs, який працював би в Unix, не 
існувало. Проте був у мене
+знайомий, який брав участь у розробці Emacs 
Гослінга. Гослінг передав йому,
+по електронній пошті, дозвіл поширювати 
його власну версію. Він запропонував
+мені скористатися цією версією. Тоді я 
виявив, що в Emacs Гослінга не було
+справжнього Ліспа. В ньому була мова 
програмування, відома як
+&ldquo;mocklisp&rdquo;, він синтаксично виглядає як 
Лисп, але у ньому немає
+структур даних Лиспа. Тому програми не 
були даними і не вистачало життєво
+важливих елементів Ліспа. Його 
структурами даних були рядки, числа і деякі
+інші спеціалізовані об'єкти.</p>
+
+<p>Я прийшов до висновку, що не можу 
скористатися цим, і був змушений замінити
+це все. Першим кроком було написання 
справжнього інтерпретатора Ліспа. Я
+поступово перебазував кожну частину 
редактора на справжні структури даних
+Ліспа замість написаних так-собі структур 
даних, створивши можливість
+виведення внутрішніх структур даних 
редактора і маніпуляцій ними у
+користувацьких програмах на Ліспі.</p>
+
+<p>Єдиним винятком було відображення на 
дисплеї. Довгий час оновлення на
+дисплеї було іншим світом. Редактор 
вступав у світ перемальовування, і все
+починало проводитися над абсолютно 
особливими структурами даних, для яких не
+було безпечного збору сміття, не було 
безпечних переривань, і в цей час не
+можна було виконувати ніяких програм на 
Ліспі. З тих пір ми це
+змінили&nbsp;&nbsp; зараз можна виконувати 
програми на Ліспі під час
+перемальовування. Це дуже зручно.</p>
+
+<p>Ця друга програма Emacs була &ldquo;вільною 
програмою&rdquo; сучасному
+розумінні цього слова&nbsp;&mdash; вона була 
частиною відкритої політичної
+кампанії за звільнення програм. Сутність 
цієї кампанії полягала в тому, що
+кожен має право вільно робити те, що ми у 
старі часи робили в
+Массачусетському технологічному 
інституті, працюючи разом над програмами і
+працюючи з усіма, хто тільки бажав 
працювати з нами. Це стало  основою руху
+за вільне програмне забезпечення&nbsp;&nbsp; на 
основі досвіду мого життя в
+Лабораторії штучного інтелекту&nbsp;&nbsp; 
працюйте над людським знанням і
+не стовбичте ні в кого на шляху до 
подальшого застосування та подальшого
+поширення людського знання.</p>
+
+<p>В цей час можна було зробити комп'ютер, 
який коштував приблизно стільки ж,
+скільки інші комп'ютери, не призначені для 
Ліспа, але він виконував би Лісп
+набагато швидше, ніж вони, і при цьому з 
повною перевіркою типів на кожній
+операції. Звичайні комп'ютери, як правило, 
змушували вибирати між швидкістю
+виконання і хорошою перевіркою типів. 
Отож, звичайно, можна було отримати
+компілятор Ліспа і швидко виконувати 
програми, але коли вони намагалися
+взяти <code>car</code> від числа, це призводило до 
безглуздих результатів і
+врешті-решт коли-небудь призводило до 
збою.</p>
+
+<p>Машина Ліспа була в змозі виконувати 
команди майже так само швидко, як ті
+інші машини, але кожна команда... команда 
<code>car</code> виконувала
+перевірку типів&nbsp;&mdash; тому коли ви 
намагалися взяти <code>car</code>
+від числа у скомпілованій програмі, це 
негайно давало помилку. Ми побудували
+машину і у нас була для неї операційна 
система Ліспа. Вона майже повністю
+була написана на Ліспі, за винятком частин, 
записаних в мікрокоді. Виник
+інтерес до виробництва машин, а це 
означало, що потрібно створити компанію.</p>
+
+<p>Було два різних уявлення про те, якою 
повинна бути ця компанія. Грінблет
+хотів створити те, що він називав &ldquo;х
акерською&rdquo; компанією. Це
+означало, що це була б компанія під 
управлінням хакерів і працює сприятливо
+для хакерів. Іншою метою була підтримка 
культури Лабораторії штучного
+інтелекту&nbsp;<a href="#foot-3">(3)</a>. На жаль, у 
Грінблета не було
+ніякого ділового досвіду, тому інші люди з 
групи машини Ліспа говорили, що
+вони сумніваються в його спроможності  це 
зробити. Вони думали, що уникнути
+зовнішніх капіталовкладень, як він 
планував, не вдасться.</p>
+
+<p>Але чому він хотів уникнути зовнішніх 
капіталовкладень? Тому що коли у
+компанії є зовнішні вкладники, вони беруть 
контроль в свої руки і не
+дозволяють вам бути педантичним; а якщо ви 
скільки-небудь педантичні, то
+вони врешті-решт поставлять на керівну 
посаду кого-небудь іншого.</p>
+
+<p>Отож, у Грінблета була думка, що він 
знайде клієнта, який заплатить за
+комплектуючі вперед. Вони зібрали б машини 
і поставили їх йому; отримуючи
+таким чином дохід з цих комплектуючих, 
вони змогли б купити комплектуючі ще
+для декількох машин, продати їх, а потім 
купити комплектуючі для більшого
+числа машин і так далі. Інші люди з групи 
думали, що так працювати не вийде.</p>
+
+<p>Гринблэтт залучив Расела Нофтскера, 
людину, яка найняла мене, а в згодом
+пішла з Лабораторії штучного інтелекту і 
створила прибуткову
+компанію. Вважалося, що у Расела є ділова х
ватка. Він продемонстрував цю
+ділову хватку, сказавши людям в групі: 
&ldquo;Давайте кинемо Грінблета і
+забудемо про його ідеї; а ми створимо іншу 
компанію&rdquo;. Вдарив у спину,
+зовсім як справжній підприємець. Ці люди 
вирішили сформувати компанію під
+назвою &ldquo;Symbolics&rdquo;, залучати зовнішній 
капітал, не бути
+педантичними і робити все можливе, щоб 
перемогти.</p>
+
+<p>Але Грінблет не відступив. Він і деякі 
лояльні по відношенню до нього люди
+вирішили все одно утворити Lisp Machines Inc. і 
працювати за своїм планом. І
+що б ви думали? Їм це вдалося! У них з'явився 
перший клієнт, і їм заплатили
+наперед. Вони збирали машини, продавали їх 
і збирали ще і ще. Врешті-решт
+вони стали на ноги, незважаючи на те, що 
більшість людей в групі їм не
+допомагали. Компанія Symbolics також почала 
успішну діяльність, тому було
+дві конкуруючі компанії, що виробляють 
машини-Ліспи. Коли в Symbolics
+зрозуміли, що LMI не думає вилітати в трубу, 
вони стали шукати способи
+зруйнувати її.</p>
+
+<p>Таким чином, за відходом з нашої 
лабораторії настала &ldquo;війна&rdquo; в
+нашій лабораторії. Відхід стався, коли 
компанія Symbolics переманила всіх
+хакерів, крім мене і тих, хто за 
сумісництвом працював у LMI. Потім вони
+встановили правило і виключили тих, хто за 
сумісництвом працював в
+інституті, тому їм довелося піти повністю, 
і я залишився один. Тепер
+Лабораторія штучного інтелекту була 
безпорадна. А інститут уклав з цими
+двома компаніями одну дуже дурну угоду. Це 
був тристоронній договір, у якому
+обидві компанії ліцензували вихідні 
тексти системи машини Ліспа. Ці компанії
+повинні були надавати свої зміни в 
користування інституту. Але в договорі не
+говорилося, що інститут має право 
розміщувати їх в системах своїх машин
+Ліспів, які ліцензували обидві компанії. 
Ніхто не передбачав, що групу
+хакерів Лабораторії штучного інтелекту 
розженуть, але так і сталося.</p>
+
+<p> Отже, в Symbolics дозрів план&nbsp;<a 
href="#foot-4">(4)</a>. Вони сказали
+лабораторії: &ldquo;Ми продовжимо надавати у 
ваше користування свої зміни в
+системі, але вам не можна розміщувати їх в 
системі машини Ліспа
+інституту. Замість цього ми надамо вам 
доступ до системи машини Ліспа
+Symbolics, і ви зможете працювати на ній, але це 
все, що ви можете робити.</p>
+
+<p>Це фактично означало, що вони зажадали 
від нас стати на ту чи іншу бік і
+користуватися або версією інституту, або 
версією Symbolics. Що б ми не
+вибрали, це визначало б, в яку систему 
підуть наші удосконалення. Якщо б ми
+працювали над версією Symbolics і 
вдосконалювали її, ми підтримували б
+тільки Symbolics. Якщо б ми користувалися 
версією інституту і вдосконалювали
+її, ми надавали б роботу в розпорядження 
обох компаній, але в Symbolics
+розуміли, що з нашого боку це було б 
підтримкою LMI, тому що ми допомагали б
+їм продовжувати існування. Отож, нам не 
дозволили залишатися нейтральними.</p>
+
+<p>Аж до цього моменту я не приймав сторону 
жодної з компаній, хоча мені було
+боляче бачити, що сталося з нашим 
співтовариством і програмами. Але тепер
+компанія Symbolics примушувала мене до цього. 
Отже, намагаючись допомогти
+компанії Lisp Machines Inc. втриматися на 
плаву&nbsp;<a
+href="#foot-5">(5)</a>, я почав дублювати всі 
поліпшення в системі машини
+Ліспа, які робили в Symbolics. Я писав 
еквівалентні поліпшення сам (тобто
+тексти програм були моїми власними).</p>
+
+<p>Через деякий час&nbsp;<a href="#foot-6">(6)</a> я 
прийшов до висновку, що
+було б найкраще, якби я навіть не заглядав 
у їхні тексти. Коли вони робили
+оголошення про випуск попередньої версії, 
в якому був опис випуску, я бачив,
+які там були функції, а потім впроваджував 
їх. До того часу, як вони
+випускали остаточну версію, я теж випускав 
таку версію.</p>
+
+<p>Таким чином, протягом двох років я не 
давав їм покінчити з LMI, і ці дві
+компанії продовжували роботу. Але я не х
отів витрачати довгі роки на те, щоб
+покарати когось, просто заважаючи злій 
справі. Я побачив, що вони покарані
+досить ґрунтовно, тому що вони натрапили 
на конкуренцію, яка не йшла і не
+збиралася зникати&nbsp;<a href="#foot-7">(7)</a>. Тим 
часом прийшла пора
+почати облаштування нового 
співтовариства замість того, яке було 
знищено
+їхніми діями та діями інших.</p>
+
+<p>У сімдесятих роках співтовариство Ліспа 
не обмежувалося Лабораторією
+штучного інтелекту Массачусетського тех
нологічного інституту, і не всі
+хакери були в цьому інституті. Війна, яку 
розпочала компанія Symbolics,
+спустошила Массачусетський технологічний 
інститут, але в той час відбувалися
+і інші події. Були люди, які припиняли 
співпрацю, і все це разом спустошило
+наше співтовариство, і від нього майже 
нічого не залишилося.</p>
+
+<p>Коли я припинив карати Symbolics, мені 
довелося вигадувати, що робити
+далі. Мені потрібно було зробити вільну 
операційну систему, це було
+ясно&nbsp;&nbsp; єдиним способом дати людям 
спільно працювати і обмінюватися
+була вільна операційна система.</p>
+
+<p>Спершу я думав про створення системи на 
базі Ліспа, але усвідомив, що з
+технічної точки зору це не добре. Щоб 
отримати щось подібне до системи
+машини Ліспа, потрібен мікрокод 
спеціального призначення. Саме це 
дозволяло
+виконувати програми так само швидко, як 
інші комп'ютери виконували свої
+програми, і при цьому ще й користуватися 
перевіркою типів. Без цього усе
+звелося б до чогось на кшталт компіляторів 
Ліспа для інших машин. Програми
+були б швидшими, але водночас 
нестабільними. Так от, це припустимо, якщо
+виконувати одну програму на системі з 
поділом часу&nbsp;&mdash; якщо одна
+програма дає збій, це не катастрофа, це 
щось, що ваша програма час від часу
+робить. Але це робило її не досить гарною, 
щоб писати на ній операційну
+систему, тому я відмовився від думки про 
те, щоб зробити систему на взірець
+машини Ліспа.</p>
+
+<p>Замість цього я вирішив зробити 
операційну систему типу Unix, в якій були б
+реалізації Лиспа для виконання 
користувальницьких програм. Ядро було б
+написаним не на Ліспі, але Лісп у нас був 
би. Тому сама розробка цієї
+операційної системи, операційної системи 
GNU, привела мене до написання GNU
+Emacs. В процесі цього я прагнув зробити 
абсолютно мінімально можливу
+реалізацію Ліспа. Розмір програм мав 
надзвичайне значення.</p>
+
+<p>В той час, в&nbsp;1985&nbsp;році, існували люди, 
які мали одномегабайтові
+машини без віртуальної пам'яті. Вони х
отіли бути в змозі використовувати GNU
+Emacs. Це означало, що мені потрібно 
обмежувати програму якнайменшим
+розміром.</p>
+
+<p>Наприклад, у той час єдиною циклічною 
конструкцією була &ldquo;while&rdquo;,
+яка є вкрай простою. Не було ніяких 
способів дострокового виходу з оператора
+&ldquo;while&rdquo;, доводилося просто 
користуватися механізмом виключень
+або перевіряти змінну в циклі. Це показує, 
як далеко я зайшов у обмеженнях
+на розмір. У нас не було &ldquo;caar&rdquo;, 
&ldquo;cadr&rdquo; і так далі;
+&ldquo;вичавити все можливе&rdquo;&nbsp;&nbsp; таким 
духом був просякнутий
+GNU Emacs і його Лісп з самого початку.</p>
+
+<p>Зрозуміло, машин зараз більше і ми вже 
так не робимо. Ми заклали
+&ldquo;caar&rdquo;, &ldquo;cadr&rdquo; і так далі, і зараз 
при нагоді ми
+могли б закласти іншу циклічну 
конструкцію. Ми охоче розширимо його в 
деяких
+межах, але ми не хочемо розширювати його до 
рівня Загального Ліспа. Я одного
+разу реалізовував Загальний Лісп на 
машині-Ліспі, і мені він не так вже
+сподобався. Одна з речей, які мені 
страшенно не подобаються&nbsp;&nbsp;
+аргументи-ключові слова&nbsp;<a href="#foot-8">(8)</a>. 
На мій погляд, це
+виглядає не зовсім по-ліспівськи; іноді я 
пишу так, але зводжу до мінімуму
+кількість випадків, коли я це роблю.</p>
+
+<p>На цьому проекти GNU, пов'язані з Лиспом, не 
закінчилися. Згодом, приблизно
+в&nbsp;1995&nbsp;році, ми розмірковували над 
організацією проекту графічного
+робочого середовища. Було ясно, що для 
програм середовища нам потрібна мова
+програмування, на якій була б написана 
значна її частина, щоб зробити його
+легко розширюваною, як редактор. Постало 
питання про те, якою повинна бути
+мова.</p>
+
+<p>У той час для цих цілей посилено 
просувався TCL&nbsp;<a
+href="#tf2">[2]</a>. Я був дуже невисокої думки про 
TCL, в основному тому,
+що це був не Лісп. Він виглядав злегка 
подібним на Лісп, але семантично він
+ним не був, і він був не таким зрозумілим. 
Потім хтось показав мені
+оголошення, в якому компанія Sun намагалася 
найняти кого-небудь для роботи
+над TCL, щоб зробити його &ldquo;стандартом 
де-факто для мови
+розширень&rdquo; в усьому світі. А я подумав: 
&ldquo;Нам потрібно запобігти
+цьому&rdquo;. Тому ми почали робити Scheme 
стандартною мовою розширень
+GNU. Не Загальний Лісп, бо він був занадто 
великий. Ідея була в тому, що у
+нас буде інтерпретатор Scheme, спроектований 
для компонування у додатки так
+само, як це робили з TCL. Тоді ми стали б 
рекомендувати це як бажаний пакет
+розширень для всіх програм GNU.</p>
+
+<p>Є одна цікава вигода, яку можна отримати 
з застосування такого потужної
+мови, як варіант Ліспа, в якості первинної 
мови розширень. Ви можете
+реалізовувати інші мови переведенням їх 
на вашу первинну мову. Якщо ваша
+первинна мова&nbsp;&nbsp; TCL, ви не можете легко 
впровадити Лісп
+переведенням його на TCL. Але якщо ваш 
первинна мова&nbsp;&nbsp; Лісп, то
+неважко реалізовувати інші мови, 
переводячи їх. Наша ідея полягала в тому,
+що якщо б кожний відкритий додаток 
підтримував Scheme, то ви могли б
+написати реалізацію TCL, Python або Perl на Scheme, 
яка переводить цю
+програму на Scheme. Тоді ви могли б 
завантажувати її в будь-який додаток і
+надбудовувати його під свою улюблену мову 
і він працював би і з іншими
+надбудовами.</p>
+
+<p>До тих пір, поки мови розширення слабкі, 
користувачам доводиться
+застосовувати тільки ту мову, яку ви їм 
надаєте. Що означає, що людям,
+залюбленим, в яку б то не було дану мову, 
доводиться боротися за вибір
+розробників додатків&nbsp;&nbsp; кажучи 
розробнику програми:
+&ldquo;Закладіть, будь ласка, в свій додаток 
мою мову, а не
+його&rdquo;. Тоді у користувачів взагалі не 
буде вибору&nbsp;&nbsp; яким би
+додатком вони не користувалися, він прих
одить з однією мовою, і у них немає
+іншого виходу. Але коли у вас потужна мова, 
яка може реалізовувати інші
+мови, переводячи з них, то ви надаєте 
користувачеві вибір мови, і нам більше
+не доводиться вести війну мов. Саме це, як 
ми сподіваємося, зробить Guile,
+наш інтерпретатор Scheme. У нас є людина, яка 
цього літа працює над
+завершенням транслятора з Python на Scheme. Я не 
знаю, чи повністю він
+завершений, але якщо хтось зацікавлений у 
цьому проекті, нехай
+зв'яжеться. Ось такі у нас плани на 
майбутнє.</p>
+
+<p>Я не говорив про вільне програмне 
забезпечення, але дозвольте мені коротко
+розповісти вам трохи про те, що це означає. 
Вираз &ldquo;вільна
+програма&rdquo; передбачає не вартість; воно 
не означає, що ви отримаєте її
+безкоштовно. (Можливо, ви заплатили за 
копію або отримали копію
+безкоштовно.) Воно означає, що у вас як у 
користувача є свобода. Життєво
+важливо те, що ви вільні виконувати 
програму, вільні вивчати, що вона
+робить, можете змінювати її під свої 
потреби, вільні перерозповсюджувати
+копії серед інших і вільні публікувати 
поліпшені, розширені версії. Ось що
+означає вільна програма. Якщо ви 
користуєтеся невільною програмою, то ви
+втратили життєво важливу свободу, тому 
ніколи цього не робіть.</p>
+
+<p>Призначення проекту GNU полягає в тому, 
щоб полегшити людям відмову від
+зневажаючих свободу, пануючих над 
користувачем невільних програм наданням
+вільних програм для їхньої заміни. Для тих, 
у кого немає моральних сил для
+відмови від невільних програм, коли це 
означає яку-небудь практичну
+незручність,&mdash; для них ми намагаємося 
дати вільну альтернативу, щоб ви
+могли перейти до свободи з меншими 
зусиллями і меншими жертвами в
+практичному сенсі. Чим менші жертви, тим 
краще. Ми хочемо полегшити для вас
+співпрацю і вільне життя.</p>
+
+<p>Співпраця&nbsp;&mdash; це питання свободи. Ми 
звикли думати про свободу і
+співпрацю з товариством як про 
протилежності. Але в даному випадку вони на
+одній стороні. При вільних програмах ви 
вільні співпрацювати з іншими і
+допомагати самим собі. При невільних 
програмах хтось домінує над вами і
+роз'єднує людей. Вам не дозволяють 
обмінюватися з ними, ви не вільні
+співпрацювати або допомагати суспільству, 
точно так само, як ви не вільні
+допомогти самим собі. Роз'єднаність і 
безпорадність&nbsp;&nbsp; стан
+користувачів, які застосовують невільні 
програми.</p>
+
+<p>Ми виробили запаморочливе число вільних 
програм. Ми зробили те, що, як
+стверджувалося, ми ніколи не зможемо 
зробити; у нас є дві операційні системи
+з вільних програм. У нас є безліч додатків, 
і нам, очевидно, ще багато
+належить пройти. Отож, нам потрібна ваша 
допомога. Я хотів би попросити вас
+стати добровольцями проекту GNU; допоможіть 
нам розробити вільні програми
+для нових завдань. Загляньте на <a href="/help/">
+http://www.gnu.org/help</a> за пропозиціями того, як 
допомогти. Якщо ви
+хочете замовити щось, на це є посилання з 
домашньої сторінки. Якщо ви хочете
+почитати про філософських питаннях, 
загляньте в /philosophy. Якщо ви шукаєте
+вільні програми для користування, 
загляньте в /directory, де зараз
+перераховано близько 1900&nbsp;пакетів (це 
тільки частина всіх вільних
+програм, які є). Будь ласка, пишіть нові 
програми і передавайте нам. Мій
+збірник нарисів, &ldquo;Вільні програми і 
вільне суспільство&rdquo;,
+знаходиться у продажу, і його можна 
придбати на <a
+href="http://www.gnu.org/";>www.gnu.org</a>. Всього 
найкращого!</p>
+
+<ol>
+<li id="foot-1">Гай Стіл склав початковий 
симетричний набір команд Emacs; потім ми з ним
+почали реалізовувати Emacs (на базі TECO), але 
після однієї тривалої
+спільної сесії розробки Стіл почав відх
одити, тому Emacs закінчував я. Інші,
+зокрема, Юджин Чиччареллі і Майк Мак-Магон 
внесли свій внесок значно
+пізніше.</li>
+
+<li id="foot-2">Берні Грінберг стверджує, що 
реалізація Emacs Дана Уайнреба для 
машини-Ліспа
+вийшла раніше реалізації Грінберга для 
Multics. Я прошу вибачення за цю
+помилку.</li>
+
+<li id="foot-3">План Ґрінблета наскільки я 
розумію, полягав у тому, щоб наймати людей з
+лабораторії за сумісництвом, щоби вони 
могли продовжувати працювати в
+Лабораторії штучного інтелекту. Symbolics 
замість цього наймала їх на повний
+робочий день, тому вони припиняли 
працювати в інституті.</li>
+
+<li id="foot-4">Цей план базувався на тому (у тій 
промові я цього не сказав явно), що в
+початковий період колишні хакери 
Лабораторії штучного інтелекту, як у
+Symbolics, так і в LMI, продовжували вносити свої 
зміни в систему
+машини-Ліспа інституту&nbsp;&nbsp; хоча за 
контрактом цього не
+вимагалося. План Symbolics полягав у тому, щоб 
перервати цю співпрацю у
+односторонньому порядку.</li>
+
+<li id="foot-5">Не те щоб мене особливо турбувала 
доля LMI, але я просто не хотів дозволити
+Symbolics нажитися на своїй агресії по 
відношенню до Лабораторії штучного
+інтелекту.</li>
+
+<li id="foot-6">З цього твердження було зроблено 
неправильний висновок, що я ніколи-ніколи
+не заглядав у програми Symbolics. Насправді тут 
йдеться, що я це робив
+спочатку. Вихідний текст Symbolics був 
доступний в інституті, де я мав право
+його читати і спочатку саме так я 
дізнавався про їхні зміни.
+
+<p>Але це означало, що я був змушений 
вживати особливі зусилля, щоб вирішувати
+кожну задачу по-іншому, аби уникнути 
копіювання програм Symbolics. Через
+деякий час я зробив висновок, що краще 
навіть не дивитися. Так я міг писати
+програми яким завгодно найкращим чином, не 
озираючись на те, що могло бути в
+текстах Symbolics.</p></li>
+
+<li id="foot-7">Symbolics якось висловила в інституті 
протест, в якому говорилося, що моя
+робота, перешкодивши їхнім планом, 
коштувала компанії Symbolics мільйон
+доларів.</li>
+
+<li id="foot-8">Я не заперечую, якщо дуже складна 
і громіздка функція приймає
+аргументи-кодові слова. Турбує мене 
випадок, коли ними користуються такі
+прості функції, як &ldquo;member&rdquo;.</li>
+</ol>
+
+<div class="translators-notes">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
+ </div>
+</div>
+
+<!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.uk.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Будь ласка, надсилайте загальні запити 
фонду та GNU за адресою <a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>. Наявні 
також <a
+href="/contact/">інші способи зв'язку</a> з фондом. 
Звіти про непрацюючі
+посилання і інші виправлення чи 
пропозиції можна надсилати за адресою <a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.</p>
+
+<p>
+<!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to <a href="mailto:address@hidden";>
+
+        &lt;address@hidden&gt;</a>.</p>
+
+        <p>For information on coordinating and submitting translations of
+        our web pages, see <a
+        href="/server/standards/README.translations.html">Translations
+        README</a>. -->
+Ми намагалися зробити цей переклад точним 
та якісним, але виключити
+можливість помилки ми не можемо. 
Надсилайте, будь ласка, свої зауваження і
+пропозиції щодо перекладу за адресою <a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.
+</p><p>Відомості з координації та пропозицій 
перекладів наших статей див. у
+<a href="/server/standards/README.translations.html">&ldquo;Посібнику 
з
+перекладу&rdquo;</a>.</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+     files generated as part of manuals) on the GNU web server should
+     be under CC BY-ND 3.0 US.  Please do NOT change or remove this
+     without talking with the webmasters or licensing team first.
+     Please make sure the copyright date is consistent with the
+     document.  For web pages, it is ok to list just the latest year the
+     document was modified, or published.
+     
+     If you wish to list earlier years, that is ok too.
+     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+     years, as long as each year in the range is in fact a copyrightable
+     year, i.e., a year in which the document was published (including
+     being publicly visible on the web or in a revision control system).
+     
+     There is more detail about copyright years in the GNU Maintainers
+     Information document, www.gnu.org/prep/maintain. -->
+<p>Copyright &copy; 2003, 2007, 2013, 2014 Фонд вільного 
програмного
+забезпечення, Inc.</p>
+
+<p>Ця сторінка доступна на умовах <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/deed.uk";> 
ліцензії
+Creative Commons Attribution-NoDerivs (<em>Із зазначенням
+авторства&nbsp;&mdash; Без похідних творів</em>) 3.0 
Сполучені Штати</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.uk.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+Підтримка українського перекладу: Андрій 
Бандура
+(address@hidden)</div>
+
+<p class="unprintable"><!-- timestamp start -->
+Оновлено:
+
+$Date: 2016/08/04 05:57:33 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>

Index: gnu/po/rms-lisp.uk-en.html
===================================================================
RCS file: gnu/po/rms-lisp.uk-en.html
diff -N gnu/po/rms-lisp.uk-en.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gnu/po/rms-lisp.uk-en.html  4 Aug 2016 05:57:33 -0000       1.1
@@ -0,0 +1,592 @@
+<!--#include virtual="/server/header.html" -->
+<!-- Parent-Version: 1.77 -->
+<title>My Lisp Experiences and the Development of GNU Emacs
+- GNU Project - Free Software Foundation</title>
+<!--#include virtual="/gnu/po/rms-lisp.translist" -->
+<!--#include virtual="/server/banner.html" -->
+<h2>My Lisp Experiences and the Development of GNU Emacs</h2>
+
+<blockquote><p>(Transcript of Richard Stallman's Speech, 28 Oct 2002, at the
+International Lisp Conference).</p></blockquote>
+
+<p>Since none of my usual speeches have anything to do with Lisp, none
+of them were appropriate for today. So I'm going to have to wing it.
+Since I've done enough things in my career connected with Lisp I
+should be able to say something interesting.</p>
+
+<p>My first experience with Lisp was when I read the Lisp 1.5 manual
+in high school. That's when I had my mind blown by the idea that there
+could be a computer language like that. The first time I had a chance
+to do anything with Lisp was when I was a freshman at Harvard and I
+wrote a Lisp interpreter for the <abbr title="Programmed Data
+Processor">PDP</abbr>-11. It was a very small machine
+&mdash; it had something like 8k of memory &mdash; and I managed to write the
+interpreter in a thousand instructions. This gave me some room for a
+little bit of data. That was before I got to see what real software
+was like, that did real system jobs.</p>
+
+<p>I began doing work on a real Lisp implementation with JonL White
+once I started working at <abbr title="Massachusetts Institute of
+Technology">MIT</abbr>. I got hired at the Artificial Intelligence Lab
+not by JonL, but by Russ Noftsker, which was most ironic considering
+what was to come &mdash; he must have really regretted that day.</p>
+
+<p>During the 1970s, before my life became politicized by horrible
+events, I was just going along making one extension after another for
+various programs, and most of them did not have anything to do with
+Lisp. But, along the way, I wrote a text editor, Emacs. The
+interesting idea about Emacs was that it had a programming language,
+and the user's editing commands would be written in that interpreted
+programming language, so that you could load new commands into your
+editor while you were editing. You could edit the programs you were
+using and then go on editing with them. So, we had a system that was
+useful for things other than programming, and yet you could program it
+while you were using it. I don't know if it was the first one of
+those, but it certainly was the first editor like that.</p>
+
+<p>This spirit of building up gigantic, complicated programs to use in
+your own editing, and then exchanging them with other people, fueled
+the spirit of free-wheeling cooperation that we had at the AI Lab
+then. The idea was that you could give a copy of any program you had
+to someone who wanted a copy of it. We shared programs to whomever
+wanted to use them, they were human knowledge. So even though there
+was no organized political thought relating the way we shared software
+to the design of Emacs, I'm convinced that there was a connection
+between them, an unconscious connection perhaps. I think that it's the
+nature of the way we lived at the AI Lab that led to Emacs and made it
+what it was.</p>
+
+<p>The original Emacs did not have Lisp in it. The lower level
+language, the non-interpreted language &mdash; was <abbr>PDP</abbr>-10
+Assembler. The interpreter we wrote in that actually wasn't written
+for Emacs, it was written for <acronym title="Text Editor and
+COrrector">TECO</acronym>. It was our text editor, and was an
+extremely ugly programming language, as ugly as could possibly be. The
+reason was that it wasn't designed to be a programming language, it
+was designed to be an editor and command language. There were commands
+like &lsquo;5l&rsquo;, meaning &lsquo;move five lines&rsquo;, or
+&lsquo;i&rsquo; and then a string and then an ESC to insert that
+string. You would type a string that was a series of commands, which
+was called a command string. You would end it with ESC ESC, and it
+would get executed.</p>
+
+<p>Well, people wanted to extend this language with programming
+facilities, so they added some. For instance, one of the first was a
+looping construct, which was &lt; &gt;. You would put those around
+things and it would loop. There were other cryptic commands that could
+be used to conditionally exit the loop.  To make Emacs, we
+<a href="#foot-1">(1)</a> added facilities to have subroutines with
+names. Before that, it was sort of like Basic, and the subroutines
+could only have single letters as their names. That was hard to
+program big programs with, so we added code so they could have longer
+names. Actually, there were some rather sophisticated facilities; I
+think that Lisp got its unwind-protect facility
+from <acronym>TECO</acronym>.</p>
+
+<p>We started putting in rather sophisticated facilities, all with the
+ugliest syntax you could ever think of, and it worked &mdash; people were
+able to write large programs in it anyway. The obvious lesson was that
+a language like <acronym>TECO</acronym>, which wasn't designed to be a
+programming language, was the wrong way to go. The language that you
+build your extensions on shouldn't be thought of as a programming
+language in afterthought; it should be designed as a programming
+language. In fact, we discovered that the best programming language
+for that purpose was Lisp.</p>
+
+<p>It was Bernie Greenberg, who discovered that it
+was <a href="#foot-2">(2)</a>.  He wrote a version of Emacs in Multics
+MacLisp, and he wrote his commands in MacLisp in a straightforward
+fashion. The editor itself was written entirely in Lisp. Multics Emacs
+proved to be a great success &mdash; programming new editing commands
+was so convenient that even the secretaries in his office started
+learning how to use it. They used a manual someone had written which
+showed how to extend Emacs, but didn't say it was a programming. So
+the secretaries, who believed they couldn't do programming, weren't
+scared off. They read the manual, discovered they could do useful
+things and they learned to program.</p>
+
+<p>So Bernie saw that an application &mdash; a program that does something
+useful for you &mdash; which has Lisp inside it and which you could extend
+by rewriting the Lisp programs, is actually a very good way for people
+to learn programming. It gives them a chance to write small programs
+that are useful for them, which in most arenas you can't possibly
+do. They can get encouragement for their own practical use &mdash; at the
+stage where it's the hardest &mdash; where they don't believe they can
+program, until they get to the point where they are programmers.</p>
+
+<p>At that point, people began to wonder how they could get something
+like this on a platform where they didn't have full service Lisp
+implementation. Multics MacLisp had a compiler as well as an
+interpreter &mdash; it was a full-fledged Lisp system &mdash; but people wanted
+to implement something like that on other systems where they had not
+already written a Lisp compiler. Well, if you didn't have the Lisp
+compiler you couldn't write the whole editor in Lisp &mdash; it would be
+too slow, especially redisplay, if it had to run interpreted Lisp.  So
+we developed a hybrid technique. The idea was to write a Lisp
+interpreter and the lower level parts of the editor together, so that
+parts of the editor were built-in Lisp facilities. Those would be
+whatever parts we felt we had to optimize. This was a technique that
+we had already consciously practiced in the original Emacs, because
+there were certain fairly high level features which we re-implemented
+in machine language, making them into <acronym>TECO</acronym>
+primitives. For instance, there was a <acronym>TECO</acronym>
+primitive to fill a paragraph (actually, to do most of the work of
+filling a paragraph, because some of the less time-consuming parts of
+the job would be done at the higher level by a <acronym>TECO</acronym>
+program). You could do the whole job by writing
+a <acronym>TECO</acronym> program, but that was too slow, so we
+optimized it by putting part of it in machine language. We used the
+same idea here (in the hybrid technique), that most of the editor
+would be written in Lisp, but certain parts of it that had to run
+particularly fast would be written at a lower level.</p>
+
+<p>Therefore, when I wrote my second implementation of Emacs, I
+followed the same kind of design. The low level language was not
+machine language anymore, it was C. C was a good, efficient language
+for portable programs to run in a Unix-like operating system. There
+was a Lisp interpreter, but I implemented facilities for special
+purpose editing jobs directly in C &mdash; manipulating editor buffers,
+inserting leading text, reading and writing files, redisplaying the
+buffer on the screen, managing editor windows.</p>
+
+<p>Now, this was not the first Emacs that was written in C and ran on
+Unix. The first was written by James Gosling, and was referred to as
+GosMacs. A strange thing happened with him. In the beginning, he
+seemed to be influenced by the same spirit of sharing and cooperation
+of the original Emacs. I first released the original Emacs to people
+at <abbr>MIT</abbr>. Someone wanted to port it to run on Twenex &mdash; it
+originally only ran on the Incompatible Timesharing System we used
+at <abbr>MIT</abbr>. They ported it to Twenex, which meant that there
+were a few hundred installations around the world that could
+potentially use it. We started distributing it to them, with the rule
+that &ldquo;you had to send back all of your improvements&rdquo; so we
+could all benefit. No one ever tried to enforce that, but as far as I
+know people did cooperate.</p>
+
+<p>Gosling did, at first, seem to participate in this spirit. He wrote
+in a manual that he called the program Emacs hoping that others in the
+community would improve it until it was worthy of that name. That's
+the right approach to take towards a community &mdash; to ask them to join
+in and make the program better. But after that he seemed to change the
+spirit, and sold it to a company.</p>
+
+<p>At that time I was working on the GNU system (a free software
+Unix-like operating system that many people erroneously call
+&ldquo;Linux&rdquo;).  There was no free software Emacs editor that ran
+on Unix. I did, however, have a friend who had participated in
+developing Gosling's Emacs. Gosling had given him, by email, permission
+to distribute his own version. He proposed to me that I use that
+version. Then I discovered that Gosling's Emacs did not have a real
+Lisp. It had a programming language that was known as
+&lsquo;mocklisp&rsquo;, which looks syntactically like Lisp, but didn't
+have the data structures of Lisp.  So programs were not data, and vital
+elements of Lisp were missing.  Its data structures were strings,
+numbers and a few other specialized things.</p>
+
+<p>I concluded I couldn't use it and had to replace it all, the first
+step of which was to write an actual Lisp interpreter. I gradually
+adapted every part of the editor based on real Lisp data structures,
+rather than ad hoc data structures, making the data structures of the
+internals of the editor exposable and manipulable by the user's Lisp
+programs.</p>
+
+<p>The one exception was redisplay. For a long time, redisplay was
+sort of an alternate world. The editor would enter the world of
+redisplay and things would go on with very special data structures
+that were not safe for garbage collection, not safe for interruption,
+and you couldn't run any Lisp programs during that. We've changed that
+since &mdash; it's now possible to run Lisp code during redisplay. It's
+quite a convenient thing.</p>
+
+<p>This second Emacs program was &lsquo;free software&rsquo; in the
+modern sense of the term &mdash; it was part of an explicit political
+campaign to make software free. The essence of this campaign was that
+everybody should be free to do the things we did in the old days
+at <abbr>MIT</abbr>, working together on software and working with
+whomever wanted to work with us.  That is the basis for the free
+software movement &mdash; the experience I had, the life that I've lived at
+the <abbr>MIT</abbr> AI lab &mdash; to be working on human knowledge, and
+not be standing in the way of anybody's further using and further
+disseminating human knowledge.</p>
+
+<p>At the time, you could make a computer that was about the same price
+range as other computers that weren't meant for Lisp, except that it
+would run Lisp much faster than they would, and with full type checking
+in every operation as well. Ordinary computers typically forced you to
+choose between execution speed and good typechecking.  So yes, you could
+have a Lisp compiler and run your programs fast, but when they tried to
+take <tt>car</tt> of a number, it got nonsensical results and eventually
+crashed at some point.</p>
+
+<p>The Lisp machine was able to execute instructions about as fast as
+those other machines, but each instruction &mdash; a car instruction would
+do data typechecking &mdash; so when you tried to get the car of a number
+in a compiled program, it would give you an immediate error. We built
+the machine and had a Lisp operating system for it. It was written
+almost entirely in Lisp, the only exceptions being parts written in
+the microcode. People became interested in manufacturing them, which
+meant they should start a company.</p>
+
+<p>There were two different ideas about what this company should be
+like.  Greenblatt wanted to start what he called a
+&ldquo;hacker&rdquo; company. This meant it would be a company run by
+hackers and would operate in a way conducive to hackers. Another goal
+was to maintain the AI Lab culture <a href="#foot-3">(3)</a>.
+Unfortunately, Greenblatt didn't have any business experience, so
+other people in the Lisp machine group said they doubted whether he
+could succeed. They thought that his plan to avoid outside investment
+wouldn't work.</p>
+
+<p>Why did he want to avoid outside investment? Because when a company
+has outside investors, they take control and they don't let you have
+any scruples. And eventually, if you have any scruples, they also
+replace you as the manager.</p>
+
+<p>So Greenblatt had the idea that he would find a customer who would
+pay in advance to buy the parts. They would build machines and deliver
+them; with profits from those parts, they would then be able to buy
+parts for a few more machines, sell those and then buy parts for a
+larger number of machines, and so on. The other people in the group
+thought that this couldn't possibly work.</p>
+
+<p>Greenblatt then recruited Russell Noftsker, the man who had hired
+me, who had subsequently left the AI Lab and created a successful
+company.  Russell was believed to have an aptitude for business. He
+demonstrated this aptitude for business by saying to the other people
+in the group, &ldquo;Let's ditch Greenblatt, forget his ideas, and
+we'll make another company.&rdquo; Stabbing in the back, clearly a
+real businessman. Those people decided they would form a company
+called Symbolics. They would get outside investment, not have
+scruples, and do everything possible to win.</p>
+
+<p>But Greenblatt didn't give up. He and the few people loyal to him
+decided to start Lisp Machines Inc. anyway and go ahead with their
+plans. And what do you know, they succeeded! They got the first
+customer and were paid in advance. They built machines and sold them,
+and built more machines and more machines. They actually succeeded
+even though they didn't have the help of most of the people in the
+group. Symbolics also got off to a successful start, so you had two
+competing Lisp machine companies. When Symbolics saw that LMI was not
+going to fall flat on its face, they started looking for ways to
+destroy it.</p>
+
+<p>Thus, the abandonment of our lab was followed by &ldquo;war&rdquo;
+in our lab.  The abandonment happened when Symbolics hired away all
+the hackers, except me and the few who worked at LMI part-time. Then
+they invoked a rule and eliminated people who worked part-time
+for <abbr>MIT</abbr>, so they had to leave entirely, which left only
+me. The AI lab was now helpless.  And <abbr>MIT</abbr> had made a very
+foolish arrangement with these two companies.  It was a three-way
+contract where both companies licensed the use of Lisp machine system
+sources. These companies were required to let <abbr>MIT</abbr> use
+their changes. But it didn't say in the contract that <abbr>MIT</abbr>
+was entitled to put them into the <abbr>MIT</abbr> Lisp machine
+systems that both companies had licensed. Nobody had envisioned that
+the AI lab's hacker group would be wiped out, but it was.</p>
+
+<p> So Symbolics came up with a plan <a href="#foot-4">(4)</a>.  They
+said to the lab, &ldquo;We will continue making our changes to the
+system available for you to use, but you can't put it into
+the <abbr>MIT</abbr> Lisp machine system. Instead, we'll give you
+access to Symbolics' Lisp machine system, and you can run it, but
+that's all you can do.&rdquo;</p>
+
+<p>This, in effect, meant that they demanded that we had to choose a
+side, and use either the <abbr>MIT</abbr> version of the system or the
+Symbolics version.  Whichever choice we made determined which system
+our improvements went to. If we worked on and improved the Symbolics
+version, we would be supporting Symbolics alone. If we used and
+improved the <abbr>MIT</abbr> version of the system, we would be doing
+work available to both companies, but Symbolics saw that we would be
+supporting LMI because we would be helping them continue to exist. So
+we were not allowed to be neutral anymore.</p>
+
+<p>Up until that point, I hadn't taken the side of either company,
+although it made me miserable to see what had happened to our
+community and the software.  But now, Symbolics had forced the issue.
+So, in an effort to help keep Lisp Machines
+Inc. going <a href="#foot-5">(5)</a> &mdash; I began duplicating all
+of the improvements Symbolics had made to the Lisp machine system.  I
+wrote the equivalent improvements again myself (i.e., the code was my
+own).</p>
+
+<p>After a while <a href="#foot-6">(6)</a>, I came to the conclusion
+that it would be best if I didn't even look at their code. When they
+made a beta announcement that gave the release notes, I would see what
+the features were and then implement them. By the time they had a real
+release, I did too.</p>
+
+<p>In this way, for two years, I prevented them from wiping out Lisp
+Machines Incorporated, and the two companies went on. But, I didn't
+want to spend years and years punishing someone, just thwarting an
+evil deed. I figured they had been punished pretty thoroughly because
+they were stuck with competition that was not leaving or going to
+disappear <a href="#foot-7">(7)</a>. Meanwhile, it was time to start
+building a new community to replace the one that their actions and
+others had wiped out.</p>
+
+<p>The Lisp community in the 70s was not limited to
+the <abbr>MIT</abbr> AI Lab, and the hackers were not all
+at <abbr>MIT</abbr>. The war that Symbolics started was what wiped
+out <abbr>MIT</abbr>, but there were other events going on then. There
+were people giving up on cooperation, and together this wiped out the
+community and there wasn't much left.</p>
+
+<p>Once I stopped punishing Symbolics, I had to figure out what to do
+next. I had to make a free operating system, that was clear &mdash; the
+only way that people could work together and share was with a free
+operating system.</p>
+
+<p>At first, I thought of making a Lisp-based system, but I realized
+that wouldn't be a good idea technically. To have something like the
+Lisp machine system, you needed special purpose microcode. That's what
+made it possible to run programs as fast as other computers would run
+their programs and still get the benefit of typechecking. Without
+that, you would be reduced to something like the Lisp compilers for
+other machines. The programs would be faster, but unstable. Now that's
+okay if you're running one program on a timesharing system &mdash; if one
+program crashes, that's not a disaster, that's something your program
+occasionally does. But that didn't make it good for writing the
+operating system in, so I rejected the idea of making a system like
+the Lisp machine.</p>
+
+<p>I decided instead to make a Unix-like operating system that would
+have Lisp implementations to run as user programs. The kernel wouldn't
+be written in Lisp, but we'd have Lisp. So the development of that
+operating system, the GNU operating system, is what led me to write
+the GNU Emacs. In doing this, I aimed to make the absolute minimal
+possible Lisp implementation. The size of the programs was a
+tremendous concern.</p>
+
+<p>There were people in those days, in 1985, who had one-megabyte
+machines without virtual memory. They wanted to be able to use GNU
+Emacs. This meant I had to keep the program as small as possible.</p>
+
+<p>For instance, at the time the only looping construct was
+&lsquo;while&rsquo;, which was extremely simple. There was no way to
+break out of the &lsquo;while&rsquo; statement, you just had to do a
+catch and a throw, or test a variable that ran the loop. That shows
+how far I was pushing to keep things small. We didn't have
+&lsquo;caar&rsquo; and &lsquo;cadr&rsquo; and so on; &ldquo;squeeze
+out everything possible&rdquo; was the spirit of GNU Emacs, the spirit
+of Emacs Lisp, from the beginning.</p>
+
+<p>Obviously, machines are bigger now, and we don't do it that way
+any more. We put in &lsquo;caar&rsquo; and &lsquo;cadr&rsquo; and so
+on, and we might put in another looping construct one of these
+days. We're willing to extend it some now, but we don't want to extend
+it to the level of common Lisp. I implemented Common Lisp once on the
+Lisp machine, and I'm not all that happy with it. One thing I don't
+like terribly much is keyword arguments <a href="#foot-8">(8)</a>.
+They don't seem quite Lispy
+to me; I'll do it sometimes but I minimize the times when I do
+that.</p>
+
+<p>That was not the end of the GNU projects involved with Lisp. Later
+on around 1995, we were looking into starting a graphical desktop
+project. It was clear that for the programs on the desktop, we wanted
+a programming language to write a lot of it in to make it easily
+extensible, like the editor. The question was what it should be.</p>
+
+<p>At the time, <acronym title="Tool Command Language">TCL</acronym>
+was being pushed heavily for this purpose. I had a very low opinion
+of <acronym>TCL</acronym>, basically because it wasn't Lisp. It looks
+a tiny bit like Lisp, but semantically it isn't, and it's not as
+clean.  Then someone showed me an ad where Sun was trying to hire
+somebody to work on <acronym>TCL</acronym> to make it the
+&ldquo;de-facto standard extension language&rdquo; of the world. And I
+thought, &ldquo;We've got to stop that from happening.&rdquo; So we
+started to make Scheme the standard extensibility language for
+GNU. Not Common Lisp, because it was too large. The idea was that we
+would have a Scheme interpreter designed to be linked into
+applications in the same way <acronym>TCL</acronym> was linked into
+applications. We would then recommend that as the preferred
+extensibility package for all GNU programs.</p>
+
+<p>There's an interesting benefit you can get from using such a
+powerful language as a version of Lisp as your primary extensibility
+language.  You can implement other languages by translating them into
+your primary language. If your primary language
+is <acronym>TCL</acronym>, you can't very easily implement Lisp by
+translating it into <acronym>TCL</acronym>. But if your primary
+language is Lisp, it's not that hard to implement other things by
+translating them. Our idea was that if each extensible application
+supported Scheme, you could write an implementation
+of <acronym>TCL</acronym> or Python or Perl in Scheme that translates
+that program into Scheme. Then you could load that into any
+application and customize it in your favorite language and it would
+work with other customizations as well.</p>
+
+<p>As long as the extensibility languages are weak, the users have to
+use only the language you provided them. Which means that people who
+love any given language have to compete for the choice of the
+developers of applications &mdash; saying &ldquo;Please, application
+developer, put my language into your application, not his
+language.&rdquo; Then the users get no choices at all &mdash; whichever
+application they're using comes with one language and they're stuck
+with [that language]. But when you have a powerful language that can
+implement others by translating into it, then you give the user a
+choice of language and we don't have to have a language war
+anymore. That's what we're hoping &lsquo;Guile&rsquo;, our scheme
+interpreter, will do. We had a person working last summer finishing up
+a translator from Python to Scheme. I don't know if it's entirely
+finished yet, but for anyone interested in this project, please get in
+touch. So that's the plan we have for the future.</p>
+
+<p>I haven't been speaking about free software, but let me briefly
+tell you a little bit about what that means. Free software does not
+refer to price; it doesn't mean that you get it for free. (You may
+have paid for a copy, or gotten a copy gratis.) It means that you have
+freedom as a user. The crucial thing is that you are free to run the
+program, free to study what it does, free to change it to suit your
+needs, free to redistribute the copies of others and free to publish
+improved, extended versions. This is what free software means. If you
+are using a non-free program, you have lost crucial freedom, so don't
+ever do that.</p>
+
+<p>The purpose of the GNU project is to make it easier for people to
+reject freedom-trampling, user-dominating, non-free software by
+providing free software to replace it. For those who don't have the
+moral courage to reject the non-free software, when that means some
+practical inconvenience, what we try to do is give a free alternative
+so that you can move to freedom with less of a mess and less of a
+sacrifice in practical terms. The less sacrifice the better. We want
+to make it easier for you to live in freedom, to cooperate.</p>
+
+<p>This is a matter of the freedom to cooperate. We're used to
+thinking of freedom and cooperation with society as if they are
+opposites. But here they're on the same side. With free software you
+are free to cooperate with other people as well as free to help
+yourself. With non-free software, somebody is dominating you and
+keeping people divided. You're not allowed to share with them, you're
+not free to cooperate or help society, anymore than you're free to
+help yourself.  Divided and helpless is the state of users using
+non-free software.</p>
+
+<p>We've produced a tremendous range of free software. We've done what
+people said we could never do; we have two operating systems of free
+software. We have many applications and we obviously have a lot
+farther to go. So we need your help. I would like to ask you to
+volunteer for the GNU project; help us develop free software for more
+jobs. Take a look at <a href="/help/">http://www.gnu.org/help</a> to
+find suggestions for how to help. If you want to order things, there's
+a link to that from the home page. If you want to read about
+philosophical issues, look in /philosophy. If you're looking for free
+software to use, look in /directory, which lists about 1900 packages
+now (which is a fraction of all the free software out there). Please
+write more and contribute to us. My book of essays, &ldquo;Free
+Software and Free Society&rdquo;, is on sale and can be purchased at
+<a href="http://www.gnu.org/";>www.gnu.org</a>. Happy hacking!</p>
+
+<ol>
+<li id="foot-1">Guy Steele designed the original symmetrical Emacs
+command set; then he and I began implementing Emacs (on top of TECO),
+but after one long joint development session, Steele began drifting
+away, so I finished Emacs.  Others particularly including Eugene
+C. Cicciarelli and Mike McMahon contributed substantially later
+on.</li>
+
+<li id="foot-2">Bernie Greenberg says that Dan Weinreb's
+implementation of Emacs for the Lisp Machine came before Greenberg's
+implementation for Multics.  I apologize for the mistake.</li>
+
+<li id="foot-3">Greenblatt's plan, as I understood it, was to hire lab
+people part time, so that they could continue working at the AI Lab.
+Symbolics hired them full time instead, so they stopped working at
+MIT.</li>
+
+<li id="foot-4">The background of this plan, which I did not state
+explicitly in the talk, is that during an initial period the ex-AI-Lab
+hackers, whether at Symbolics or LMI, continued contributing their
+changes to the MIT Lisp Machine system &mdash; even though the
+contract did not require this.  Symbolics' plan was to rupture this
+cooperation unilaterally.</li>
+
+<li id="foot-5">It was not that I cared particularly about the fate of
+LMI, but rather I did not want to let Symbolics gain through its
+aggression against the AI Lab.</li>
+
+<li id="foot-6">This statement has been misconstrued as saying that I
+never, ever looked at Symbolics' code.  Actually it says I did look,
+at first.  The Symbolics source code was available at MIT, where I was
+entitled to read it, and at first that's how I found out about their
+changes.
+
+<p>But that meant I had to make a special effort to solve each problem
+differently, in order to avoid copying Symbolics code.  After a while,
+I concluded it was better not to even look.  That way I could write
+code in whatever way was best, without concern for what might be in
+Symbolics' code.</p></li>
+
+<li id="foot-7">Symbolics at one point protested to MIT that my work,
+by thwarting their plan, had cost Symbolics a million dollars.</li>
+
+<li id="foot-8">I don't mind if a very complex and heavyweight
+function takes keyword arguments.  What bothers me is making simple
+basic functions such as &ldquo;member&rdquo; use them.</li>
+</ol>
+
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Please send general FSF &amp; GNU inquiries to
+<a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF.  Broken links and other corrections or suggestions can be sent
+to <a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.</p>
+
+<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to <a href="mailto:address@hidden";>
+        &lt;address@hidden&gt;</a>.</p>
+
+        <p>For information on coordinating and submitting translations of
+        our web pages, see <a
+        href="/server/standards/README.translations.html">Translations
+        README</a>. -->
+Please see the <a
+href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting translations
+of this article.</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+     files generated as part of manuals) on the GNU web server should
+     be under CC BY-ND 3.0 US.  Please do NOT change or remove this
+     without talking with the webmasters or licensing team first.
+     Please make sure the copyright date is consistent with the
+     document.  For web pages, it is ok to list just the latest year the
+     document was modified, or published.
+     
+     If you wish to list earlier years, that is ok too.
+     Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+     years, as long as each year in the range is in fact a copyrightable
+     year, i.e., a year in which the document was published (including
+     being publicly visible on the web or in a revision control system).
+     
+     There is more detail about copyright years in the GNU Maintainers
+     Information document, www.gnu.org/prep/maintain. -->
+
+<p>Copyright &copy; 2003, 2007, 2013, 2014 Free Software Foundation, Inc.</p>
+
+<p>This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative
+Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.html" -->
+
+<p class="unprintable">Updated:
+<!-- timestamp start -->
+$Date: 2016/08/04 05:57:33 $
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]