Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Илья Ермаков

Страницы: 1 2 [3] 4 5 ... 12
31
Вместо этого надо делать так, как это делается в наших уютненьких телекомах: пользоваться стандартными протоколами и реализовывать их. Телекомы то давным давно истинно компонентны, а не так как на десктопах, написал компонент, высунул соску со одним из стандартных протоколов и всё.

Я про то и говорю.

Если говорить о стандарте для предметно-ориентированного ПО, то как раз и нужно нечто ББ-шных составных документов и сторов.
Альтернативы не видно. ББ в качестве первого хорошего приближения подходит. Дальше можно разработать что-то менее продукто-завязанное. Но тут нужно раскрепостить мысль в плане простых, скромных решений - в этом ББ как раз должен помочь. Иначе ИТ-шниками будет опять такая хреновина нагромождена... как с XML, что пользоваться нормальному прикладнику будет ад кромешный.

32
По полному имени обращаемся к внешнему идентификатору. Внутри модуля его имя неизвестно. Его самого ещё как бы нет. Даже технически - модуль только компилируется, откуда ему быть.

Ваша логика тоже понятна, и не менее логична, чем моя :)
Но к чему огород городить (в случае, если полная квалификация в языке обязательна). Тупее - так, как есть в Обероне. Тупее = меньше мест для каких-то потенциальных проблем.

33
Значит в Оберонах существенная проблема. В паскалях традиционно можно обращаться ко всем идентификаторам модуля точно так же, как и к идентификаторам других модулей. Чем это вас смущает?

В Борланд-Паскалях. В Аде - нет (насколько помню).

И это правильно, т.к. общий механизм "прорыва через перекрытие" сделать всё равно нельзя. Если у Вас процедура второго уровня, как Вы доберётесь до перекрытой переменной в объемлющей процедуре?

34
Ещё важнейший фактор - интегрируемость таких предметных решений.
Мне так обидно всегда смотреть на какие-то такие custom-приложения на той же Дельфе, где авторы делают в итоге и графики, и какие-то документы, и проч., и всё это в итоге оказывается сизифовым трудом, потому что сделано в 101-й раз и никогда не заиграет вместе с программкой, написанной на соседней кафедре.

Люди обычно хотят расширять любую предметную программу до некоего каркаса составных документов, это естественно - нужно отображать и работать интегрированно с информацией. И расширяют, раз за разом, но получается в итоге "в корзину".
Массовые системы программирования вообще даже нормального составного текста не предоставляют, 21 век на дворе. Какие-нибудь RTF-Edit-ы или HTML-компоненты... бррр. кошмар.

35
Кстати, что рекламировать то? :-) Инструменты никому не нужны, народу нужно решение каких-то их проблем. Итак, вопрос, какие проблемы решит оберон лучше тем то что имеется у людей сейчас? (да, и какой именно оберон?)

В первую очередь, в обсуждаемой области нужно массовое распространение программистской грамотности. Поддержанное каким-то инструментом. В котором можно и пользовательского плана прикладной пакет собрать, и когда люди освоятся, дать возможность что-то подкручивать алгоритмически, а самых смелых (магистров да аспирантов) вообще научить программировать нормально. И т.п.

Варианты? Какой инструмент эффективно и безопасно можно дать в руки? Чтоб практично и в то же время надёжно, как "корсет"? Как могут писать предметники, если не ограничивать их фантазию, хорошо известно. Им ведь некогда, так и тянет какую-нибудь фичу использовать волшебную сиюминутную.

36
Илья, можете привести примеры каких-нибудь программ, которые требуются машиностроителям?

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

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

Богатство реальных задач, как всегда, превышает богатство фантазии авторов стандартных пакетов и либов. Требуется нормальное программирование.

37
Вообще говоря да (перспектива менеджмента кучи мелких модулей раздражает, по крайней мере, в текущей реализации ББ), но для образовательных целей такой стиль самое то ...
в отличие от Хацкельного.

Зато этот мелкий модуль один раз реализован - и эксплуатируется, без изменений. Возникли вариации - делается другой, новый. Исходный код "твёрдый", "отлитый".

38
В общем, резюмируя, язык вынуждает проектировать культурно, т.е. следовать принципу "Разделяй и управляй".

39
Нужен рост реального сектора вообще. А от него обычно идут реальные, серьёзные запросы.
У нас профессура с машиностроительных кафедр посматривает на программёрский "Институт информационных технологий"  весьма скептично, потому что те вообще не готовы решать их задачи (тот самый синдром "компьютерных гениев").
(Тут надо пояснить, что я сам не работаю в ИТ-шном подразделении, я как бы полностью сбоку, в Технологическом институте, с СПО-шниками, сам себе хозяин, и работаю как раз бок о бок с машиностроительными кафедрами; вижу эту ситуацию сбоку очень отчётливо).

Предметно-ориентированное ПО для реального сектора - вполне себе killer-ниша для Оберонов.

40
Какая вьюшка или фигнюшка - я говорю про простые задачи - понятные школьникам  напр. есть точка (на плоскости) из 1 координатной четверти, есть точка из 3 -найти рассояние между ними... самый надежный способ определить два типа и функцию возвращающую расстояние.- здесь нет никакого полиморфизма или наследования... работаем только с переменными пользовательских типов. И уж коль скоро мы говорим о них (пременных пользовательских типов ) - почему бы не сделать их полноценными (коль скоро постулируем СТРОГУЮ ТИПИЗАЦИЮ). Да и еще я говорил про простой СОВРЕМЕННЫЙ ЯВУ..все -таки кое какой багаж за последние 40 лет накоплен...

Понятно. Хороший пример.
И чего Вам не хватает в просто RECORD-е для него? Тут действительно нет никакого ООП.
Процедуры, RECORD-ы.

Можно придумывать всякую лабуду, чтобы "оно себя вело надёжнее и как встроенное". Но будет ли это проще?
Я, например, не стал бы считать простой какую-то внешне простую "вкусность", про которую я не могу на пальцах и с парой рисунков на доске объяснить, как она работает (во что отображается в памяти, в какие действия машины и т.п.). Простое - это прозрачное в поведении.
С одной стороны, идея независимости абстракций от реализации - правильная идея. Но на самом деле эта независимость должна быть "как-бы-независимостью". Т.е. абстракции надо придумывать так, чтобы определены они были без связи с реализацией; но вот хорошее объяснение и изучение всегда должно показывать, а как это внутри устроено. Нельзя использовать то, об устройстве чего нет представления (во что и как это ниже отображается, примерно).

41
Если экспортируется только ABSTRACT-тип, то там всё сверху модуля.

В среде нажать Ctrl-D, чтобы увидеть спецификацию, не проблема. (А не раз говорилось, что Обероны без среды теряют очень многое).

По поводу первичности спецификации - я с Вами соглашусь, рассуждая эдак "вообще". Но в конкретно своей практике, по причине того же переноса акцента на ABTSRACT-типы и т.п., я имею подтверждение того, что спецификации на модули не востребованы. Они востребованы, безусловно, когда могло быть несколько реализаций одного модуля. Сейчас (в компонентном ООП) так не делается.

42
Вопли про подсветку непонятны. В Блэкбоксе экспортированные элементы выделяются жирностью, естественно. В чём проблема.
Проблема как раз у Веселовского на плоском тексте.

43
И это Вы называете простым ЯП и проталкиваете его  для начинающих ? - мля... да и только.

А Вы считаете что ООП имеет отношение к начинающим? (утрирую)
К начинающим имеет отношение использование объектов, это проходит на ура.

Как вводить понятия ООП - вопрос вообще открытый. У меня есть хорошая безболезненная последовательность, поддержанная примерами, но только в этом году она сложилась. Дело начинается с объявления типов, расширяющих некоторые стандартные (сначала расширение Services.Action, для создания асинхронных действий; потом расширение Views.View), такие типы вообще не экспортируются. Потом в какой-то момент, имея уже графический объект (игра "Сапёр"), отделяем от вьюшки модель - и вот тут-то впервые создаём свой тип. И ABSTRACT появляется тоже естественно (тем более, что до этого мы занимались тем, что такие ABSTRACT-ы расширяли-реализовывали). Проблем не замечено.

Касательно простоты: простота - это чистота от мусора, но не от существенных вещей, простота не должна быть профанирующей. ООП так ООП, всё нормальное ООП строится на гомогенных иерархиях (с базовыми абстрактными типами и скрытыми реализациями). Надо приучать, аккуратно, на постепенных примерах, а не изолировать "в песочнице".

ООП ещё требует осмысления и доочищения, это понятно, но на данном уровне сбалансированнее, чем в КП, пока не видать.

44
Использую JFLAP, другое особо не пробовал. http://jflap.org/

45
Плодить иерархию по пустякам...

В КП есть LIMITED RECORD, как раз для такой цели (чтобы в обход фабрики нельзя было создать).
Используется редко (но метко), потому что базовый абстрактный тип имеет смысл вводить в большинстве случаев. И уж в случае прикладного моделирования точно (чтобы потом свободно играть с разными вариантами реализации какого-нибудь понятия).

Относиться к желательности введения ABSTRACT-типа можно так же, как к обязанности объявлять секцию interface в Object Pascal, дефинишн в Модуле или Аде, или хидер в Сях. Объём работы не увеличивается, т.к. как раз дефинишн Оберон генерирует автоматом, только звёздочки успевай ставить... Это как раз и к вопросу о том, почему в Оберонах теряет актуальность явное объявление спецификаций. Основные спецификации фиксируются в объявлениях ABSTRACT-типов.

Страницы: 1 2 [3] 4 5 ... 12