Sinix — ну вот что ты улыбаешься? Сам же присылал ссылки на статьи, где сказано, что сборщик мусора от MS неприемлем для Web-проектов. А в расте такие проблемы можно избежать.
Десктоп умер, теперь облака и мобильники. И там и там — дорога расту. (На мобильниках — Redox, Robigalia )
Re: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>Это ненадолго. Да сейчас есть небольшой прогресс с Qt, но поскольку десктоп умирает целиком, то Qt умрёт вместе с WPF.
Я говорю всё будет убито сиплюсплюсом, а кьют это лишь одна из библиотек в парадигме ООП.
А больше C++ ни для чего не используется. Во всех остальных местах python и web.
Это как фортран/кобол — остались редкие штучные специалисты вроде тебя,
а новые программисты C++ учить уже не будут.
Re[5]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, Arsen.Shnurkov, Вы писали:
V>> а кьют это лишь одна из библиотек
AS>А больше C++ ни для чего не используется. Во всех остальных местах python и web.
Как говаривал Страуструп, что он не будет заострять внимание на Си, так как те кто знают C++ легче переходят на него, чем наоборот. Имея связку C/C++ мы получаем абсолютно подавляющее превосходство над всеми языками. В наличии доступно четыре парадигмы:
В итоге C/C++ это драйвера, серверы, прикладные приложения, игры, CAD и многое другое. Взять тот же web, на чём он базируется? А базируется он на серверах. На чём написаны сервера? На C/C++.
Причём не смотря на использование Си, парадигма обобщённого программирования C++ способна его полностью заменить без какой-либо потери быстродействия. Живучесть C/C++ банальна и основывается на том, что так уж получилось, что эти языки стали основой для всего остального.
Я, кстати, не агитирую всё бросать и срочно начинать учить C++, мне и самому лень. Но вот чисто для примера:
Можно очень долго перечислять, начиная с библиотек и заканчивая огромным множеством программ. Чтобы убить C/C++ придётся разрушить фундамент на котором строится современное ПО, так как это и есть сам фундамент. Скажу даже более, если стереть все программы, которые используют C/C++ компьютеры вообще не будут работать, просто потому, что там нечему и не на чем будет работать. А если стереть какой-нибудь python, java, php и прочее, то ситуация будет хоть и крайне неприятной, но не столь плачевной.
AS>Это как фортран/кобол — остались редкие штучные специалисты вроде тебя,
Было бы хорошо, если бы я действительно был специалистом в C++. Но к слову не вижу программ на фортране и коболе, а на C/C++ их просто море. Причём те которые на Си для меня не сказал бы что особо отличимы от тех, которые на C++. Я скорее вижу различие парадигм и элементы, которые есть только в C++, но нет в Си.
AS>а новые программисты C++ учить уже не будут.
Это их дело, вон некоторые уже давно утверждают, что в будущем компьютеры будут сами себя программировать, а программисты станут не нужны.
Re[2]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>Sinix — ну вот что ты улыбаешься?
Глубине анализа и неопровержимости аргументов
AS>Сам же присылал ссылки на статьи, где сказано, что сборщик мусора от MS неприемлем для Web-проектов.
Эмм??? А можно ссылочку?
Что-то не припоминаю ничего. Может быть, про войну с GC в kestrel? Которая следствие решения сделать критичную часть API поверх генерик-интерфейсов коллекций (IDictionary который). И вылезает оно при не совсем типичных нагрузках, в районе 10e6 RPS.
Если не считать правильный способ — просто использовать свою коллекцию с структурой-итератором — то решений для этой экзотики есть как минимум четыре.
* stackalloc (идеальное по затраты / выигрыш).
* soft-realtime GC (в недрах MS research похоронены как минимум три реализации (а всего CIL-совместимых реализаций GC, по слухам, несколько десятков), ссылки на исследовательские pdf-ки, если надо, поищу).
* hot-path recompilation с агрессивным инлайнингом (заготовки тоже можно позаимствовать у JS team всё того же MS research).
* .net native, который по производительности сможет вплотную приблизиться к плюсам (и по времени компиляции — тоже).
AS>Десктоп умер, теперь облака и мобильники. И там и там — дорога расту. (На мобильниках — Redox, Robigalia )
Ребят, вам не надоедает? Буквально каждые три-четыре месяца кто-то торжественно объявляет новый закапыватель для %подставить_язык%. На практике, правда, про закапывателя уже через год никто не вспоминает, даже сами агитаторы за.
Единственное, что с натяжкой можно назвать выстрелившим за последние лет десять — TypeScript. И то только потому, что необходимость подобной штуки была очевидна, а конкуренты как-то умудрились забить на совместимость с JS.
Re[6]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, so5team, Вы писали:
S>Ну т.е. совсем никаких причин вне зависимости от предметной области, требований, сроков, бюджетов, имеющихся наработок и пр. сопутствующих условий?
Ну понятно, что если других вариантов нет, кроме плюсов — то выбирать не придется. Здесь же подразумевалось, что если есть выбор, то выбран будет не с++
Re[9]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, r.kamenskiy, Вы писали:
S>>Ну т.е. совсем никаких причин вне зависимости от предметной области, требований, сроков, бюджетов, имеющихся наработок и пр. сопутствующих условий?
RK>Ну понятно, что если других вариантов нет, кроме плюсов — то выбирать не придется. Здесь же подразумевалось, что если есть выбор, то выбран будет не с++
Началось все с "Не вижу причин сейчас начинать новый проект на C++", а пришло к "если других вариантов нет, кроме плюсов — то выбирать не придется".
Давайте сделаем еще одну попытку: когда лично вы сделаете для себя вывод о том, что "других вариантов" нет? По каким критериям вы определяете "Ну понятно"?
Re[10]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, so5team, Вы писали:
S>Началось все с "Не вижу причин сейчас начинать новый проект на C++", а пришло к "если других вариантов нет, кроме плюсов — то выбирать не придется".
Ну вроде очевидно, что если выбора нет — то его просто нет. Бывает, что нет выбора и писать нужно на Fortran. И это не отменяет того, что в общем случае я не вижу причин начинать новый проект на Fortran
S>Давайте сделаем еще одну попытку: когда лично вы сделаете для себя вывод о том, что "других вариантов" нет? По каким критериям вы определяете "Ну понятно"?
— embedded
— драйвера
Здесь обычно выбор между ассембелом и C/C++
Re[11]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, r.kamenskiy, Вы писали:
RK>Ну вроде очевидно, что если выбора нет — то его просто нет.
По-моему, очевидно, что отсутствие выбора -- это вполне себе причина. Вы эту причину одновременно и признаете, и не видите. Как так?
S>>Давайте сделаем еще одну попытку: когда лично вы сделаете для себя вывод о том, что "других вариантов" нет? По каким критериям вы определяете "Ну понятно"?
RK>- embedded RK>- драйвера
RK>Здесь обычно выбор между ассембелом и C/C++
Выше по ветке были приведены примеры приложений, разработанных на C++, которые ни в коем разе не относятся ни к embedded, ни к драйверам. Тем не менее, выбор C++ для них выглядит более адекватным, чем выбор каких-то других языков.
Re[8]: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, so5team, Вы писали:
RK>>А есть примеры приложений написаных не во времена, когда и выбора то особо не было? S>MongoDB, RethinkDB, ScyllaDB, ClickHouse
Пример из другой области — Facebook Moments:
https://code.facebook.com/posts/498597036962415/under-the-hood-building-moments/
There are many alternatives for sharing code between mobile platforms. We wanted to optimize for fast iteration, app performance, and native look and feel. After weighing the alternatives, we chose to write the UI in platform-specific code and the business logic in shared code using C++. Traditionally, C++ is known for providing high performance while lacking easy memory management and higher-level abstractions. However, using modern C++11 features such as std::shared_ptr reference counting, lambda functions, and auto variable declarations, we were able to quickly implement highly performant, memory-safe code.
Цитата из недр того же Facebook:
"The going word at Facebook is that 'reasonably written C++ code just runs fast,' which underscores the enormous effort spent at optimizing PHP and Java code. Paradoxically, C++ code is more difficult to write than in other languages, but efficient code is a lot easier [to write in C++ than in other languages]." – Herb Sutter at //build/, quoting Andrei Alexandrescu
Re: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом
Здравствуйте, r.kamenskiy, Вы писали:
RK>Не вижу причин сейчас начинать новый проект на C++
Мы свой проект сделали на С++(использовали Qt), конкуренты на Java. Теперь клиенты плюются на их софт, тормозной и жрущий память. А времени и денег влито уже очень много, что бы взять и переписать заново на с++. Причем они то думали что на жабе у них реальная кросплатформенность получится, а как оказалось нужен мощный комп и про всякие планшеты можно забыть. А у нас без проблем на слабом железе не просто работает, а летает.
Re: Да ну и фиг с этой Java-ой. .Net будет убит Rust-ом