от Краси Беров(15-05-2004)

рейтинг (53)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Огледално копие на оригинала на книгата се намира на адрес http://berov.data.bg/opensources/toc.html

ОТВОРЕНИ КОДОВЕ - Гласове от Open Source Революцията 1st Edition January 1999 1-56592-582-3

Превод: © 08-09 2003 Теодора Берова
Технически консултант: Красимир Беров

УПОРСТВО, ТЪРПЕНИЕ И СМИРЕНИЕ

Лари Уол

Ние от Perl общността имаме афинитет към поговорките. Една от тях е "Има повече от един начин да се направи това.". Това е вярно в Perl. А също е вярно за Perl. Вярно е и за общността на Отворения Код, както го илюстрират есетата в тази книга. Аз няма да ви кажа всичко за това как работи общността на Отворения Код; това би било все едно да се опитам да ви обясня как работи английския език. Но мога да ви кажа нещо относно състоянието на Perl и накъде е тръгнал.

Има една друга поговорка: Три големи добродетели на програмирането са мързел, нетърпение и горделивост. Големите Perl програмисти прегръщат тези добродетели. Същото се отнася и за разработчиците на Отворения Код. Но тук аз ще говоря за някои други добродетели: упорство, търпение и смирение. Ако те ви изглеждат като противоположности, ще сте прави. Ако смятате, че една общност не може да споделя противоположни ценности, значи трябва да прекарате повече време с Perl. Все пак, има повече от един начин да се направи това.

Писаните езици вероятно започват с нетърпение. Или мързел. Без писаното слово трябва да се срещнете с другия човек лице в лице, за да общувате. Или да убедите някого да предаде вашето послание вместо вас. И няма никакъв начин да се знае какво е било казано по-преди, освен ако не се запомни. А писаният език дава на хората символи. Символи, които могат да означават нещата – стига общността да съумее да уговори значенията на символите. И така, езикът изисква консенсус. Това е нещо, с което всички от групата са съгласни. Накратко, това е символ, който удържа общността заедно. Повечето символи служат за това.

Хайде да разгледаме някои символи:

Проучете го внимателно. Това се нарича окръжност. Една много приятна окръжност, каквито са си окръжностите обикновено. Много красива. Много симетрична. Много проста.

И сега, ако сте редукционист, ще кажете, че това е само една окръжност и нищо повече. Действително, ако сте истински редукционист, ще кажете, че това е просто купчина фотони, но ние няма да отиваме в тази посока, защото това никак не може да внесе яснота по въпроса.

Ако вие не сте редукционист, то тогава окръжността, която виждате тук, не съществува в изолация. Тя съществува във взаимовръзка с много други неща, и всъщност повлиява своето значение от тях. За да разберете тази проста окръжност, вие трябва да разберете нейния контекст, което е начин да разберете нещо за реалността.

Ето тук една картина на реалността:

Както всички знаем, реалността е смесица, безпорядък.

Това е картина на много неща. Това е картина на въздушните молекули, подскачащи наоколо. Картина на икономиката. Картина на всички взаимовръзки на хората в тази стая. Картина на това как изглежда типичния човешки език. Картина на информационната система на вашата компания. Картина на World Wide Web. Картина на хаос и усложненост.

Това е разбира се картина за това как е организиран Perl, тъй като Perl е създаден по образец на човешките езици. А причината човешките езици да са сложни е, че си имат работа с реалността.

Всички ние си имаме работа с реалността, по един или друг начин. Тогава ние опростяваме. Често свръхопростяваме.

Нашите предци свръхопростявали. Те мамели себе си, като смятали, че Бог създава само окръжности и сфери. Те мислели, че Бог винаги ще предпочете простотата пред сложността. Когато открили, че реалността е много по-сложна, отколкото смятали, те просто намели сложността под килим от епицикли. Така е, те усложнили излишно нещата. Това е важен момент. Вселената е сложна, но това е необходима сложност.

Изобилства от доказателства, че хората продължават да свръхопростяват и днес. Някои хора предпочитат да свръхопростяват своята космология. Други – своята теология. Много дизайнери на компютърни езици свръхопростяват своите езици, и приключват, като намитат вселенската сложност под килима на програмиста.

