Как стать автором
Обновить

Комментарии 23

П — Так WinAPI это старье беспросветное, на нем уже никто не пишет
С — Да? А на чем пишут сейчас?
П — Ну на Jave и на Qt

Пробовал я писать и на WinAPI, и на wxWidgets, и на Qt, и на Java. В итоге Джаву однозначно побоку, а вот С++ самое оно. Да, долго, да, сложно, да и много еще чего, но интересно и абсолютно никаких ограничений.

C++ / Qt очень мощная вещь, но иногда нужно чего-нибудь попроще. Следующая, по простоте, конструкция это C++ / wxWidgets. Замечательно, но если желать чего еще проще, то приходим к C++ / WTL (может быть в связке с ATL).

C++ / WTL это, практически, уровень C++ / WinAPI, только более комфортный для использования. Чем больше я занимаюсь WTL, тем больше он мне нравится. WTL это сверхлегкая библиотека пользовательского интерфейса, все остальное можно получить из опенсорса, например, компьютерное зрение – OpenCV, работа с мультимедиа – SDL / FFmpeg / FFplay, работа с внедряемыми базами данных – SQLite и т.д. и т.п. Так что пока нет даже особой потребности возвращаться к wxWidgets или Qt.

Лично моя область интересов, как программиста – любителя, это обучающие программы, работающие с мультимедиа и легкие учетные системы, типа современного эквивалента платформы 1С77. Пока все в стадии разработки, но, к счастью, в шею никто не гонит, так что можно получать удовольствие от самого процесса программирования :).

Насыщенный комментарий, благодарю за развернутый ответ.
Кстати WinAPI я в итоге тоже подучил на первой работе. Навык потом пригодился на новом месте самым неожиданным образом — починил древнюю и больную проблему с модальностью в гибридном приложении. Гибрид состоял из C# (WinForms) и легаси-Delphi приложений, работающих одновременно и создающих эффект единого приложения. Если интересно, могу рассказать детали.
А про WTL, к своему собственному удивлению, даже не слышал. Наверное уже окончательно ушел в Linux/Mobile/кроссплатформ, так что было неинтересно.

> Если интересно, могу рассказать детали.

Думаю, вы проделали очень интересную работу, но, к сожалению, перечисленные инструменты (C#, WinForms, Delphi) вне области моих интересов, хотя на уровне общей концепции было интересно послушать.

> А про WTL, к своему собственному удивлению, даже не слышал.

Я тоже про нее узнал недавно, года полтора, хотя ему уже порядка 20 лет. Интересная штука для создания легких приложений. Это Майкрософтовский опенсорс, поэтому для кроссплатформенности годится мало, но последнее в моем случае не актуально.

А так, я тоже собираюсь опубликовать здесь статью по своей текущей программе, когда она будет готова. Она будет работать как собственный видеоплейер по адаптации обучающих видеороликов, например, переделка французско-английских встроенных субтитров (см. замечательные ролики «Easy French» на Ютубе) на французско-русские (с возможностью распознавания текста). Почему именно французский язык? Благодаря ZAZ. Некоторые детали были озвучены при обсуждении алгоритма группировки на форуме математиков dxdy.ru/topic142232.html. Остальные подробности, надеюсь, будут в статье.
Эх, помню в универе тоже активно осваивал Qt, даже получил сертификат мобильного разработчика от Intel. Было обидно когда Nokia решила перейти на Windows :(

Да, Intel в какой-то момент активно продвигал MeeGo, а потом неожиданно слился. В теории как мне кажется могло получиться что-то нишевое вроде Chrome OS.
Насчет Windows — обидно это не то слово, в итоге потеряли и MeeGo, и Nokia, и хоть какую-то альтернативу дуополии Android/iOS. Я еще надеялся на Ubuntu Phone, но её ядро (SDK, оконную оболочку, etc) делала не та команда, а про управление и вовсе лучше не начинать...

Спасибо большое! Первый раз писал статью в формате воспоминаний, переживал за результат, в этом свете вдвойне приятно, что Вам понравилось.

С Qt познакомился на версии 4.3. До сих пор периодически что-то создаю на Qt. Делал и коммерческие проекты, и для себя. За что обожаю — так это за встроенную качественную документацию в QtCreator. Да и сама IDE тоже нравиться, только в последнее время стала немножко помедленнее, но всё равно по сравнению с другими монстрами крутиться довольно живо.
Жаль, очень жаль что свернулись OC для которых можно было удобно разрабатывать на Qt. Знаю, что можно и под Android делать приложения на Qt, но, насколько знаю, здесь полно граблей.

Можно, пишу в прод, больно ли? Ещё как, но возможно сделать работающее и даже более менее работающее приложение, конечно без JNI не обойтись для рекламы/покупок/нотификаций и тд.

без JNI не обойтись для рекламы/покупок/нотификаций

А разве там сейчас не подтянули эти функции? Они они в платной версии фреймворка?

Начинал свой путь с бэйсика и паскаля в школе (славные времена были, когда на дискете 3.5 вмещались и ДОС и Волков командер и турбо паскаль (90-е годы), в институте сначала (тогда еще Борланд) Делфи, потом Билдер С++, который на работе активно использовал в свое время.

После института друг «подсадил на линукс», решил использовать Qt как кросс платформенное решение, прикупил Шлее и понемногу штудировал, но проекты на работе были на Билдере и сроки всегда поджимали, поэтому с Qt как-то и не задалось кроме небольших поделок.

Когда поменял немного направление деятельности даже немного на Lua программировал (очень даже шустрая «вещь» есть относительно удобные GUI).

В настоящее время на работе иногда необходимо использовать ардуино со всем ее «зоопарком», как хобби развиваю «полуумный дом» (как я его называю).
Сейчас осваиваю (в свое удовольствие, может на пенсии пофрилансю :-) Python. ESP8266 прекрасно поддерживает Миркопитон, Home Assistant написан на питоне, чтобы вывести данные на PC (виндовс-линукс), телефон или планшет есть прекрасная библиотека Kivy. Поэтому работаю пока в этом направлении в свое удовольствие.

Спасибо топикстартеру за позитивную статью, извините если немного позанудствовал и смешивал названия на русском и не русском.

Вам спасибо, нежиданно и приятно, что статья побудила Вас, peleron, Emelian рассказать свои истории. Пишите еще :)

Было интересно прочитать, зная как далеко всё зашло в карьере.
Почему «к концу статьи стало грустновато»?

В заключении делал более серьезные умозаключения, про энтерпрайз заговорил и шутить перестал. А хотелось что-то жизнеутверждающее написать!

О я тоже на Qt писал в студенчестве и в WC3 играл ;-) И даже факультет мой так же или почти так же назывался(ВМСС в МЭИ).
Я ICQ клиент под линукс помню писал на 1-2м курсах, как первое приложение для изучения С++ и Qt, тогда это еще был Qt3. Заодно и протокол проприетарный их зареверсил немного. Клиент умел управлять списком контактов, отсылвать сообщения. Но был немного бажной, я не умел особо пистаь сетевых приложений тогда совсем. Потом я его портировал на Qt4.
Еще пару курсовых писал на нем. Тк у меня компа с windows не было, а показывать прогу нужно было на нем я их кросскомпилировал. На удивление все гладко и хорошо работало.
На этом както и все. Решил тогда, что GUI писать слишком муторно, лучше буду инфраструктурные штуки делать и всякие сетевые вещи делать.

Каждому свое, конечно, я тоже больше тяготею к бэкенду сильнее. И особенно грущу если все же надо что-то сделать на HTML5 — по сравнению с QML это такой мусор...

История чем-то на мою похожа: Я тоже закончил «Вычислительные машины, комплексы, системы и сети», тоже начинал с Лафоре, потом изучал Qt (на тот момент в инете было всего два русскоязычных сайта по Qt. У меня до сих пор валяются две или три книги по Qt), тоже писал на нем диплом — «цилиндрическую интерактивную 3D-панораму для своего универа, которая позволяла перемещаться по нему», но потом Java вытеснила Qt ))
Иметь в «багаже знаний» «кьюти» — это всегда «зачОтно»! В свое время (правда, давно) увлекся этим фреймворком, даже «наваял» на Qt трехмерный, базирующийся на OpenGL, UI для покера «Texas Holdem» (правда, проект остался недоделанным, были планы интегрировать его с open source Holdem Nuts). Что тогда приятно удивило, один и тот-же код, практически без «доводки напильником», пошел как под Windows, так и под Linux, и Mac OS (порылся в архивах, нашел и запустил бинарник — отлично работает и на latest Windows 10).

Интересно, поискал навскидку (в Бостоне): есть определенное количество неплохих позиций Qt+QML, в основном, у компаний, «клепающих» сложные медицинские приборы, с весьма достойной оплатой (так как C++). Правда, практически везде требуют профессиональный опыт «от 5 лет и выше»…
отлично работает и на latest Windows 10

В свое время меня больше удивило, что собранный на 7-ке код отлично работает даже на Windows 98 — да, и такое можно было найти в университетских стенах ^^


с весьма достойной оплатой (так как C++)

К слову C++ в Qt как бы это аккуратно сказать… Другой! Лаконичная и удобная библиотека классов делает разработку похожей на Java или C#, когда, например, можно просто вызвать метод у QString и не думать об UB, UTF8/Unicode, непрерывности байт в структуре данных фактической реализации, etc. Мой любимый пример на эту тему на StackOverflow. Оно и понятно, ведь Qt в первую очередь фреймворк, а значит предлагает определенным образом решать некоторые задачи (Qt — почти все). Кстати, на C++11 в исходниках Qt не так давно окончательно перешли. В свете сложности и замудрености (личное мнение) новых стандартов языка это выглядит очень user-friendly решением.
Ох, как бы холивар не начался...

К слову C++ в Qt как бы это аккуратно сказать… Другой!
Я в курсе ;) В чем, как некоторые утверждают, и кроется его особенная прелесть — от практически straight forward baremetal good old C, до «сумасводящих» шаблонов параллельных задач в Мелкософтовской C++/CX (довелось как-то подискутировать с разработчиком данного говнища mind challenge напрямую). Qt-шный C++ is really cute (сорри за каламбур), продуман, понятен (обычной человеческой логике) и эффективен.

Просто в Штатах при оценке позиций (openings) работают другие шаблоны; программист С++ автоматически оценивается выше, чем, например, JS с «модными молодежными» фреймворками. То, что я находил для Бостона, «котируется» (хотя it's depends, как у нас говорят) от $160K на full time, или $100/h на W2 контракт. Данные для East Cost (восточного побережья), на West Coast (в частности, в Bay Area, так же изветсной, как «Силиконовая Долина»), цифры могут быть на 30-40% выше.

Лабы бывают разные, друзья.


Я разработчик на Qt/C++, разрабатываю ПО для железных дорог, работаю с embedded, с высоконагруженными сервисами, что может пойти не так? И как-то раз стучится мне в личку барышня с одного всем Вам известного московского вуза, просит решить ее лабы по Qt за ПЕРВЫЙ КУРС. Ну я такой: "Ладно, помогу что-ли". Я никогда таких лабораторных не видел.


К слову, эти лабы даже меня заставили попотеть, хотя казалось бы. Например, задание "Отрисовка датасета в виде 3D графа с возможностью перемещения камеры на голом виджете в функциональной парадигме используя Афинную геометрию, из Qt доступно только QPainter, полный запрет на ООП". Такие задания из разряда "Изобретите вселенную с нуля левой задней". Если бы мне на первом курсе дали такую лабу, то, наверное, я бы разочаровался в программировании и бесповоротно закрепил бы в своей голове фразу "Это не для тебя".


Так что лабы действительно бывают разные)

Qt без ООП и только с паинтером, да уж, "они знают толк в извращениях" :)

Почему уже тогда не на Assembler сразу? )

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории