Блог им. _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
Он уже вернулся пару лет как.
avatar

Олег Кузьмичев

Олег Кузьмичев, 
можете ли подробнее ответить. 
Где и как используется. Для каких приложений.
Как со временем разработки проектов обстановка склыдывается.
Вообще как впечатление от работы с С++ штрих.
avatar

_sg_

_sg_, я сам из отрасли, программирую на плюсах больше 10 лет. Если раньше считался сложным языком для гиков и железа, то теперь большинство софта (программы, игры, мобильные приложения) переводят на с++ с java и других языков. Внедрили новые стандарты языка, кроссплатформенные ide и прочие плюшки, что упрощает жизнь разработчику. Основные плюсы — скорость работы + максимальная нативность. Минусы все те-же — высокий порог входа + возможность выстрелить себе в ногу.
avatar

Олег Кузьмичев

Олег Кузьмичев, Спасибо за ответ.
Я тоже около десяти лет программировал на С++, но очень давно.
Последнее приложение на С++ написал в VS2003 в 2004 году.
А потом перешел на С#. И с тех пор меня всегда преследовала ностальгия по C++. Так что мне эта тема интересна.
Теперь есть повод туда вернуться.
avatar

_sg_

Вроде Микрософт активно топит за Rust
avatar

Михаил

Михаил,
Я не знаю что такое Rust. Спасибо,  с удовольствием посмотрю что это.
Но
Я рассматриваю тему с С++ лишь потому, что с переходом на разные там С шарпы, огромное кол-во уже написанного на С++ кода осталось за бортом.
А теперь мы опять можем использовать ранее написанный код или отдельные куски, но уже на более высоком уровне самого языка и с использованием более совершенных инструментальных средств разработки.
А новые языки я вообще не рассматриваю, потому что, люди которые долгое время программировали на С++, как правило, не смотрят на альтернативы, потому что на С++ можно сделать все что угодно и сделать очень хорошо.
avatar

_sg_

_sg_, python ещё крут, для прототипов, моделирования и ML.
avatar

Олег Кузьмичев

Олег Кузьмичев, Питон это уже само собой. Без этого уже никак.
avatar

_sg_

Куда мир катится? Обсуждение С++ на smart-lab... Люди, вы чего ? 
avatar

Alexey

Alexey,
потому что С++ это огромная экосистема, великая эпоха, которая оказалась на грани полного забвения.
А нет, все истинные ценности всегда остаются вместе с нами, хотя иногда отходят на второй план.
avatar

_sg_

А в чем истенные причины? Так ли много примеров, когда получается значительный прирост скорости по сравнению с тем же C#?
avatar

Dmitryy

Dmitryy, 
Причины, их есть у меня.
1. Любовь к жанру.
2. Постепенная миграция на Linux. Там нужен какой-то язык программирования. На Linux альтернативы всего две Java и C++.
С++ я знаю, вернее знал старый С++ без умных указателей. Поэтому выбор очевиден.

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

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

И никаких Asp.Net Core — боже упаси, какое убожество.
avatar

_sg_

_sg_, на линуксе вполне себе есть C#, .Net Core 5 посмотрите. Знаю несколько крупнейших ритейлеров, которые вовсю используют Azure + .Net Core на линуксе, отлично работает и производительность на высоте.
avatar

Dmitryy

Dmitryy,
Спасибо, буду знать, на всякий случай, что С# есть в Linux.
Это уже что-то.
Но я с детства не люблю Диезные тональности (#).

avatar

_sg_

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

Dmitryy

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_

_sg_, да это вполне логичный стек, мне он тоже нравится. Но нода никогда не будет быстрее кора, это как шарп не может быть быстрее плюсов, разный уровень абстракций. Но когда мельчайшая разница в скорости не важна, выбор всегда стоит делать в сторону удобства.

Имхо, лучше получать удовольствие от окружения, решая сложные задачи, чем плеваться и материться, решая простые задачи сложными путями :)
avatar

Dmitryy

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

_sg_

Глянул статью. Интересно. Не знал, что у с плюса есть лямбда.
avatar

Denis Richardson

Denis Richardson, 
лямбды в плюсах со стандарта 11 года. С того времени в языке еще много чего появилось 
avatar

Alexey

А плюсы куда-то уходили? О_о
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

SergeyJu

Мировое противостояние всех против США 
avatar

SergP

C++ никуда не уходил.
Просто появились новые направления — Web, скриптовые языки, мобильные устройства, оттянувшие многих программистов на себя.
Современный С++ стал удобнее, но в тоже время сложнее. В нем сложные абстракции можно сделать предельно сложным образом, чтобы уж точно никто не разобрался. Но это не значит, что нужно так писать код. Я вот пишу на С++11 по большей части + Qt. Qt очень упрощает жизнь, а также позволяет писать кросплатформенные приложения, где один и тот же код можно собрать под Windows, Mac и Linux.

avatar

ЗеленыйЛук

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

_sg_

_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

ivanovr


теги блога _sg_

....все тэги



2010-2020
UPDONW