LINUX.ORG.RU

История изменений

Исправление asaw, (текущая версия) :

Заметка же не про предел сложности, а про бюджет странности (или количество инноваций), очевидно ;) То есть про то, как добиться, чтобы люди, которые уже что-то знают, использовали этот новый язык:

getting people to use it is much, much harder. If your aim is to build a practical programming language with a large community, you need to be aware of how many new, interesting, exciting things that your language is doing, and carefully consider the number of such features you include.

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

Далее, что касается зоопарка исследовательских языков для языковедов, то я не против этого зоопарка. Мне не нравится зоопарк в мейнстриме, где, как правильно замечено в комменте

The current batch of mainstream programming languages are all clustered around a couple of very small local minima in the total design space. For example javascript, python, ruby, etc are all very similar, as are things like Java, C#, Go or C++, D, Ada, etc. Sure they make a few tweaks here and there, but if you squint they're quite similar.

Я не специалист по расту, но всё, что я о нем знаю, говорит о том, что он из этой же компании. Ибо главная его фишка —

A great example of bringing new research into the mainstream is actually Rust, it's one truly novel innovation (from a mainstream language perspective) is it's lifetime system.

— таки готовится быть реализованной в C++, как мы выяснили. Далее автор говорит, что C++ после этого всё равно останется небезопасным потому что там останутся небезопасные фичи. Собственно, данная тема как раз про это — как при наличии небезопасных фич писать на C++ безопасно. И для этого будут инструменты (возможно, в компиляторах). Ну и не забываем про основную фишку C++:

The First Amendment to the C++ Standard states: «The committee shall make no rule that prevents C++ programmers from shooting themselves in the foot.»

Последний вопрос — про общую сложность C++. На него сам Страуструп по-моему уже давно ответил в том смысле, что не обязательно знать всё про язык, чтобы писать хорошие программы в какой-то определенной предметной области. С другой стороны именно чтобы не усложнять сам язык большинство новых фишек стараются добавлять в стандартную библиотеку, а не в синтаксис. И только при крайней необходимости затрагивают синтаксис. Между последними тремя стандартами изменений в синтаксисе на самом деле было мало, тем не менее профит получился огромным как раз в основном за счет стандартной библиотеки.

Ну и последний момент — про многоликий C++. Я лично не вижу ничего плохого в том, что язык позволяет использовать его настолько по-разному, что это иногда выглядит как совершенно разные языки. Это по-моему лучше, чем зоопарк действительно разных языков в одном проекте.

Исходная версия asaw, :

Заметка же не про предел сложности, а про бюджет странности (или количество инноваций), очевидно ;) То есть про то, как добиться, чтобы люди, которые уже что-то знают, использовали этот новый язык:

getting people to use it is much, much harder. If your aim is to build a practical programming language with a large community, you need to be aware of how many new, interesting, exciting things that your language is doing, and carefully consider the number of such features you include.

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

Далее, что касается зоопарка исследовательских языков для языковедов, то я не против этого зоопарка. Мне не нравится зоопарк в мейнстриме, где, как правильно замечено в комменте

The current batch of mainstream programming languages are all clustered around a couple of very small local minima in the total design space. For example javascript, python, ruby, etc are all very similar, as are things like Java, C#, Go or C++, D, Ada, etc. Sure they make a few tweaks here and there, but if you squint they're quite similar.

Я не специалист по расту, но всё, что я о нем знаю, говорит о том, что он из этой же компании. Ибо главная его фишка —

A great example of bringing new research into the mainstream is actually Rust, it's one truly novel innovation (from a mainstream language perspective) is it's lifetime system.

— таки готовится быть реализованной в C++, как мы выяснили. Далее автор говорит, что C++ после этого всё равно останется небезопасным потому что там останутся небезопасные фичи. Собственно, данная тема как раз про это — как при наличии небезопасных фич писать на C++ безопасно. И для этого будут инструменты (возможно, в компиляторах). Ну и не забываем про основную фишку C++:

The First Amendment to the C++ Standard states: «The committee shall make no rule that prevents C++ programmers from shooting themselves in the foot.»

Последний вопрос — про общую сложность C++. На него сам Страуструп по-моему уже давно ответил в том смысле, что не обязательно знать всё про язык, чтобы писать хорошие программы в какой-то определенной предметной области. С другой стороны именно чтобы не усложнять сам язык большинство новых фишек стараются добавлять в стандартную библиотеку, а не в синтаксис. И только при крайней необходимости затрагивают синтаксис. Между последними тремя стандартами изменений в синтаксисе на самом деле было мало, тем не менее профит получился огромным как раз в основном за счет стандартной библиотеки.

Ну и последний момент — про многоликий C++. Я лично не вижу ничего плохого в том, что язык позволяет использовать его настолько по-разному, что это иногда выглядит как совершенно разные языки. Это по-моему лучше, чем зоопарк действительно разных языков в одном проекте.