Pull to refresh

Comments 10

Кобол, АПЛ и Лисп.
10 лет назад десктопные приложения писали на Си.
Питон и перл — инди-языки.
Sun(!) и Майкрософт сражаются за байт-код.

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

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

Статья понравилась, также нравится идея одноразовых программ и предоставления максимальных возможностей для программиста. Вообще тема с новым языком меня очень интересует, удалось придумать ЯП в котором есть только один тип данных, одна общая операция над ним и практически никаких ограничений по синтаксису и семантике. Фактически удалось избавиться от необходимости резервировать ключевые слова для самого языка… Осталось придумать как с этим выйти в мир)

Уж не лисп ли вы переизобрели?

Нет, лисп люблю, но то что я придумал не похоже на класическое программирование. Любая абстракция создается с нуля и не имеет ограничений по использованию символов, которые его формируют (т.е. программу можно писать используя любые символы юникода, хоть символы псевдографики, хоть иероглифы, без разницы), в лиспе же есть 6-ть зарезервированных символов: пробел, точка, открывающая и закрывающая круглые скобки, апостроф и двойная кавычка. Также из коробки у лиспа есть типы дынных и операции над ними, стандартные функции и т.п. В моем случае ничего нет, любые образы (абстракции) нужно создавать, учить программу как их понимать и как с ними работать. Этакий сферический конь в вакууме) Это если совсем совсем кратко объяснять…
Быть может, вы изобрели форт?

Статью напишите, что ли.

Спасибо за комментарий! почитал по диагонали в вики про форт. «все определения разделяются пробелами» + символы конца строки — у меня не зарезервированных заранее символов и последовательностей.
《Математические выражения представляются постфиксной записью при использовании стековой нотации.》 — для моего языка это всего лишь один из способов выражения мысли, по сути частный случай, коих можно не мало реализовать, даже в рамках одной программы. Далее 《Структура «типичной» статьи словаря Форта:》 у меня нет никаких типичных структур, и тем более более общих понятий типа: статья, словарь, коды целового процессора, параметры, интерпретатор ссылок, стек возвратов, и тп. и тд. Сегменты кода недоступные для изменения — в моих программах можно переписать все до последнего символа программы во время выполнения (теоретически, не писал пока таких программ). Глубоко не вникал, но в примерах видел if else, сразу мимо. В моем языке такие конструкции выводятся с 0ля.
Немного поясню про 《мой язык》. Классическая тема: вход -> черный ящик -> выход. На входе строка, сформированная по определенным правилам, представляющая из себя последовательность комманд (《вопрос/ответ》), или просто 《вопрос》 или несколько, без ограничений на используемые символы, главное чтобы программист сам понимал что пишет. На выходе тоже строка, того же формата. Черный ящик — это память и 《ядро》, обрабатывающее данные в памяти. Изначально ящик полность пуст. 《Ядро》 это общий закон существования данных в памяти (а коробка по сути это размеченная на блоки память)- разбирает входную строку на комманды и последовательно их выполняет… Пожалуй пока достаточно. Если интересно, единственная программа которую я написал на текущий момент — машина Тьюринга, думаю не нужно объяснять почему. Статью писать пока не планирую, понятия не имею что это может привнести в мою скромную жизнь. Алоха!

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

Мда.. Статью предлагал написать, но выпал в осадок от одного комментария. Лучше бы написал что 1. Ничего не понял, чушь какая-то 2. Кое что понял, но не верю в существование подобного. 3. Свой вариант

Вижу перевод статьи Пола Грэма, ставлю плюс.

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

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

Еще чуть соображений по пунктам:

«4. Краткость — сестра таланта»

Меня МНОГОСЛОВНОСТЬ Джавы просто удручает. И не только меня: в попытках уменьшить ее синтаксическую шумность родился Lombok, да и Котлин, думаю, рождался с этой целью (одной из).

«2. Скорость приходит от профайлеров»

Мне не так уж часто приходилось сталкиваться с преждевременными оптимизациями, настоящей целью которых было выпендриться на code review, но и того, что видел, хватило, чтобы осознать — и действительно, ускоряют там, где и так не тормозит, чаще чем хотелось бы.

«3. Вам нужно приложение, которое заставляет ваш язык развиваться»

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

«Думаю, что эффективность будет иметь значение, по крайней мере в узких местах вычислений. Особенно важным это будет для операций ввода-вывода, потому что серверные приложения производят множество таких операций.»

Теперь мы видим nodejs, golang, Kotlin и еще не готовый Loom — а все это делалось для «эффективности для операций ввода-вывода», в том числе.

«У вас есть браузер на телефоне?»

Сейчас почти каждый может сказать, что да, браузер на телефоне есть.

«Я думаю, что люди в больших компаниях любят ООП, отчасти, потому что оно даёт многое из того, что выглядит как работа. То, что, естественно, может быть представлено как, скажем, список целых чисел, теперь может быть представлено как класс со всеми видами строительных лесов, с шумом и суетой.»

И еще с тестами.
Sign up to leave a comment.

Articles