Комментировать

По ходу дискуссии о линейках и поколениях ПМК начал вызревать вопрос о главном - написании программного обеспечения. Как профессионал в области софтостроения позволю себе высказать имеющиеся соображения.

Софт для платформы - это самое важное. Без софта под Windows, создаваемого огромной армией разработчиков не было бы ни сегодняшней Microsoft - поставщика платформ, системного (математического) ПО, ни крупнейших производителей аппаратуры типа Dell или ASUS. Разумеется, это крайний пример, но и в нишевых решениях типа мобильных устройств действует тот же принцип. Palm проиграл именно потому, что под его платформу писать приложения намного труднее, чем под Windows Mobile.

Это была присказка. Вернемся к нашим баранам.

МК-152/161 - это принципиально новая серия. Это графические ПМК, которые не успели появиться в СССР конца 80-х. Несмотря на совместимость на уровне системы команд (входного языка) со своими дальними предками МК-52/61, для них требуется принципиально иной подход к разработке софта. Разница примерно такая же, как при переходе с DOS-разработки под Windows.

Для меня также очевидно, что использовать МК-152/161 в качестве "модернизированных МК-52/61" не имеет большого смысла, равно как и написание прикладных DOS-программ под современный Windows. Использовать при нужде старый софт - да, писать новый в старом стиле - нет. В этом плане свои эксперименты уважаемая black queen ведет в правильном направлении.

Вывод простой: если не рассматривать МК-161 только как довесок к комплекту лабораторного оборудования, то требуется разработка полноценных графических приложений.

Мне кажется, что скоро станут очевидными 2 проблемы:
- для управления графическими приложениями клавиатуры старых ПМК не хватает
- система команд слишком низкоуровневая

Первую, при необходимости, сможет решить производитель. Вторая целиком ложится на плечи разработчиков.

А у разработчиков кроме преодоления низкоуровневого порога есть и свои интересы. Каждый разработчик хочет, чтобы его софт работал бы на максимальном числе платформ. Либо, чтобы платформа была максимально массовой.

Если отбросить варианты эмуляции одних платформ на других, то для решения подобных проблем нужны кроссплатформенные средства создания приложений. Возможные варианты:
- кросс-трансляторы и трансляторы с одного ЯВУ, существующие под разными платформами (C/C++, Free Pascal) - переносимость на уровне исходников, макропрограммирования и условной компиляции
- виртуальная машина/абстрактный ассемблер (форт, java, .NET IL)
- конвертеры на уровне исходного кода ЯВУ или ассемблерного кода
- комбинации перечисленного выше

Теперь помечтаем. Что хотелось бы иметь в идеале. Чтобы написанная однажды программа для МК-161 могла быть использована на другой платформе. Для меня лично представляют интерес следующие: HP-50, TI-89, КПК и смартфон под Windows Mobile. Поскольку речь идет о графическом приложении с относительно небольшим числом экранных форм, то допустимо иметь единую прикладную логику и множество реализаций графических интерфейсов (подход MVC - model-view-controller).

Как реализовать это для перечисленных платформ кроме МК-161 я в целом вижу. Например, с использованием семейства компиляторов GNU.

Вопрос, как вписать в эту схему новый постсоветский графический ПМК. В существующей редакции имеем (да не в обиду СЕМИКО будет сказано) классическую закрытую систему: поставщик платформы является единственным же поставщиком совершенно уникальных, а значит и нестандартных средств разработки под нее.

P.S. Нашелся вот такой интересный проект: SDCC - Small Device C Compiler. SDCC is a retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs. Work is in progress on supporting the Microchip PIC16 and PIC18 series. SDCC is Free Open Source Software, distributed under GNU General Public License (GPL).

Метки публикаций: 
Undefined

Restricted HTML

  • You may quote other posts using [quote] tags.
  • Allowed HTML tags: <a> <em> <strong> <b> <i> <u> <strike> <del> <cite> <code> <blockcode> <pre> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <img> <sup> <sub> <blockquote> <h1> <h2> <h3> <iframe> <hr>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <code>, <blockcode>.
  • Строки и параграфы переносятся автоматически.

Filtered HTML

  • Allowed HTML tags: <a> <em> <strong> <b> <i> <u> <strike> <del> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <h1> <h2> <h3> <h4> <table> <tbody> <tr> <th> <td> <img> <hr> <sup> <sub> <blockquote> <iframe>
  • You may quote other posts using [quote] tags.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <code>, <blockcode>.
  • Строки и параграфы переносятся автоматически.

Plain text

  • No HTML tags allowed.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
КАПЧА
Вопрос для предотвращения спама