User Tools

Site Tools


text:real-programmers-ukrainian

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
text:real-programmers-ukrainian [2023/03/13 06:09] – [Майбутнє] vaktext:real-programmers-ukrainian [2023/03/13 06:46] (current) – [Справжній програміст у грі] vak
Line 3: Line 3:
 [[https://www.ecb.torontomu.ca/~elf/hack/realmen.html | Copyright © 1982 Ed Post]] [[https://www.ecb.torontomu.ca/~elf/hack/realmen.html | Copyright © 1982 Ed Post]]
  
-У старі добрі часи — «золоту еру» комп’ютерів — було легко відрізнити чоловіків від хлопчиків (у літературі їх іноді називають «справжніми чоловіками» та «їдачами [[https://uk.wikipedia.org/wiki/%D0%9A%D1%96%D1%88_(%D0%BF%D0%B8%D1%80%D1%96%D0%B3) | кішу]]»). У цей період «справжні чоловіки» були тими, хто розумівся на комп’ютерному програмуванні, а «їдці кішу» — ні. Справжній комп’ютерний програміст говорив такі речі, як «DO 10 I=1,10» і «ABEND» (вони насправді балакали великими літерами, ви розумієте), а решта світу говорила такі речі, як «комп’ютери надто складні для мене» і «я не можу покладатися на комп’ютери – вони такі знеособлені». ([[https://en.wikipedia.org/wiki/Real_Men_Don%27t_Eat_Quiche | Попередня робота]] вказує на те, що справжні чоловіки ні на що не «покладаються» і не бояться бути знеособленими.)+У старі добрі часи — «золоту еру» комп’ютерів — було легко відрізнити чоловіків від хлопчиків (у літературі їх іноді називають «справжніми чоловіками» та «їдачами [[https://uk.wikipedia.org/wiki/%D0%9A%D1%96%D1%88_(%D0%BF%D0%B8%D1%80%D1%96%D0%B3) | кішу]]»). У цей період «справжні чоловіки» були тими, хто розумівся на комп’ютерному програмуванні, а «їдці кішу» — ні. Справжній комп’ютерний програміст говорив такі речі, як «DO 10 I=1,10» і «ABEND» (вони насправді балакали великими літерами, ви розумієте), а решта світу говорила такі речі, як «комп’ютери надто складні для мене» і «я не можу покладатися на комп’ютери – вони такі знеособлені». ([[https://en.wikipedia.org/wiki/Real_Men_Don%27t_Eat_Quiche | Попередня робота]] вказує на те, що справжні чоловіки ні на що не «покладаються» і не лякаються знеособленості.)
  
 Але, як завжди, часи змінюються. Сьогодні ми зіткнулися зі світом, у якому маленькі старенькі можуть отримати комп’ютеризовані мікрохвильові печі, 12-річні діти можуть вибивати справжніх чоловіків у грі в Asteroids та Pac-Man, і будь-хто може купити і навіть зрозуміти свій власний персональний комп’ютер. Справжньому програмісту загрожує вимирання, його замінять старшокласники з макбуками! Але, як завжди, часи змінюються. Сьогодні ми зіткнулися зі світом, у якому маленькі старенькі можуть отримати комп’ютеризовані мікрохвильові печі, 12-річні діти можуть вибивати справжніх чоловіків у грі в Asteroids та Pac-Man, і будь-хто може купити і навіть зрозуміти свій власний персональний комп’ютер. Справжньому програмісту загрожує вимирання, його замінять старшокласники з макбуками!
Line 39: Line 39:
 Звичайно, Unix є набагато складнішим - типовий хакер Unix ніколи не може згадати, як цього тижня називається команда PRINT, - але коли доходить до діла, Unix стає прославленою відеоігрою. Люди не займаються серйозною роботою над системами Unix: вони розсилають жарти по всьому світу через USENET і пишуть пригодницькі ігри та дослідницькі статті. Звичайно, Unix є набагато складнішим - типовий хакер Unix ніколи не може згадати, як цього тижня називається команда PRINT, - але коли доходить до діла, Unix стає прославленою відеоігрою. Люди не займаються серйозною роботою над системами Unix: вони розсилають жарти по всьому світу через USENET і пишуть пригодницькі ігри та дослідницькі статті.
  
-Ні, ваш справжній програміст використовує OS/370. Хороший програміст може знайти та зрозуміти опис помилки IJK305I, яку він щойно отримав у своєму скріпті JCL. Чудовий програміст може написати скріпт JCL, взагалі не звертаючись до посібника. Справді видатний програміст може знайти помилки, заховані в 6-мегабайтному дампі ядра, не використовуючи шістнадцятковий калькулятор. (Я дійсно бачив, як це було зроблено.)+Ні, ваш справжній програміст використовує OS/370. Хороший програміст може знайти та зрозуміти опис помилки IJK305I, яку він щойно отримав у своєму скрипті JCL. Чудовий програміст може написати скрипт JCL, взагалі не звертаючись до посібника. Справді видатний програміст може знайти помилки, заховані в 6-мегабайтному дампі ядра, не використовуючи шістнадцятковий калькулятор. (Я дійсно бачив, як це було зроблено.)
  
-OS/370 — справді чудова операційна система. Є можливість знищити дні роботи одним недоречним місцем, тому заохочується уважність програмістів. Найкращий спосіб отримати доступ до системи – за допомогою перфокарт. Деякі люди стверджують, що існує система поділу часу, яка працює на OS/370, але після ретельного вивчення я дійшов висновку, що вони помиляються.+OS/370 — справді чудова операційна система. Є можливість знищити дні роботи одним недоречним пробілом, тому заохочується уважність програмістів. Найкращий спосіб отримати доступ до системи – за допомогою перфокарт. Деякі люди стверджують, що існує система поділу часу, яка працює на OS/370, але після ретельного вивчення я дійшов висновку, що вони помиляються.
  
 ===== Засоби програмування ===== ===== Засоби програмування =====
Line 53: Line 53:
 Деякі з концепцій у цих редакторах Xerox були включені в редактори, що працюють на операційних системах з більш прийнятними назвами. EMACS і VI, ймовірно, найвідоміші з цього класу редакторів. Проблема з цими редакторами полягає в тому, що справжні програмісти вважають «те, що ви бачите, те й отримуєте» таким же поганим поняттям для текстових редакторів, як і для жінок. Ні, справжньому програмісту потрібен текстовий редактор типу «ви просили, ви це отримали» — складний, загадковий, потужний, невблаганний, небезпечний. TECO, якщо бути точним. Деякі з концепцій у цих редакторах Xerox були включені в редактори, що працюють на операційних системах з більш прийнятними назвами. EMACS і VI, ймовірно, найвідоміші з цього класу редакторів. Проблема з цими редакторами полягає в тому, що справжні програмісти вважають «те, що ви бачите, те й отримуєте» таким же поганим поняттям для текстових редакторів, як і для жінок. Ні, справжньому програмісту потрібен текстовий редактор типу «ви просили, ви це отримали» — складний, загадковий, потужний, невблаганний, небезпечний. TECO, якщо бути точним.
  
-Було помічено, що послідовність команд TECO більше нагадує шум лінії передачі, [[https://web.mit.edu/~yandros/doc/craft-text-editing/Appendix-D.html | ніж читаний текст]]. Однією з найцікавіших ігор із TECO є ввести своє імʼя в командний рядок і спробувати вгадати, що воно вчинить. Практично будь-яка можлива помилка друку під час розмови з TECO, ймовірно, знищить вашу програму, або ще гірше - створить тонкі та загадкові помилки в колись працюючій підпрограмі.+Було помічено, що послідовність команд TECO більше нагадує шум лінії передачі, [[https://web.mit.edu/~yandros/doc/craft-text-editing/Appendix-D.html | ніж читаний текст]]. Однією з найцікавіших забав із TECO є ввести своє імʼя в командний рядок і спробувати вгадати, що воно вчинить. Практично будь-яка можлива помилка друку під час роботи в редакторі TECO, ймовірно, знищить вашу програму, або ще гірше - створить тонкі та загадкові помилки в колись працюючій підпрограмі.
  
-З цієї причини справжні програмісти не бажають фактично редагувати програму, яка майже працює. Їм набагато простіше просто виправити бінарний об’єктний код напряму, використовуючи чудову програму під назвою SUPERZAP (або її еквівалент на машинах не IBM). Це працює настільки добре, що багато робочих програм у системах IBM не мають жодного відношення до оригінального коду Фортран. У багатьох випадках оригінальний вихідний код більше недоступний. Коли настає час виправляти таку програму, жоден менеджер навіть не подумає надсилати нічого, крім справжнього програміста, щоб виконати цю роботу – жоден структурований програміст, що їсть кіш, навіть не знає, з чого почати. Це називається «безпека роботи».+З цієї причини справжні програмісти не бажають фактично редагувати програму, яка майже працює. Їм набагато простіше просто виправити бінарний об’єктний код напряму, використовуючи чудову програму під назвою SUPERZAP (або її еквівалент на машинах не IBM). Це працює настільки добре, що багато робочих програм у системах IBM не мають жодного відношення до оригінального коду Фортран. У багатьох випадках оригінальний вихідний код більше недоступний. Коли настає час виправляти таку програму, жоден менеджер навіть не подумає надсилати нікого, крім справжнього програміста, щоб виконати цю роботу – жоден структурований програміст, що їсть кіш, навіть не знає, з чого почати. Це називається «безпека робочого місця».
  
 Деякі інструменти програмування, якими НЕ користуються справжні програмісти: Деякі інструменти програмування, якими НЕ користуються справжні програмісти:
Line 66: Line 66:
 ===== Справжній програміст за роботою ===== ===== Справжній програміст за роботою =====
  
-Де працює типовий справжній програміст? Які ж програми варті зусиль такої талановитої людини? Ви можете бути впевнені, що жоден справжній програміст не буде виснажуватися до смерті, пишучи програми для дебіторської заборгованості в COBOL або сортуючи списки розсилки для журналу People. Справжньому програмісту потрібні завдання карколомної важливості (буквально!):+Де працює типовий справжній програміст? Які ж програми варті зусиль такої талановитої людини? Ви можете бути впевнені, що жоден справжній програміст не буде виснажуватися до смерті, пишучи програми для дебіторської заборгованості на Коболі або сортуючи списки розсилки для журналу "Піпл". Справжньому програмісту потрібні завдання карколомної важливості (буквально!):
  
   * Справжні програмісти працюють у Лос-Аламоській національній лабораторії, створюючи симулятори атомної бомби для роботи на суперкомп’ютерах Cray I.   * Справжні програмісти працюють у Лос-Аламоській національній лабораторії, створюючи симулятори атомної бомби для роботи на суперкомп’ютерах Cray I.
Line 80: Line 80:
 Як ви бачите, багато справжніх програмістів у світі працюють на уряд США, переважно на міністерство оборони. Так і повинно бути. Однак нещодавно на горизонті справжнього програміста утворилася чорна хмара. Як ви бачите, багато справжніх програмістів у світі працюють на уряд США, переважно на міністерство оборони. Так і повинно бути. Однак нещодавно на горизонті справжнього програміста утворилася чорна хмара.
  
-Здається, деякі високопоставлені їдці кішу в Міністерстві оборони вирішили, що всі оборонні програми мають бути написані якоюсь великою уніфікованою мовою під назвою «ADA» (зареєстрована торгова марка, DoD). Деякий час здавалося, що ADA судилося стати мовою, яка суперечить усім принципам справжнього програмування — мовою зі структурою, мовою з типами даних, жорсткою типізацією та крапками з комою. Коротше кажучи, мова, розроблена для того, щоб понівечити креативність типового справжнього програміста. На щастя, мова, прийнята Міністерством оборони, має достатньо цікавих функцій, щоб зробити її підхожою: вона неймовірно складна, містить методи для лагодження операційної системи та перегрупування пам’яті, і [[https://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD660.html | Едсгару Дейкстрі це не подобається]]. (Дійкстра, я певен, що ви знаєте, був автором «GoTos Considered Harmful» — знаменної праці в методології програмування, яку схвалювали як програмісти Pascal, так і ті, хто їсть кіш). Крім того, рішучий справжній програміст може писати фотрановські програми будь-якою мовою.+Здається, деякі високопоставлені їдці кішу в Міністерстві оборони вирішили, що всі оборонні програми мають бути написані якоюсь великою уніфікованою мовою під назвою «ADA» (зареєстрована торгова марка, DoD). Деякий час здавалося, що ADA судилося стати мовою, яка суперечить усім принципам справжнього програмування — мовою зі структурою, мовою з типами даних, жорсткою типізацією та крапками з комою. Коротше кажучи, мова, розроблена для того, щоб понівечити креативність типового справжнього програміста. На щастя, мова, прийнята Міністерством оборони, має достатньо цікавих функцій, щоб зробити її підхожою: вона неймовірно складна, містить методи для лагодження операційної системи та перегрупування пам’яті, і [[https://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD660.html | Едсгару Дейкстрі це не подобається]]. (Дейкстра, я певен, що ви знаєте, був автором [[https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf | GoTos Considered Harmful]] — знаменної праці в методології програмування, яку схвалювали як програмісти Pascal, так і ті, хто їсть кіш). Крім того, рішучий справжній програміст може писати фотрановські програми будь-якою мовою.
  
 Справжній програміст може піти на компроміс зі своїми принципами і працювати над чимось трохи тривіальнішим, ніж знищення життя, яким ми його знаємо, за умови, що на це є достатньо грошей. Наприклад, у Atari є кілька справжніх програмістів, які створюють відеоігри. (Але не граючи в них. Справжній програміст знає, як перемогти машину щоразу: у цьому немає жодного виклику.) Кожен, хто працює в LucasFilm, є справжнім програмістом. (Було б божевіллям відмовити 50 мільйонам шанувальників «Зоряних воєн»). Частка справжніх програмістів у сфері комп’ютерної графіки дещо нижча за норму, здебільшого тому, що ще ніхто не знайшов використання комп’ютерної графіки. З іншого боку, вся комп’ютерна графіка виконується на Фортран, тому існує достатня кількість людей, які займаються графікою, щоб уникнути необхідності писати програми на Коболі. Справжній програміст може піти на компроміс зі своїми принципами і працювати над чимось трохи тривіальнішим, ніж знищення життя, яким ми його знаємо, за умови, що на це є достатньо грошей. Наприклад, у Atari є кілька справжніх програмістів, які створюють відеоігри. (Але не граючи в них. Справжній програміст знає, як перемогти машину щоразу: у цьому немає жодного виклику.) Кожен, хто працює в LucasFilm, є справжнім програмістом. (Було б божевіллям відмовити 50 мільйонам шанувальників «Зоряних воєн»). Частка справжніх програмістів у сфері комп’ютерної графіки дещо нижча за норму, здебільшого тому, що ще ніхто не знайшов використання комп’ютерної графіки. З іншого боку, вся комп’ютерна графіка виконується на Фортран, тому існує достатня кількість людей, які займаються графікою, щоб уникнути необхідності писати програми на Коболі.
Line 89: Line 89:
  
   * На вечірці справжні програмісти в кутку говорять про безпеку операційної системи та про те, як її обійти.   * На вечірці справжні програмісти в кутку говорять про безпеку операційної системи та про те, як її обійти.
-  * Під час футбольного матчу справжній програміст – це той, хто порівнює гру зі своїми симуляціями, надрукованими на складеному віялом папері 11 на 14.+  * Під час футбольного матчу справжній програміст – це той, хто порівнює гру зі своїми симуляціями, надрукованими на фальцованому папері 11на 14".
   * На пляжі справжній програміст малює блок-схеми на піску.   * На пляжі справжній програміст малює блок-схеми на піску.
   * Справжній програміст йде на дискотеку дивитися світломузику.   * Справжній програміст йде на дискотеку дивитися світломузику.
   * На похороні справжній програміст каже: «бідний Джордж! у нього процедура сортування майже запрацювала, як його вдарив інсульт».   * На похороні справжній програміст каже: «бідний Джордж! у нього процедура сортування майже запрацювала, як його вдарив інсульт».
-  * У продуктовому магазині справжній програміст — це той, хто наполягає саморучно провести товар повз лазерний касовий сканер, бо він ніколи не довіряє операторам, що ті зроблять правильно з першого разу.+  * У продуктовому магазині справжній програміст — це той, хто наполягає саморучно провести товар повз лазерний касовий сканер, бо ніколи не довіряє операторам, що ті зроблять як треба з першого разу.
  
 ===== Природне середовище справжнього програміста ===== ===== Природне середовище справжнього програміста =====
Line 126: Line 126:
 Навіть Unix може бути не таким поганим для справжніх програмістів, як колись. Остання версія Unix має потенціал операційної системи, гідної будь-якого справжнього програміста. Він має два різних і дещо несумісних інтерфейси користувача, таємничий і складний термінальний драйвер, віртуальну пам’ять. Якщо ігнорувати той факт, що він структурований, навіть програмування на C може оцінити справжній програміст: зрештою, немає перевірки типів, імена змінних складаються з семи (десяти? восьми?) символів, а додатковий бонус типу даних "вказівник" це як мати найкращі частини Фортран і мови асемблера в одному місці. (Не кажучи вже про деякі більш творчі способи використання #define.) Навіть Unix може бути не таким поганим для справжніх програмістів, як колись. Остання версія Unix має потенціал операційної системи, гідної будь-якого справжнього програміста. Він має два різних і дещо несумісних інтерфейси користувача, таємничий і складний термінальний драйвер, віртуальну пам’ять. Якщо ігнорувати той факт, що він структурований, навіть програмування на C може оцінити справжній програміст: зрештою, немає перевірки типів, імена змінних складаються з семи (десяти? восьми?) символів, а додатковий бонус типу даних "вказівник" це як мати найкращі частини Фортран і мови асемблера в одному місці. (Не кажучи вже про деякі більш творчі способи використання #define.)
  
-Ні, майбутнє не таке вже й погане. Чому за останні кілька років популярна преса навіть коментувала яскраву нову групу комп’ютерних ботанів і хакерів, які залишають такі місця, як Стенфорд і M.I.T., виходячи у реальний світ. Судячи з усіх доказів, дух справжнього програмування живе в цих молодих чоловіках і жінках. Поки існують погано визначені цілі, химерні помилки та нереалістичні графіки, будуть справжні програмісти, які готові втрутитися та вирішити проблему, залишаючи документацію на потім. Хай живе Фортран!+Ні, майбутнє не таке вже й погане. Чому за останні кілька років популярна преса навіть коментувала яскраву нову групу комп’ютерних ботанів і хакерів, які залишають такі місця, як Стенфорд і M.I.T., виходячи у реальний світ. Судячи з усіх доказів, дух справжнього програмування живе в цих молодих чоловіках і жінках. Поки існують погано визначені цілі, химерні помилки та нереалістичні графіки, будуть справжні програмісти, які готові взятися та вирішити проблему, залишаючи документацію на потім. Хай живе Фортран!
  
 ---- ----
  
 Переклад: Сергій Вакуленко - Campbell, California Переклад: Сергій Вакуленко - Campbell, California
text/real-programmers-ukrainian.1678687791.txt.gz · Last modified: 2023/03/13 06:09 by vak

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki