реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Уход от Delfi, на конторе
halfdoom
сообщение Jun 8 2011, 11:30
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(SasaVitebsk @ Jun 8 2011, 13:36) *
Написанный крупный проект сервер-арм писался уже 4-5 программерами и представляет собой безсистемную сборку их творений. Иногда начинает тихо ехать крыша. Там исправишь - тут вылазит. ))


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

Касательно языка и кросплатформенности - если есть время, то можете поэкспериментировать. В нашей конторе исторически использовались три языка: С,C++ и Delphi. К программистам нареканий не было, но стыковка разных модулей отнимала время и средства. В итоге было решено сделать три проекта на С++ и три на Delphi. Во всех случаях было требование переносимости, оценивалось общее время разработки нормализованное по сложности задачи. Также сознательно в ТЗ не были внесены некоторые пункты, с целью оценить время внесения изменений. Библиотеки и инструментарий программисты могли выбирать сами (в пределах разумного конечно).

Итог был (для меня) неожиданный - победил lazarus.freepascal.org. Один из программистов был сильно недоволен, но не привел убедительной аргументации, а обещание уволиться не выполнил.

С инструментарием с доступным исходным кодом нужно быть осторожным - особо инициативные пытались использовать свои патчи к fpc, но это было запрещено административно.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 8 2011, 13:33
Сообщение #17


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(SasaVitebsk @ Jun 8 2011, 14:29) *
Скачал и установил QT (QT Creator). Вроде выглядит привлекательно. Поддерживается, развивается. Локализация русская. Много примеров. Форумы. Бесплатная.

Кто поделится своими наблюдениями. Посоветует. Замечания.
Заранее благодарю.

Когда-то для разработки софта для РС (для внутренних нужд) пользовался Borland C++Builder. Потом, освоивши Python, многие вещи делал на нём. Но иногда встаёт необходимость именно в полноценном экзешнике с нативно исполняемым кодом. Развитие билдера не понравилось - в отличие от пятёрки, которая была проста, быстра и достаточно стабильна, последние версии выглядят монстроидально, громоздко и мутно.

Подыскивал замену, остановился на Qt. Сейчас лабаю небольшую программку для внутренних нужд. Навскидку могу сказать следующее:

  1. Qt - это не RAD система. То, что там есть Designer, не делает его таковой. В отличии от дельфей и билдера, где можно было накидать на форму компонентов (в том числе и неграфических) и быстренько в полувизуальной манере запрограммировать поведение - евенты повесить, задать значение всех свойств по умолчанию и т.п., тут такие номера не проходят. На форму можно положить некоторые виджеты, но по большому счёту этим всё и ограничивается. Т.е. от дизайнера эффективно можно получить только геометрическое размещение виджетов и всё. Остальное - назначение событий, их обработка, инициализация и настройка - всё это делается руками в коде. Это не так удобно как борландовских продуктах, но склонен считать, что это более правильный подход, хотя он и требует глубже вникать в систему и разбираться с её потрохами. Поэтому Appication Development получается не такой уж и Rapid
  2. Среда разработки Qt Creator (как и почти все среды) весьма отстойна. Да, там многие вещи делаются неплохо, но есть и масса неприятных мелочей, начиная от того, что курсор в редакторе прыгает по тексту при вертикальном перемещении в зависимости от конца строк и заканчивая тем, что нет удобного расположения редактируемых окошек в виде привычных по многим программам табов. Собираюсь со временем перелезть на свой любимый слик. Самое сложное тут - это переделать среду сборки под сконс, избавившись от make и, как следствие, их инструмента организации проекта qmake. Основное тут - это разобраться с moc (meta-object compiler).
  3. Качество самого фреймворка в целом на высоте. Но отдельные программные его модули оставляют желать лучшего. Например, QtSQL не приходится рассматривать как полноценную библиотеку, целиком пригодную для написания сложных программ. Её слой драйверов и низкоровневого БД API вполне вменяемые, но вот про третий слой - прикладные модули (QSqlTableModel и подобные) этого сказать нельзя. В общем, нужно в каждом случае внимательно смотреть, на каком уровне выполнен прикладной модуль. Мнение обычно можно составить, читая посты на форумах - информации предостаточно. Правда, я сперва набил немного шишек на этом модуле, а потом уже накопал на форумах, что проблема не нова.
  4. При организации всех классов Qt используется идеология на основе паттерна PImpl (Pointer to Private Implementation). Она имеет свои плюсы и минусы. Главное, для чего они её заюзали - поддержание бинарной совместимости (по крайней мере, в пределах мажорных номеров версий). Правда, мой опыт показал, что это в реале не работает, во всяком случае, не всегда - при переходе с версии 4.6.3 (а под неё мной руками были собраны драйвера для сервера MySQL) на крайнюю версию 4.7.3 программа отказалась вязаться с сервером. Пересборка драйверов порулила проблему.
    Ещё одно преимущество такого подхода - более быстрая загрузка программы. Программа действительно грузится и работает быстро. Но при отладке этот подход доставляет проблемы: несмотря на open source реализация потрохов видна не на всю глубину. И постоянно сталкиваться с кодом Q_D(class_name); и далее d->... - не добавляет комфорта. Разбираться с этим кодом сложнее, чем с написанным явно, т.к. приходится искать определения этой приватной имплементации.
  5. Бесплатная лицензия имеет некоторые ограничения. В частности, в ней не предусмотрена сборка статической версии программы, чтобы получить самодостаточный экзешник. Поэтому придётся тащить как миниум один или два рантаймных модулей библиотек - QtCore, QtGui. Цена вопроса - 12 мегов.


В целом, фреймворк достойный. Реальной альтернативы я ему не вижу. Конечно, для эффективной работы с ним придётся изрядно погнуть моск под его подходы: например, повсеместно используется new для создания объектов и очень редко можно увидеть delete - там широко применяется подход через удаление объектов в деструкторе предка, поэтому в каждом объекте виджета в конструкторе есть аргументом указатель на предка QObject *parent; или, скажем, строго заданная схема создания объектов-виджетов, при которой все объекты-виджеты создаются не в конструкторах, а уже во время запуска самой программы, т.е. после старта main().

Пристальное внимание надо уделить таким аспектам, как передача сообщений по схеме signal/slot, event'ам и event filter'ам. Это базовые вещи, без хорошего понимания которых, более-менее серьёзную программу не создать.

В общем, не всё там так просто и безпроблемно, но если готовы потратить силы и время на освоение, то дело это считаю достойным. Сам в процессе. sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 9 2011, 06:16
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(DSIoffe @ Jun 8 2011, 14:21) *
Не в порядке спора, а для себя интересно: чего Вам не хватает в Delphi 7 для Ваших задач?

Ну, например, простой пример. Симуляторы разные. Где желательно полный перенос текста программы.

2 dxp. Огромное спасибо за развёрнутый ответ. Тем более что ваши знания в плюсах на голову больше моих.
Я ковыряюсь недели 2-3. Тем не менее по пунктам ...
1 - я уже понял в полном объёме. И вот тут у меня несколько вопросов. Надо ли вообще дизайнер? Или единожды делаешь размещение и лучше больше к нему не возвращаться? Он там хидер генерит автоматически и в случае изменений, соответственно его херит. Так есть вариант просто использовать другой хидер, взявши генерируемый за основу.
)) Не пинайте больно - я ещё сквозную идею не ухватил пакета. В дельфях форма менялась по ходу написания неоднократно. Часто так и писалось. Накидал компонентов - обработал, накидал ещё.
2. Тоже почти согласен. Особенно TAB убивает. Хотя остальное вполне понравилось. Особенно замена "." на "->" очень удобно. ))
Только мне слик не нравится. Вопрос: Зачем среду сборки менять???
И ещё один вопрос. В одном случае добился (!!) что абсолютно правильный проект вызывал ошибку при сборке. Причём ошибку VS почему-то. С предложением отослать )). Насколько сам пакет устойчиво работает???
3. SQL пока не нужен, но не исключаю естественно. Мне бы больше по работе с железом. Например с портами.
4. Насчёт отладки. Я решил, что просто не разобрался. Но пока мне показалось, что отладка ещё хуже чем в D7. Ну она уже и там далеко не на высоте. Насколько я заблуждаюсь?

Спасибо.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 9 2011, 07:26
Сообщение #19


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(SasaVitebsk @ Jun 9 2011, 13:16) *
1 - я уже понял в полном объёме. И вот тут у меня несколько вопросов. Надо ли вообще дизайнер? Или единожды делаешь размещение и лучше больше к нему не возвращаться? Он там хидер генерит автоматически и в случае изменений, соответственно его херит. Так есть вариант просто использовать другой хидер, взявши генерируемый за основу.

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

Сам дизайнер держит всю информацию об объектах на форме в .ui файле. Он также генерит заголовок ui_xxx.h и может вставлять код (слоты в основном) при команде "Перейти к слоту...". Заголовок ui_xxx.h руками править не надо.

