Oberon space

General Category => Общий раздел => Тема начата: valexey от Октябрь 13, 2011, 11:05:41 pm

Название: Чек-лист разработчика ЯП.
Отправлено: valexey от Октябрь 13, 2011, 11:05:41 pm
Так сказать разработчиком и изобретателям ЯП на заметку (а также реализаторам компиляторов на коленке):

Цитата: http://habrahabr.ru/blogs/compilers/130362/
Итак, Вы собираетесь создать новый:

[] функциональный,
[] императивный,
[] объектно-ориентированный,
[] процедурный,
[] стековый,
[] мультипарадигменный,
[] быстрый,
[] статически-типизированный,
[] динамически-типизированный,
[] чистый,
[] богатый,
[] не-искусственный,
[] наглядный,
[] простой для новичков,
[] простой даже для не-программистов,
[] абсолютно непостижимый язык программирования.

Не получится. И вот почему.

Вы, скорее всего, верите, что:
[] Синтаксис это то, что делает язык сложным
[] Сборка мусора бесплатна
[] Компьютеры имеют бесконечную память
[] Никому на самом деле не нужны:
[] параллельность,
[] интерактивность,
[] поддержка отладчика,
[] IDE,
[] ввод\вывод,
[] взаимодействие с кодом на других языках.

[] Весь мир общается в 7-битном ASCII
[] Масштабирование для больших проектов будет простым
[] Убедить программистов пользоваться новым языком будет просто
[] Убедить программистов пользоваться новой IDE будет просто
[] Все программисты любят шаблоны
[] Определив какое-то поведение как неопределенное Вам это не аукнется

К сожалению, в Вашем языке есть (нету):
[] нормальный синтаксис,
[] точка_с_запятой_в_конце_строки,
[] проблема табов\пробелов,
[] макросы,
[] неявное преобразование типов,
[] явное преобразование типов,
[] наследование,
[] goto,
[] исключения,
[] замыкания,
[] хвостовая рекурсия,
[] подпрограммы,
[] рефлексия,
[] подтипы,
[] множественное наследование,
[] перегрузка операторов,
[] алгебраические типы данных,
[] рекурсивные типы данных,
[] полиморфические типы данных,
[] монады,
[] зависимые типы данных,
[] префиксные\постфиксные операторы,
[] вложенные комментарии,
[] переносы строк,
[] регулярные выражения,
[] вызовы по имени,
[] вызовы по адресу.

И еще возникают такие вот философские препятствия:
[] Программистам не обязаны полностью понимать теорию относительности и квантовую механику чтобы написать на Вашем языке Hello, World!
[] У программистов не должен развиться туннельный синдром за время написания Hello, World! на Вашем языке
[] Пока что самая выдающаяся программа на Вашем языке это компилятор Вашего языка
[] Пока что на Вашем языке Вы не можете написать даже компилятор Вашего языка
[] А еще у Вас нет никаких спецификаций
[] Реализация вот спецификация
  • [] но реализация закрытая,
  • [] защищена патентами,
  • [] не принадлежит Вам

[] Ваша система типов дефектна
[] Некоторые конструкции Вашего языка, возможно, не могут быть трактованы однозначно
  • [] и есть конкретные примеры таких конструкций
  • [] и они валят Ваш компилятор

[] Название Вашего языка делает невозможным его поиск в Гугле
[] Ваш язык интерпретируемый, а значит никогда не будет столь быстрым как С
[] Ваш язык компилируемый, а значит никогда не будет гибким
[] Для компиляции Вашего языка требуется искусственный интеллект
[] Вы рассчитываете на оптимизации, которые, откровенно говоря, не способны реализовать
[] В мире меньше 100 программистов, достаточно умных, чтобы использовать Ваш язык
[] Задача ________________, которая у всех решается за полиномиальное время, на Вашем языке реализуется только за экспоненциальное
[] А задачу __________________ и вовсе реализовать нельзя

Кроме того, Ваша реализация имеет следующие недостатки:
[] CPU работает не так, как Вы думаете
[] RAM работает не так, как Вы думаете
[] VM работает не так, как Вы думаете
[] И компиляторы не работают так, как Вы думаете
[] Более того они даже в принципе никогда не смогли бы так работать
[] Конфликты сдвиг-свертка по ходу парсинга решаются методом rand()
[] Вам зачем-то понадобилось присутствие компилятора в рантайме
[] Вам зачем-то понадобился рантайм в компиляторе
[] Ошибки, выдаваемые Вашим компилятором, загадочны и непостижимы
[] Компилятор падает даже от брошенного на него косого взгляда
[] Вы не понимаете базовые принципы оптимизации
[] Вы не понимаете базовые принципы системного программирования
[] Вы не понимаете указатели
[] Вы не понимаете функции

[bt]И еще есть и некоторые маркетинговые проблемы:[/bt]
[] Вам нечего ответить на просьбу увеличить скорость работы
[] Вам нечего ответить на просьбу упростить язык
[] Вы в наглую сфальсифицировали бенчмарки
  • [] в компилятор были вшиты вычисленные заранее значения расчетов, симуляций или тестов
  • [] в тестах строковых операций Вы незаметно использовали Perl
  • [] в мат. тестах Вы незаметно использовали BLAS

[] Хотя это не помогло и никто всерьёз не поверил, что Ваш язык быстрее, чем
  • [] Ассемблер
  • [] С
  • [] Фортран
  • [] Java
  • [] Руби
  • [] Пролог

[] Вы бездоказательно отбросили классическую теорию разработки языков программирования
[] Вы бездоказательно отбросили основы системного программирования
[] Вы бездоказательно отбросили теорию алгоритмов
[] Да Вы вообще все компьютерные науки отбросили

Смотря на всё это в общем, следует заметить, что:
[] Ваш короткий пример на 2 десятка строк можно реализовать одной строкой в языке __________
[] Уже существует небезопасный императивный язык
[] Уже существует безопасный императивный язык
[] Уже существует функциональный язык
[] Вы переизобрели Lisp, только хуже
[] Вы переизобрели Javascript, только хуже
[] Вы переизобрели Java, только хуже
[] Вы переизобрели C++, только хуже
[] Вы переизобрели PHP, только хуже
[] Вы переизобрели PHP лучше, вот только никому ничего не докажете
[] Вы переизобрели Brainfuck, вот только в отличии от его авторов на полном серьёзе

Ну и вот что я о Вас думаю:

[] Вы молодец, у Вас есть кое-какие интересные идеи. Но это не взлетит.
[] Получился плохой язык и Вам должно быть стыдно за него.
[] Программирование на этом языке самое адекватное наказание Вам за его изобретение.
Название: Re: Чек-лист разработчика ЯП.
Отправлено: kemiisto от Октябрь 13, 2011, 11:08:21 pm
Толсто! ;D
Название: Re: Чек-лист разработчика ЯП.
Отправлено: Geniepro от Октябрь 14, 2011, 04:34:37 pm
ну и чо это за херня?
Название: Re: Чек-лист разработчика ЯП.
Отправлено: kemiisto от Октябрь 15, 2011, 05:14:45 pm
ну и чо это за херня?
Сдаётся мне, Geniepro пишет своя ЯП. :D
Название: Re: Чек-лист разработчика ЯП.
Отправлено: Geniepro от Октябрь 15, 2011, 09:06:20 pm
ну и чо это за херня?
Сдаётся мне, Geniepro пишет своя ЯП. :D
да нет, причём тут это?
просто непонятна цель написания подобных бесполезных списков. Например, что это за группа: "К сожалению, в Вашем языке есть (нету):"
Я бы понял бы, если бы там был список того, что хотелось бы видеть в новом языке автору этого списка, а так -- бесполезно...