Това е естествен човешки опит да се търсят шаблони в шума, но понякога виждаме шаблони, каквито в действителност няма. Но това, че няма реални шаблони, не е от значение. Ако изнамерим магическа пръчка да заглуши шума, то тогава сигналът ще умре тутакси. Абракадабра…

Това тук е формата на големия взрив, и на звездите, и на сапунените мехурчета:

Тук е формата на измеримостта, на кристалите сол, и пространствата между дънерите на дърветата:

Това е формата на мравуняк, или на коледно дърво. Или формата на троичността:

И, разбира се, щом веднъж сте узнали, че шаблоните са тук, вие можете да откривате простите фигури, без допълнителна цветна помощ:

Нашите мозъци са устроени да правят това.

И сега сигурно се чудите какво общо има всичко това с Perl. Работата е там, че вашият мозък е устроен да програмира на Perl. Изпитвате дълбокото желание да превърнете сложността в простота, и Perl е просто друг инструмент в помощ на това начинание. Така както аз използвам английския език точно сега, в опит да опростя реалността. Аз мога да използвам английския за това, защото английският е смесица, безпорядък.

Това е важно, но и малко трудно за разбиране. Английският е полезен, защото е смесица, бъркотия. Тъй като английският е смесица, той очертава добре проблемното пространство, което също е смесица, и което наричаме реалност. Подобно, Perl беше замислен да бъде смесица, бъркотия (макар и по възможно най-приятния начин).

Това е неинтуитивно, затова, позволете ми да обясня. Ако вие сте обучавани за инженер, то в главите ви е набито убеждението, че голямото инженерство, това е простото инженерство. Ние сме научени да се възхищаваме на висящия мост повече, отколкото на железопътните рамкови мостове с подпори. Ние сме научени да ценим простотата и красотата. Това е мило. Аз също харесвам окръжностите.

Все пак, сложността не винаги е враг. От значение е не простота срещу сложност, а как осъществяваме връзката между тях.

Вие се нуждаете от известно количество сложност за извършването на някоя конкретна работа.

За ракетата Сатурн V се говори, че имала 7 млн. части, всяка от които трябвало да функционира. Но това не е съвсем вярно. Много от тези части са били дублиращи. Но това дублиране, дори излишество, беше абсолютно необходимо за постигане на целта – да се изпрати някой на луната през 1969 г. Щом някои от частите на ракетата са имали задачата да бъдат дублиращи, то всяка от тях продължава да има своето значение и дял в работата. Така да се каже. При това тяхната работа е именно да стоят и да чакат.

Ние заблуждаваме себе си, когато казваме: "Това е прекалено", имайки предвид "Това е безполезно". Изобилието не винаги е излишно, независимо дали става въпрос за ракети, за човешки езици или за компютърни езици. Накратко, простотата често е враг на успеха.

Да предположим, че искам да завладея света. Простотата казва, че ще завладея света сам. Но в действителност ситуацията е такава, че аз се нуждая от вашата помощ, за да завладея света, а всички вие сте много сложни. Аз наистина гледам на това като на ваша отличителна черта. Вашите взаимоотношения са дори повече от сложни. Обикновено мисля за тях като за особеност.

Но понякога те се повреждат. Ние можем да поправим взаимоотношенията. Но винаги е добра политика да проявяваме разбиране и уважение към хората, като ги оставим те сами да се характеризират. Хората стават раздразнителни, когато се опитате да ги поправите.

Споменахме, че понякога сложността е безполезна, а друг път – полезна. Ето един пример за полезна сложност:

И сега повечето от вас, седящи тук, вероятно сте предубедени за ползата от сложните писмени системи. Вероятно мислите, че идеографската писмена система е ненужно сложна. Вие дори може би си мислите, че тази картинка е толкова сложна, колкото и предишната. Но това отново е компромиса на техническия тип мислене. В случая китайският език е разменил научаемостта за преносмимостта. Звучи ли познато?

Всъщност китайският не е един език. В общи линии това са пет главни езика, всеки от които е неразбираем за останалите. И още, можете да пишете китайски на един език, а да го прочетете на друг. Ето кое наричам аз преносим език. Избирайки високо ниво на абстракция, китайската писмена система е пригодена повече за комуникация, отколкото за простота. Това са един милиард души в Китай, не всички от които могат да си говорят, но поне могат да си изпращат бележки един на друг.

И компютрите също така си изпращат бележки един на друг. Само дето му викаме работа в мрежа.

Мисленето ми тази година до голяма степен беше повлияно от работата с Уникод и с XML. 10 години по-рано Perl беше добър за работа с текст. Дори и сега става за това – при старата дефиниция за текст. Но дефиницията за "текст" се промени извън и независимо от Perl за тези 10 години.

Вие можете да обвините за всичко това Интернет.

Сякаш когато кликвате бутоните на вашия браузър, това кара компютрите да пожелаят да си изпращат бележки един на друг. И те искат да изпращат тези бележки отвъд културните граници. Така, както вие искате да разберете какво изскача на вашия екран, така и вашият компютър иска да разбере какво е това, което ей сега ще изскочи на вашия екран. Защото, вярвате или не, компютърът в действителност би искал да върши това правилно. Компютрите може и да са глупави, обаче винаги са послушни. Е, почти винаги.

Ето къде се появяват Уникод и XML. Уникод е просто набор от универсални идеограми, така че компютрите по света да могат да си предават бележки един на друг навсякъде, както и да имат някакъв шанс да вършат правилните неща с тях. Някои от идеограмите в Уникод се случва да си съответстват с различни национални набори от букви, какъвто е случаят с ASCII, но никой на света не ще научи никога всички тези езици. Никой и не очаква от вас да научите всички тези езици. Не това е главното.

Ето кое е главното. Миналия месец работих по уеб страницата на моята църква. Църквата тъкмо създаде китайско паство, затова сега има две имена, едното от които може да бъде представено на ASCII, а другото не може. Ето как изглежда страницата:



Ако вашият браузър е сравнително нов, и ако имате зареден уникод шрифт, то ще видите ето това. Това е нещо важно, което искам да си отбележите.

Ако бях подготвял това година по-рано, този блок от китайски йероглифи вероятно щеше да представлява GIF-изображение. Но с изображенията има проблем. Не можете да приложите командите "cut" и "paste" върху буквите от една GIF-картинка. Пробвал съм го достатъчно често, за да знам, а съм сигурен, че и вие също. Ако бях подготвял това година по-рано, щях да прибавя още един пласт сложност към страницата. Щях да се нуждая от нещо като CGI скрипт да проверява дали браузърът поддържа Уникод, защото в противен случай тези йероглифи ще се изсипят като неразбираем брътвеж, боклук по цялата страница. Боклукът обичайно се разбира като ненужна сложност.

Както и да е, да се върнем към простотата:

Ние използваме окръжности, за да представим много неща. Нашият кръг от приятели. Прегръдка, когато надписваме гърба на плика за писма. Окръжността на венчалния пръстен, която е символ на безкрайна любов.

Преминавайки от възвишеното към нелепото, ние имаме също и кръглата папка, която е ада на ненужните бумаги.

Сфери от светлина. Черни дупки. Или поне техните случайни хоризонти.

Единствен пръстен ги владее и в мрак ще ги обвие.

Кристални топчета. Перли.

Глави лук. Перлени глави лук.

Окръжностите определят силно нашата символика. И в частност понякога, добавяйки различни придатъци към окръжностите, ние представяме по-скоро сложни понятия с прости символи. Тези символи са мостовете между простотата и сложността.

Това тук е истинска Дзен-диаграма:

Е, всъщност не е. В действителност ин-ян идва от Тао, или Дао, ако не можете да произнесете тази непридихателна съгласна "т". Тао е древна източна филисофия и предхожда Дзен с повече от хилядолетие.

И така, назад към ин-овете и ян-овете.

Ин-ян представлява дуалистична философия, много подобна на Силата в Междузвездни Войни. Знаете ли как Силата е като пътна лента? Отговор: има светла страна, тъмна страна, и това удържа вселената цяла. Аз самият не съм дуалист, защото вярвам, че светлината е по-силна от тъмнината. Въпреки това, концепцията за равновесието на силите понякога е полезна, особено на инженерите. Когато един инженер иска да уравновеси силите, така че те да останат в равновесие, той посяга към пътната лента.

Когато направих този ин-ян, се чудех дали така е правилно. Щеше да бъде срамота, ако съм го разбрал наопаки, или криво, или нещо подобно.

Е, вие знаете, че понякога тези неща имат значение. Има голямо значение в органичната химия, където го наричат chirality[1] – ако вземете една молекула мента и я обърнете отляво надясно, получавате молекулата на кимиона. Гадост. Дълго време си мислех, че мразя ръжения хляб, докато не открих, че в него слагат зрънца кимион.

Който от тези аромати и да предпочитате, това е въпрос на вкус. Но докторите и органичните химици ще ви кажат, че има случаи, когато chirality е въпрос на живот и смърт. Или на деформирани крайници, какъвто е случаят с Талидомида. Имало е “сгрешен” вид Талидомид, който всъщност е създавал проблеми[2]. Dyslexics[3] ще ви каже, че chirality има голямо значение при визуалните символи. Това ви отвежда до буквите “b” и “d”. Или “p” и “q”. Или номер 6. Да не споменаваме за номер 9. Можете де видите 6 и 9 в ин-ян, при тази ориентация.

Накратко, чудя се дали ин-ян прилича на свастика, където начинът на ориентация предопределя кого точно ще вбесите (нацистите или индуистите – бел. прев.).

Направих някои проучвания (в Мрежата, разбира се). Факт е, че Мрежата е превъзходен пример за онова "Има повече от един начин да се направи това.". В случая, има всевъзможни начини да се направи това. Можете да откриете ин-ян във всяка възможна ориентация. Все още не съм наясно дали някоя от тях не е по-правилна от другите.

“TYEDYE WORLD” са някакви хора в WEB, които продават “tie”-боядисани тениски. Подозирам, че в случая става дума за Тао-боядисани тениски. Те мислят, че изглежда горе-долу така:

Предполагам, че ако го искате по друг начин, само ще си сложите тениската от опаката страна. Обличайки я наопаки, ще накарате другите да се заглеждат по вас.

Хората от Unicode консорциума смятат, че това изглежда така. Не знам дали са прави, но ако не са, това е без значение. Те са го публикували по този начин, и сега така е правилно по дефиниция.

Естествено, в моя речник е от горната страна:

И така, обратно към Уникод. Уникод е пълен с окръжности. Множество национални писмена в рамките на Уникод се използват да изобразят окръжност, и повечето от тях я представят като цифрата 0. Тя е с Уникод-номер 3007 (шестнадесетичен код). Това е идеографският символ за 0:

Изненада, изненада. Това прилича на нашата 0. Отбележете точка за културния империализъм. В английския, разбира се, сме сплескали нашата 0 странично, за да се различава от буквата О.

В бенгалския език е сплесната от другата страна, но от подобни съображения:

Намирам за интересно, че в света има толкова много различни представяния на нищото. По този повод могат да се измислят шеги до безкрай: Много шум за нищо, или Нищо не може да спре една идея, времето на която е дошло. Ето нещо, свързано с нищото:

Това е универсалният “забранителен” символ. В Уникод той е класифициран като комбинирана буква.

Разбира се, в Perl културата почти нищо не е забранено. Имам чувството, че в останалата част от света вече цари изобилие от достатъчно забрани, така че защо да измисляме още? Това се отнася не само за програмирането, но също и за междуличностните отношения, например. Неведнъж се е случвало да ме молят да изхвърля някого от Perl общността, най-често защото е в разрез с една или друга мода. Досега принципно съм отхвърлял подобни искания. Вярвам, че това е правилната политика. Поне засега работи – на ниво практика. Всяка от проблемните личности в края на краищата или напуска доброволно, или остава и се научава по-ползотворно да мели брашно с другите. Това е странно. Хората разбират инстинктивно, че най-добрият начин компютърните програми да комуникират една с друга е всяка от тях да бъде стриктна в резултатите от работата си и либерална, когато приема резултатите на другите. Странното е, че самите хора не желаят да са стриктни за начина, по който говорят, нито да са либерални за това как слушат. Вие ще си помислите, че това би трябвало да е толкова очевидно. Иначе ни е казано да изразяваме себе си.

От друга страна, ние се опитваме да насърчим известни ценности в Perl общността. Както изтъква апостол Павел, никой не прави закони, противни на любовта, радостта, мира, търпението, сърдечността, добродетелността, благостта, кротостта, смирението или самоконтрола. Така че, вместо да се концентрираме върху забраняване на злото, нека по-скоро се съсредоточим в насърчаване на доброто. Уникод е тук заради това.

Разбира се, ако сте дете на цветята, може би ще предпочетете тази:

Някои от добрите страни на Уникод не са толкова очевидни.

Това е символът за лабиален звук, един от символите в Международната Фонетична Азбука. Вие може и да не знаете, но много от вас правят този звук често. Ако искате да пробвате да направите един, ето как. Почти съберете устните си заедно, после направете нещо като африкатен звук, като вкарвате въздух в гърлото си.

Разбира се, в английския пишем това с едно X, за да си подхожда с О-тата на гърба на плика за писма. Но вие свидетелствате за отминаването на една епоха. Тъй като електронната поща навлиза все повече, изпращането на прегръдки и целувки на гърба на плика се превръща в излишно изкуство. Не се получава съвсем същият ефект, като просто използвате заглавния ред в един имейл. Content-type: text/hugs&kisses.

Знаете, че е доста трудно също и да парфюмирате едно имейл послание. Content-type: text/scented. Разумът изпада в недоумение.

Има още повече прости окръжности, които представят сложни неща. Това е символът на Земята:

Това – символът на Марс:

А това е символът на Венера:

По-рано работех в Лабораторията за Реактивно Движение и помогнах мъничко да се открие, че Марс и Венера са доста сложни. Но и ако нещата да не са били достатъчно сложни, древните са ги усложнили допълнително, като са натоварили техните символи да означават мъжко и женско. Мъжете са от Марс, жените от Венера, така ни е казано, но това не е нова идея.

Ето още малко история.

Когато разрежете глава лук, тя изглежда ето така. Ако използваме това като картина на света на Perl, то аз трябва да съм това малко нещо в средата на лука.

Около мен са някои от ранните привърженици на Perl, почитани днес като герои на революцията. Тъй като в движението се включиха повече хора, се прибавиха нови слоеве. Това може да бъде изобразено също и като атом със слоеве от електронни обвивки. Разбира се, не е известен атом, който да има чак толкова много електронни обвивки. Така че си оставаме при главата лук.

Що се отнася до лука, той ми показва нещо за собствената ми значимост, или пък за липсата й. А именно, след като съм могъл да стартирам всичко това, аз си оставам малко парченце от лука. Останалата по-голяма част е във външните слоеве. (Ето защо ми е приятно да виждам как възникват движения, като това на “Продавачите на Perl”.) Но тук аз седя в средата. Сдобивам се с чест за историческата ми важност, но в действителност повечето хора виждат външността на лука, не вътрешността, освен ако не съставят пръстените на лука. Дори и тогава, по-големите пръстени значат за тях повече, отколкото по-малките. Нека това бъде урок за тези от вас, които биха желали да са “посветени” Не в това е истинската сила. Във всеки случай не и в това движение. Опитах да направя Perl движението по модела на едно друго движение, на което съм член, и основателят на това движение каза: “Този, който желае да е най-велик сред вас, трябва да стане слуга на всички.” Един от неговите 12 приближени го предава, а 10 от останалите 11 продължават и претърпяват мъченическа смърт. Не, че искам никой от моите приятели да се хвърли на лъвовете.

Да се върнем към примерите с развитието. Природните перли също нарастват в слоеве, около зрънце пясък, което дразни въпросната стрида и тя оформя слоеве от красиво вещество. Това би могло да бъде напречен разрез на перла. Хората нарязват лука на ситно, но почти никога не режат перлите. И така, това е вярно по-скоро за перлите, отколкото за лука. Външният слой е по-важен. Това е, което хората виждат. Или, ако перлата продължи да расте, това е слоят, който ще поддържа следващия слой. Аз осъществих това, което ме класифицира като прост дразнител. Доволен съм да бъда класифициран по този начин.

Междувременно други неща също растат. Вероятно ако променим картинката до три пръстена, тя ще стане по-ясна:

Ако поназнайвате малко физика, ви е известно, че тръбата е почти толкова здрава, колкото солиден прът със същия диаметър. Това е защото по-голяма част от силата се разпределя във външните слоеве. Факт е, че сърцевината на едно дърво може да гние, а дървото да остава съвършено здраво. По подобен начин голяма част от здравето на Perl-културата е съсредоточена в ставащото по периферията, не в центъра. Хората си спестяват милиарди долари всяка година, като програмират на Perl, но повечето от тези спестявания се случват навън в окопите. Дори и по-близо до центъра, основната работа се състои повече в добавяне на други неща към Perl, отколкото в променяне на самия Perl. Аз мисля, че така и трябва да бъде. Ядрото на Perl в известна степен е стабилизирано. Даже и с промени в ядрото, като например многонишковост и поддръжка на Уникод, ние държим да добавяме допълнителни модули, защото така е по-чисто, и хората няма да извикват новата функционалност, освен ако не желаят.

Цялата тази работа с нарастващите пръстени става, когато се говори за миналото, но какво да кажем за бъдещето? Аз нямам кристална топка. Имам собствения си бинокъл. Ето го типичният символ за това:

Това е, разбира се, е обичайният кинематичен похват да се покаже, че някой гледа през бинокъл. Сега не знам какво се вижда през бинокъла, така че нека погледнем от другата му страна:

Разбира се това би могло да бъде изображение на две силно свързани тела, въртящи се едно около друго.

Всяка от тези планети поражда приливите и отливите на другата. Хората обикновено разбират защо има издатина на всяка от близките страни на планетите. Това, което не разбират толкова лесно, е защо има издатини и от далечните им страни. Но разбирате, след като помислите, как другата планета не само дърпа близката издатина от центъра на първата, но и отдалечава центъра й от нейната далечна страна.

Това е наистина добра картина на взаимоотношенията между общността на свободния софтуер и общността на комерсиалния софтуер. Бихме могли дори да определим някои от краищата. Нека само измислим някакви имена. Можем да наречем лявата крайност, х-м, “Ричард”. И дясната – нещо като, о, “Бил”.

Средната издатина е малко трудно да бъде наименована, но само за днес можем да наречем този от лявата среда “Лари”, а онзи от дясната “Тим”.

Това, разбира се, е още едно свръхопростяване, защото различните хора и организации не са на едно и също място на диаграмата, а имат навика да щъкат наоколо. Някои хора успешно циркулират напред-назад от едната издатина до другата. В даден момент те ратуват за по-голямо сътрудничество между свободната и комерсиалната общност, а в следващия плюят по всичко комерсиално. Нашите хипотетични Ричард и Бил поне са принципни.

Но действието е в средата.

Това е мястото, където всички гледат, за да разберат какво има да става. В действителност, това е миналогодишната картина. Тази година тя изглежда по-скоро така:

Робърт Л. Форуард е написал книга, по-точно поредица от книги, за място, наречено “Светът на Рош”. То е кръстено на колега, който се казвал Рош. Изненада. Този е колегата, определил “лимита на Рош”. Той предвидил, че планетите биха се разпаднали, ако се приближат твърде близо една до друга. Оказа се, че той е свръхопростил, тъй като неговата математика не е била достатъчно мощна. Ако оставите вашите планети да си изкривят формите като тези, можете да ги съберете съвсем близо, и да ги оставите така. Обърнете внимание, че гравитационното поле, действащо в тези точки, въпреки че е много слабо, е достатъчно да държи планетите заедно.

По подобен начин свободната и комерсиалната общност са доста по-близо една до друга тази година, отколкото много хора смятат че е възможно по старите сметки. В “Света на Рош” планетите не се докосват, но си споделят атмосферите. Ако изкривим леко нещата с магия(Image Magic(софтуерът) - бел.конс) , ще имаме горе-долу следната картина:

Виждате как можете да летите от една планета на друга, но не и да се разхождате. Това напомня на квантовата механична теория за подпространствените тунели, където не можете да отидете оттук до там, но можете да го направите въпреки това с летящ скок.

Това, което тече между свободната и комерсиалната общност, са множество идеи. Заедно, тези две изпъкналости определят какво ще бъде това, което ние сега наричаме движението на Отворения Код. Тук имаме качествено ново нещо: бившите врагове се договарят заради общото благо, което надхвърля всякакъв отделен бизнес модел. И това общо благо е по-добър софтуер по-скоро. Ето кое прави всичко останало възможно. Хората реализират мощ от една проста идея. Ние нямаме нужда от патент на софтуера или от търговски тайни. Всички ние се нуждаем от още една проста окръжност:

Окръжност със “c” вътре в нея. Отвореният Код живее или умира в авторското право. Нашата съкровена надежда е, че той ще живее. Моля, нека всеки даде своя дял да запазим нещата по този начин. Ако имате възможност да популяризирате авторското право, вместо патента, моля, направете го. Знам, че много от вас вече са популяризирали авторското право, за сметка на търговските тайни. Нека също така подкрепяме закона за авторското право, като уважаваме желанията на собствениците на авторско право, независимо от това дали са изречени на глас, за удоволствие на адвокатите им. “C”-то в окръжността би могло да остане от учтивост. Когато мислим за учтивост, ние мислим за градове и за това, че нещата са точни и квадратни. А ето го и нужният ни квадрат:

И наистина, градовете са изградени от квадрати и правоъгълници. Ние ги наричаме блокове. И ако от градоустройствения план отпадне строежът на блокове, ние пак го наричаме квартал. Дори и да не е квадратен. Вижте фигурата.

Понякога самите сгради са квадратни:

Но често не са. Подобно, ако погледнете в Уникод-книгата, там кажи-речи няма толкова много квадрати, колкото окръжности. Аз смятам, че фундаменталната първопричина е следната. Когато строим сгради, както и когато пишем букви, ние ги поставяме в рамки от прави линии. В термините на писането, ние пишем отляво-надясно, или отдясно-наляво, или отгоре-надолу. Абстрактните клетки, в които поставяме буквите, или сградите, са квадратни. Но и буквите и сградите имат свойството да се губят от погледа, когато следват същата линия като на общия текст. Повечето букви съдържат линии под странен ъгъл, точно както много модерни небостъргачи, които са проектирани така, че да не изглеждат като кутии. В действителност, никой не харесва небостъргачите от 60-те, защото твърде много приличат на кутии. Хората харесват нещата видимо да се различават от околната обстановка.

Ето защо и разните класове оператори и променливи в Perl са видимо различни един от друг. Що се отнася до моето мнение, това си е едно съвсем разумно човешко проектиране. Не ми се нрави обстоятелството, че всички оператори в Lisp изглеждат еднакво. Не ми се нрави и фактът, че повечето пътни знаци в Европа си приличат. И одобрявам решението на Германия да направят техния знак стоп по-различен от всички останали знаци. Разбира се, това е полезно също така и за нас, невежите американци, че те си правят знаците да приличат на американския знак стоп. Отбелязваме нова точка за културния империализъм.

Както и да е, за съжаление на американския културен империализъм, позволете ми да изтъкна още едно преимущество на идеографската писмена система. Понеже идеограмите са написани в квадратни клетки, те могат да се пишат толкова лесно както хоризонтално, така и вертикално. Или обратното. Нашите променливо високи букви не притежават това приятно качество. Особено в шрифт като Helvetica, където трудно се различават l и i, дори когато са една до друга.

За завършек ми се иска да поговоря за триъгълниците. Ето пример:

Триъгълниците са свързани с окръжностите по същия начин, както върховете на стрелите са свързани с целите. Ето една цел:

Знам, че съм я разбрал правилно. Намерих я в Мрежата. И което е важното, спрях се веднага щом открих първата.

В действителност, това е Уникод-знака, наречен “биволско око”.

Не съм съвсем сигурен какво трябва да означава. Но това не ме е спирало никога досега. Аз ще го направя да означава нещо.

Изстрелях доста стрели в това есе и не знам дали пък не уцелих някои биволски очи. Ние поставяме триъгълници отпред на стрелите, защото са остри. Триъгълниците се свързват с болка, особено ако настъпите някой. Ъглите на триъгълника внушават усещането за трудно изкачване на планина:

От друга страна, външният вид може да ви подведе. Един триъгълник наподобява също и плосък път, простиращ се до хоризонта:

Всичко е въпрос на перспектива. Можете да изберете вашия изглед според мястото, където ще застанете. Аз не мога да предвидя дали пътят на Perl напред ще бъде неравен или гладък, но мога да предвидя, че от множеството перспективи, които ще ни се привиждат, по-лесното ще бъде да изберем перспективите, които харесваме. А това е, в края на краищата, работата на разработчика на езика – да обглежда проблема от различни страни, да бъде малко нещо всезнаещ, така че другите хора да могат да се ползват от това. Направих малка триангулация[4] и получих карта на територията. Това ми е работата. Ако моята карта ви отведе закъдето сте тръгнали, аз ще съм щастлив.

Ако вземете парче от лука на Perl, то прилича на нещо като триъгълник. Поставете го на една страна и ще получите графиката на растежа на Perl за последните десет години:

Изящно и елегантно. Тази графика е абстракция, разбира се. Няма как да измеря действителния растеж на Perl. Но очевидно растеж има. Ние направихме много правилни неща, и, общо взето, трябва да продължим да правим точно това, което сме правили.

Сега да си представим, че свием този триъгълник и разтеглим графиката, за да покажем целия жизнен цикъл на Perl. Ние наистина не знаем колко би могъл да продължи.

Трудно е да се каже как да се направи разграничението в графиката. Но трябва да знаете, че аз не оценявам успеха на Perl в термини за това, колко много хора ме харесват. Когато осреднявам тези криви, аз изчислявам броя на хората, на които съм помогнал да си свършат работата.

Мога да ви кажа, че според мен разликата между крива 1 и крива 2 може би зависи от включването на всички потенциални потребители на Windows, с всичките проблеми, които ще имат да разрешават. А те са много. Не случайно издадохме Win32 Perl Resource Kit.

И също ще ви кажа, че разликата между крива 2 и крива 3 може би зависи от включването на всички интернационални потребители, на които Perl би бил от полза. Не случайно последната работна версия на Perl ви позволява да именовате променливите си с всеки символ, смятан за буквено-цифров в Уникод. Това включва идеограмите. В Китай има един милион души. И аз искам те да са способни да си пращат бележки един на друг, пишейки на Perl. Аз искам те да са способни да пишат поезия на Perl.

Такава е моята визия за бъдещето. Моята избрана перспектива.

В началото говорих за добродетелите на програмиста: мързел, нетърпение и горделивост.

Това са добродетели на страстта. Те са също и добродетели на индивидуалиста. Това не са, обаче, добродетели на общността. Добродетелите на общността звучат като тяхна противоположност: упорство, търпение и смирение.

Те не са истински противоположности, защото можете да използвате всички тях едновременно. Това е също въпрос на перспектива. Тези са добродетелите, които ни отведоха толкова надалеч. Тези са добродетелите, които ще се грижат за нашата общност в бъдеще, стига да не ги изоставим.

Същественото е просто да държим курса. Фридрих Ницше го нарича “дълго послушание в същата посока”, което е едно добро и жизнено мото. Но аз харесвам също и пълния цитат:

Същественото нещо “на небето и земята” е... че би трябвало да има дълго послушание в същата посока; ето от това произлиза, и винаги е произлизал дългият бяг, нещо, което прави живота да си струва да се живее.

А сега ще направим пълен кръг, обратно към окръжността. Това тук е вратата на къщата на Билбо Бегинс. Има път, който тръгва от тази врата, и Билбо е написал поема за това.

Започва Път от моя праг –

безкраен, ограден с трева.

Увлечен в неговия бяг,

и аз ще трябва да вървя,

да влача морните пети,

додето стигна друм голям,

събрал пътеки и мечти.

А после накъде? Не знам.[5]

Дж.Р.Р. Толкин

Хобитът


[1] Chirality – свойство на две молекули, които, оглеждайки се огледално една друга, не могат да се наслагват една над друга (оптична изомерия). (бел. – прев.)

[2] Талидомид – бяло кристално вещество, използвано като успокоително, но за което днес е установено, че причинява уродливост у децата, когато се взема при бременност. (бел. – прев.)

[3] Dyslexics – затруднение при разпознаване, разбиране и възпроизвеждане на писмен език. (бел. – прев.)

[4] Триангулация. В геодезията – един от начините за определяне положението на геодезични опорни точки за топографска снимка. За измерването се използва мрежа от триъгълници, чиито върхове са определяните точки. (бел.прев.)

[5] Превод Любомир Николов, “Властелинът на пръстените” – том II, Дж.Р.Р.Толкин, Народна Култура, София, 1999





<< Видове ядра - и къде се вписва Линукс? | Историята на Linux >>