Цитата(SasaVitebsk @ Jun 9 2011, 13:16) *
)) Не пинайте больно - я ещё сквозную идею не ухватил пакета. В дельфях форма менялась по ходу написания неоднократно. Часто так и писалось. Накидал компонентов - обработал, накидал ещё.

Ну, и тут так же. Только тут нет на форме невизуальных компонентов. Тут форма - это чисто для создания внешнего вида. Это у Борланда форма частично использовалась в качестве инструмента кодогенерации - можно было создавать объекты и подключать их к работе прямо мышкой. Потому оно и RAD система. А тут всё традиционно. По большому счёту это правильно, хотя после той расслабухи немного ломает. sm.gif

Цитата(SasaVitebsk @ Jun 9 2011, 13:16) *
Только мне слик не нравится. Вопрос: Зачем среду сборки менять???

Насчёт слика - это вы зря. sm.gif Систему сборки я хочу менять потому, что меня тошнит от make и makefiles. Наелся этого. Давно юзаю SCons и очень этим доволен. Вот и хочу поднять сборку на его основе. Закончу этот проектик и попробую перетащить. В принципе, на SConc'е руление опциями проекта будет почти таким же, как и в их .pro файле.

Цитата(SasaVitebsk @ Jun 9 2011, 13:16) *
И ещё один вопрос. В одном случае добился (!!) что абсолютно правильный проект вызывал ошибку при сборке. Причём ошибку VS почему-то. С предложением отослать )). Насколько сам пакет устойчиво работает???

У меня бывали падения a-la Segmentaion Fault, но во всех случаях сам был дурак. Как правило к этому приводят ошибки работы с памятью. Тут надо быть аккуратным. И иметь в виду, что ни один виджет не должен создаваться до инициализации приложения (создания объекта QApplication). Иначе работать не будет, а будут только неприятности в виде падений и глюков. Такая там идеология, надо быть в рамках.

Цитата(SasaVitebsk @ Jun 9 2011, 13:16) *
3. SQL пока не нужен, но не исключаю естественно. Мне бы больше по работе с железом. Например с портами.

С портами не привелось пока работать. Но думаю, что принципиальных проблем тут быть не должно. Допускаю, что какие-то вопросы возникнут, но это всё обычные рабочие моменты.

Цитата(SasaVitebsk @ Jun 9 2011, 13:16) *
4. Насчёт отладки. Я решил, что просто не разобрался. Но пока мне показалось, что отладка ещё хуже чем в D7. Ну она уже и там далеко не на высоте. Насколько я заблуждаюсь?

Отладчик там убогий. Он очень тормозной и весьма глючный. Мне сказали, что он портирован с линуха и там он работает не в пример лучше.

В принципе, сам-то дебаггер там - это GDB, а в оболочка предоставляет только фронт-энд к нему. Фронт-энды к GDB есть и другие, и получше. Слик, кстати, тоже умеет быть фронт-эндом к GDB. Люди, которые пробовали эту связку, отзывались очень похвально (знаю такого человека лично). Когда я переползу на свою среду (слик+сконс), тоже попробую.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 9 2011, 08:01
Сообщение #20


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Да уж. Отличный способ побороть текучку программистов - перейти с дельфей, которые знает практически каждый второй, на QT, который знаком очень немногим. Текучка от этого точно прекратится, все сбегут, и всёsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jun 9 2011, 08:40
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(AHTOXA @ Jun 9 2011, 12:01) *
перейти с дельфей, которые знает практически каждый второй, на QT
Сначала надо перейти с дельфей на си-плюс-плюс, а потом уже на кути.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 9 2011, 08:52
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (AHTOXA @ Jun 9 2011, 11:01) *
перейти с дельфей, которые знает практически каждый второй...

Им кажется, что знают, и даже собаку съели, хотя едва-ли каждый сотый из дельфийских "программистов" приступил к этой закуске. Это к сожалению порождает чрезмерно часто и удручающие качество продукта и ту самую "текучку" - наваяли что-то по быстрому и рванули лепить следующее sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 9 2011, 08:58
Сообщение #23


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(AHTOXA @ Jun 9 2011, 11:01) *
Да уж. Отличный способ побороть текучку программистов - перейти с дельфей, которые знает практически каждый второй, на QT, который знаком очень немногим. Текучка от этого точно прекратится, все сбегут, и всёsm.gif


Сегодня только получил рассылку от Embarcadero. Оказывается у них уже есть продукт для создания облачных приложений - Embarcadero Delphi Prism XE
И на нем можно программировать даже айфоны.

