ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » прослеживание требований, кода и вклада » Считаю неправильной философию compiler.su


Считаю неправильной философию compiler.su

Сообщений 1 страница 2 из 2

1

Философию языка, я имею в виду, - http://compiler.su/filosofiya-yazyka.php

1) Лаконичность, простота и ясность языка. Простота является самостоятельной ценностью. Простота тесно связана с лаконичностью. Кто растекается мыслью по древу, тот теряет нить логики. "Короче, Склифоссофский!". Чем меньше исключений из правил, тем проще правила выполнять.
2) Двоичный исполняемый код, у которого больше преимуществ и меньше недостатков, чем у интерпретируемого кода. Это здорово – иметь исполняемый код, который сразу готовый к исполнению, которому не нужны интерпретаторы, фреймворки и виртуальные машины. Недостаток последних не только в том, что они медленнее. Но и в том, что их не нужно устанавливать только тогда, когда вы - Microsoft. Лучше один раз откомпилировать, чем сто раз интерпретировать. Где можно найти исполняемый код javascript и скопировать их на другой компьютер?
3) Компактность и скорость исполняемого кода. Меньшая требовательность к ресурсам расширяет спектр возможностей. Краткий двоичный код так же важен, как и краткий исходный код. Скорость и компактность кода - важные ценности. Сэкономленная электроэнергия спасает леса, животных, коралловые рифы и всю нашу планету.
Замечательно, что благодаря закону Мура мы удваиваем свои возможности каждые полтора года. Но нет причин приветствовать удвоение с той же регулярностью объема кода, необходимого для вывода "hello, world". Исполняемый код для вывода "hello, word", выданный Qt, примерно 210 раз больше, чем необходимо для вывода этой надписи. Такое разбухание кода заняло примерно 15 лет, так что закон Мура работает и для ПО.
4) Право на родной язык. Каждый человек должен иметь свободу выбора и право находиться в своей культурной среде. Даже на работе, даже программист. Компьютеру всё равно, что в нём хранится, какие биты и байты курсируют по его шинам данных, а человеку - нет.
5) Надёжность и безопасность. Язык должен помогать писать надёжные и безопасные программы. Найти ошибки во врем компиляции лучше, чем во время исполнения, и статическая типизация оказывает помощь в этом. Ваша программа - это сапёр, которой должен обезвредить мину, на которой стоит ваш ребёнок. «Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете». Полная отладка марсохода возможна только на Марсе. Если программист может легко прострелить свою ногу, то он может попасть и в другие важные органы, без которых невозможно увеличение числа программистов.
255 + 1 не равно 0, 65 535 + 1 не равно 0 и 4 294 967 295 + 1 не равно 0, но 0.1 * 6 равно 0.6. В отличие от C/C++ и многих других языков. Программы не должны молчать об ошибках, потому что их тогда не исправят.
6) Мультипарадигменность. Язык должен быть гибридным, включающим в себя наиболее оправдавшие себя средства императивного (включая ООП) и функционального программирования. Но язык - не новогодняя ёлка, чтобы иметь на себе все возможные украшения.

Неправильно там решительно всё. Даже не знаю, с чего начать комментировать (и надо ли вообще?)
1) лаконичность должна быть не у языка, а должна быть эффективность использования всей технологии. Брайнфак лаконичен - но помогает ли ему это?
2) JIT для кого придумали и WebAssembly. Как только зафиксировали код в какую-то структуру, можно считать его мёртвым (непригодным к адаптации к меняющимся условиям)
3) такая же ошибка как в п.1. Локальная оптимизация, которая может снизить общую эффективность. Всё хорошо в меру.
4) у нас проблемы с самой средой. "Вовремя предать - это не предать, а предвидеть" (q) фильм "Гараж"
5) не снижает ли придирчивость компилятора общую скорость разработки? Может здесь есть возможности по улучшению (путём создания системы подсказок и контекстного обучения программиста?)
6) просто модные пустые слова. У нас всё гибридное. Гибридное правительство ведет гибридные войны, гибридная политика с гибридными целями.

Отредактировано Лис (2017-04-07 23:37:46)

0

2

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

1) легко изучаемым
2) читабельным/понимабельным
3) детально продокументированным
4) обеспеченным механизмами (вроде автоматизированного редактора)
5) самоописывающимся, гибким, расширяемым (чтобы не застывал, а развивался, как русский язык. Добавить новую букву, новые слова, новые механизмы)
6) энергоэффективным в целом

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » прослеживание требований, кода и вклада » Считаю неправильной философию compiler.su