forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   История Мэла (http://forum.boolean.name/showthread.php?t=16660)

impersonalis 18.04.2012 15:02

История Мэла
 
http://scilib.narod.ru/_Games/Mel_ru.htm
Цитата:

Недавняя статья, посвященная крутой стороне программирования, и делающая прямое и безапелляционное заявление:
Настоящие программисты пишут на Фортране.
Может быть они делают это сейчас, в эти декадентские времена легкого пива, калькуляторов и "дружественного" софта, но в Старые Добрые Времена, когда термин "софт" звучал смешно, а Настоящие Компьютеры были ламповыми и с магнитными барабанами, Настоящие Программисты писали в машинных кодах. ...

ffinder 18.04.2012 16:47

Ответ: История Мэла
 
мда... делать всё через жопу это так круто!
вместо восхищений (неуместных) нужно было бы признать, что код Мэла абсолютно, теоретически несопровождаемый. если его нужно каждый раз реверсить, чтобы что-то поменять.

ABTOMAT 18.04.2012 16:54

Ответ: История Мэла
 
Цитата:

Сообщение от ffinder (Сообщение 225813)
мда... делать всё через жопу это так круто!
вместо восхищений (неуместных) нужно было бы признать, что код Мэла абсолютно, теоретически несопровождаемый. если его нужно каждый раз реверсить, чтобы что-то поменять.

Люто бешено подбулчиваю этого ффиндера! Время программиста слишком дорого обходится, чтобы вот так его использовать.

radiobutton 18.04.2012 16:58

Ответ: История Мэла
 
http://scilib.narod.ru/_Games/no_pascal.html

Цитата:

1) Настоящие программисты используют Фортран. Сосунки используют Паскаль;
2) Единственный механизм передачи параметров, принимаемый настоящим программистом — это передача параметров по значению;
3) настоящие программисты не боятся использовать GOTO;
4) настоящие программисты любят арифметические операторы IF, т.к. их использование делает программу более интересной;
5) настоящие программисты не нуждаются в комментариях: текст программы все объясняет;
6) поскольку в Фортране отсутствуют структурные операторы IF, REPEAT ... UNTIL или CASE, настоящим программистам не нужно беспокоиться, что они их не используют; кроме того эти операторы можно при необходимости симулировать с помощью присваиваемых GOTO;
7) Как все настоящие программисты знают, единственной полезной структурой данных является массив. Строки, списки, структуры и наборы — это все разновидности массивов и их можно рассматривать как массивы без усложнения вашего языка программирования;
8 ) По-настоящему знаменитый программист может найти ошибки в распечатке 6-мегабайтной области памяти, не используя калькулятор шестнадцатиричной системы счисления.

Многие из настоящих программистов всего мира работают на правительство США, в основном в Министерстве Обороны. Так и должно быть. Однако, недавно на небосклоне настоящих программистов появилась черная туча. Кажется, что кто-то из высокопоставленных сосунков в Министерстве Обороны решил, что все оборонные программы должны быть написаны на некоем великом унифицированном языке ADA. Некоторое время казалось, что ADA была предназначена стать языком, который шел вразрез со всеми правилами настоящего программирования. Это язык со структурой, типами данных, строгим синтаксисом и точками с запятой. Короче, он был разработан для сдерживания творчества типичного настоящего программиста. К счастью, язык одобряемый Министерством Обороны, обладает достаточно интересными свойствами, которые делают его приемлемым — он невероятно сложен, включает в себя способы порчи операционной системы и перераспределения памяти, и Эдсгар Дейкстра (Edsger Dijkstra) не любит его. Дейкстре, как вы должны знать, автору краеугольной работы по методологии программирования "GOTO — считать вредными", аплодируют программисты на Паскале и подобные им сосунки. Да и потом, закоренелый настоящий программист может написать фортрановскую программу на любом языке.

Настоящий программист может пойти на компромисс со своими принципами и работать над вещами немного более тривиальными, чем распад жизни, при условии, что здесь достаточно платят. Например, существует несколько настоящих программистов, разрабатывающих видео-игры в Atari. Но они сами в игры не играют. Настоящий программист знает, как выиграть у машины, и в этом нет пряного удовольствия. Каждый работающий в LucasFilm является настоящим программистом, потому что нужно быть сумасшедшим, чтобы отвергнуть деньги 50-ти миллионов поклонников Звездных войн (Star Wars).