После этого, конечно всякие QT идут в топку.
Хотя в течении обсуждения я не уловил причин почему при таких недостатках QT удостоился вообще какого-то внимания.
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 9 2011, 09:14
Сообщение #24


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(AlexandrY @ Jun 9 2011, 15:58) *
Хотя в течении обсуждения я не уловил причин почему при таких недостатках QT удостоился вообще какого-то внимания.

Каких недостатков?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 9 2011, 09:34
Сообщение #25


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(zltigo @ Jun 9 2011, 14:52) *
Им кажется, что знают, и даже собаку съели, хотя едва-ли каждый сотый из дельфийских "программистов" приступил к этой закуске.

Думаете, среди QT-программистов процент грамотных сильно выше? Сомневаюсь. Ну пусть даже немножко повыше, пусть не каждый сотый, а каждый 20й. В любом случае, в абсолютных числах грамотных дельфи-программистов значительно большеsm.gif


Цитата(AlexandrY @ Jun 9 2011, 14:58) *
Сегодня только получил рассылку от Embarcadero.

Я поначалу испугался, когда узнал о продаже дельфей Embarcadero. Теперь вижу, что они молодцы, всё делают грамотно, может даже грамотнее чем Борланд.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
smalcom
сообщение Jun 9 2011, 10:37
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Думаете, среди QT-программистов процент грамотных сильно выше?

Да. C++ + Qt имеет более высокий порог вхождения. Исходя из этого шутки про делфи-"программистов" вполне уместны.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 9 2011, 10:46
Сообщение #27


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(smalcom @ Jun 9 2011, 16:37) *
Да. C++ + Qt имеет более высокий порог вхождения.

Потому я и написал - каждый двадцатый вместо каждого сотого. Результирующего соотношения это не меняет.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 9 2011, 13:57
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Я извиняюсь, просто загромождать не хотел.
Не надо мешать всё в кучу.
От D7 просто пора уходить. Это я не хочу обсуждать. Причин я могу перечислить много. Уже довольно много пошло на ARM компов. Буки, к примеру. W8 решит проблему. А D7 кто перетранслирует? Уже указанные и не только мной, проблемы работы с разными языками. Выбор в России "национальной ОС". Хочешь не хочешь, но часть корпоративных компов перейдёт под Linux. У нас уже есть такие примеры. Газовики, в частности. А мы учётом газа, тепла и т.п. То есть кросплатформенность, в принципе понадобится. По крайней мере я так считаю. Пусть в одном случае из 50, от этого не легче.
Проблема текучки - не так проблематична. Проблематична низкая квалификация писателей, отсутствие общего подхода, отсутствие должного контроля. В этом смысле, C++ чуть более распологающий к порядку язык. Если бы всё решалось на уровне объектов, заимствовалось - документировалось, то было бы легче.
Понятно, что требуется человек, который определяет общую концепцию приложения, а только потом пишется это приложение. К сожалению, до сих пор писалось прямо на экране.
Приведу пример. Для выдачи команды в прибор, сейчас динамически создаётся отдельный поток и ставится в очередь потоков. Ну и поехало - в одном потоке - создаётся, в другом - уничтожается. Теперь где-то утечка памяти - найти программист не может. Координально менять - просто всё переписать надо. Приложение таково, что можно было бы создавать законченные объекты - тащить их из приложение в приложение и больше к этому не возвращаться.
===
Но и это я не хочу обсуждать. Я просто пытаюсь сорентироваться на перспективу. Для того, чтобы наметить работы на будущее.
Я рассматриваю и RAD. Но пока никто не описал преимуществ. А денег он стоит. А перспективы его - не менее туманны.
===
Облачные технологии нам не к чему пока. Насколько я понимаю. Как и VBA. Мы не офисные пакеты пишем, а пакеты привязанные к нашему железу.
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Jun 9 2011, 14:26
Сообщение #29


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Теперь где-то утечка памяти - найти программист не может.
для решения этих проблем есть языки с встроенным сборщиком мусора, многозадачностью, и другими плюшками.
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Jun 9 2011, 14:59
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(halfdoom @ Jun 8 2011, 14:30) *
...Итог был (для меня) неожиданный - победил lazarus.freepascal.org. Один из программистов был сильно недоволен, но не привел убедительной аргументации, а обещание уволиться не выполнил....

Спасибо за ссылку на кроссплатформенную, бесплатную и, судя по Вашему рассказу, достойную замену Delphi cheers.gif
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016