Опыт использования системного ПО для работы с модулями

Перенесу тему создания интерфейсов для модулей сюда.

Меня всегда триггерит от использования/создания людьми своих гениальных решений. На первый взгляд у человека благое намерение сделать (как ему кажется) новое ПО. Вроде все логично. Но за последние лет 10 я не встретил ни одной задачи, которая потребовала написать все с ноля и применять для этого ПО которое по сути “заменят” системное. Новые задачи всегда требовали небольшой доработки (добавление алгоритма обработки). Поэтому многие сейчас у ИИ спрашивают, а он достаточно внятно отвечает. Вы не задумывались почему?

Ну так вот. Я веду тему в направлении использования стандартного ПО системы. Уже написано столько всего, что просто из этих кубиков составить хорошее решение. Хорошо бы сделать тему куда скидывать такие решения, чтобы новички могли почитать и не лезть с решениями на экзотике.

Вот простой пример для linux систем - busybox. Его одного достаточно, чтобы сделать инструмент для простенькой системы. Он сам многое включает в себя, но позволяет дописывать аплеты. Это достаточно, чтобы встроить управление в raspberry подобные системы.

Очень интересно, ничего не понятно.

Конкретный пример. Есть стандартная библиотека для работы с датчиком. При ее использовании, предположим, она отъедает 500 байт памяти контроллера. У меня 4 датчика. В объеме ардуинки (уно, нано) уже не реализовать. По факту весь объем функционала от датчика (всего что наделано в библиотеке) не требуется, переделанная реализация работы с датчиком забирает, например, 50 байт. Ну и там, синхронность-асинхронность оказывается под контролем, даже если датчик медленный, программа не стоит в ожидании через готовую функцию, а асинхронно подбирает результат.

Пример почти искусственный, но объясняет, почему от стандартного ПО разработчик иногда уходит в сторону самописной реализации.

Если же стандартные решения устраивают, хватает ресурсов, то используются они. С случае, когда они не прикрыты лицензиями на то использование, которое предполагается, и те не запрещают такое.

А по работе бывает, что вот есть библиотека под linux, и все бы хорошо, но на объекте заказчика чуть другой линукс, который сертифицирован для той области. И все, приплыли.

Я не про то веду речь. Когда у Вас есть проблема с ограничениями, которые можно вытащить на другие ресурсы, то для этого есть у операционных систем средства. Как пример - NFS. Нет диска - можно использовать ресурс сервера. Нет БД - можно сделать простыми средствами обращение через свой костыль к имеющейся БД. Есть у Вас хранилище с данными и интерфейсом работы с этими данными, а Вам нужен интерфейс работы с раскладыванием этих данных по модулям - пишите это средствами БД. БД сейчас имеют С интерфейс для этого.

По итогу Ваш костыль будет хорошим решением, поскольку все остальное вы не трогаете.

Так компильните в их системе библиотеку. Библиотеку можно компильнуть двумя способами - dynamic и static. Компильните у себя ее static и она будет работать.

при условии что на той стороне совместимое железо… что совсем не факт в описанной ситуации

Я не знаю как сейчас, а лет 20 назад была одна контора, которая предоставляла “услуги сдачи налоговой отчётности через интернет”.
Видимо их “разрабы” подумали - А зачем писать что-то своё, если есть Excel? И на VBA “накропали” программу сдачи налоговой отчетности.

И тут, датам (!), ВСЕМ клиентам еще потребовалось тратиться на Excel, но он отдельно, на сколько я знаю, не продавался и поэтому приходилось покупать пакет программ MS Office). Большинство же клиентов MS Office вообще не пользовались (а пользовались всякими Open Office / Libre Office и тп, что бесплатно).

Потом, в году 2010-2011 они выпустили новую версию своего ПО. Красивышную, жутко требовательную к ресурсам и самое главное с собственным интерфейсом, базой данных и тп.
Только одно НО (!) осталось - MS Excel обязан был быть предустановлен на ПК с их программой…

1 лайк

Это НО начинается с того, что есть ситуации когда закрывают ПО по независящим причинам. Тут угадать сложно. Поэтому я всегда стараюсь делать ПО на основе WEB. Это не требует установки чего то на компьютер. Но это уже другой уровень. Для начала проще делать на том, что есть практически у всех и хорошо документировано.

Библиотеки с железом не связаны. Железо контролируется операционной системой. Исключение - DOS. Да и в многозадачных системах сделана синхронизация и стандартизация.

Все хорошо, если это открытое ПО. Увы, есть много легаси, есть много бинарной коммерции, есть завязки на железо…

Используя закрытые библиотеки Вы в полном праве требовать от разработчика совместимости. Вы же деньги заплатили.

Мне недавно пришлось дорабатывать по. Было только компилированное по под старое ядро. В общем - аккуратно взял библиотеки, добавил нужные include и собрал. Часть бинарных библиотек было, часть новых добавил. Все прекрасно заработало. Ведь сам процесс вызовов можно сделать с подгрузкой нужного. Некоторые пришлось сделать static, поскольку библиотеки были усечены. Сейчас не многие различают процесс компиляции и линковки.

ТС пишет или банальность или чушь. Можно и так и так посмотреть. Если имеется ввиду, что не нужно писать велосипеды для тех задач, которые уже решены стандартными средствами - то это банальность. Если “Эксель и ВижуалБейсик” - это чушь собачья.

Пока только так могу понять автора.

Кстати отдельное замечание. Если человеку нужна небольшая графическая утилита под Винду, то средств написания очень немного. И до сих пор Дельфи - один из самых оптимальных выборов просто по размеру того, что ставить на машину. Если писать на C#, то Студия займет больше 10Г. На С++ - снова студия или QT Creator, джава - я бы выбрал Джаву, но если нет ИДЕ на машине, то установка тоже по 10 Гиг.
Так что минималка - это и правда Дельфи, а еще меньше Лазарус - это тот же Дельфи, но “вид сбоку”. Даже частично совместим. Просто качать и ставить меньше 2Г.
Следующие средства - JS и фреймворки к нему. Електрон естественно. Можно написать приложение. Это фактически веб-приложение, но бекэнд обеспечиваться NodeJS с доступом ко всему железу. Наверное в 21 веке это лучше решение. Собственно всеми либимый VS Code так и написан. Джава скрипт и Электрон. Я чуть более “древний” человек - я выбрал бы Джаву. А источник диспута еще древнее по вхождению в АйТи и ему ближе Дельфи.

Автор ветки почему-то постоянно апеллирует к тому, что “кто-то будет пользоваться” написанной программой. Хотя 90% программ пишутся как инструмент для себя, ровно на один раз. Не для распространения.
Пример:
Я, к примеру, для отладки проекта, просто имитатор экрана и светодиодов писал себе, чтобы не собирать такой же стенд, как у Заказчика. В программе для контроллера делал прокладку: для Заказчика - его физика, для отладки у себя - просто в UART кидал данные.
Нужна такая программа после сдачи Заказа? Нет конечно! Ровно на один раз эмулятор. Зато мы с Заказчиком были рады попробовать разные варианты оформления передней панели его прибора.
Так вот, в нашем микроконтроллерном деле часто нужны одноразовые инструменты, чтобы отладить или проверить взаимодействие разрабатываемого прибора. Иногда достаточно скрипта и общения в консоли. В изначальной задаче, благодаря которой появилась эта тема, я привел пример скрипта на 10 строк на Питоне. Я бы так и делал. Там нет нужды в “кнопке” и Дельфи. Но тут уже вопросы вкуса. Если человек знает Дельфи, то почему бы и не украсить себе жизнь? Это как плотник себе какую-то особую стамеску вырезал и можно просто ручку изолентой обмотать, а можно красиво украсить и лаком покрыть… ни для кого, просто для радости глаз!

3 лайка

На hh.ru ради хохмы посмотрел вакансии delphi.

16, из которых половина delphi только как желательная опция. Умерло, так умерло.

А программистов на ассемблере там много вакансий?

Вы купили продукт в котором было указана совместимость с тем чем заявлено. Большего вы требовать не можете. То, что после его покупки появятся, например, “русские” РедОси, 10 лет назад разработчик и знать не ведал.

Вы на основной работе чем занимаетесь?

1 лайк

Я надеюсь, что ты умеешь пользоваться ИИ?
Задай вопрос:

Стоит задача написать небольшое графическое приложение под Виндоус. Требуется принять данные из последовательного порта, обработать и ответить. Интерактив с оператором: показать принятые данные, позволить оператору составить или изменить ответ.
Предложи оптимальный вариант, как мне написать такое приложение? Сейчас у мена чистая установка Вин10. Никакие средства разработки не установлены.

Ответ ИИ можешь не приводить, я его знаю. :wink:

Интеграциями.

Powershell. Ребята написали простенькую для настроек.

Нет. На основной работе он противопоказан. А для личного - не интересно.