Как стать автором
Обновить

Комментарии 124

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

Да, надо сказать бывшему коллеге - он классный специалист и придумал весьма элегантный способ добавить параллелизм в C (с поддержкой CPU и GPU) - но даже друзей/знакомых вооодушевить не получилось, не говоря уж о менеджменте. Теперь всё понятно )

У вашего коллеги создание компилятора только в планах. А здесь одной бородой не обойтись, работающий компилятор тоже как бы немного нужен.

В любом случае, коллеге -- успеха. Кто знает, на чём будут писать через 20 лет, может быть, и на C= тоже.

Интересно, откуда тогда взялись результаты замеров производительности по ссылке? ) Да, там используются обычные компиляторы для C и CUDA, но со своей прослойкой, которая парсит предложенный синтаксис и в рантайме обеспечивает дешёвое переключение контекстов. Так что скомпилировать код и запустить программу можно (нужные файлики тут), хотя полноценный компилятор может слегка улучшить производительность.

В любом случае, коллеге -- успеха

Последний раз на эту тему лет десять назад разговаривали. Вряд ли что-то продвинулось, тут только борода поможет )

Это напоминает язык Оккам. Проблема в том, что для эффективного исполнения программ в такой парадигме нужен транспьютер.

Да, коллега про Оккам в курсе и им вдохновлялся. Но замеры показывают, что скорость работы кода сравнима с OpenMP на CPU или CUDA на GPU, дополнительной abstraction penalty нет.

Ну OpenMP и CUDA – сами по себе не бог весть какие продвинутые инструменты параллельного программирования. Но при этом они вполне приемлемы, как абстракции.

OpenMP на HPCшных задачах показывает вполне нормальную производительность, альтернатив сходу не вижу - всяческие новомодные библиотеки с тасками/корутинами проигрывают из-за более общего планировщика. А насчёт CUDA - что вы предлагаете, чтобы выжать большую производительность из GPU от NVIDIA? Руками на ассемблере писать?

У меня на тестах получалось, что MPI обычно превосходит OpenMP, даже на одном узле.

Что касается CUDA, то тут надо определиться, чего мы хотим – выжать производительность из конкретного GPU или описать параллельный алгоритм универсальными средствами. Начали-то с языка программирования общего назначения. А если вы руками всё подобьёте под конкретную архитектуру и конкретный чип, тогда, конечно, всё в родной библиотеке будет работать неплохо.

MPI обычно превосходит OpenMP

Случаи разные бывают. OpenMP позволяет быстро написать неэффективный код, просто раскидав прагмы. В этом плане MPI лучше - простое переписывание под MPI заставляет хотя бы задуматься о комуникациях между ранками. Но если использовать и то и другое осознанно, понимая во что (в плане системных вызовов, пересылок данных по шинам и прочего) выливаются OpenMPшные прагмы, чаще выигрывает гибрид - OpenMP внутри NUMA ноды + MPI для использования нескольких нод.

Что касается CUDA

То речь шла о сравнении кода на C= с CUDA под капотом и оптимизированного вручную CUDA кода - насколько помню, разница была в долях процента (т.е. CUDA в данном случае использовалась для получения максимальной производительности в качестве baseline для сравнения, а не как пример хорошей парадигмы программирования).

Где же Typescript, Rust, Haskell в конце концов?!

А тут много чего не вошло: ассемблер, Tcl, bash и другие shell-подобные языки, Lua, Scala -- это только с чем лично приходилось работать.

И ещё больше того, с чем не приходилось :)

Вот вам бонусом, из невошедшего:

HTML vs JSON

HTML, Тим Бернерс-Ли (Timothy Berners-Lee)

Тим Бернерс-Ли (Timothy Berners-Lee)
Тим Бернерс-Ли (Timothy Berners-Lee)

JSON, Дуглас Крокфорд (Douglas Crockford)

Дуглас Крокфорд (Douglas Crockford)
Дуглас Крокфорд (Douglas Crockford)

или даже

TeX vs LaTeX, кто понимает, о чём я

TeX, Дональд Кнут (Donald Knuth)

Дональд Кнут (Donald Knuth)
Дональд Кнут (Donald Knuth)

LaTeX, Лесли Лэмпорт (Leslie Lamport)

Лесли Лэмпорт (Leslie Lamport)
Лесли Лэмпорт (Leslie Lamport)

Шикарные волосы дядька сохранил

Json строго говоря не язык никак. HTML ну пусть будет. LaTex взлетел, хотя Лэсли Лампорт делал вещи покруче, ИМХО: "Times, Clocks, and the Ordering of Events in Distributed Systems". На этой работе построена JMM.

а где смысл написания базовой инфы о языках ?
где связь между заголовком и содержанием длинющего поста ?
где рефакторинг слов, когда писать нужно коротко и еффективно доставляя информацию ?

автору -30% от статуса разработчика.

Кажется, очки тоже играют не последнюю роль в популярности языка

Один?

Да у него там целая комната вспомогательных тётечек!

Одна перепечатывает его код на перфокарты, другая вставляет перфокарты и диски в устройства, третья нажимает на кнопку запуска программы..

В таком сложном деле, как запуск программы, одному не справиться, тут целый отдел нужен!

Спасибо за видео, всего 50 лет прошло, а как будто другая вселенная..

Главный успех в том , что все «писатели языков » иностранцы (хотя есть одно исключение) ( еще один автомат Калашникова ни КПСС нам не нужен)

Это для вас они иностранцы, а для кого то соотечественники, т.ч. это все относительно.
А вот борода, она аболютна, либо она есть либо ее нет.
Хотя с друго стороны борода это f(t), т.ч. возмождны варианты.

Они точно не родились с бородой

Инфа сотка!

Небольшое добавление: хелловорлд на Коболе -- не на абы каком Коболе, а на Коболе под OS/360 (она же ОС ЕС), причём наряду с текстом программы оказался и текст задания на её трансляцию.

Ну а если без шуток, писать экономические программы под пакетную обработку (типа всяких там расчётов зарплат и распечатки длиннющих "простыней" всяких там платёжных ведомостей" было легко и просто. Хотя для привыкших к современным языкам выглядит, конечно, весьма странно :)

причём наряду с текстом программы оказался и текст задания на её трансляцию.

Насколько помню, там без этого никак - когда школьником на спецкурсе игрался на EC 1045 на Фортране, эти строчки ЯУЗ переписывали как магические заклинания.

Угу, OS/360 же рассчитана только на пакетную обработку, поэтому общаться с ней приходится на JCL. Ну, с помощью команды оператора START можно запустить каталогизированную процедуру, но сия процедура -- тот же JCL, вид сбоку. Хотя, в принципе, с их помощью можно было бы обеспечить возможность трансляции и запуска программы без "ручного" использования JCL.

По крайней мере игрушки (Калах, Хамурапи и т.п.) лежали в готовом скомпилированном виде (скорее всего, просто бинарник без ЯУЗ/JCL) и работали интерактивно (как и Примус, из которого их можно было легко запустить). Но я тогда сохранить свой бинарник и запустить второй раз без перекомпиляции не умел, а уж как из программы общаться с терминалом - вообще какая то фантастика. У нас в школьных задачках входные данные были в том же наборе данных, потом всё это отдавалось в обработку, на выходе только распечатка с принтера.

Сам Примус являлся заданием JCL.

Как уже отметили, сам Примус запускался через JCL как обычное задание. Из него что-либо запускалось либо, опять-таки, через JCL, либо в качестве его собственной подзадачи (потока, в современной терминологии). А вот просто взять и запустить скомпилированную программу и запустить как отдельную сущность без JCL (либо в виде полноценного задания, либо через каталогизированную процедуру) нельзя.

Да, понятно, что задание должно было существовать в любом случае. Примус случайно не делал сам нужные телодвижения через JCL чтобы запустить готовый бинарник?

Насколько знаю, нет.

Ok, возможно наборы данных с игрушками содержали внутри себя JCL, не заглядывал.

Чтобы породить себе подзадачу, Примусу JCL был не нужен, он мог это сделать просто макрокомандой вызова супервизора ОС ЕС (а вроде даже и на уровне языка PL/I можно было как-то управляться с оверлейными сегментами кода). Но эти подзадачи с точки зрения операционной системы в таком случае были просто частями Примуса.

Понял, возможно так и было (уже не помню, какими командами запускались свои задания и игрушки, в памяти только DVOL SKOLA).

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

А в ПЛ/1, подозреваю, можно было и просто породить подзадачу: скорей всего, там были подпрограммы-обёртки для основных макрокоманд супервизора.

Да, в PL/I можно было средствами языка вызвать процедуру как подзадачу (task).

А вроде и из внешних библиотек загрузочных модулей можно было подгружать оверлеи (аналог каталога с DLL).

Эм... наверное, тогда уже не оверлеи, а именно что загрузочные модули. (Оверлеи тоже могли быть, но они входят в состав одного модуля, а не являются отдельными независимыми модулями.)

Возможно. Я в основном в СВМ работал, тема с оверлеями от меня была далека.

Ожидание: выстебывание и шутки про особенности языков программирования.
Реальность: шуточная статья без шуток с восхвалением любимых языков и пренебрежение к нелюбимым.

Да - я вспомнил! Я действительно писал на Smalltalk и притом на OS/2 (кто то помнит такое ? )

Тут в комментариях люди OS/360 помнят, не то что OS/2 ...

Папа, а ты динозавров видел?

Динозавров -- нет. А вот времена, когда деревья были маленькими, а компьютеры -- большими...

Да, помню что для установки EC1066 в здании вынимали окна с частью стены, по другому занести не получалось. Но это было уже в начале 90х и даже не знаю, сколько она прожила до растаскивания микросхем на драгметаллы.

Я помню, что в 90е IBM активно пропагандировала Smalltalk, диск с VisualAge Smalltalk под OS/2 вроде можно было и бесплатно получить где то подписавшись.

У меня была в то время пачка ГМД штук 15 и я с них ставил Где брал уже не помню И это была супер среда ! А потом мне попался "Гради Буч" и там на smaltalk примеры Супер воспоминания - спасибо автору что "напомнил"

В принципе сейчас есть живые и общедоступные Squeak и Pharo, на которых можно поиграться со Smalltalk (а возможно и сделать что-то полезное).

Ceylon — Гевин Кинг
Ceylon — Гевин Кинг

Блин, где вы отрыли фотографию МакКарти без бороды? На каноничных фотографиях он с шикарной бородищей и шевелюрой.

Может, и мне язык изобрести? К зиме борода такая, что принимают за гибрид попа и деда мороза :)