И, наконец, в верхнем левом ящике стола, под коробочкой Oreos, находится линейка-шаблон для вычерчивания блок-схем, оставленная предыдущим владельцем стола. Настоящие программисты пишут программы, а не документацию, которую они оставляют штату сопровождения.

radiobutton 18.04.2012 17:28

Ответ: История Мэла
 
Цитата:

Сообщение от ABTOMAT (Сообщение 225814)
Люто бешено подбулчиваю этого ффиндера! Время программиста слишком дорого обходится, чтобы вот так его использовать.

Да вы паскалевский сосунок мистер :)

ABTOMAT 18.04.2012 17:40

Ответ: История Мэла
 
Цитата:

Сообщение от radiobutton (Сообщение 225819)
Да вы паскалевский сосунок мистер :)

Нет, я читал вот это:

radiobutton 18.04.2012 17:43

Ответ: История Мэла
 
Скандальное интервью Бьерна Страуструпа.
http://scilib.narod.ru/_Games/stroustrup.htm

Gector 18.04.2012 17:58

Ответ: История Мэла
 
Содержание истории сводится к:

Так можно гордиться, что на счетах считать умеешь. Хорошо конечно, но ценность сомнительная.

ffinder 18.04.2012 20:14

Ответ: История Мэла
 
я застал еще 8 битный процессор и 48 килобайт памяти (такие дела)
суть такова, что на асме писать нужно еще аккуратнее и больше комментировать, иначе после 2-3 килобайт кода у тебя будет такая каша, что сам уже никогда не разберешся, что там к чему.
так что Мэл из рассказа - просто чудила на букву "м".

radiobutton 18.04.2012 20:17

Ответ: История Мэла
 
Цитата:

Сообщение от ffinder (Сообщение 225840)
я застал еще 8 битный процессор и 48 килобайт памяти (такие дела)
суть такова, что на асме писать нужно еще аккуратнее и больше комментировать, иначе после 2-3 килобайт кода у тебя будет такая каша, что сам уже никогда не разберешся, что там к чему.
так что Мэл из рассказа - просто чудила на букву "м".

Цитата:

настоящие программисты не нуждаются в комментариях: текст программы все объясняет.
.///

impersonalis 18.04.2012 21:13

Ответ: История Мэла
 
Цитата:

Сообщение от ffinder (Сообщение 225813)
мда... делать всё через жопу это так круто!
вместо восхищений (неуместных) нужно было бы признать, что код Мэла абсолютно, теоретически несопровождаемый. если его нужно каждый раз реверсить, чтобы что-то поменять.

Насколько я согласен с этим замечанием вот здесь, на столько несогласен здесь.
Человек пишет в байткоде под древнее железо. Я, почти уверен, что к большинству создаваемых им программ предъявлялось время выполнения как главный критерий.
Кстати про подобную оптимизацию цикла слышал от одного, довольно зрелого программиста (пик карьеры - эпоха перфокарт): именно так (емнип) они экономили число команд в тяжёлом многоитерационном цикле.
ИМХО, конечно - данных [требований, условий работы, сроках] недостаточно.
Цитата:

Сообщение от ffinder (Сообщение 225840)
я застал еще 8 битный процессор и 48 килобайт памяти (такие дела)
суть такова, что на асме писать нужно еще аккуратнее и больше комментировать, иначе после 2-3 килобайт кода у тебя будет такая каша, что сам уже никогда не разберешся, что там к чему.
так что Мэл из рассказа - просто чудила на букву "м".

Код без коментов - абсолютное зло. Согласен полностью.
А уж помню байткод пришлось сопровождать целым руководством, подробно "обсасывающим" каждую серию байт.

Итого - коменты обязательно (опустим как реализовано комментирование)! Скорость vs понятность - в таких условиях вопрос сложный. Может ещё goto запретить?

ffinder 18.04.2012 21:33

Ответ: История Мэла
 
Цитата:

Сообщение от radiobutton (Сообщение 225843)
.///

вот с инета выдрал кусок кода для спека:
LABEL LD HX,A LD B,TABLADR ADD A,A LD C,A LD A,(BC) LD D,A INC BC LD A,(BC) LD E,A
PUSH DE LD B,CHANKS CALL PUTLIN POP DE LD A,HX INC A CP HGT JR NZ,MOVCH2 RETкомментарии умышленно стер.
так вот, дорогие булочники, этот код в отрыве от контекста может делать ну почти всё что угодно. это вам не ЯВУ.

ABTOMAT 18.04.2012 21:41

Ответ: История Мэла
 
Цитата:

