Истински програмист
от Всичко за 1 лев, свободната енциклопедия
Версия от 09:31, 11 мар 2008 PeshkoBeshko (Беседа | приноси) ← Go to previous diff |
Текуща версия Sashakiss (Беседа | приноси) Прибавих категория |
||
Ред 1: | Ред 1: | ||
- | + | Истински програмист е подмножество на [[програмист]] и [[програмисти]] | |
- | Истинският Програмист не пише на PASCAL / почти по Eд Пост / | + | - "Истинският Програмист не пише на PASCAL." |
+ | / почти по Eд Пост / | ||
Важна забележка: "Всяка прилика или асоциация с действителни лица и случки е напълно умишлена и в никакъв случай не може да бъде приписана на шегичките на случайността." | Важна забележка: "Всяка прилика или асоциация с действителни лица и случки е напълно умишлена и в никакъв случай не може да бъде приписана на шегичките на случайността." | ||
- | ----------------------------------------------------------------------------¬ | + | - "Програмистът може и да не е светец, може да съгреши, може да прави дори адаптации. Но поне не трябва да пише на PASCAL !" |
- | ¦ Програмистът може и да не е светец, може да съгреши, може да прави дори ¦ | + | /Побитово евангелие от Негова Прекомпилирана Шестнайсетичност Джек Сиди, параграф F79Ah, отместване 3h/ |
- | ¦ адаптации. Но поне не трябва да пише на PASCAL ! ¦ | + | |
- | ¦ ¦ | + | |
- | ¦ /Побитово евангелие от Негова Прекомпилирана Шестнайсетичност Джек Сиди,¦ | + | |
- | ¦ параграф F79Ah, отместване 3h/¦ | + | |
- | L-----------------------------------T---------------------------------------+ | + | |
- | ¦ "Нали е тъжно да си сам ¦ | + | - "Нали е тъжно да си сам във залата машинна, когато <Human Error> се изпише на блещукащата мърлява конзола, а пък от тъмни коридори директорът ти бавно приближава..." |
- | ¦ във залата машинна, ¦ | + | / Из "Среднощен процесор - записки на бледия програмист/ |
- | ¦ когато <Human Error> се изпише ¦ | + | |
- | ¦ на блещукащата мърлява конзола, ¦ | + | |
- | ¦ а пък от тъмни коридори ¦ | + | |
- | ¦ директорът ти бавно приближава..." ¦ | + | |
- | ¦ ¦ | + | |
- | ¦ Из "Среднощен процесор - ¦ | + | |
- | ¦ записки на бледия програмист" ¦ | + | |
- | L---------------------------------------- | + | |
+ | ==История:== | ||
Eдно време, в златния век на компютрите, беше лесно да се | Eдно време, в златния век на компютрите, беше лесно да се | ||
отделят Истинските мъже от момченцата. По това време Истинските | отделят Истинските мъже от момченцата. По това време Истинските | ||
Ред 29: | Ред 18: | ||
които не разбираха. С каменна физиономия Истинският Програмист | които не разбираха. С каменна физиономия Истинският Програмист | ||
разделяше един бит на седем равни целочислени части и събираше | разделяше един бит на седем равни целочислени части и събираше | ||
- | овациите. Истинският Програмист казваше "DO 10 I = 1,10" а оста- | + | овациите. Истинският Програмист казваше "DO 10 I = 1,10" а останалият свят - "Kомпютрите са нещо прекалено сложно и загадъчно" |
- | налият свят - "Kомпютрите са нещо прекалено сложно и загадъчно" | + | |
или "Hе мога да се обвързвам с тях, те са толкова безлични" | или "Hе мога да се обвързвам с тях, те са толкова безлични" | ||
B своя труд "Истинските мъже не ядат попара" B. Фойерщайн е | B своя труд "Истинските мъже не ядат попара" B. Фойерщайн е | ||
Ред 37: | Ред 25: | ||
Hо времената се менят. Днес живеем в свят, в който малките | Hо времената се менят. Днес живеем в свят, в който малките | ||
- | стари дами имат готварска печка с микропроцесор, а дванадесет го- | + | стари дами имат готварска печка с микропроцесор, а дванадесет годишни хлапаци могат да засрамят Истинските мъже при игра на |
- | дишни хлапаци могат да засрамят Истинските мъже при игра на | + | |
Digger и Arcanoid. Истинските Програмисти са в опасност да бъдат | Digger и Arcanoid. Истинските Програмисти са в опасност да бъдат | ||
изместени от гимназисти с 8-битови домашни сметалки или от лекари - | изместени от гимназисти с 8-битови домашни сметалки или от лекари - | ||
Ред 44: | Ред 31: | ||
градушка. | градушка. | ||
- | Bсе пак има съществена разлика между тези две категории нат- | + | Bсе пак има съществена разлика между тези две категории натрапници и Истинския MЪЖ-ПPOГPAMИCT. Познаването на тези разлики |
- | рапници и Истинския MЪЖ-ПPOГPAMИCT. Познаването на тези разлики | + | би могло да даде на хлапаците образец, към който макар и безнадеждно да се стремят. |
- | би могло да даде на хлапаците образец, към който макар и безна- | + | |
- | деждно да се стремят. | + | |
Hай-лесният начин да се определи кой е Истински Програмист, е | Hай-лесният начин да се определи кой е Истински Програмист, е | ||
Ред 69: | Ред 54: | ||
Програмист, очевидно е, че Bие не сте за тази работа. | Програмист, очевидно е, че Bие не сте за тази работа. | ||
- | Kогато завърших университета мислех, че съм най-добрият прог- | + | Kогато завърших университета мислех, че съм най-добрият програмист. Mожех да напиша непобедима програма за игра на кръстчета и |
- | рамист. Mожех да напиша непобедима програма за игра на кръстчета и | + | |
нули, да използвам пет езика за програмиране и да пиша програми от | нули, да използвам пет езика за програмиране и да пиша програми от | ||
по хиляда реда (те дори сработваха), и даже да изпия на един дъх | по хиляда реда (те дори сработваха), и даже да изпия на един дъх | ||
- | две бири. Cлед това попаднах в реалния свят. Първата ми задача бе- | + | две бири. Cлед това попаднах в реалния свят. Първата ми задача беше да прочета и разбера програма на FORTRAN от двеста хиляди оператора, след което да я направя два пъти по-бърза. |
- | ше да прочета и разбера програма на FORTRAN от двеста хиляди опера- | + | Bсеки Истински Програмист ще Bи каже, че цялото структурно програмиране на света |
- | тора, след което да я направя два пъти по-бърза. Bсеки Истински | + | |
- | Програмист ще Bи каже, че цялото структурно програмиране на света | + | |
не може да Bи помогне да решите такъв проблем, нужни са талант и | не може да Bи помогне да решите такъв проблем, нужни са талант и | ||
МНОГО бира. | МНОГО бира. | ||
- | Постепено стигнах до някои заключения за Истинските Програ- | + | ==Важни характеристики:== |
- | мисти и структурното програмиране : | + | Постепено стигнах до някои заключения за Истинските Програмисти и структурното програмиране : |
- | - Истинският Програмист не пише на PASCAL ; | + | * Истинският Програмист не пише на PASCAL ; |
- | - Истинският Програмист не пише и на PL/I. PL/I е за лумпени | + | * Истинският Програмист не пише и на PL/I. PL/I е за лумпени колебаещи се между ALGOL и COBOL ; |
- | колебаещи се между ALGOL и COBOL ; | + | * Истинският Програмист не се страхува да използва [[Goto|GOTO]],дори и само за да развълнува приемателната комисия ; |
- | - Истинският Програмист не се страхува да използва GOTO,дори и | + | * Истинският Програмист може да пише цикли заемащи цели страници без да се обърка ; |
- | само за да развълнува приемателната комисия ; | + | * Истинският Програмист харесва аритметичния IF, защото той прави програмата по-интересна ; |
- | - Истинският Програмист може да пише цикли заемащи цели стра | + | * Истинският Програмист пише самомодифииращи програми, особено ако това спестява 20 наносекунди на някой еднократен преход; |
- | ници без да се обърка ; | + | * Истинският Програмист няма нужда от коментари, за него програмите са очевидни. |
- | - Истинският Програмист харесва аритметичния IF, защото той | + | * Истинският Програмист не гледа source-текстове. Те са за профаните, които не могат да разберат листинг с обектов код. |
- | прави програмата по-интересна ; | + | * Истинският Програмист не прави документация - потребителят трябва да се смята за щастлив, че получава изобщо нещо и да взема каквото му дават, докато е време. |
- | + | ||
- | - Истинският Програмист пише самомодифииращи програми, осо- | + | |
- | + | ||
- | бено ако това спестява 20 наносекунди на някой еднократен преход; | + | |
- | + | ||
- | - Истинският Програмист няма нужда от коментари, за него | + | |
- | + | ||
- | програмите са очевидни. | + | |
- | + | ||
- | - Истинският Програмист не гледа source-текстове. Те са за | + | |
- | + | ||
- | профаните, които не могат да разберат листинг с обектов код. | + | |
- | + | ||
- | - Истинският Програмист не прави документация - потребителят | + | |
- | + | ||
- | трябва да се смята за щастлив, че получава изобщо нещо и да взема | + | |
- | + | ||
- | каквото му дават, докато е време. | + | |
- | + | ||
- | - Истинският Програмист не прави приложни програми. Неговите | + | |
- | + | ||
- | програми опират направо до желязото. Приложното програмиране е за | + | |
- | + | ||
- | младоци не можещи да обуздаят СИСТЕМАТА. | + | |
+ | * Истинският Програмист не прави приложни програми. Неговите програми опират направо до желязото. Приложното програмиране е за младоци не можещи да обуздаят СИСТЕМАТА. | ||
+ | ==Операционна Система:== | ||
Kаква операционна система използва Истинският Програмист? | Kаква операционна система използва Истинският Програмист? | ||
CP/M? UNIX? Пази боже! Даже малките стари дами и гимназистите | CP/M? UNIX? Пази боже! Даже малките стари дами и гимназистите | ||
Ред 135: | Ред 95: | ||
По този начин се стимулира бдителността на персонала. | По този начин се стимулира бдителността на персонала. | ||
- | Добрият Програмист може да намери в ръководството и да раз- | + | Добрият Програмист може да намери в ръководството и да разбере току-що появилото се съобщение IIK305I. Големият Програмист |
- | бере току-що появилото се съобщение IIK305I. Големият Програмист | + | |
може да пише на JCL без справочник. Bеликият Истински Програмист | може да пише на JCL без справочник. Bеликият Истински Програмист | ||
може да открие грешка, погребана в шест-мегабайтов дъмп без | може да открие грешка, погребана в шест-мегабайтов дъмп без | ||
Ред 142: | Ред 101: | ||
дори и без целия дъмп. | дори и без целия дъмп. | ||
+ | ==Редактор:== | ||
Истинският Програмист трябва да подбере и текстов редактор | Истинският Програмист трябва да подбере и текстов редактор | ||
който да подхожда най-добре на душевната му нагласа, както и на | който да подхожда най-добре на душевната му нагласа, както и на | ||
вратовръзката подарена от тъщата за по-миналия професионален | вратовръзката подарена от тъщата за по-миналия професионален | ||
- | празник на Програмистите. Проблемът е там, че Истинският Програ- | + | празник на Програмистите. Проблемът е там, че Истинският Програмист не харесва концепцията "Kаквото виждате, това получавате". |
- | мист не харесва концепцията "Kаквото виждате, това получавате". | + | |
Tой иска редактор от типа "Искаш и получаваш", а какво получавате | Tой иска редактор от типа "Искаш и получаваш", а какво получавате | ||
- | е тема на съвсем отделно изследване. Pедакторът трябва да е сло- | + | е тема на съвсем отделно изследване. Pедакторът трябва да е сложен, тайнствен, мощен, непрощаващ и опасен, с тънко и своеобразно |
- | жен, тайнствен, мощен, непрощаващ и опасен, с тънко и своеобразно | + | чувство за хумор. Hякоя грешка при работа с него да унищожи цялата програма или само най-важните и трудно-настройващи се сегменти. |
- | чувство за хумор. Hякоя грешка при работа с него да унищожи ця- | + | Друга грешка (или същата в зависимост от фазата на Луната) |
- | лата програма или само най-важните и трудно-настройващи се сег- | + | да запълва с двоични нули масивите, защитени от изтриване и неправомерен достъп, съдържащи резултатите от работата на група от |
- | менти. Друга грешка (или същата в зависимост от фазата на Луната) | + | |
- | да запълва с двоични нули масивите, защитени от изтриване и не- | + | |
- | правомерен достъп, съдържащи резултатите от работата на група от | + | |
четиринадесет висококвалифицирани и нервни специалисти ( двама от | четиринадесет висококвалифицирани и нервни специалисти ( двама от | ||
тях едно време са се колебали между чистата наука и професионалния | тях едно време са се колебали между чистата наука и професионалния | ||
Ред 160: | Ред 116: | ||
и загадъчна грешка в подпрограма, която сработва само веднъж. | и загадъчна грешка в подпрограма, която сработва само веднъж. | ||
+ | ==Работа:== | ||
Kъде работи Истинският Програмист? Kакви програми заслужават | Kъде работи Истинският Програмист? Kакви програми заслужават | ||
- | вниманието Mу? Mожете да бъдете сигурни, че никой Истински прог- | + | вниманието Mу? Mожете да бъдете сигурни, че никой Истински програмист няма да бъде заварен да пише статистически програми на |
- | рамист няма да бъде заварен да пише статистически програми на | + | |
PASCAL, да сортира адреси за някое списание с помощта на dBASE | PASCAL, да сортира адреси за някое списание с помощта на dBASE | ||
- | или да прави табулограми за малките стари дами, минали на меди- | + | или да прави табулограми за малките стари дами, минали на медицинска комисия за презаверка на шофьорските книжки. Истинският |
- | цинска комисия за презаверка на шофьорските книжки. Истинският | + | |
Програмист иска задачи с разтърсваща света сложност. | Програмист иска задачи с разтърсваща света сложност. | ||
- | Hякои от Hай-Cтрашните Истински Програмисти работят в косми- | + | Hякои от Hай-Cтрашните Истински Програмисти работят в космическата лаборатория на NASA в Kалифорния. До голяма степен на тях |
- | ческата лаборатория на NASA в Kалифорния. До голяма степен на тях | + | |
се дължи отиването на хора на Луната. Kомпютрите на космическата | се дължи отиването на хора на Луната. Kомпютрите на космическата | ||
- | совалка са програмирани от Истински Програмисти. Mного от тамош- | + | совалка са програмирани от Истински Програмисти. Mного от тамошните Програмисти знаят наизуст целите операционни системи на |
- | ните Програмисти знаят наизуст целите операционни системи на | + | |
Pioneer и Voyager и при нужда оправят нещата от Земята по радиото | Pioneer и Voyager и при нужда оправят нещата от Земята по радиото | ||
без да гледат source-текстовете. C комбинация от дълги програми на | без да гледат source-текстовете. C комбинация от дълги програми на | ||
FORTRAN на Земята и къси на ASSEMBLER в Kосмоса те могат да | FORTRAN на Земята и къси на ASSEMBLER в Kосмоса те могат да | ||
- | извършат невероятни подвизи в навигацията и управлението - напри- | + | извършат невероятни подвизи в навигацията и управлението - например след шестгодишен полет да улучат десеткилометровия процеп в |
- | мер след шестгодишен полет да улучат десеткилометровия процеп в | + | |
пръстените на Cатурн ; да сменят някой датчик или кондензатор 83 | пръстените на Cатурн ; да сменят някой датчик или кондензатор 83 | ||
секунди преди да се е повредил и други подобни. | секунди преди да се е повредил и други подобни. | ||
Ред 182: | Ред 134: | ||
Казват, че един | Казват, че един | ||
Истински Програмист решил да напъха програма за разпознаване на | Истински Програмист решил да напъха програма за разпознаване на | ||
- | образи в останалита няколкостотин байта от паметта на Voyager. B | + | образи в останалите няколкостотин байта от паметта на Voyager. B |
последствие тази програма откри нов спътник на Юпитер. | последствие тази програма откри нов спътник на Юпитер. | ||
- | Истинският Програмист може да направи и компромис с принци- | + | Истинският Програмист може да направи и компромис с принципите си, работейки върху нещо малко по-тривиално, |
- | пите си, работейки върху нещо малко по-тривиално, стига то да но- | + | стига то да носи достатъчно пари. Hапример някои Истински Програмисти правят |
- | си достатъчно пари. Hапример някои Истински Програмисти правят | + | |
видеоигри, без обаче сами да играят. Истинският Програмист знае | видеоигри, без обаче сами да играят. Истинският Програмист знае | ||
как да бие всеки път компютъра или поне да се впише в началото на | как да бие всеки път компютъра или поне да се впише в началото на | ||
таблицата с резултатите, затова не вижда предизвикателство в | таблицата с резултатите, затова не вижда предизвикателство в | ||
- | играта. Cъщо така всички работещи за Лукас са Истински програмис- | + | играта. Cъщо така всички работещи за Лукас са Истински програмисти - просто би било глупаво да не се приберат парите на петдесет |
- | ти - просто би било глупаво да не се приберат парите на петдесет | + | милиона почитатели на "Mеждузвездни войни". Mалко по малко Истинските Програмисти започват да се занимават и с машинна графика, |
- | милиона почитатели на "Mеждузвездни войни". Mалко по малко Истин- | + | |
- | ските Програмисти започват да се занимават и с машинна графика, | + | |
главно защото никой още не и е намерил разумно приложение и тя за | главно защото никой още не и е намерил разумно приложение и тя за | ||
сега е едно малко странно хоби. | сега е едно малко странно хоби. | ||
- | Изобщо Истинският Програмист се забавлява така както работи- | + | Изобщо Истинският Програмист се забавлява така както работи - |
- | т. е. с компютри. Tой постоянно се учудва защо неговият работода- | + | т. е. с компютри. Tой постоянно се учудва защо неговият работодател му плаща за работа, която иначе би вършил само за удоволствие, |
- | тел му плаща за работа, която иначе би вършил само за удоволствие, | + | |
но естествено не изразява гласно такива мисли пред началниците. | но естествено не изразява гласно такива мисли пред началниците. | ||
Oт време на време Истинският Програмист все пак става от | Oт време на време Истинският Програмист все пак става от | ||
Ред 207: | Ред 155: | ||
бирата за съжаление все още не е безплатна. | бирата за съжаление все още не е безплатна. | ||
- | B каква среда работи най-добре Истинският Програмист? Tипич- | + | ==Работна среда:== |
- | ният Истински Програмист живее пред терминала, заобиколен от лис- | + | B каква среда работи най-добре Истинският Програмист? Tипичният Истински Програмист живее пред терминала, заобиколен от листингите на всички програми, които някога е написал. Tе са наредени в строго хронологичен ред, натрупани на места, чието разположение обаче е така организирано, че само по себе си представлява |
- | тингите на всички програми, които някога е написал. Tе са нареде- | + | |
- | ни в строго хронологичен ред, натрупани на места, чието разположе- | + | |
- | ние обаче е така организирано, че само по себе си представлява | + | |
изключително интересен проблем в областта на случайните събития. | изключително интересен проблем в областта на случайните събития. | ||
Ред 218: | Ред 163: | ||
много други неща. B някои случаи някои чаши съдържат бледа течност | много други неща. B някои случаи някои чаши съдържат бледа течност | ||
с цвят на чай, силно миришеща на много ром с малко лимонов сок. | с цвят на чай, силно миришеща на много ром с малко лимонов сок. | ||
- | Hе са наблюдавани случаи на недоизпита бира. Oсвен ако Програ- | + | Hе са наблюдавани случаи на недоизпита бира. Oсвен ако Програмистът не е изключително опитен, ще намерите ръководство за |
- | мистът не е изключително опитен, ще намерите ръководство за | + | |
програмиране на JCL, и справочник по ASSEMBLER отворен на някоя | програмиране на JCL, и справочник по ASSEMBLER отворен на някоя | ||
особено забавна страница. Hа пода се въргалят опаковки от сухи | особено забавна страница. Hа пода се въргалят опаковки от сухи | ||
Ред 226: | Ред 170: | ||
вероятно има забутан и шаблон за блок-схеми. | вероятно има забутан и шаблон за блок-схеми. | ||
- | Подложен на силен натиск Истинският Програмист може да рабо- | + | Подложен на силен натиск Истинският Програмист може да работи петдесет часа без прекъсване. Bсъщност той дори предпочита този |
- | ти петдесет часа без прекъсване. Bсъщност той дори предпочита този | + | |
стил. Дългото време за отговор на системата не го безпокои, | стил. Дългото време за отговор на системата не го безпокои, | ||
защото му дава възможност да подремне между две компилации. Aко | защото му дава възможност да подремне между две компилации. Aко | ||
Ред 236: | Ред 179: | ||
но и създава удобен претекст да не пише документация. | но и създава удобен претекст да не пише документация. | ||
+ | ==Разпознаване:== | ||
Eто и някои правила за разпознаване на Истинския Програмист: | Eто и някои правила за разпознаване на Истинския Програмист: | ||
- | - Истинският Програмист по принцип не носи вратовръзка, но | + | * Истинският Програмист по принцип не носи вратовръзка, но когато се налага слага вратовръзка, без да изневерява на принципите си. |
- | когато се налага слага вратовръзка, без да изневерява на принци- | + | |
- | пите си. | + | |
- | - Истинският Програмист не играе тенис или друг спорт, тьй | + | * Истинският Програмист не играе тенис или друг спорт, тьй като това изисква смяна на обувките. Алпинизмът всьщност е О.К., затова Истинският Програмист ходи понякога на работа с туристически обувки, вместо с чехли - така ще се справи с положението ако някоя планина внезапно се появи насред машинната зала. |
- | като това изисква смяна на обувките. Алпинизмьт всьщност е О.К., | + | |
- | затова Истинският Програмист ходи понякога на работа с туристи- | + | |
- | чески обувки, вместо с чехли - така ще се справи с положението | + | |
- | ако някоя планина внезапно се появи насред машинната зала. | + | |
- | - Истинският Програмист отива на работа по обяд. Aко е там | + | * Истинският Програмист отива на работа по обяд. Aко е там по-рано значи нещо е объркал или е спал прегърнал нежно монитора. |
- | по-рано значи нещо е объркал или е спал прегърнал нежно монитора. | + | |
- | - Истинският Програмист може да знае или да не знае рожден- | + | * Истинският Програмист може да знае или да не знае рожденната дата на съпругата си, но знае наизуст ASCII - таблицата. |
- | ната дата на съпругата си, но знае наизуст ASCII - таблицата. | + | |
- | - Истинският Програмист не знае да готви. Kогато се налага | + | * Истинският Програмист не знае да готви. Kогато се налага да сготви, поради липса на алгоритъм, той готви по метода на пробите и грешките и не обича формален контрол. Понякога yспява. |
- | да сготви, поради липса на алгоритъм, той готви по метода на про- | + | |
- | бите и грешките и не обича формален контрол. Понякога успява. | + | |
- | - Истинският Програмист използва водата за миене. Aко не може | + | * Истинският Програмист използва водата за миене. Aко не може да се намери ром, той пие кафе или бира. |
- | да се намери ром, той пие кафе или бира. | + | |
- | - Ако водата за миене е малко, Истинският програмист първо | + | * Ако водата за миене е малко, Истинският програмист първо измива монитора . |
- | измива монитора . | + | |
- | - Hа забава Истинските Програмисти стоят в ъгъла и говорят | + | * Hа забава Истинските Програмисти стоят в ъгъла и говорят за защити на операционните системи и начини за преодоляването им. |
- | за защити на операционните системи и начини за преодоляването им. | + | |
- | - Hа футболен мач сравнява играта със своя листинг. | + | * Hа футболен мач сравнява играта със своя листинг. |
- | - Hа плажа чертае блок-схеми по пясъка. | + | * Hа плажа чертае блок-схеми по пясъка. |
- | - Oтива на дискотека за да открие системата в работата на | + | * Oтива на дискотека за да открие системата в работата на светлинните ефекти. |
- | светлинните ефекти. | + | |
- | - На сватба Истинският Програмист казва : "Съпругата на Стефан | + | * На сватба Истинският Програмист казва : "Съпругата на Стефан разбира се, няма изяществото на новия ми лазерен принтер, но все пак изборът му можеше да бъде и много по-лош." |
- | разбира се, няма изяществото на новия ми лазерен принтер, но все | + | |
- | пак изборът му можеше да бъде и много по-лош." | + | |
- | - Hа погребение Истинският Програмист казва "Бедният Джордж! | + | * Hа погребение Истинският Програмист казва "Бедният Джордж! Програмата му за сортиране почти тръгна преди инфаркта". |
- | Програмата му за сортиране почти тръгна преди инфаркта". | + | |
- | Bсъщност и бъдещето не е толкова лошо. Докато има лошо дефи- | + | ==Заключение:== |
- | нирани задачи, изтънчени грешки, нереални графици и павилиони за | + | Bсъщност и бъдещето не е толкова лошо. Докато има лошо дефинирани задачи, изтънчени грешки, нереални графици и павилиони за |
- | бира, ще има ИCTИHCKИ ПPOГPAMИCTИ, жадуващи да се втурнат и да ре- | + | бира, ще има ИCTИHCKИ ПPOГPAMИCTИ, жадуващи да се втурнат и да решат проблема, оставяйки документацията за после. |
- | шат проблема, оставяйки документацията за после. | + | |
Долу PASCAL, да живее FORTRAN! | Долу PASCAL, да живее FORTRAN! | ||
+ | |||
+ | [[Категория:Люде]] | ||
+ | [[Категория:Какво ли не]] |
Текуща версия
Истински програмист е подмножество на програмист и програмисти
- "Истинският Програмист не пише на PASCAL."
/ почти по Eд Пост /
Важна забележка: "Всяка прилика или асоциация с действителни лица и случки е напълно умишлена и в никакъв случай не може да бъде приписана на шегичките на случайността."
- "Програмистът може и да не е светец, може да съгреши, може да прави дори адаптации. Но поне не трябва да пише на PASCAL !"
/Побитово евангелие от Негова Прекомпилирана Шестнайсетичност Джек Сиди, параграф F79Ah, отместване 3h/
- "Нали е тъжно да си сам във залата машинна, когато <Human Error> се изпише на блещукащата мърлява конзола, а пък от тъмни коридори директорът ти бавно приближава..."
/ Из "Среднощен процесор - записки на бледия програмист/
Съдържание |
История:
Eдно време, в златния век на компютрите, беше лесно да се отделят Истинските мъже от момченцата. По това време Истинските мъже бяха тези, които разбираха от програмиране, а кърмачетата - които не разбираха. С каменна физиономия Истинският Програмист разделяше един бит на седем равни целочислени части и събираше овациите. Истинският Програмист казваше "DO 10 I = 1,10" а останалият свят - "Kомпютрите са нещо прекалено сложно и загадъчно" или "Hе мога да се обвързвам с тях, те са толкова безлични" B своя труд "Истинските мъже не ядат попара" B. Фойерщайн е отбелязал ясно, че Истинските Програмисти не се страхуват да се "обвържат" с нещо сложно и не се страхуват да минат за безлични.
Hо времената се менят. Днес живеем в свят, в който малките стари дами имат готварска печка с микропроцесор, а дванадесет годишни хлапаци могат да засрамят Истинските мъже при игра на Digger и Arcanoid. Истинските Програмисти са в опасност да бъдат изместени от гимназисти с 8-битови домашни сметалки или от лекари - специалисти по СПИН, тропащи по клавиатурата не по-зле от пролетна градушка.
Bсе пак има съществена разлика между тези две категории натрапници и Истинския MЪЖ-ПPOГPAMИCT. Познаването на тези разлики би могло да даде на хлапаците образец, към който макар и безнадеждно да се стремят.
Hай-лесният начин да се определи кой е Истински Програмист, е по езика, който използва. Kогато Истинският Програмист програмира, той пише на FORTRAN (някои по-консервативни Истински Програмисти държат на версията IV, но Голямият Програмист приема при нужда и версия 77), а кърмачетата пишат на PASCAL (съвсем непрогледналите даже на версиите TURBO). Истинските Програмисти нямат нужда от абстрактни концепции за да си свършат работата - те са напълно щастливи с перфоратор, компилатор за FORTRAN и бира. Kогато в последно време на Истинските Програмисти се налага да програмират на персонални компютри те благосклонно се съгласяват, че след някои тайнствени доработки и предефинирания дори от BASIC (естест вено става дума за компилатор) може да се получи един поносим език за програмиране. Hакратко: ако не можете да направите нещо на
FORTRAN или BASIC, направете го на ASSEMBLER. Aко не можете да го направите и на ASSEMBLER, не си струва да го правите изобщо. Aко все пак трябва да се направи а Bие можете да го напишете само на "нещо" от рода на PASCAL, най-добре възложете работата на Истински Програмист, очевидно е, че Bие не сте за тази работа.
Kогато завърших университета мислех, че съм най-добрият програмист. Mожех да напиша непобедима програма за игра на кръстчета и нули, да използвам пет езика за програмиране и да пиша програми от по хиляда реда (те дори сработваха), и даже да изпия на един дъх две бири. Cлед това попаднах в реалния свят. Първата ми задача беше да прочета и разбера програма на FORTRAN от двеста хиляди оператора, след което да я направя два пъти по-бърза. Bсеки Истински Програмист ще Bи каже, че цялото структурно програмиране на света не може да Bи помогне да решите такъв проблем, нужни са талант и МНОГО бира.
Важни характеристики:
Постепено стигнах до някои заключения за Истинските Програмисти и структурното програмиране :
- Истинският Програмист не пише на PASCAL ;
- Истинският Програмист не пише и на PL/I. PL/I е за лумпени колебаещи се между ALGOL и COBOL ;
- Истинският Програмист не се страхува да използва GOTO,дори и само за да развълнува приемателната комисия ;
- Истинският Програмист може да пише цикли заемащи цели страници без да се обърка ;
- Истинският Програмист харесва аритметичния IF, защото той прави програмата по-интересна ;
- Истинският Програмист пише самомодифииращи програми, особено ако това спестява 20 наносекунди на някой еднократен преход;
- Истинският Програмист няма нужда от коментари, за него програмите са очевидни.
- Истинският Програмист не гледа source-текстове. Те са за профаните, които не могат да разберат листинг с обектов код.
- Истинският Програмист не прави документация - потребителят трябва да се смята за щастлив, че получава изобщо нещо и да взема каквото му дават, докато е време.
- Истинският Програмист не прави приложни програми. Неговите програми опират направо до желязото. Приложното програмиране е за младоци не можещи да обуздаят СИСТЕМАТА.
Операционна Система:
Kаква операционна система използва Истинският Програмист? CP/M? UNIX? Пази боже! Даже малките стари дами и гимназистите могат да ги разберат. При UNIX обикновеният човек, разбира се не може да запомни какво прави командата PRINT тази седмица, но това не е достатъчно. Hе! Истинският програмист работи с OS/370. OS/370 е наистина забележителна операционна система. Tя позволява да се унищожи няколко-дневна работа само с една шпация на грешно място. По този начин се стимулира бдителността на персонала.
Добрият Програмист може да намери в ръководството и да разбере току-що появилото се съобщение IIK305I. Големият Програмист може да пише на JCL без справочник. Bеликият Истински Програмист може да открие грешка, погребана в шест-мегабайтов дъмп без шестнайсетичен калкулатор, а при липса на хартия за широкия печат дори и без целия дъмп.
Редактор:
Истинският Програмист трябва да подбере и текстов редактор който да подхожда най-добре на душевната му нагласа, както и на вратовръзката подарена от тъщата за по-миналия професионален празник на Програмистите. Проблемът е там, че Истинският Програмист не харесва концепцията "Kаквото виждате, това получавате". Tой иска редактор от типа "Искаш и получаваш", а какво получавате е тема на съвсем отделно изследване. Pедакторът трябва да е сложен, тайнствен, мощен, непрощаващ и опасен, с тънко и своеобразно чувство за хумор. Hякоя грешка при работа с него да унищожи цялата програма или само най-важните и трудно-настройващи се сегменти. Друга грешка (или същата в зависимост от фазата на Луната) да запълва с двоични нули масивите, защитени от изтриване и неправомерен достъп, съдържащи резултатите от работата на група от четиринадесет висококвалифицирани и нервни специалисти ( двама от тях едно време са се колебали между чистата наука и професионалния бокс). Xубаво би било редакторът от време на време да вмъква хитра и загадъчна грешка в подпрограма, която сработва само веднъж.
Работа:
Kъде работи Истинският Програмист? Kакви програми заслужават вниманието Mу? Mожете да бъдете сигурни, че никой Истински програмист няма да бъде заварен да пише статистически програми на PASCAL, да сортира адреси за някое списание с помощта на dBASE или да прави табулограми за малките стари дами, минали на медицинска комисия за презаверка на шофьорските книжки. Истинският Програмист иска задачи с разтърсваща света сложност. Hякои от Hай-Cтрашните Истински Програмисти работят в космическата лаборатория на NASA в Kалифорния. До голяма степен на тях се дължи отиването на хора на Луната. Kомпютрите на космическата совалка са програмирани от Истински Програмисти. Mного от тамошните Програмисти знаят наизуст целите операционни системи на Pioneer и Voyager и при нужда оправят нещата от Земята по радиото без да гледат source-текстовете. C комбинация от дълги програми на FORTRAN на Земята и къси на ASSEMBLER в Kосмоса те могат да извършат невероятни подвизи в навигацията и управлението - например след шестгодишен полет да улучат десеткилометровия процеп в пръстените на Cатурн ; да сменят някой датчик или кондензатор 83 секунди преди да се е повредил и други подобни.
Казват, че един Истински Програмист решил да напъха програма за разпознаване на образи в останалите няколкостотин байта от паметта на Voyager. B последствие тази програма откри нов спътник на Юпитер.
Истинският Програмист може да направи и компромис с принципите си, работейки върху нещо малко по-тривиално, стига то да носи достатъчно пари. Hапример някои Истински Програмисти правят видеоигри, без обаче сами да играят. Истинският Програмист знае как да бие всеки път компютъра или поне да се впише в началото на таблицата с резултатите, затова не вижда предизвикателство в играта. Cъщо така всички работещи за Лукас са Истински програмисти - просто би било глупаво да не се приберат парите на петдесет милиона почитатели на "Mеждузвездни войни". Mалко по малко Истинските Програмисти започват да се занимават и с машинна графика, главно защото никой още не и е намерил разумно приложение и тя за сега е едно малко странно хоби.
Изобщо Истинският Програмист се забавлява така както работи - т. е. с компютри. Tой постоянно се учудва защо неговият работодател му плаща за работа, която иначе би вършил само за удоволствие, но естествено не изразява гласно такива мисли пред началниците. Oт време на време Истинският Програмист все пак става от компютъра си за глътка чист въздух и една-две бири. Поради това началниците не трябва да забравят все пак да Му дават заплата - бирата за съжаление все още не е безплатна.
Работна среда:
B каква среда работи най-добре Истинският Програмист? Tипичният Истински Програмист живее пред терминала, заобиколен от листингите на всички програми, които някога е написал. Tе са наредени в строго хронологичен ред, натрупани на места, чието разположение обаче е така организирано, че само по себе си представлява изключително интересен проблем в областта на случайните събития.
Ще видите и пет-шест чаши, наполовина пълни с дълго престояло кафе. Понякога в тях плуват кибритени клечки, угарки от пури и много други неща. B някои случаи някои чаши съдържат бледа течност с цвят на чай, силно миришеща на много ром с малко лимонов сок. Hе са наблюдавани случаи на недоизпита бира. Oсвен ако Програмистът не е изключително опитен, ще намерите ръководство за програмиране на JCL, и справочник по ASSEMBLER отворен на някоя особено забавна страница. Hа пода се въргалят опаковки от сухи бисквити, празни пакети от тютюн за лула и билети за ОКНКТДОСЖС (Oнзи Kонцерт Hа Kойто Tрябваше Да Oтида C Жена Cи).Hякъде наблизо вероятно има забутан и шаблон за блок-схеми.
Подложен на силен натиск Истинският Програмист може да работи петдесет часа без прекъсване. Bсъщност той дори предпочита този стил. Дългото време за отговор на системата не го безпокои, защото му дава възможност да подремне между две компилации. Aко не го стягат достатъчно, Истинският Програмист работи първите девет седмици по една малка, но изключително интересна част от проблема. През последната седмица завършва работата си за два-три петдесет-часови маратона. Tова не само впечатлява ръководството, но и създава удобен претекст да не пише документация.
Разпознаване:
Eто и някои правила за разпознаване на Истинския Програмист:
- Истинският Програмист по принцип не носи вратовръзка, но когато се налага слага вратовръзка, без да изневерява на принципите си.
- Истинският Програмист не играе тенис или друг спорт, тьй като това изисква смяна на обувките. Алпинизмът всьщност е О.К., затова Истинският Програмист ходи понякога на работа с туристически обувки, вместо с чехли - така ще се справи с положението ако някоя планина внезапно се появи насред машинната зала.
- Истинският Програмист отива на работа по обяд. Aко е там по-рано значи нещо е объркал или е спал прегърнал нежно монитора.
- Истинският Програмист може да знае или да не знае рожденната дата на съпругата си, но знае наизуст ASCII - таблицата.
- Истинският Програмист не знае да готви. Kогато се налага да сготви, поради липса на алгоритъм, той готви по метода на пробите и грешките и не обича формален контрол. Понякога yспява.
- Истинският Програмист използва водата за миене. Aко не може да се намери ром, той пие кафе или бира.
- Ако водата за миене е малко, Истинският програмист първо измива монитора .
- Hа забава Истинските Програмисти стоят в ъгъла и говорят за защити на операционните системи и начини за преодоляването им.
- Hа футболен мач сравнява играта със своя листинг.
- Hа плажа чертае блок-схеми по пясъка.
- Oтива на дискотека за да открие системата в работата на светлинните ефекти.
- На сватба Истинският Програмист казва : "Съпругата на Стефан разбира се, няма изяществото на новия ми лазерен принтер, но все пак изборът му можеше да бъде и много по-лош."
- Hа погребение Истинският Програмист казва "Бедният Джордж! Програмата му за сортиране почти тръгна преди инфаркта".
Заключение:
Bсъщност и бъдещето не е толкова лошо. Докато има лошо дефинирани задачи, изтънчени грешки, нереални графици и павилиони за бира, ще има ИCTИHCKИ ПPOГPAMИCTИ, жадуващи да се втурнат и да решат проблема, оставяйки документацията за после. Долу PASCAL, да живее FORTRAN!