Програмирането е много яка професия… до голяма степен благодарение на Чичо Боб. Днес създаването на код е не просто търсено, но и приятно поприще от много гледни точки, а голяма част от тях се дължат на днешния ни герой.
Робърт Сесил Мартин, или, както обича да се представя сам: Чичо Боб, формулира SOLID принципите, приети днес в общността за основополагащи. Петте божи заповеди на програмистите. Дефинира правилата на „чистия код“, които също са своеобразна аксиома. Той е и един от създателите на „Аджайл“ манифеста, който пък позволи софтуерът да се създава в по-неформална среда, екипите да са гъвкави, хората да работят в съвсем различна организация.
За същия този Чичо Боб има само 20-ина реда в англоезичната „Уикипедия“. А след като са прочели горните няколко реда, доста програмисти вече са ни напуснали като читатели, заети да пишат хейтърски коментар. Въпреки че трудно може да бъде оспорена огромната заслуга на Чичо Боб за всеки, който днес си изкарва хляба с код. Харесван или не (издадох се, за мен важи първото), Чичо ни Боб заслужава внимание като пъстра личност с прелюбопитна Дигитална история.
Боби и Зуки
Кои са героите на дигиталния свят? Строй се, преброй се. Бил Гейтс, Джобс, Безос, Зукърбърг… тях ги знаем, но те май са по-скоро героите, които го капитализираха. А онези, които наистина го създадоха, останаха в сянката на новоизпечените филантропи и мъдреци зад мултимилиардни компании.
Например Брендън Ейк, създателят на JavaScript. Езикът завинаги промени отношението ни към софтуера, като „вкара“ всичко в браузърите, милиони си изкарват хляба с него, милиарди го ползват всеки ден. А за Ейк днес онлайн ще намерите основно информацията, че е скептик към мерките, които се вземат срещу ковид.
Нещо подобно се случва и по отношение на Чичо Боб. Защо е така, не заслужава ли той светлината на прожекторите? Ще стигнем и дотам, нека първо да поговорим за приноса му към софтуерното инженерство, а оттам – и към дигиталния свят, към настоящето, в което всички живеем.
А ние с Боби двамата пием кафе
С риск да прозвучи малко грубо (но той обича този подход), Чичо Боб вече е Дядо Боб. Днес е на 69 години, опитът му в програмирането е над половин столетие, но той продължава да работи като софтуерен инженер. Звучи забавно на фона на днешните обяви за работа в сектора, в който 5-годишен опит едва ли не се смята за половин кариера.
Това хич не го притеснява. Както казва,в едно от малкото си интервюта, „аз съм програмист. Обичам да бъда програмист. Искам да пиша код, докато умра. Ще цитирам един от моите идоли, Айзък Азимов: мечтая да ме намерят с нос, заклещен между клавишите на клавиатурата ми.“
За кого точно работи като програмист днес Чичото, не знаем. Добрата стара „Уикипедия“ ни казва, че той има две компании: Uncle Bob Consulting, която организира обучения и Clean Coders, създаваща обучителни видеоклипове.
Малобройните му интервюта и медийни представяния, блогът му, не дават кой знае колко подробности. Той никак не обича да говори за себе си – знаем, че е роден на 5 декември 1952 г., но какви са родителите му, колко деца има, какво обича да похапва за вечеря… надали ще разберем. От него не би излязъл успешен инстаграм инфлуенсър.
SOLID, но начало
И така, ето защо Чичо Боб е сред най-великите личности на компютърния свят.
Започнахме със сравнение с Мойсей и Божите заповеди. Е, със сигурност не е чак с израженията на религия, най-малкото защото никак не се вписва в останалата част от образа на Чичо Боб. Но е истина, че милиони програмисти започват пътя си със SOLID принципите. 5-те аксиоми на обектно-ориентираното програмиране са задължителна част от обучението, също както са и неизменна част от интервютата за работа за начинаещите девелопъри. Те наистина са като стихчета, които в началото на професията се очаква да знаеш, дори да те събудят насън.
Разбира се, не е като да не са оспорвани. В този бранш безспорни истини не съществуват. Факт е обаче, че няма програмист по света, който да не може да ви ги изрецитира.
Старо и патило
Да, формулирал ги е Чичо Боб. Не знам дали е ходил в планината Синан, като Мойсей; може би не му е стигнало въображението, за да ги докара и той до 10.
Чичо Боб няма претенциите, че сам е измислил 5-те SOLID принципа (или че Бог му ги е продиктувал, доколкото знам). Единият дори е кръстен на изследователката, която го формулира – Барбара Лисков. Той обаче ги събира, обяснява подробно и логично и за финал: лепва им готиното съкращение, което се превръща в задължителна част от сленга на всеки програмист. Очевидно в точния момент и по точния начин, така че да не могат да бъдат забравени.
И като сме тръгнали с библейските асоциации, ред е на другата огромна звезда в биографията на Чичо Боб: „Тайната вечеря“ от 2001 г.
Чичовци
Ако работите в софтуерната област, със сигурност сте се досетили какво имам предвид. Една студена зимна вечер през 2001 г. малка скиорска хижа в щата Юта приютява 17 „умни глави“, които имат да свършат толкова важна работа, че ще промени цяла огромна индустрия.
Там е целият елит в професията. Но вместо да си пият спокойно червеното винце и да обсъждат младостта, чичовците написват един много, много кратък документ, който променя всичко.
Пишат манифест. Като при Маркс и Енгелс, само че няма нищо общо. Това, което „излиза“ от хижата, се нарича „Манифестът Agile“ и наистина променя начина на работа, по който ще се трудят поколенията следващи програмисти. Събира 12 постулата, на основата на които после се зараждат конкретните методики за работа, по които днес е организиран софтуерният свят.
Чичовата усуканица
„Реагирането на промяната пред следването на плана“, тази от 12-те „програмистки заповеди“ май казва почти всичко. (Тук е кратичкият манифест на български.)
Е, нашият Чичо Боб не просто е един от най-дейните участници в срещата, но е и този, който я организира.
Бих нарекъл манифеста, с цялата странност на това сравнение, своеобразен „Баухаус“ за програмисти.
Преди да се появят тези 12 изреченийца, които отприщват промяната, работата в софтуерните екипи е като всяко друго производство – прави се план, разработва се прототип, после фабриката започва да бълва едни и същи продукти. След 2001-а това се променя, създават се динамични форми на работа, които са си отделна и много интересна Дигитална история.
Спомен за чичо
Така или иначе, тук имаме втората забележителна намеса на Чичо ни Боб, изключително важна за създаването на програми. И за всички, които ги използват.
Вече, надявам се, съм ви убедил, че става дума за много специална личност. Така стигаме до по-интересното.
Пиша в гугъл “SOLID principles”, резултатите са 464 000 000.
Agile? Само 193 000 000.
После отварям англоезичната Уикипедия, където на “Robert Cecil Martin“ са посветени… 5 реда биография и общо 278 думи (с включен списъка от книги, на които е автор.)
Как така?!
Чичовото
Краткият отговор гласи: Чичо Боб никак не си поплюва в комуникацията с останалите програмисти, а и като цяло с обществото. И то по някакъв начин му отвръща със същото. Книгите му (и особено „Чистият код“, “The Clean Code“) са настолно четиво на всеки, който иска да надникне в логиката на програмирането зад очевидното. И същевременно повечето читатели се правят, че авторът не съществува.
Освен че не цепи басма никому, той има „късмета“ да работи в област, където много трудно си пробиват път авторитетите. В нея е лесно да започнеш, дори да станеш достатъчно добър, за да си намериш работа, да си полезен дълги години на екипа. Но малко програмисти избират да навлизат навътре, да задълбават в концепции и основи.
Кон боб яде ли?
Да не би идеите му да са отречени от времето? Надали.
Факт е, че те са оспорвани. С годините се трупат немалко критики срещу самите концепции, предлагани от Мартин. Много специалисти от компютърния свят не препоръчват правилата, формулирани като „Чист код“ (тук например са събрани интересни аргументи защо). Няма да навлизаме от техническата страна на нещата, целта ни е интересната дигитална история на Чичо Боб. И все пак, в негова защита: системата му се е доказала през годините, но е нормално и светът на програмирането да се променя и развива.
Университетските учени в компютърните науки поначало не са най-ревностните му почитатели, но е факт, че книгите на Чичо Боб са помогнали в професията на милиони програмисти и са направили безброй софтуерни проекти значително по-сигурни, стабилни, написани по правилата.
Чичо Боб и Чичо Сам
Постепенно обаче му излиза имиджът на странна птица. Също и на автор, който прекалено иска да опрости сложна професия, каквото е програмирането. А и годините летят, той си държи на своите правила и принципи, които продължава да проповядва, смятайки, че основата на софтуерното инженерство си остава същата, дори и детайлите да се променят.
Според мен е прав.
По-скоро днешното отношение към него се дължи на неща, които нямат нищо общо с програмирането.
Давам направо: излезе му имидж на расист, хомофоб и женомразец. Според това, което прочетох – основанията са доста пресилени. Чичо Боб наистина обича да е кратък и ясен, понякога това се случва за сметка на нюансите, а всички знаем, че обществото на Запад през последните години се вманиачи в критериите си, слагайки такива определения.
Чичо Боб и чичо Тръмп
Хубаво, Чичо Боб признава, че е гласувал за Тръмп като преценка между два ужасни избора… и това май е разбираемо, и ние отдавна сме се отказали да търсим нещо по-добро от „по-малкото зло“.
„Гласувах за Тръмп, защото мислех, че е по-доброто от две крайно лоши решения. Той каза шантави неща. Променяше си мнението за истината. Но много от политиките му имаха добър резултат. Подкрепям добрите неща. Не подкрепям лошите“.
Казах ли ви, че е програмист? Е, още нещо ще ви кажа: често програмистите влизат в компютърната парадигма, досущ както изкуствения интелект от примера на самия Чичо Боб. Търсят правилното решение.
Тричат чичо
Забележките за сексизма също са съмнителни. Не, не е правил коментари като тези, които всеки е чувал от програмисти за това кой пол е по-добър в тази професия. Той просто държи на това, че на английски за „занаятчия“ трябва да се ползва “Craftsman”, което съдържа в себе си думата „мъж“, вместо по-полово неутрален термин.
Колкото до расизма, казва, че състезателите по американски футбол, които не стават прави по време на химна трябва да бъдат уволнявани.
Също, в разгара на миналогодишните събития след смъртта на Джордж Флойд, той написа: „Полицията не е проблемът. Полицията никога не е била проблемът. Липсата на доверие в нея е ужасно решение, което може да струва стотици и хиляди животи“. Казва, че полицията не действа по расистки подбуди и че САЩ не е страна, създадена от роби.
Чичо Боб и Вуйчо Ваньо
Иначе Чичо Боб продължава и до днес да изнася лекции… макар да личи, че го канят значително по-рядко. Редовно пише в сайта си (който, програмистите, които четат, ще оценят иронията, дори няма SSL сертификат). Публикува в „Туитър“, качва нови проекти в „Гитхъб“. Пише основно по теми, свързани с програмирането. Доста по-рядко си позволява и някой политически коментар.
Нашият герой определено умее да навлиза в темите, описва чудесно и увлекателно, дава нови погледи към технологични проблеми. Знам, че е странно, но попаднах на няколко руски форума, в които го наричат „Американския Чехов“.
Чичо Боб пише и за темите като програмирането, водено от тестове. Съветва софтуерните инженери по-често да работят заедно, пишейки код, да обсъждат и коментират.
Чичковите червенотичковчета
„Не си готов, когато нещото работи, а когато е направено както трябва“, допълва той. Ами, почвам да си обяснявам защо днес не го харесват особено. Може би просто е прав.
Често отваря и темите, свързани с „Аджайл“ движението, което според него се е провалило в основните си цели. Така и не е успяло да изведе на преден план работата на програмистите за сметка на мениджърите. „Въпреки че започна точно от програмистите с идеята да каже: „Ей, вижте! Отборът има значение. Кодът трябва да е ясен. Искаме да работим заедно с клиента. И искаме да доставяме по-често и качествено“. Но също така искахме да въведем занаятчийския подход. Той не е за новите неща, а за старите. За това да се работи добре, да се добавя стойност. За взаимодействието, комуникацията, сътрудничеството. За адаптивната продуктивност и реакцията при промени. За професионализма и етиката“.
„Днес, за да те наемат като програмист, е достатъчно да кажеш, че разбираш от компютри. Смятам, че софтуерната индустрия сега прилича на медицината в тъмните векове“, казва още Чичо Боб. „Всеки може да каже, че е лечител. Някой ще е добър, друг няма да е, защото няма ясни стандарти. Но малцина от „лечителите“ ще са чували за Хипократовата клетва“.
Опа, чичо
„Истинските професионалисти в нашата професия нямат шефове. Те са партньори, а не подчинени на бизнеса. Те могат да бъдат наети, но не са работници. Както наемате лекари или адвокати, но не ги управлявате, не ги учите как да си вършат работата. Представете си да давате акъл на хирурга, който ви прави сърдечна операция. Става дума за същата абсурдна концепция“, в типичния си прям стил добавя той.
Разказва, че през 1975-а е уволнен като програмист, тъкмо когато жена му е бременна с първото им дете. „Но това беше доста поучителен опит. Направих някои тъпи грешки. Не в кода ми, а в поведението“.
Противно на доминиращото мнение, Чичо Боб смята, че човек може да продължи да работи като софтуерен инженер много, много дълго. Според него съвсем не е задължително в определен момент да се пренасочите към управлението на хора.
„Много млади програмисти ще се сблъскат с дилемата дали да продължат да се развиват. Те ще чувстват, че кариерата им е ограничена, ако не решат да се катерят нагоре и по мениджърската стълбичка. Пълни глупости! Кариерата ви е ограничена от вашата страст и възможностите ви, не от това дали се заемате с мениджмънт. Ако искате да сте техническа суперзвезда, давайте смело напред! Повярвайте ми, има и нужда, и пазар за майстори в занаята, които винаги ще бъдат добре платени. Не се оставяйте някой да ви бута по път, който не сте избрали сами и никога не оставяйте работодателя ви да решава за вашата кариера вместо вас“.
Слушай чичо си
Интересно е да споменем, че Чичо Боб е скептик по отношение на изкуствения интелект, или поне на подхода ни към тази тема днес. Обича да разказва историята за „Уотсън“, един от знаменитите прототипи, препоръчван дори за ролята на президент на САЩ. Докато участва и успява да победи в популярната телевизионна игра „Джеопарди“, един от въпросите, които му задават, гласи: „Кажете името на град в САЩ, където има летище, кръстено на герой от Втората световна война“. „Торонто!“, отсича изкуственият интелект.
„В края на краищата „Уотсън“ е компютър и при тях винаги има ясни съображения защо правят едно или друго. Със сигурност има причина да го направи. Но нито един човек със средна интелигентност не би се подвел така. Въпреки това „Уотсън“ победи. Сега ни казват, че скоро изкуственият интелект ще управлява автомобилите и ще го прави значително по-безопасно от хората. Моят отговор гласи: Торонто!“.
Класика в жанра
Днес Чичо Боб наистина е поизгубил ореола, който имаше преди десетилетие. Това обаче се дължи на причини, които са далеч от реалната му работа. Безспорно е, че още много поколения програмисти ще напредват в професията с неговите уроци. А и определено не трябва да го мислим. Книгите му продължават да са страшно продавани, стоят във всички класации, независимо, че са писани доста отдавна.
Въпросът е за това как оценяваме кой какво е направил.
В този смисъл, преди да се разделим, нека за последно дадем думата на обвиняемия. Преди 3 години го питат го защо толкова често в субредита /r/programmers мненията му се посрещат с омраза. Той отвръща, че изобщо не знае какво е това събредит.
Пазарът на идеи
„Но знам, че има хора, които не харесват моето мнение по една или друга причина. Съвсем нормално. Аз вярвам в пазара на идеи. Ако техните идеи са по-добри, те ще победят.
Някои хора не харесват факта, че съм консервативен и съм републиканец. Някои не харесват това, че гласувах за Доналд Тръмп. Съвсем нормално. Аз вярвам в пазара на идеи. Ако моето мнение за политиката е грешно, те ще победят.
Междувременно, аз програмирам от 48 години. Това е нещо доста рядко. Много малко хора пишат код 48 години без прекъсване. Този очевиден опит ми дава някаква позиция на авторитет. Мисля също, че съм прилично добър писател и това помага.
Така или иначе, за всички ни има достатъчно поле за изява“.
За финал, аз определено бих искал да кажа на Чичо Боб една дума. Благодаря! Без теб професията ми определено щеше да е по-гадна… А също и светът, погълнат от технологиите. SOLID и „Аджайл“ са концепции, които подобриха живота ни. Пък ти имаш право на своите идеи, Чичо, аз на моите. Пазарът на идеи определено е цинично определение, както ти си можеш… но може би в него има доза истина.
Продължавай да не се впечатляваш от мнението на другите. И дано мечтите ти по Азимов се сбъднат…