Блог им. _sg_

Кажется С++ возвращается

    • 04 декабря 2020, 07:35
    • |
    • _sg_
  • Еще
Кажется дождь собирается С++ возвращается.
docs.microsoft.com/ru-ru/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=msvc-160
Случайно обнаружил на сайте Microsoft эту статью.
Вот это номер.
Сначала всех загнали на С# и VB, а теперь — «что же нам с ними делать, с яблоками на снегу»©  ?

  • Ключевые слова:
  • С++
★2
47 комментариев
Он уже вернулся пару лет как.
avatar
Олег Кузьмичев, 
можете ли подробнее ответить. 
Где и как используется. Для каких приложений.
Как со временем разработки проектов обстановка склыдывается.
Вообще как впечатление от работы с С++ штрих.
avatar
_sg_, я сам из отрасли, программирую на плюсах больше 10 лет. Если раньше считался сложным языком для гиков и железа, то теперь большинство софта (программы, игры, мобильные приложения) переводят на с++ с java и других языков. Внедрили новые стандарты языка, кроссплатформенные ide и прочие плюшки, что упрощает жизнь разработчику. Основные плюсы — скорость работы + максимальная нативность. Минусы все те-же — высокий порог входа + возможность выстрелить себе в ногу.
avatar
Олег Кузьмичев, Спасибо за ответ.
Я тоже около десяти лет программировал на С++, но очень давно.
Последнее приложение на С++ написал в VS2003 в 2004 году.
А потом перешел на С#. И с тех пор меня всегда преследовала ностальгия по C++. Так что мне эта тема интересна.
Теперь есть повод туда вернуться.
avatar
Вроде Микрософт активно топит за Rust
avatar
Михаил,
Я не знаю что такое Rust. Спасибо,  с удовольствием посмотрю что это.
Но
Я рассматриваю тему с С++ лишь потому, что с переходом на разные там С шарпы, огромное кол-во уже написанного на С++ кода осталось за бортом.
А теперь мы опять можем использовать ранее написанный код или отдельные куски, но уже на более высоком уровне самого языка и с использованием более совершенных инструментальных средств разработки.
А новые языки я вообще не рассматриваю, потому что, люди которые долгое время программировали на С++, как правило, не смотрят на альтернативы, потому что на С++ можно сделать все что угодно и сделать очень хорошо.
avatar
_sg_, python ещё крут, для прототипов, моделирования и ML.
avatar
Олег Кузьмичев, Питон это уже само собой. Без этого уже никак.
avatar
Куда мир катится? Обсуждение С++ на smart-lab... Люди, вы чего ? 
avatar
Alexey,
потому что С++ это огромная экосистема, великая эпоха, которая оказалась на грани полного забвения.
А нет, все истинные ценности всегда остаются вместе с нами, хотя иногда отходят на второй план.
avatar
А в чем истенные причины? Так ли много примеров, когда получается значительный прирост скорости по сравнению с тем же C#?
avatar
Dmitryy, 
Причины, их есть у меня.
1. Любовь к жанру.
2. Постепенная миграция на Linux. Там нужен какой-то язык программирования. На Linux альтернативы всего две Java и C++.
С++ я знаю, вернее знал старый С++ без умных указателей. Поэтому выбор очевиден.

В результате должна получиться гремучая смесь С++, Python,  javascript,Typescript для Node.js

Нормальный такой full stack