Сообщение от impersonalis (Сообщение 225855)
Человек пишет в байткоде под древнее железо. Я, почти уверен, что к большинству создаваемых им программ предъявлялось время выполнения как главный критерий.

Да вот думается мне что вряд ли это дало прирост в разы. Проценты и даже десяток процентов не стоят тех проблем.

Там написано, что у них уже был ассемблер, оптимизатор для него и т.д.
А ещё он подобные "канделябры" вытворял даже когда было не надо, например когда нужна была задержка между выводимыми символами. Поменяется тип носителя данных - прога по п*де пойдёт. Усовершенствуют они этот комп - ай маладца надо прогу снова переделывать!

В итоге:
- затрачено программисто-часов, как и денег компании, в разы больше чем необходимо (и да, я уверен, что в нужный момент не было рядом человека который бы сказал начальнику правду)
- незначительно поменялась железка - прогу надо переделывать заново
- что-то надо незначительно поменять - прогу надо переделывать заново
- программист не хочет делать что ему скажут - прогу надо переделывать заново (а может ради этого затевалось?)
- программист поменялся - прогу надо переделывать заново

Есть такое понятие как "ответственность". Безответственного человека (какой бы он гениальный ни был) в итоге послали нахрен - всё правильно сделали.

Я бы восторгся всем этим, если б он это делал у себя дома, для себя и на свои деньги, а не на работе за деньги компании.

А так - ради чего всё? Самоутвердиться? Приобрести влияние в компании за счёт того что в его индусском коде только он сам и может разобраться? Такое упорство достойно лучшего применения!

radiobutton 18.04.2012 21:47

Ответ: История Мэла
 
Вы просто не въехали в понятие настоящего програмиста.:)

Там даже у раздела в котором все эти статьи выложены разгадка указана.


ABTOMAT 18.04.2012 21:51

Ответ: История Мэла
 
Цитата:

Сообщение от radiobutton (Сообщение 225860)
Вы просто не въехали в понятие настоящего програмиста.:)

Ну это примерно как понятие настоящего мужыка: делай ерунду, но зато ты труЪ.

Taugeshtu 18.04.2012 21:53

Ответ: История Мэла
 
А мне кажется, что импэ троллит/проводит очередное исследование/пишет диссер.
Первый вброс (соседний тред, "головоломка") отклика у булошников не нашел, а тут прям как живо поцарапал никелированное покрытие на сердце мозге кусок текста!

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

Randomize 18.04.2012 22:26

Ответ: История Мэла
 
Цитата:

Сообщение от ffinder (Сообщение 225856)
вот с инета выдрал кусок кода для спека:
LABEL LD HX,A LD B,TABLADR ADD A,A LD C,A LD A,(BC) LD D,A INC BC LD A,(BC) LD E,A
PUSH DE LD B,CHANKS CALL PUTLIN POP DE LD A,HX INC A CP HGT JR NZ,MOVCH2 RET

Чёрт. Ты завалил мою запланированую работу на сегодня. Сижу изучаю

HolyDel 18.04.2012 22:46

Ответ: История Мэла
 
Мэл мужик. он не пошел на поводу у монетарной системы, и сделал как хотела его душа.

impersonalis 18.04.2012 22:54

Ответ: История Мэла
 
Вложений: 1
[самолюбование]А я.. а у меня.. а я тоже в байткодах писал:

Программа перемножения чисел
Ниже будет приведён дамп памяти программы перемножающих два положительных числа, заданных по адресам FFF и FFE. Результат будет находиться в регистре АС.

000 2FFF
001 7200
002 7020
003 3099
004 7800
005 1FFE
006 6099
007 4005
008 7001
099 0000
FFE 0003
FFF 0002

Простите за рукожопство и лень, но таблицу не реализовал средствами форума - привожу скриншот из мануала к коду (там ещё предшествующее описание, тестовые запуски и т.п.).

Вложение 16655[/самолюбование]
p.s.: АВТЭ, твой ход

ABTOMAT 18.04.2012 23:25

Ответ: История Мэла
 
Вложений: 2
Цитата:

Сообщение от impersonalis (Сообщение 225868)
p.s.: АВТЭ, твой ход

ну раз > p.s.: АВТЭ, твой ход
откопал в своём талмуде

