Какой самый старый, самый странный, противный или самый необычный язык, на котором вы когда-либо программировали?

Второе предложение в предыдущий посттретий ¶ должен сказать: «Условие внутри круглых скобок оператора затем будет реализовывать '*' как побитовый Оператор И и '-' как побитовый оператор исключающего ИЛИ в выражении, а средний номер оператора из трех, следующих за закрывающей скобкой, будет разветвляться, если выражение оценивается как ЛОЖЬ». Таким образом, выполнение оператора IF (HANDLE * 777777 - 6HDAVIDH) 701,702,701 приведет к переходу к оператору с номером 702, если содержимое принадлежащий одно слово переменной HANDLE был текст «DAVIDH».

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

Еще одним странным и необычным языком, который я написал, была программа канала данных, встроенная в ассемблерную программу DOS для IBM System/360 Model 30. Когда C-E-I-R Inc. была приобретена Control Data Corp. в 1969 году она заменила свои мейнфреймы IBM 7094 на суперкомпьютеры CDC 6600, поэтому она больше не могла запускать прикладные программы PERT/Time и PERT/Cost на базе AFSC 7094. Поэтому я последовал за своими клиентами в ITT Data Services в Парамусе, штат Нью-Джерси, где можно было запускать 7094 прикладных программы в режиме эмуляции на IBM System/360 Model 65.

Мой новый начальник, отвечавший за техническую поддержку, опрометчиво сообщил авиабазе ВМС Лейкхерст, что они смогут использовать язык управления заданиями OS/360 для ввода данных. без зазоров магнитные ленты, генерируемые стримером, подключенным к их миникомпьютеру DEC, для программ FORTRAN, работающих на модели 65. Когда выяснилось, что JCL не может этого сделать, мне поручили написать программу преобразования для работы на локальной модели 30 компании ITT. Я вспомнил, что программист C-E-I-R из Арлингтона, штат Вирджиния, написал программу для обработки лент ЭКГ без пауз на 7094, поэтому я поискал ее статью «Связь с ACM».

Причина, по которой Лейкхерст создавал ленты без зазоров, заключалась в том, что их телеметрическая система не имела достаточно большого буфера для хранения данных, в то время как миникомпьютер DEC записывал стандартный межблочный зазор в 1/2 дюйма. Их ленточный накопитель имел специальную функцию, позволяющую читать такие ленты, но ограниченная основная память миникомпьютера DEC исключала возможность проведения сложного инженерного анализа. Программист C-E-IR-R ответил, что нужно использовать два IBM программируемый каналы данных копировать ленты без зазоров на ленты с зазорами; это работало, если стример, читающий ленту без зазоров, работал существенно медленнее, чем стример, записывающий ленту с зазорами.

Поэтому я написал программу на ассемблере DOS/360, которая запускала простой программа канала данных это циклически происходило между командой, считывающей 10 КБ в один буфер памяти, и командой, считывающей 10 КБ в другой буфер памяти, сигнализируя программе DOS о завершении выполнения каждой команды. Затем программа на ассемблере записывала содержимое только что заполненного буфера на высокоскоростной ленточный накопитель, прежде чем канальная программа возвращалась обратно для пополнения буфера.

Lakehurst NAS создал тестовую ленту, которую моя программа смогла успешно запустить. Однако они обнаружили, что головка чтения и записи стримера, подключенного к их мини-компьютеру, была перекошена, и ITT пришлось бы перекосить головку на одном из своих стримеров 360/30, чтобы она соответствовала этому. ITT не хотела этого делать, поэтому моя программа конверсии так и не была запущена в производство.

Пролог и LISP, когда у меня был только опыт работы с BASIC, Pascal и ассемблером.

Вот ссылка на Википедию это лучшее объяснение моей программы канала данных, чем ссылка в первом предложении предпоследнего ¶ мой предыдущий пост. IIRC Я использовал цепочку команд, а не цепочку данных, для канала выбора; таким образом, моя канальная программа могла послать сигнал программе ассемблера S/360 о том, что буфер заполнен, и она могла начать запись.

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

P.S.: Вот статья о сообщениях ACM. Я упомянул в последнем предложении второго ¶ мой предыдущий пост.

Молодым людям, возможно, потребуется дополнительное объяснение этот предыдущий пост и этот предыдущий пост.

Промежуток между блоками был необходим, потому что высокоскоростные ленточные накопители до LTO не могли «остановиться на копейке». чтобы сделать их адресуемыми по секторам, как жесткие диски или твердотельные накопители. Второй ¶ в этом разделе статьи Википедии гласит: «Большой буфер памяти можно использовать для помещать данные в очередь», но телеметрический механизм военно-морской авиабазы ​​Лейкхерст, такой как «ЭКГ» (теперь сокращенно «ЭКГ» по немецкой терминологии) в статья «Связь» - не имела большого буфера памяти, поэтому стандартный 7-дорожечный межблочный зазор IBM в 3/4 дюйма не мог быть вставлен для очередь. У LNAS был мини-компьютер DEC/CDC с 12-битными словами, поэтому анализ был ограничен — именно поэтому они хотели читать свои ленты данных без пробелов, используя FORTRAN на S / 360 Model 65 ITT.

Канал данных IBM 7090/94 или System/360 представлял собой отдельный процессор. который работал параллельно с процессором. В разделе «История» этой статьи: «Для младших моделей System/360». 50 и ниже... каналы были реализованы в процессоре микрокод, а сам ЦП работал в одном из двух режимов: «Режим ЦП» или «Режим канала», причем режим канала «кража» циклов из режима ЦП». ИМХО, программирование каналов представляло собой язык, отличный от S/360. Ассемблер.

Я оставлю объяснение перекоса головки чтения-записи эксперту по звуку. Но если исправить это на LNAS, существующие ленты станут нечитаемыми.

Свинка. Это самый отвратительный мусор 1960-х годов, который до сих пор используется, хотя теперь он называется «М», потому что это, очевидно, менее некруто.

Среди его многочисленных замечательных свойств: глобальное устойчивое состояние. Никаких ключевых слов (все зависит от контекста, поэтому «IF IF=PRINT PRINT ‘HELLO’» может быть допустимым оператором.
Также вы можете сокращать слова, если они недвусмысленны, поэтому

I I=P P ‘HELLO’ будет действительным.

Некоторые утверждения сохраняются до конца строки.

Здесь написана серверная часть вашей системы медицинских записей, а может быть, и вашего банка.

Сейчас она продается как база данных с тонким слоем SQL и называется Intersystems Cache. Это неприлично дорого.

Что я выиграю?

(Самый противный, а не самый старый или странный)

Язык сценариев Spatial Analyzer. Короче говоря, Spatial Analyser для геодезистов — это то же самое, что AutoCAD для технических специалистов.

Его язык сценариев использует не строки символов, а последовательность блоков, которые вы обрабатываете в графическом интерфейсе, очень похожем на Windows 95. Единственная форма ветвления, которую он знает, — это переходы, используются ошибки кода, а не исключения, и сохраняется как запутанный двоичный файл (который представляет собой не скомпилированный код, а сериализованное представление блока). последовательность).

У нас был проект с этим приложением, и сначала мы хотели поместить в эти скрипты максимум бизнес-логики, но решили использовать его API для просто вызывайте соответствующие функции (предоставляя приложению данные, вычисления, связь с инструментами) и используйте ifs, while и fors из более разумного язык. Вызовы API по-прежнему болезненны: вызов процедуры с N аргументами и M результатами требует N+M+X LoC, где X в [1..10[.

Кстати, странно, как в такой нише бизнеса лицензионное программное обеспечение за 6000 евро может выглядеть таким дилетантским/застрявшим в 2004 году.

Я посещал занятия по программированию ПЛК, где мы использовали визуальную релейную логику, не зная, чья реализация. Это отстой. Также у меня был проект в LabView, который, как я слышал, стал лучше, но в то время работать с ним было очень отстойно.

Их объединяет визуальный интерфейс, поэтому набор кода кажется мне более выразительным.

Аджар сказал:
Я посещал занятия по программированию ПЛК, где мы использовали визуальную релейную логику, не зная, чья реализация. Это отстой. Также у меня был проект в LabView, который, как я слышал, стал лучше, но в то время работать с ним было очень отстойно.

Их объединяет визуальный интерфейс, поэтому набор кода кажется мне более выразительным.

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

Поэтому он поручил всей команде установить его, и когда я посмотрел на первый пример, который был более сложным, чем «Hello World», мой мозг заблокировался.

У каждого оператора был свой маленький пузырь или что-то в этом роде, но в основном представлении вы не могли видеть переменные, параметры или что-либо, названное в операторе. Чтобы увидеть подробности, нужно было нажать на пузырь. Одновременно можно было открыть только один пузырь, поэтому было практически невозможно проследить, на какие переменные какое утверждение повлияло. Вы хотели посмотреть, что происходит с переменной temp? Вам приходилось нажимать на каждый пузырь, смотреть на него, записывать или делать мысленные заметки, а затем индивидуально проверять каждый второй пузырь, потому что вы не могли видеть, какие утверждения какие переменные используют. Как температура стала равна 42? Вам нужно нажать на каждый пузырь с утверждениями по одному, чтобы узнать!

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

Не язык программирования, а язык разметки. Итак, Дэвид Паккард (сын Дэвида Паккарда) в 70-х годах разработал язык разметки под названием «бета-код», который использовался для кодирования греческих папирусов и других текстов. Он задолго до таких концепций, как Unicode и даже SGML/XML/HTML. Он кодировал как глифы символов, так и некоторые аспекты макета, если макет был уместен. Я работал с бета-кодом в период перехода к разметке, производной от SGML (HTML только появился на рынке). сцена) и первые дни юникода, когда включение исторических текстов все еще оценивалось. Бета-код не был ужасен, но явно устарел. ЧАСдолжен, я также работал с некоторыми остатками его предшественника Alpha-кода, который представлял собой абсолютное чудовище из плохо продуманных вариантов, поскольку у нас были некоторые кодировки, которые не очень хорошо переводится в бета-код, и они уже десять лет возились и менялись, и в какой-то момент вам просто нужно сорвать этот пластырь и разобраться с решение. Было около дюжины людей, имевших опыт работы с этим, и большинство из них пытались оставить эти знания позади. К счастью, в моем распоряжении было несколько из них, включая несколько вопросов Дэвиду Паккарду и Я присоединился к этому очень короткому списку людей, которые имели некоторое представление об этом, и был самым молодым, поэтому Вероятно, в какой-то момент я стану последним выжившим человеком, обладающим этими знаниями..

Кроме того, это был мой единственный опыт работы с настоящей катушечной системой 70-х годов, поскольку один из хранящихся съемных жестких дисков был нечитаемым, и нам пришлось искать ленту и переносить ее снова. Возможно, на этом этапе было бы быстрее повторно получить оригинал из того музея, в котором он хранился, и перекодировать его, но этот процесс доставил нам немного удовольствия.

Самым старым языком был Фортран IV. Единственный раз я тоже использовал перфокарты. Я достаточно взрослый, чтобы проникнуть в некоторые из этих старых технологий, которые уже явно устарели, но все еще использовались в нескольких местах. По современным меркам Фортран IV был довольно противным, но в то время он просто раздражал.

Редактировать: не уверен, сколько людей вокруг этого изученного логотипа. И я выучил ассемблер TI TMS9900, еще одну вещь, с которой я, возможно, окажусь последним выжившим человеком. знания, которые я узнал, когда учился в средней школе, и я не уверен, что TI отправила их так много, чтобы начать с.

Ах да, моя мама работала у Ванги в 70-х, и я немного выучил COBOL на одном из их миникомпьютеров, когда периодически застревал в ее офисе. Одному Богу известно, что это была за модель компьютера и какую часть информации я на самом деле изучил.

Моей первой работой была поддержка и разработка приложения с использованием VAX Basic и SQL-вызовов к базе данных Oracle. Оборонный подрядчик ВМФ в Новом Орлеане, 90-е годы.

Были ли сделаны SQL-вызовы из ВАКС БЕЙСИК? Если так, то эй.

Я все еще пишу в нем код.

LINC, удачи в поиске реальной помощи. Если вы хотите его найти, обязательно включите слово UNISYS в строку поиска.

Также переписываю некоторый код COBOL и код XGEN.

Вот пример кода LINC.

SD; INV-TOTAL LE; 10 ED; + DE; 2. DETERMINE; EVERY INVOICE (CUSTOMER INVOICE-NO) ADD; EVENT.AMOUNT INV-TOTAL. END; DW; GLB.STATUS = (*****) MESSAGE; ERROR (This Customer has not used this Invoice Number) END.EXIT;

Вот соответствующие разделы статьи Википедии о ЛИНК. В подразделе «История» говорится, что изначально он был разработан для компьютеров Burroughs, но я знаю, что Burroughs позже объединилась с Unisys.

В этом разделе говорится, что LINC был разработан примерно через 8 лет после моего двухлетнего пребывания в программировании компьютеров Burroughs в Ebasco Services. Я использовал исключительно версии COBOL от Burroughs, и мое собственное приложение из пяти программ было разработано на основе иерархической реализации — с использованием «обновление с тремя лентами»— того, что бы позже называться электронной таблицей. Моим первым набором данных в 1970 году был график инженерных интеграционных чертежей для Фукусима I, а позже II — электростанция. (WP намеки Инженеры Ebasco отказались от размещения компонентов WRT на этих заводах; это было продиктовано Tokyo Electric Power Co..)

Средняя школа: FORTRAN IV работает на OS/360 MFT в версиях 360/44. Странно, как некоторые детали совпадают.
Колледж: IBM 360 Assembler и APL на 360-50; РПГ II на System/3; Перфоратор для карт IBM 029; PL/I и JCL на 360–44; APL на DOS/360 (360-40). У 360/44 было два раздела памяти по 128 КБ. Большинство программных проектов выполнялись в любом из них. Мы ненавидели, когда классы статистики выполняли задания SPSS, потому что для их выполнения требовалось 256 КБ, блокируя все остальные.
Работа, примерно по порядку: FORTRAN, PDP-8 Assembler (далее Asm), DIBOL-8, PDP-11 Asm, DIBOL-11, TECO (если вы DEC, то TECO), 6800 Asm, 6502 Asm, Z-80 Asm, BASIC на 6800 с интерфейсом Asm для лабораторного оборудования, BASIC на различных других микросхемах, база данных Revelation (выбрать клон ОС), C, дБаза II. Не уверен, следует ли мне считать конфигурацию брандмауэра или Windows Server AD, обе из которых я бы сравнил с RPG.
Где-то попутно играл со SNOBOL, немного с LISP, Pascal, LOGO, HTML, Asm для микроконтроллеров (естественно) и, наверное, с некоторыми другими, которые мне удалось забыть.

Самым странным должен быть APL. Мы только что немного позанимались на одном уроке в колледже, но к черту этот шум. Нам пришлось делать все это на бумаге, потому что ни на одной из наших машин не было ни набора шрифтов, ни компилятора.

Мне тоже нужно выкинуть туда Haskell. Я вроде как освоился за то короткое время, что работал с ним.

Я большую часть времени на Rust, но заимствования, бокс и т.д. все еще довольно чужд для меня, хотя я нашел объяснение подобных вещей для людей, имеющих опыт работы с C/C++, что очень помогло.

Итак, самым старым, вероятно, будет Лисп (хотя, честно говоря, я в основном работал с новыми диалектами, которые еще не что старый). Самым странным, безусловно, является Пролог, где вместо того, чтобы пытаться сказать компьютеру, что делать, вы говорите ему, что сделать правдой, и он сам понимает, как это сделать. И самым проклятым, пожалуй, является Perl/Mason.

LabView — это язык, который я использовал и который мне нравился меньше всего. Частично потому, что кодовая база, с которой я столкнулся, включала «виртуальные инструменты» (labview для «модуля»), которые требовали три монитора, чтобы полностью поместиться на экране одновременно, и будет ли ИТ-специалист или мой PI платить за такое количество экранов для скромного доктора философии? студент?

Я ненадолго исчез в кроличьей норе Perl где-то в 2002 году. Написал большую ужасную программу для извлечения данных из файлов журналов Backup Exec (из-за полного отсутствия отчетов, по крайней мере, в той версии, которую мы купили) без сомнения, существовало элитное издание для суперпредприятий, которое давало вам что-то ужасное, например Crystal Reports), и у вас была причина вернуться к нему примерно через год. Не чертов Скуби-Ду. С таким же успехом я мог бы открыть zip-файл в Блокноте.

Командир Джеймсон сказал:

Я ненадолго исчез в кроличьей норе Perl где-то в 2002 году. Написал большую ужасную программу для извлечения данных из файлов журналов Backup Exec (из-за полного отсутствия отчетов, по крайней мере, в той версии, которую мы купили) без сомнения, существовало элитное издание для суперпредприятий, которое давало вам что-то ужасное, например Crystal Reports), и у вас была причина вернуться к нему примерно через год. Не чертов Скуби-Ду. С таким же успехом я мог бы открыть zip-файл в Блокноте.

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

Он был написан на Perl.

Я скажу следующее: это был самый читаемый и удобный в сопровождении Perl, который я когда-либо видел. Хотя это все равно, что утверждать, что это был «самый высокий муравей», он был достаточно читаемым, чтобы мы могли изменить его в соответствии с нашими потребностями.

Этот опыт оставил во мне пожизненное отвращение к языку. Больше никогда.

Самым старым и странным, что я писал, был язык полуассемблера, используемый в Apple ][ и Commodore VIC-20. Это включало обильное использование операторов PEEK и POKE внутри BASIC для чтения и записи необработанных данных из/в память. Я почти уверен, что была третья команда, которую я не помню, которая использовалась для выполнения языка ассемблера. программу, которую я записал в память с помощью операторов POKE, но не могу вспомнить, что это было на Яблоко ][.

Последнее сообщение в блоге

Учетные записи Google без пароля проще и безопаснее, чем пароли. Вот почему.
September 25, 2023

БаСП сказал: Разговор о просмотре. «Где-то безопасно» означает «где-то, куда только я могу попасть после аутентификации». Это все равно, что сказат...

Учетные записи Google без пароля проще и безопаснее, чем пароли. Вот почему.
September 25, 2023

БаСП сказал: Разговор о просмотре. «Где-то безопасно» означает «где-то, куда только я могу попасть после аутентификации». Это все равно, что сказат...

Раскрыта внутренняя работа «Predator», вредоносного ПО для Android, которое использовало 5 0-days
October 06, 2023

LuDux сказал: Так почему же мы не привлекли к ответственности создателей этого? Нажмите, чтобы развернуть...Извините, но я не думаю, что в статье и...