И никаких Asp.Net Core — боже упаси, какое убожество.
avatar
_sg_, на линуксе вполне себе есть C#, .Net Core 5 посмотрите. Знаю несколько крупнейших ритейлеров, которые вовсю используют Azure + .Net Core на линуксе, отлично работает и производительность на высоте.
avatar
Dmitryy,
Спасибо, буду знать, на всякий случай, что С# есть в Linux.
Это уже что-то.
Но я с детства не люблю Диезные тональности (#).

avatar
_sg_, а про ASP.NET согласен, надобность в нем отпала сама собой. Но пилить Web API или любой другой апи на дотнете, вполне себе удобно, очень много готовых решений, которые существенно ускоряют разработку (валидации контрактов, протобафов, gRPC враперов, всевозможных мапперов). В нодежс это тоже есть, но их сообществено несколько меньше опенсорного дотнета.
avatar
Dmitryy,
Словосочетание WEB development и продукты Microsoft на эту тему всегда вызывали у меня лишь улыбку.

Один «маленький да удаленький» Node.js оставил весь Microsoft далеко позади.

В контексте Web-a у Microsoft можно отметить лишь разработку Typescript. Даже Google использует его в Angular.
А в остальном увы и ах.

Поэтому выбираем стратегическое направление для развития:
Linux,
C++, Python, Node.js — и все, что с ним связано -> MEAN stack называется.
Eще есть Nest.js с Typesript-ом. Красота.
avatar
_sg_, да это вполне логичный стек, мне он тоже нравится. Но нода никогда не будет быстрее кора, это как шарп не может быть быстрее плюсов, разный уровень абстракций. Но когда мельчайшая разница в скорости не важна, выбор всегда стоит делать в сторону удобства.

Имхо, лучше получать удовольствие от окружения, решая сложные задачи, чем плеваться и материться, решая простые задачи сложными путями :)
avatar
Dmitryy, Кстати,
еще в заслуги Microsoft можно отнести OWIN.
У меня на Owin-e некоторые службы  рабатают.
Но я все ждал когда они наконец засунут в Owin  MVC как Middleware.
Но «напросно старушка ждала сына домой».
Вышла Asp.Net Core 3.1, а там по-прежнему в OWIN-е нет МVС.
Web Api есть, а MVC нет. Пожалте бриться.
Не шмогли они MVC из System.Web выпилить.
Я раньше в OWIN-e вместо MVC использовал Nancy framework.
А с новой версией Asp.Net Core 3.1 Nancy с OWIN уже не работает — не совместим и MVC от Microsoft нет.
Поэтому Web от Microsоft «Дафай До свидания».
avatar
Глянул статью. Интересно. Не знал, что у с плюса есть лямбда.
avatar
Denis Richardson, 
лямбды в плюсах со стандарта 11 года. С того времени в языке еще много чего появилось 
avatar
А плюсы куда-то уходили? О_о
MSVC развивается, их сишный компилятор тоже не отстаёт от новых стандартов. Плюс есть Qt с его возможностями писать кроссплатформенный код. Под Android можно писать на плюсах. Под ARM можно писать на плюсах.
avatar
Игорь Шумилов,
qt это ад и боль поддержки.
+ там лицензия драконовская.
avatar
Антон Б, ну какие-то моменты приходится самому патчить, бывает :)
avatar
Игорь Шумилов, затраты труда и квалификации на поддержку поделок qt которые, по идее, должны просто работать сильно выше ожиданий.

коммерческая лицензия драконовская.

некоммерческая это для поиграться.

qt это худший выбор.
даже хуже 1с.

вендорлок.

avatar
Антон Б, мы как-то умудряемся писать код с использованием Qt, который просто работает и без проблем поддерживается программистами средней квалификации. Для Винды и Линукса, с использованием морды на QML.
Но если надо какой-нибудь бэкэнд написать, тут Qt может быть не лучшим выбором в каких-то моментах.
avatar
Игорь Шумилов, 
«который просто работает и без проблем поддерживается программистами средней квалификации.»
вот!!!

а должен работать и поддерживаться сисадминами (аникейщиками) как все остальное десктопное ПО.

а qt поделки поддерживается РАЗРАБОТЧИКАМИ да еще миддлами. а не джунами.
это собственно и проблема!.
«затраты труда и квалификации на поддержку поделок qt которые, по идее, должны просто работать сильно выше ожиданий.»
avatar
Антон Б, поддержка софта сисадминами? О_о
В Вашей консерватории всё очень сильно поломано… ИМХО.
avatar
Игорь Шумилов, в нашей консерватории все ок.

Поддерживать софт должны сисадмины и аникееи.
А разработчики должны разработкой заниматься.

То что qt требует такой квалификации ДОРОГОЙ чтобы просто работать.
ему жирный минус.


avatar
Антон Б, может быть мы по-разному понимаем термин «поддержка»?
Для меня это «правка ошибок, добавление функционала». А для Вас?
avatar
Игорь Шумилов, добавление функционала это разработка.
а не поддержка.
avatar
Антон Б, я ж программист. Для меня это поддержка. Я выпустил версию 1.0, а дальше её поддерживаю :)

Вопросы с установкой нашего софта может решить любой, кто в состоянии запустить инсталлятор. А научится работать с ним сможет тот, кто прочтёт руководство оператора. Qt в этих моментах вообще никак не участвует. И наша служба эксплуатации, которая занимается всем этим у заказчиков, как раз «эникейщики».
avatar
Игорь Шумилов, вот!
avatar
Антон Б, да, вот. Есть софт, написанный с использованием Qt, который не вызывает никаких трудностей с его поддержкой у пользователей. И трудности в этой части мне искренне не понятны. Как только собрался инсталлятор, для пользователя просто появился набор бинарников. И Qt, спрятанный в них, никак не отличается от какого-нибудь gcc или msvc.
avatar
Чисто по логике. Мировое противостояние всех против США неизбежно ведет к крайней желательности переходить на ОС с открытым кодом. 
Значит, линукс-подобные системы и си++ будут востребованы больше, чем сейчас.
avatar
Мировое противостояние всех против США 
avatar
C++ никуда не уходил.
Просто появились новые направления — Web, скриптовые языки, мобильные устройства, оттянувшие многих программистов на себя.
Современный С++ стал удобнее, но в тоже время сложнее. В нем сложные абстракции можно сделать предельно сложным образом, чтобы уж точно никто не разобрался. Но это не значит, что нужно так писать код. Я вот пишу на С++11 по большей части + Qt. Qt очень упрощает жизнь, а также позволяет писать кросплатформенные приложения, где один и тот же код можно собрать под Windows, Mac и Linux.

avatar
ЗеленыйЛук,
Вы в Visual Studio работаете или есть что-то поинтереснее в качестве инструментальных средств для разработки на С++.
Можете озвучить джентельментский набор необходимых инструментальных средств для разработки на С++ в настоящее время.
avatar
_sg_, я пишу в Qt Creator. Мне гораздо удобнее в нем править код, он очень быстрый и умный. Хотя по возможностям конечно не такой как VS.

avatar
ЗеленыйЛук, qt это ад и боль поддержки.
+ там лицензия драконовская.
avatar
Антон Б, Qt можно использовать в коммерческих продуктах. Главное, не линковать статически.
Почему боль поддержки я не понимаю. Можете объяснить подробнее?
avatar
ЗеленыйЛук, В qt не рекомендую.
www.opennet.ru/opennews/art.shtml?num=52259

Дорого 5500 usd на каждого разработчика в год!
лицензия драконовская.
После окончания лицензии Распространять даже старое уже рабочее по нельзя.

нельзя его просто ставить на новый компьютер в замен старого.
лицензия не позволяет.

Для vs C++.C# позволяет разрабатывать

avatar
Антон Б, Зачем вам LTS версия?
Собрали продукт на любой opensource версии, например самой последней, добавили Qt DLL, все. Ничего не нужно покупать. Исходники открывать не нужно.
Есть некоторые вещи под коммерческой лицензией, например Qt Charts, ну и фиг с ними, используйте Qwt бесплатный.
avatar
ЗеленыйЛук, LGPL означает ОБЯЗАТЕЛЬНУЮ публикацию всего кода под lgpl при распространении.

www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5

Я понимаю что все можно нарушить.

Но любой Ваш пользователь получивший от вас копию ЛЮБЫМ ПУТЕМ может потребовать весь ваш код.

Даже если этот пользователь просто наемный рабочий который работает по найму.
И не ваш контагент.
Любой оператор работающий по найму с вашей программой.
avatar
_sg_, MSVC, QtCreator, VSCode, CLion. Выбираете любой по вкусу. А дальше уже настраиваете под свои нужны. Цепляете компилятор, который хочется использоваться (msvc или gcc, например), и вперёд.
Тут от задач зависит.
avatar
не корректно сравнивать шарповиков и сиплюсплюсников, разные задачи. и те и другие никуда не денутся, сишарп развивается и только набирает обороты
avatar
.net и java имеют автоматическое управление памятью при приемлемой производительности. Плюс платформная независимость. Это слишком удобно для написания прикладухи, чтобы от этого всего отказываться. Плюс много чего уже наработано, особенно в java.
Для системного программирования останется си и все прочее.
avatar

теги блога _sg_

....все тэги



UPDONW
Новый дизайн