Давно пора, чтобы борода зря не пропадала. Я бы даже поучаствовал (начинаю отращивать) :)

Что-то я не понял, а как же Брайан Керниган? Может быть, на фотографии именно он, а не Кен Томсон? Даже если на фотографии Кен Томсон, ... Брайан Керниган тоже бородатый дяденька.

Нет, на фото в статье именно Томпсон (оба раза).

Керниган примерно тех времён вот:

Брайан Керниган (Brian Wilson Kernighan)
Брайан Керниган (Brian Wilson Kernighan)

Тоже бородатый, да.

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

А вот хороший способ - взять програмисткие ресурсы, например Стэковерфлоу и Гитхаб, и посчитать там количество проектов/вопросов по языкам.

https://redmonk.com/sogrady/2024/09/12/language-rankings-6-24/

Ой, ну это же совсем другое дело! У вас же вообще совсем другие табы языки в списке!

А, нет, те же самые...

Э-э, не совсем. При таком способе подсчёта некоторые языки закономерно выпадают (фортран выбыл, а Си упал - научные и некоторые иные проекты не учитываются), зато на их месте появляются другие (свифт, например).

Когда язык Java приобрел популярность, одна небезызвестная компания обнаружила в нём “фатальный недостаток” (олды помнят).

Java был создан не ими.

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

Есть мнение что небезызвестная компания вполне себе активно пилила свой рантайм для Java и никого не трогала, и пилила бы его дальше пока Sun не развонялась, и после суда пришлось делать свое так чтобы было как Java, но не Java. План Sun удался как нельзя лучше - с тех пор виндовс десктоп разработчики про java вспоминают в последнюю очередь.

Там все немного хитрее было: Майкрософт пыталась своим рантаймом реализовать свою давнюю стратегию присваивания чужих решений (Embrace, extend and extinguish): сделать свою версию - добавить в нее несовместимые со стандартом расширения - заменить на свою версию. На второй стадии Sun и развонялась. В итоге оба, по большому счету, остались в состоянии хуже чем были

Стоит отметить, что Андерс Хейлсберг - создатель c#, так же является автором typescript. Система типов в тайпскрипте заставила тильтануть многих авторов современных яп, в том числе автора котлина

... а ещё -- Borland Pascal и Delphi !

Не только лишь все распарсят, что происходит, если выполнить команды, зашифрованные в никнейме автора, на каком-то то ли комьютере, то ли калькуляторе Древних Людей

RANDOMIZE USR 0

Ребут не?

Это 100% синклер бейсик, но только я не помню что произойдет при переходе на адрес 0.

Все так, происходила перезагрузка ) это команда процессору начать исполнение с адреса 0. Причем там можно было написать RANDOMIZE USR 16384 и оно пошло бы исполнять то, что написано прямо в экранном буфере, начиная с левого верхнего угла. Причем USR <address> можно было дать на вход не только RANDOMIZE, еще несколько было вариантов, которые приводили к тому же результату. Почему это надо было запроектировать именно так, я до сих пор и не понял, ну, сумрачный британский гений сэр Синклер так изобрел.

REM USR по моему вполне работал )

REM не работал , REM это комментарий и все что после не исполняется. RUN USR работал и был по сути более правильным.

Правильным был LET A=USR. А RUN USR технически вызывал программу в машинных кодах (USR), получал ответ — и запускал (RUN) программу на Бейсике со строки с полученным номером. Просто при USR 0 (или когда программа не собиралась возвращаться) второй шаг уже не имел значения. Но RANDOMIZE — это один байт, а LET A= — три. Неэкономно :)

сумрачный британский гений

Сумрачный польский гений скорее всего ;) Кмк это Bill Gilbert style, для озадачивания любопытного школоло

USR - пользовательская low level функция, которая что то возвращает. Можно использовать внутри выражения, можно с LIST, PRINT.. Просто по прямому назначению ее использовали чуть менее чем никто ;)

Многие программы так запускали свои блобы. В визуальный ноль в памяти был записан настоящий адрес с машинными инструкциями.

Ну что же генетика не дала мне шанса создать популярный ЯП, пойду чем нибудь другим позанимаюсь )

Можно накладную бороду прилепить, должно сработать!

Но создатель C# без бороды же. Или С# считается неудачным?

Автор его бессовестно записал в неудачные, пользуясь собственным служебным положением автора и личным опытом. А Хейлсбергу давно пора отрастить бороду, и не одну памятник поставить за один только Borland Pascal.

Ну, надо как-то разделять люди с бородой от просто небритых. Ведь, с одной стороны – борода, она и есть борода. Но с другой стороны, я себя брею примерно один раз в неделю. Ибо лень. Так с бородой я или без бороды? Ладно по понедельникам скорее всего без бороды, а по пятницам с бородой, но ведь есть же и среда!

Я так понимаю тут важно когда вы будете представлять новый язык. В вашем случае – лучше в пятницу. А в среду шансы на успех 50/50.

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

Но с бородой это, конечно, не сравнить -- Borland Pascal и QBasic тому подтверждение.

(я честно не знаю, что это!)

Прикольная регулярка, но с ошибкой во второй альтернативе, так что работает только первая:

$ perl -E 'say s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\+d))/$1,/gr for @ARGV;' 1 11 111 1111 11111 111111 1111111
1
11
111
1,111
11,111
111,111
1,111111
$ perl -E 'say s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/gr for @ARGV;' 1 11 111 1111 11111 111111 1111111
1
11
111
1,111
11,111
111,111
1,111,111

(?=\+d) должно быть (?=\d).

Подробный разбор:

use feature qw(say);

say                 # Like print, but adds "\n" (new line) at the end
  s/                # Substitution expression start
  (                 # Capturing group
    ^               # First alternative start, matches at the beginning
    [-+]?           # Optional leading + or -
    \d+?            # Matches as few digits as possible while allowing the following lookeahed to succeed
    (?=             # Positive lokeahed, zero-length assertion to ensure that the leading digits will be matched only if followed by sequences of 3 digits
      (?>           # Atomic group, discards all backtracking positions remembered by any token inside the group, non-capturing
        (?:\d{3})+  # Non-capturing group, matches one or more sequences of 3 digits, following the leading digits 
      )
      (?!\d)        # Negative lookeahed, zero-length assertion to ensure that the sequences of 3 digits aren't followed by a digit
    )
    |               # Alternate
    \G              # Second alternative, sticky anchor, ensures matching continues where the previous match ended
    \d{3}           # Matches 3 digits
    (?=\d)          # Positive lookeahed, ensures that those 3 digits are followed by a digit
  )
  /$1,/grx          # The matched portion is replaced by itself followed by comma
                    # Modifiers:
                    # g - greedy match (don't stop at the first match)
                    # r - return the substitution result instead of modifying the input string
                    # x - ignore whitespace and allow comments
    for @ARGV;      # Iterate over input arguments array performing the substitution and printing its result for each argument

# For 11111111111:
    # The first alternative matches '11' (since it is followed by 3 groups of 3 digits until the end (no digit) is reached)
    # This match is replaced with '11,'
    # Since the first alternative matches only at the start of the string, the second alternative is invoked
    # The second alternative matches the following '111'
    # This match is replaced with '111,' (so we have now '11,111,')
    # The second alternative matches the next 3 digits (thanks to \G starting where the previous match ended)
    # This match is replaced with '111,' (so we have now '11,111,111,')
    # The last 3 digits aren't matched:
    #   The 1st alternative doesn't apply since it's not the start of the string
    #   The 2nd alternative doesn't match since it requires 3 digits to be followed by a digit
    #   Since there's no match, the original value is not replaced, making the result - '11,111,111,111' - without ',' at the end


Спасибо вам, поправил.

Возможно, перепутаны причина и следствие. Это не язык популярен, потому что у главного инфлюенсера борода. Это у автора появляется борода, когда язык становится популярным: пользовательская база растет, а фич-реквестов и фидбэка становится так много, что у автора заканчивается время и, главное, мотивация, чтобы бриться (плюс известность и популярность автора тоже растут).

Разработчик успешного языка программирования с бородой отлаживает сборку мусора в своём языке.
Разработчик успешного языка программирования с бородой отлаживает сборку мусора в своём языке.

Вы до Котлина не дочитали?

Автор был без бороды, специально отрастил бороду для презентации языка, а потом сбрил обратно. В итоге автор гладко выбрит, а язык продолжает набирать популярность.

Тааак, а где же Rust? 🙄 Его нельзя было не звметить, тем более в последние годы...

Rust вот он

Грейдон Хор (Graydon Hoare)
Грейдон Хор (Graydon Hoare)

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

Думается, как в каждом хорошем законе, должны быть дополнения, следствия, расширения и леммы.

Совершенно точно нет.

Во-первых, прекрасных дам мы любим совсем не за это.

А во-вторых, тут нужно исследование на тему "сколько прекрасных языков программирования было создано авторами потому что в их жизни была прекрасная дама, и сколько не было создано или не доведено до конца из-за того, что прекрасной дамы рядом не было".

Если с другими видами творчества (стихи, музыка, живопись) это работает, то и с программированием должно тоже.

Статистических данных мало, поэтому вряд ли можно делать какие-то выводы. Ясное дело, что для женщин критерии должны быть другие (или нет). Но как это определить?

Почему не могут? Еще как могут, ведь бородатых женщин много, просто они почему то вместо ИТ идут в цирк.

А Андрей ведь даже без бороды, добавлю я

А к презентации-то отрастил!

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

Формально Pascal самый популярный язык в мире. Подозреваю что бывших программистов Pascal больше миллиарда.

Столько программистов (бывших и настоящих) в мире вообще есть? Если вы про школьников/студентов - то Паскаль был не всегда и не везде.

В книге середины 1980-х утверждается, что Паскаль один из самых популярных языков в мире

Скрытый текст

Один из, да. Вместе с Си, Фортраном и прочими. Вот вы сами в середине 80х на чём программировали?

На мольберте акварельными красками

В 80е Паскаль и Бейсик были как сейчас Питон.

В целом по миру может быть. В СССР насчёт популярности Паскаля до массового прихода PCшек (а это уже конец 80х) не уверен. Бейсик да, видел в разных ипостасях на разных машинках.

Ну, на СМках под ОС-РВ (RSX-11) Паскаль был.

Быть то он был, вопрос насколько широко использовался. Вот Turbo Pascal в начале 90х - да, был на слуху (хотя я сразу с Бейсика перешёл на Cшную сторону).

До Борланда Паскаль был широко распространён, но в основном в качестве учебного языка. Нормальную обработку строк, нормальную работу с файлами и модули придумали только в UCSD (диалект которого унаследовал Борланд), но UCSD сам по себе работал в виртуальной машине со специальной ОС, что по тем временам было очень накладно и непрактично.

А в качестве учебного языка в СССР я встречал Паскаль и на ЕС, и на СМ, и на ДВК, и на Правце-8.

А в 90-е годы уже рулил Turbo Pascal на PC.

Спасибо! Если был на Правеце, значит и на Агатах должен был заводиться, и то и другое даже в школах вроде было (хотя живьём в те годы не видел); в институтах могли учить и на СМ/ДВК.

Нас как раз в школе учили Паскалю на Правцах, в институте на ДВК и СМ.

На Агатах он мог бы завестись только на последней 9-й модели, которая вроде бы как была полностью совместима с Apple II.

Вроде как "ячейка 121" влияла только на видеорежимы и была критична для игрушек, Паскаль по идее мог и так завестись.

Там и с видеорежимами была своя специфика, и расширение ОЗУ до 64К было обязательно (штатно у Агата, вроде, было 48К ОЗУ и 12К ПЗУ, как у базового Apple II).

Изначально UCSD писался системонезависимо, под стандартную ширину экрана 80 колонок. Но так как на Apple II штатно было только 40 колонок, то там либо требовалась установка карты видеорасширения под 80 символов, либо специальной комбинацией (вроде, Ctrl-A) переключалось отображение правой и левой части экрана в 40 символах.

А в правой части экрана была правая половина строки меню в UCSD, без неё не обойтись.

Понял, думал только на графические режимы влияло, а там и 80 символов не было. Про память - пишут, что на Агат 7 было до 96k, но из них на основной плате было только 32, может в такой конфигурации и поставляли.

Там ещё всё зависело от того, как были организованы эти банки памяти. Программы рассчитывали дёргать за определённые адреса для переключения банков.

У Агата-7 очень гибко с памятью было. Минимальный объём -- 32 килобайта на материнской плате, но и на ней могло быть больше, и в разъёмы расширения ставились платы допОЗУ и псевдоПЗУ. У нас в школе было не меньше 64 Кбайт в сумме, но, кажется, больше -- но сейчас уже и не вспомню точно.

А вот видеорежимы -- да, с Эплом-2 совсем никак не совместимы до появления Агата-9.

Да, но Паскалю-то была нужна для работы конкретная схемотехника банков памяти Apple II.

Насчёт этого я не знаю, никогда не интересовался. Но в плане несовместимости слышал лишь про видеоадаптер -- так что, возможно, управление банками организовано одинаково.

Ну и, по большому счёту, наша Рапира -- это, по сути, Паскаль на русском, насколько помню. Её я видел, но не ковырял: первым у меня был Бейсик на Агате, вторым -- встроенный в него же ассемблер 6502, ну а третьим стала СМ-4 и затем СМ-1420 с Фортраном, Паскалем и ассемблером -- ну и пошло-поехало; после этого на агатах я вёл школьный кружок, сам ещё будучи школьником, но серьёзно на них ничего не делал: у меня ж был доступ к настоящей машине :)

Насколько я знаю, управление банками было разное. Просто вообще не так много программ для Apple II требовали дополнительную память в обязательном порядке. Навскидку вспоминаются Паскаль, Лого, ProDOS. Никогда не слышал, чтобы что-то из этого запускалось на Агате.

Рапира вроде поинтереснее была - читал, скажем, что одной из базовых фич были кортежи (нынче больше известны как tuples). Но живьём нигде не видел.

Алгоритмический язык - это Паскаль на кириллице.

Ada

Тот самый “язык ада” из анекдотов про программиста с книжкой.

Кто пишет?
Кто писал?..

PL/SQL = SQL + Ada

POKE 23755,0

Аж скулы свело...

Возмущенная общественность требует упомянуть Assembler ну хоть в каком то виде ))) всетаки вставки и сейчас встречаются в железячных историях )))

Воу, ну вы же сами знаете, почему?

Во-первых, это по сути не язык, а система команд (мы же не про макросы?).

Во-вторых их много разных и нет одного автора.

В-третьих, хоть в каком-то виде в комментариях упоминал, что он не вошёл в список.

А так, да, знаю, помню, даже преподавал его когда-то, TechHelp до сих пор где-то на дискетках должен быть.

Ходят слухи, что пока не напишешь свой идеальный язык программирования, придётся писать на чужом, со всеми его минусами и плюсами два раза в месяц на карту

JavaScript ломает эту схему (как и вообще любые другие законы логики и мироздания).

Создан за 10 дней. 10 лет вообще никак не развивался. Максимально ужасный язык, который утаскивает всё самое лучшее (и худшее) из других языков и оскверняет.

А теперь можно найти везде, даже в митохондриях.

Тем временем " умирающий" Дельфи опять на 10 место поднялся. Видимо борода Вирта в старости помогает.

Лет n-"дцать" уже умирает;

Язык становится популярным и нужным, когда он помогает решать задачи людей и бизнеса. Чаще всего это означает, что на этом языке должно быть написано как можно больше критически важного софта для бизнеса. Либо иметь какую-то другую (например, образовательную) ценность. А драйвер развития -- живое сообщество и развивающаяся экосистема, что в конечном счёте также означает, что язык будет так или иначе приносить пользу людям и бизнесу.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации