All streams
Search
Write a publication
Pull to refresh
41
0
Тимофеев Константин @timofeevka

Программист

Send message

Ну я просто в курсе как именно люди работают над например программами cfd расчётов во ВНИИЭФ. Они деньги получают не за лицензии, а за НИР и продавать от себя разработку другим фирмам не могут. Поэтому у нас то, что было внутри НИИ сделано за их пределы как правило не выходит. А чтобы продать кому то лицензию или исходник надо организовывать независимое юридическое лицо. Такие конторки есть как правило при Вузах, мы сами некоторые работы так проводили, но там половину забирает себе вуз и мало остаётся, поэтому для нормальной коммерциализации надо или свою или дружественную фирму иметь. Это весьма большая проблема нашей экономики, из за которой собственно мозги утекают и разработки загибаются.

Текст статьи по ссылке не доступен к сожалению. У нас как бы капитализм сейчас. Есть требование заказчика — заставить программу работать на Astra Linux например. Дальше от этого требования мы выбираем наименее трудозатратный способ проведения работы, описанный в статье. Мы вот те самые частники и никто нам государственных денег напрямую не дает. Мы получаем финансирование от наших заказчиков — отраслевых НИИ (и частных фирм также) за техподдержку и доработку модулей к ПО, причём в общей стоимости работ то, что перепадает нам это очень небольшая часть.
Вообще денег в государстве хватает, только их надо давать по адресу.
Портирование на Ada не рассматривалось в данной работе. Про сам данный язык я ничего плохого не хочу сказать, но поскольку код системы был на писан на Delphi, то и для портирования применялся наиболее близкий по функционалу аналог. Цель была — иметь единую кодовую базу для Windows и Linux вариантов программы с сохранением используемого инструментария.
Использовали. Во FreePascal они поддерживаются. Но есть небольшая разница с Delphi: нельзя делать вот так: function(): TArray<ну например Double> — надо тип указать сначала с дженериком, а потом уже его указывать в декларации функции.

Было такое в какой то из версий. В 10.3.3 не сталкивался.

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

Я на тот момент не могу сказать точной суммы, сейчас у них на сайте full source code 599$ стоит. Не осталось у меня тех старых документов.

Кстати как сейчас версия delphi 10.4? Я тоже не сразу перехожу на обновление, только после проверки.

Вопрос с прозрачностью у меня тоже возник, поэтому и делал на линуксе через orca2d а не через обычный canvas.

Под Windows используется direct2d. Под Linux — надстройка над cairo (gdk). Просто они функционально похожи оказались сильно и оказалось просто сделать прокладку. Речь о 2д графике — отрисовке схем и видеокадров.

Спасибо за комментарий! У нас исходно проект был на Delphi и в принципе под Windows там нас устраивает данный инструмент разработки. У меня примерно те же самые мысли насчёт названных вами инструментов. На Java был опыт частичного переписывания — получилось медленнее и рендеринг двумерной графики медленно работал, короче вышло хуже исходного варианта на Delphi, а ещё она многословная очень. C# не рассматривали, потому что на Windows смысла менять инструмент не было, а на Linux с ним не всё хорошо. Qt и C++ — по сути единственная альтернатива для такого типа приложений, но тоже кода по объёму будет больше изрядно, в поддержке будет скорее всего сложнее, а будет ли лучше — это вопрос. Как показал мой опыт дельфовый код вполне переносим на FPC + Lazarus, особенно когда разобрался с приколами LCL и компилятора.

Вот то что он ifdef ы неактивные выделает это удобно. Кстати отладчик в Linux работал у меня лучше чем в виндовой версии lazarus

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

Если компилятор одинаковый и для головного модуля и плагинов то при одинаковой настройке выравнивания структур выделяемые им в памяти области тоже одинаковые. Поэтому я делаю базовый абстрактный класс в модуле общем для exe и dll, а потом в dll его наследую. У dll наружу торчит функция createobject(name: pchar) которая внутри создаёт класс и возвращает наружу его указатель. А дальше в exe я обращаюсь к функциям абстрактного класса, по этому указателю. Это один из использованных способов. Это надо отдельно будет написать.

Нет. Надо было проверять на конкретном дистрибутиве линукс. Но можно попробовать.

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

Mpl там в основном и все с исходниками. Линкуются статический они все. Это просто сборка, в которую вставили наиболее употребительные компоненты. Из того, что мы использовали коммерческого и купили ещё давно был tee chart pro. Про него написано.

Я делал такое в дельфи. Сначала был переход на widechar вместе новой версией делтфи — там строки стали двухбайтные по умолчанию.

Рассматривали, но есть ограничения: 1. Программа инженерная и заточена на работу на локальной рабочей станции. 2. Переделывать придётся ВСЁ. 3. Совместимость со всеми старыми наработками критична.

Вызовы opc da и так в отдельной библиотеке сделаны. Я использовал и в delphi и lazarus компонент virtualtreeview для редакторов свойств, сигналов. Удобная штука.

Information

Rating
Does not participate
Location
Раменское, Москва и Московская обл., Россия
Date of birth
Registered
Activity