igor писал(а):
2 sia:
Я мог бы поспорить с Вами по поводу WHILE и GOTO, но видя безрезультатные попытки своих более опытных коллег, решил зайти с другой стороны. Судя по Вашим сообщениям в этой ветке, я делаю осторожный вывод, что Вы новичок в программировании. Или, по крайней мере, не реализовали пока достаточно сложные проекты. Конечно, я могу ошибаться, но думаю, что в любом случае Вам интересно будет меня послушать. Ситуация может развиваться таким образом: ...
Igor, у меня не было желания спорить, я лишь высказал, какие средства хотел бы иметь в Обероне.
Мне "вежливо" дали понять, что я не математик, т.к. не умею вычислять инвариант, использовать
предикаты и доказывать сходимость. На что я ответил, что в общем случае этот аппарат не работает,
а в конкретном случае - когда доказывать нечего (из-за простоты) - это и не нужно...
Ранее я высказывал - что излишнее обрезание языка вредно, т.к. труднее становится говорить.
На что мне возразили, что можно без этого обойтись. Согласен что можно, но ... неудобно.
Например - предлагали убрать FOR, Loop, Repeat. Наверно и это не предел - можно пойти ещё дальше,
убрать - Return, Case, While, Do, If, Объекты, подрезать типы, выкинуть встроенные функции, присвоить - тоже убрать...
Язык станет ещё меньше, но и желающих его использать, боюсь, станет тоже меньше.
1. Вы начинаете разрабатывать по настоящему крупные и сложные программные проекты,
ничем не ограничивая полёт своей алгоритмической мысли.
--- Это какие, в какой области? Пример можно? (участвовал в небольших проектах до ~3-5 человеко-лет)
--- Ну почему же ничем? Ограничения во всём, постоянный поиск компромиса. Нехватка ресурсов - времени,
--- производительности бортового компьютера, памяти, толковой документации, нужных библиотек (компонент)...
2. Постепенно Вы сталкиваетесь с "кризисом жанра", который выражается в том, что новые ошибки появляются
быстрее, чем обнаруживаются и исправляются старые.
--- не совсем так. Я привык использовать в работе набор отлаженных компонент. Для новой задачи сначала
--- прописываю набор базовых функций, которые с небольшим запасом перекрывают потребности задачи.
--- Потом делаю минимальный вариант главного модуля, и начинаю работать с ним как с тестом. Ошибки бывают, но не так много
--- (чаще если базовые функции слабо проверены). Постепенно дорабатываю первоначальный вариант.
3. Вы пытаетесь найти выход из кризиса и "открываете" для себя структурное программирование.
--- Я имею некоторый опыт программирования, как на "неструктурных" языках, так и "структурных".
--- Последние раздражают чаще и сильнее, т.к. требуют больше приседаний и действий через pop
--- там, где даже в фортране делалось без усилий.
Вот тут СТОП. Путь, который я нарисовал, человечество уже давно прошло. Если каждый будет снова и снова
наступать на одни и те же грабли, то прогресс остановится. Хотелось бы Вам посоветовать поизучать ошибки
и достижения прошлых лет и учесть их когда будете выстраивать свои собственные
представления о грамотной алгоритмизации. И я искренне желаю Вам в этом успехов!
--- Спасибо за пожелания. Эээ, пояснили бы что вы имеете здесь в виду?
--- К счастью я не математик, и мне не нужно придумывать доказательства там, где они мне не нужны.
--- Моя сегодняшняя задача - это попытаться перевести небольшие (готовые) программы на Оберон с
--- Клиппера, Фокса, Делфи, ТурбоПаскаля, MS Access, причесать кучку SQL запросов (к Оракле).
--- Если что-то не получится - это меня сильно не расстроит. Просто поднадоел этот зверинец.
--- Основная деятельность - инфраструктура, поддержка, ~10 серверов, небольшая организация.
--- Попробовал ББ, сейчас более склоняюсь к XDS, т.к. лучше приспособлен для утилит, и есть версия
--- для Линукса, можно попытаться использовать вместо некоторых дебильных скриптов.
--- Начал делать свою тонкую прослойку 0 уровня, после прочтения от Назад к основам Дж.Спольски.
--- Это - работа с файлами, строки, логи, кодировки, даты, ... что использовал раньше и к чему привык.