Столбец "метка" использовался для меток. Чтобы можно было сличить с адресом.
В дальнейшем, если метка юзалась, например, в jnz, то искалась она выше и в код подставлялся её адрес.
(на данных листах нет к сожалению нигде меток, но, вроде, ясно пояснил)
Как дополнительное применение - в ту графу (т.к. места много) ставилась галочка, сигнализирующая о том, что команду внесли в память ЭВМ, т.к. из-за дребезга контактов* не всегда удавалось это сделать: кнопка ввода "нажималась" 2 раза вместо одного и "курсор" "перескакивал" на послеследующий байт в памяти. Т.к. функция "вернуться назад" была не предусмотрена, то ввод программы продолжался дальше, а рядом с невведённой командой не ставилась галка с тем, чтобы ввести её позже. Когда ввод программы был окончен, смотрели где нет галочек и записывали те байты снова по одному.
Справа - фото ЭВМ, на которой проводилась работа.

Кстати использование сей машины мне в университете очень понравилось. Сразу отпало много вопросов о работе программ в ЭВМ. Но одно дело - делать в универе, а другое - на работе.

*google it

ffinder 18.04.2012 23:40

Ответ: История Мэла
 
Цитата:

Сообщение от impersonalis (Сообщение 225855)
Кстати про подобную оптимизацию цикла слышал от одного, довольно зрелого программиста (пик карьеры - эпоха перфокарт): именно так (емнип) они экономили число команд в тяжёлом многоитерационном цикле.
ИМХО, конечно - данных [требований, условий работы, сроках] недостаточно.

короче эта оптимизация походу вечная:
на дискетах располагали данные со смещением на дорожках так, чтобы когда головка перейдет с одной дорожки на другую можно было сразу читать, а не ждать полного оборота диска.
в играх для PS2 тоже оптимизировали расположение данных на DVD так, чтобы более частые лежали ближе к центру диска.
НО! в обоих случаях это был слой системы: т.е. для остального кода работа с файловой системой была прозрачной.
а у Мэла это был просто говнокод.
т.е. если бы Мэл был нормальным таким мужиком, а не мудилой самовлюбленным, он бы написал транслятор из неоптимизированного кода в оптимальную раскладку на магнитном барабане и этим пользовались бы все программеры в конторе. но он хотел быть "единственным и неповторимым".

ffinder 18.04.2012 23:43

Ответ: История Мэла
 
Цитата:

Сообщение от ABTOMAT (Сообщение 225859)
Да вот думается мне что вряд ли это дало прирост в разы. Проценты и даже десяток процентов не стоят тех проблем.

автэ, да хоть бы даже и в разы.
правильный ход я описал в сообщении выше.
а иначе все будет как ты описал:
Цитата:

Сообщение от ABTOMAT (Сообщение 225859)
Поменяется тип носителя данных - прога по п*де пойдёт. Усовершенствуют они этот комп - ай маладца надо прогу снова переделывать!
- незначительно поменялась железка - прогу надо переделывать заново
- что-то надо незначительно поменять - прогу надо переделывать заново
- программист не хочет делать что ему скажут - прогу надо переделывать заново
- программист поменялся - прогу надо переделывать заново


impersonalis 18.04.2012 23:44

Ответ: История Мэла
 
Цитата:

он бы написал транслятор из неоптимизированного кода в оптимальную раскладку на магнитном барабане
согласен. И, с этого, в принципе, мог бы озолотится. Но он маньяк (в плане психического здоровья).

tormoz 19.04.2012 02:26

Ответ: История Мэла
 
Цитата:

Сообщение от ffinder (Сообщение 225856)
вот с инета выдрал кусок кода для спека:
LABEL LD HX,A LD B,TABLADR ADD A,A LD C,A LD A,(BC) LD D,A INC BC LD A,(BC) LD E,A
PUSH DE LD B,CHANKS CALL PUTLIN POP DE LD A,HX INC A CP HGT JR NZ,MOVCH2 RETкомментарии умышленно стер.
так вот, дорогие булочники, этот код в отрыве от контекста может делать ну почти всё что угодно. это вам не ЯВУ.

Где-то у меня валяется общая тетрадь битком набитая такой хренью. 40 листов - 3 кбайта
Писал на работе, параллельно троллил коллег и начальство (тогда компьютер был наравне с космическим кораблем - все слышали, но близко никто не видел)
Потом 20 часов без сна я ее вводил (хдд на синклере не было, выключать низзя), и недели 2 отлаживал.
А сколько радости, когда заработало ! Это вам не хеловорды на писюках...:-D
Это было игра "Го". Комп играл на крепкого середнячка.


Часовой пояс GMT +4, время: 11:11.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot