Re[30]: Java vs C# vs C++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.15 07:19
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Так ниша то не одна, а таких много разных. ) В итоге язык C по разным рейтингам уже много лет держится на одном уровне популярности с Java. А если добавить к нему ещё C++, то является самым популярным с большим отрывом.


Не будет у него никакого отрыва. не ясно как ты считаешь популярность. Ты наверное смотришь рейтинги навроде тиобе или какой мусор.
Смотреть нужно по вакансиям. Если си и сиплюс занимают в сумме больше, чем джава или шарп, это ничего не значит. В общей массе это будет около 20%, всё остальн

Вот скажем, java, .net, python, ruby, php, javascript вместе взятые это около 500 тыс вакансий на glassdoor `united states`.

С++ выдает ажно 370 тыс, но это за счет того, что выборке оказывается практически весь дотнет и обжектив-си. С учетом того, что дотнета реально около 120 тыс, то у сиплюса выходит всего 250 тыс и то это грязные результат

И до кучи — самый популярный язык с большим отрывом, это, внимание, JavaScript — его знают и постоянно применяют примерно 90% разработчиков, даже если в вакансиях это не указано.

Вобщем суммарно выходит так, что доля unmanaged только растет. Собственно ничего неудивительного здесь нет.
Re[15]: Java vs C# vs C+
От: PM  
Дата: 04.10.15 08:08
Оценка:
Здравствуйте, Ikemefula, Вы писали:

PM>>Если что, тема называется "Java vs C# vs C++" а не "Java vs Some other JVM lang" или "C# vs Another CLR lang"


I>Если про сравнение языков, надо сравнивать java c c++ в её JVM, иначе получится сравнение платформ.


Я могу утверждать в том же ключе — надо сравнивать C++ с Java без JVM, иначе получится сравнение платформ.

Реальность же такова, что Java без JVM не существует. И когда JVM приносит больше проблем, чем преимуществ адекватные разработчики это понимают (см. новость про ScyllaDB) а любители единственно правильного инструмента героически преодолевают трудности (LMAX)

PM>>Придёт native машинный код и будет поплевывать на малышей в песочницах свысока.


I>Это неинтересно. Практика показывает, что натив никогда никуда не приходит, кроме тех областей, в которых он сидел еще в 80х. Более того, у этого самого натива подсократилась ниша.


Вам уже во втрой раз неинтересно. Зачем же вы меняете тему дискуссии голословными утверждениями, игнорируя неудобные вопросы?
Re[16]: Java vs C# vs C+
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.15 10:46
Оценка:
Здравствуйте, PM, Вы писали:

I>>Если про сравнение языков, надо сравнивать java c c++ в её JVM, иначе получится сравнение платформ.


PM>Я могу утверждать в том же ключе — надо сравнивать C++ с Java без JVM, иначе получится сравнение платформ.


Именно. Только джава и шарп тот же не содежат определенных вещей, которые обязательны для натива. Они полностью полагаются на джыт, интероп и прочие 'плюшки'.
Re[35]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 13:46
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

EP>>Для коллекций в C++ есть например алгоритмы, итераторы, Boost.Range. Причём по-возможности Boost.Range сохраняет категорию, то есть transformed может вернуть random-access.

S> На ваши итераторы без слез смотреть тяжело. Linq это функциональщина с ленивым выполнением при этом построена на расширениях. Приведи аналог того что я тебе показал. Ведь линк можно применять не только кколекциям но и БД или ODATA http://infostart.ru/public/403524/

Да, и всё это является бледным подобием нормальных решений в C++ (или скажем в D). Причём не потому что Linq делали идиоты, а просто потому что C# не позволяет большего. Для настоящих умных решений требуется наличие элементов метапрограммирования в языке.

EP>>Это реализуется и в C++, причём с генерацией текста запроса во время компиляции. Подробнейшим образом обсуждалось вот в этой теме
Автор: gandjustas
Дата: 13.04.15
.

S> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.
S>Да и мне, что все 32 страницы просматривать? Я тебе на реальные страницы показываю со значениями тестов

Там речь шла про Linq2SQL (и аналоги из других языков), где как раз происходит генерация текстовых запросов.
Re[36]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 13:52
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


EP>>>Для коллекций в C++ есть например алгоритмы, итераторы, Boost.Range. Причём по-возможности Boost.Range сохраняет категорию, то есть transformed может вернуть random-access.

S>> На ваши итераторы без слез смотреть тяжело. Linq это функциональщина с ленивым выполнением при этом построена на расширениях. Приведи аналог того что я тебе показал. Ведь линк можно применять не только кколекциям но и БД или ODATA http://infostart.ru/public/403524/

_>Да, и всё это является бледным подобием нормальных решений в C++ (или скажем в D). Причём не потому что Linq делали идиоты, а просто потому что C# не позволяет большего. Для настоящих умных решений требуется наличие элементов метапрограммирования в языке.

Тогда вам нужен Немерле, а он как известно на Нет

EP>>>Это реализуется и в C++, причём с генерацией текста запроса во время компиляции. Подробнейшим образом обсуждалось вот в этой теме
Автор: gandjustas
Дата: 13.04.15
.

S>> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.
S>>Да и мне, что все 32 страницы просматривать? Я тебе на реальные страницы показываю со значениями тестов

_>Там речь шла про Linq2SQL (и аналоги из других языков), где как раз происходит генерация текстовых запросов.


И я говорю, про Линк для ЕФ или ОДАТА или коллекций. Там абстрагируешься от того, во что в итоге преобразуется Линк. А еще блин метапрограммисты.
и солнце б утром не вставало, когда бы не было меня
Re[31]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 14:09
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>То, что TypeScript можно применять вместо с .net (как впрочем и C++ и Python) совершенно не делает .net необходимым для использования TypeScript.

S>Но нужна среда для отладки и генерации TypeScript в JS. Я отлаживаю одновременно и серверный код и TypeScript.

Для динамических языков IDE в любом случае весьма слабые и не имеют особых преимуществ перед обычными мощными редакторами.

S>А вы его уже начали применять в Питоне? Гугл смотрю тоже подсуетились. Мне TS очень нравится, кучу JQuery библиотек типизировали. Хейлсберг молодец.


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

S> Но так было и раньше. Просто есть разница. Библиотеку написали 2 программиста С++ а используют тысячи Питонистов. Я никогда не заявлял, что C++ не нужен.

S>Я говорил, что у него своя ниша.

А что, тут кто-то с этим спорил? )

_>>Так ниша то не одна, а таких много разных. ) В итоге язык C по разным рейтингам уже много лет держится на одном уровне популярности с Java. А если добавить к нему ещё C++, то является самым популярным с большим отрывом.

S> Ну при этом количество программистов на 1С, PHP и прочие не учитываются. Я уже приводил статистику по России, где твои выкладки далеки от реальности

PHP уступает и C/C++ и Java (про 1C я вообще молчу — это вообще исключительно наше локальное развлечение). Надо просто понимать масштабы деятельности соответствующих языков. К примеру за каждым современным бытовым устройством, автомобилем, промышленными устройствами автоматизации и т.п. стоит команда программистов на C. Уже только этого одного, даже без учёта классического мира ПК, хватило бы для топовых мест в рейтингах. )))
Re[31]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 14:16
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>Ну вот Linq ещё тянет на языковую абстракцию. А причём тут COM вообще? ) И что ещё за прокси в linq? )

S> Ну ты в Code First описал класс со свойствами и типами полей. При выполнении компилятор строит Dynamic прокси поверх него, для того что бы добавить свойства для доступа к базе навигационных свойств итд.
S>https://msdn.microsoft.com/ru-ru/data/jj592886.aspx
S> Там такая ситуация если не было приведения к какому то типу, то ты работаешь с прокси например при работе с неопределенном типом. И для сравнения с типом нужно пользоваться GetType().BaseType()

Насколько я понял, Code First — это всего лишь какая-то библиотечка ORM. Какое это имеет отношение к абстракциям языка? ) Подобное можно ввести в виде библиотеки в большинстве современных языков. Кстати, как раз вопрос различных ORM (а так же их эффективности) и обсуждался в темке, на которую кинул ссылку Евгений. И судя по ней, к Entity Framework с большим сомнением относятся даже любители C#. )))

S> При COM тоже строится прокси и работать с ними можно через dynamic. Это тоже абстракция


COM — это вообще внеязыковая технология. Если же обсуждать некие обёртки вокруг неё в конкретных языках, служащие для облегчения работы с ним, то таких библиотек опять же может быть множество. Кстати, какой конкретно аспект COM интересует? Создание своих объектов/интерфейсов. Или использование чужих?
Re[32]: Java vs C# vs C++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.15 14:18
Оценка:
Здравствуйте, alex_public, Вы писали:

_>PHP уступает и C/C++ и Java (про 1C я вообще молчу — это вообще исключительно наше локальное развлечение).


Ужос, неужели только в России надо обновлять софт под изменение законодательства ?
Открой для себя ERP и прочие SAP и тд. Языки большей частью менеджед или экзотика навроде абапа.

>Надо просто понимать масштабы деятельности соответствующих языков. К примеру за каждым современным бытовым устройством, автомобилем, промышленными устройствами автоматизации и т.п. стоит команда программистов на C. Уже только этого одного, даже без учёта классического мира ПК, хватило бы для топовых мест в рейтингах. )))


Это мягко говоря, заблуждение. На все бытовые устройства будет хорошо если десяток вендоров софта и там далеко не факт, что будет целиком С++.

С автомобилями ровно то же. Кроме того, по известным мене проектам там необязательно С++, а часто более низкоуровневый язык, чтото среднее между фортраном и ассемблером. Но есть, кстати говоря, и Джава.
Re[35]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 14:19
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>>>>Нашел http://rsdn.ru/forum/flame.comp/6069138.1
Автор: greenpci
Дата: 05.06.15

EP>>>>Здесь в C++ варианте лямбда, ФВП и итераторы, а в C# варианте обычный рукопашный цикл
S>>> Угу при этом Complex свой вместо https://msdn.microsoft.com/ru-ru/library/system.numerics.complex(v=vs.110).aspx
EP>>И что? Уже вроде обсудили что это лишь для демонстрации. Вместо Complex там мог быть любой другой тип.
S> А ну да взять, что то тормозное а потом говорить про тормоза.

А при чём тут тормозное? На C++ и C# были подобные реализации

S>Возми из другого int.


Что?

EP>>Чем пример про замыкание
Автор: Evgeny.Panasyuk
Дата: 23.12.14
не устроил? Чем не устроил пример про замену структуры на класс?

S> Я не вижу результатов теста.

1. Про замыкание результаты в первом сообщении темы — ввод замыкания на C# дал десятикратное замедление и гигабайты аллокаций. На C++ результат идентичен ручному коду. Или ты хочешь сказать что C# без замыканий мог обогнать C++? — не, несерьёзно.
2. По поводу замены структуры на класс — я уже ссылку приводил.

EP>>Ты не учитываешь например указатели на стэке. Предполагаю что ситуация в которой в нулевом поколении не выжил никто — маловероятна.

S> Она как раз самая, что вероятная, особенно в серверных вариантах.

Приведи статистику.

S>Мало того, за кучей может следить GC в отдельном потоке.


Точно — конкурентная гадость, которая скорей всего не lock-free.

S>>> Ну у тебя совсем плохо с головой, раз ты мешаешь программистов и водителей в одну кучу.

EP>>А у тебя нормально? Вклиниваешься в сугубо технический спор, и начинаешь петь пространные капитанские песни про целесообразность, общую стоимость, травить байки про всёвбазуупиреается, PHP'шников, при этом мешаешь в одну кучу программистов продуктовых компаний и 1С-ников
S> Ну ты же поешь, про то что на C++ можно делать все.

Где? Это враньё.
Ты не знаешь C++, и делаешь предположения что там нет какой-то фичи, хотя она есть, или что там нужно писать жутко уродливый код, хотя и это не так.
Я и отвечаю — мол то-то и то-то реализуется. Из этого не следует что на нём можно всё.
Есть реальные пробелы, но ты их не указываешь

S>Я тебе говорю, что у него есть своя ниша и эта ниша давно не так как было в 90х.


Очередное кантианство, с которым никто и не собирался спорить. Зачем это капитанство в технические теме — не ясно.

EP>>Дальше что? Ты так и не сказал свой основной тезис. Тебе не нужен C++ — ну и замечательно

S> Наконец то!

Ты ради этого развёл флуд? Чтобы намекнуть что лично тебе, для твоих задач C++ не нужен?
А — Адекватность

EP>>Для коллекций в C++ есть например алгоритмы, итераторы, Boost.Range. Причём по-возможности Boost.Range сохраняет категорию, то есть transformed может вернуть random-access.

S> На ваши итераторы без слез смотреть тяжело.

Ты просто не умеешь их готовить.

S>Linq это функциональщина с ленивым выполнением


Смотри Boost.Range, если не понятно — спрашивай. Там как раз декларативность с ленивостью

S>при этом построена на расширениях.


Для этого расширения не нужны.

S>Приведи аналог того что я тебе показал.


Ты показывал что-то про коллекции?
Вот пример Boost.Range для коллекций:
values | filtered(_1 > 5) | transformed(_1 * 111)
причём на выходе можно получить bidirectional range.
Покажи аналог LINQ — сравним выразительность.

S>>>// Этот запрос получает значения периодического реквизита с ID 9697 в порядке убывания даты, времени, и строки документа

S>>>...
S>>>Генерируется следующий запрос
EP>>Это реализуется и в C++, причём с генерацией текста запроса во время компиляции. Подробнейшим образом обсуждалось вот в этой теме
Автор: gandjustas
Дата: 13.04.15
.

S> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.

В результате генерируется текст запроса, так понятнее?

S>Да и мне, что все 32 страницы просматривать?


Если интересна тема — смотри, там много разного. Конкретный пример на тему — sqlpp11.
Re[32]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 14:26
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


_>>>То, что TypeScript можно применять вместо с .net (как впрочем и C++ и Python) совершенно не делает .net необходимым для использования TypeScript.

S>>Но нужна среда для отладки и генерации TypeScript в JS. Я отлаживаю одновременно и серверный код и TypeScript.

_>Для динамических языков IDE в любом случае весьма слабые и не имеют особых преимуществ перед обычными мощными редакторами.

Значит ты VS не пробовал
S>>А вы его уже начали применять в Питоне? Гугл смотрю тоже подсуетились. Мне TS очень нравится, кучу JQuery библиотек типизировали. Хейлсберг молодец.

_>Т.к. я в целом любитель статической типизации, то мы естественно пробовали использовать TypeScript в наших делах, почти сразу после его появления. Но как-то не пошло. В том смысле, что не чувствовалось никаких практических бонусов от применения. Видимо вследствие того, что у нас слишком небольшие объёмы JS кода. Возможно на больших проектах смысл появился бы.


А вот я работая с 1С где интеллисенсе очень убогий это сразу чувствую. Смысл в подсказках плюс выявления синтаксических ошибок еще на этапе кодирования.
Кстати возможно у него будет применение не только в браузерах.
Кстати есть и транслятор из C# в JS http://habrahabr.ru/company/enterra/blog/252079/

К счастью для него, счастливое будущее уже практически наступило. Есть такой проект, который называется DuoCode. Он умеет транслировать C#-код в JavaScript. Пока он в состоянии beta, но у него уже весьма неплохо получается: поддерживаются нововведения C# 6.0, Generic-типы, Reflection, структуры и LINQ, а отлаживать итоговый JavaScript можно на исходном C#.


S>> Но так было и раньше. Просто есть разница. Библиотеку написали 2 программиста С++ а используют тысячи Питонистов. Я никогда не заявлял, что C++ не нужен.

S>>Я говорил, что у него своя ниша.

_>А что, тут кто-то с этим спорил? )


_>>>Так ниша то не одна, а таких много разных. ) В итоге язык C по разным рейтингам уже много лет держится на одном уровне популярности с Java. А если добавить к нему ещё C++, то является самым популярным с большим отрывом.

S>> Ну при этом количество программистов на 1С, PHP и прочие не учитываются. Я уже приводил статистику по России, где твои выкладки далеки от реальности

_>PHP уступает и C/C++ и Java (про 1C я вообще молчу — это вообще исключительно наше локальное развлечение). Надо просто понимать масштабы деятельности соответствующих языков. К примеру за каждым современным бытовым устройством, автомобилем, промышленными устройствами автоматизации и т.п. стоит команда программистов на C. Уже только этого одного, даже без учёта классического мира ПК, хватило бы для топовых мест в рейтингах. )))

А почти на каждом произвотстве, торговле есть программист 1С. Да и форумы 1С кие полны народу. RSDN сдулся.
и солнце б утром не вставало, когда бы не было меня
Re[32]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 14:32
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


_>>>Ну вот Linq ещё тянет на языковую абстракцию. А причём тут COM вообще? ) И что ещё за прокси в linq? )

S>> Ну ты в Code First описал класс со свойствами и типами полей. При выполнении компилятор строит Dynamic прокси поверх него, для того что бы добавить свойства для доступа к базе навигационных свойств итд.
S>>https://msdn.microsoft.com/ru-ru/data/jj592886.aspx
S>> Там такая ситуация если не было приведения к какому то типу, то ты работаешь с прокси например при работе с неопределенном типом. И для сравнения с типом нужно пользоваться GetType().BaseType()

_>Насколько я понял, Code First — это всего лишь какая-то библиотечка ORM. Какое это имеет отношение к абстракциям языка? ) Подобное можно ввести в виде библиотеки в большинстве современных языков. Кстати, как раз вопрос различных ORM (а так же их эффективности) и обсуждался в темке, на которую кинул ссылку Евгений. И судя по ней, к Entity Framework с большим сомнением относятся даже любители C#. )))

Это не библиотечка. Она входит в состав Entity Framework для отображения модели на БД. http://infostart.ru/public/393228/
А это ни что иное как абстракция. По ней генерятся прокси классы, миграция итд.


S>> При COM тоже строится прокси и работать с ними можно через dynamic. Это тоже абстракция


_>COM — это вообще внеязыковая технология. Если же обсуждать некие обёртки вокруг неё в конкретных языках, служащие для облегчения работы с ним, то таких библиотек опять же может быть множество. Кстати, какой конкретно аспект COM интересует? Создание своих объектов/интерфейсов. Или использование чужих?

COM в Net это совсем другое, так как идет скрещивание ужа с колючей проволокой.
Меня не интересует. Я знаю. А в 1С там голый IDispatch без tld и ITypeInfo. В С# разруливается через dynamic
и солнце б утром не вставало, когда бы не было меня
Re[35]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 14:45
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Где предпочтительнее использовать C++, а где C#,Java и другие языки.

S>1. С++ реально заточен под скорость.

Это всего лишь одна из областей, где C/C++ имеют огромное преимущество. Я бы скорее перечислил эти области так:

— тяжёлые вычисления (быстродействие здесь существенно, т.к. экономит время — деньги).
— реалтайм системы и близкие к ним (тут на самом деле много чего есть, от высоконагруженных серверов до тяжёлых 3D игр или CAD систем).
— системы с ограниченными ресурсами (я уже приводил примеры здесь). Это огромная область, причём постоянно растущая (а сейчас вообще в центре моды).
— системный код (работа с железом и т.п.). Никто же не пишет драйверы на Питоне, хотя там во многих случаях не требуется ни быстродействия ни ограниченности в ресурсах.
— реально кроссплатформенный код. К примеру единственная в данный момент полноценно кроссплатформенная GUI библиотека (Qt) написана на C++.
— метапрограммирование в мейнстрим языке.

Причём перечисленное — это не то где можно применять C++, а где его именно что выгоднее других применять. А можно практически везде, но в других областях могут быть удобнее другие решения.

S>Кстати а как там со скоростью компиляции и отладки? А то до недавнего времени многие программировали в блокноте


Ээээ что? ) Какой ещё блокнот? )))

S>2. Уровень сложности в С++ значительно превышает противопоставляемые ему языки


Это да.

S>3. Во многих случаях рулят динамические языки.


Да, есть области где динамика безусловно удобнее. Те же скрипты скажем.

S>C# достаточно простой язык сочетающий в себе как статическую типизацию, так и динамическую. Есть зачатки функциональщины.


Какая ещё динамическая типизация в C#? )))

S>Кроме самого языка огромную роль играет еще и VS в которую встроено для поддержки различных технологий, что приводит к удобству программирования и отладки


Для Java и C++ это всё тоже в наличие) Причём к тому же ещё и кроссплатформенное.

S>Выявим те отрасли где применим C++, а где C# и почему.

S> Пока разговор свелся к тому, что у С# проблемы с инлайном и векторизацией.
S>Теперь зададимся вопросом, а какова доля в приложении таких недостатков?

Это всё уже давно обсуждалось на этом форуме. Главные преимущества Java и C# хорошо известны — эти языки позволяют достаточно безопасно использовать не особо квалифицированных программистов, что является крайне удобным для большинства не IT компаний (так называемый enterprise, но только своими силами, а не через заказ у профильных компаний).
Re[36]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 14:47
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:


EP>1. Про замыкание результаты в первом сообщении темы — ввод замыкания на C# дал десятикратное замедление и гигабайты аллокаций. На C++ результат идентичен ручному коду. Или ты хочешь сказать что C# без замыканий мог обогнать C++? — не, несерьёзно.

Так дай конкретную ссылку. Я не ленюсь и даю людям информацию. А когда говорят об гигабайты аллокаций это вообще сумасшедший сценарий и неправильный выбор алгоритма.
EP>2. По поводу замены структуры на класс — я уже ссылку приводил.

EP>>>Ты не учитываешь например указатели на стэке. Предполагаю что ситуация в которой в нулевом поколении не выжил никто — маловероятна.

S>> Она как раз самая, что вероятная, особенно в серверных вариантах.

EP>Приведи статистику.

Почитай статей огромное количетво.

S>>Мало того, за кучей может следить GC в отдельном потоке.


EP>Точно — конкурентная гадость, которая скорей всего не lock-free.

Я давно не интересовался. Меня GC давно не беспокоит. Только вызываю его при работе с ком.

S>>>> Ну у тебя совсем плохо с головой, раз ты мешаешь программистов и водителей в одну кучу.

EP>>>А у тебя нормально? Вклиниваешься в сугубо технический спор, и начинаешь петь пространные капитанские песни про целесообразность, общую стоимость, травить байки про всёвбазуупиреается, PHP'шников, при этом мешаешь в одну кучу программистов продуктовых компаний и 1С-ников
S>> Ну ты же поешь, про то что на C++ можно делать все.

EP>Где? Это враньё.

EP>Ты не знаешь C++, и делаешь предположения что там нет какой-то фичи, хотя она есть, или что там нужно писать жутко уродливый код, хотя и это не так.
EP>Я и отвечаю — мол то-то и то-то реализуется. Из этого не следует что на нём можно всё.
EP>Есть реальные пробелы, но ты их не указываешь
Ну так почему столько программистов 1С программирующих на чудовищно медленном интерпретаторе. Значит скорость бизнес слоя в итоге не важна.
Нужна скорость SQL


S>>Я тебе говорю, что у него есть своя ниша и эта ниша давно не так как было в 90х.


EP>Очередное кантианство, с которым никто и не собирался спорить. Зачем это капитанство в технические теме — не ясно.


EP>>>Дальше что? Ты так и не сказал свой основной тезис. Тебе не нужен C++ — ну и замечательно

S>> Наконец то!

EP>Ты ради этого развёл флуд? Чтобы намекнуть что лично тебе, для твоих задач C++ не нужен?

EP>А — Адекватность
Я тебе специально стишок привел. Мамы разные нужны, мамы разные важны. Понадобится мне C++ поверь применю и его. Блюя, но применю.
EP>>>Для коллекций в C++ есть например алгоритмы, итераторы, Boost.Range. Причём по-возможности Boost.Range сохраняет категорию, то есть transformed может вернуть random-access.
S>> На ваши итераторы без слез смотреть тяжело.

EP>Ты просто не умеешь их готовить.

Мне линк больше нравится или Хаскель

S>>Linq это функциональщина с ленивым выполнением


EP>Смотри Boost.Range, если не понятно — спрашивай. Там как раз декларативность с ленивостью


S>>при этом построена на расширениях.


EP>Для этого расширения не нужны.


S>>Приведи аналог того что я тебе показал.


EP>Ты показывал что-то про коллекции?

EP>Вот пример Boost.Range для коллекций:
EP>
EP>values | filtered(_1 > 5) | transformed(_1 * 111)
EP>
причём на выходе можно получить bidirectional range.

EP>Покажи аналог LINQ — сравним выразительность.
 from value in values
where value > 5
Select new {value* 111}

или
values.where(value =>value > 5).Select(value =>value* 111)



S>>>>// Этот запрос получает значения периодического реквизита с ID 9697 в порядке убывания даты, времени, и строки документа

S>>>>...
S>>>>Генерируется следующий запрос
EP>>>Это реализуется и в C++, причём с генерацией текста запроса во время компиляции. Подробнейшим образом обсуждалось вот в этой теме
Автор: gandjustas
Дата: 13.04.15
.

S>> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.

EP>В результате генерируется текст запроса, так понятнее

В итоге мне наплевать, вто что трансформирутся Linq запрос.

S>>Да и мне, что все 32 страницы просматривать?


EP>Если интересна тема — смотри, там много разного. Конкретный пример на тему — sqlpp11.
и солнце б утром не вставало, когда бы не было меня
Re[35]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 14:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Давай что бы закончить дискуссию сделаем выводы.

S>Где предпочтительнее использовать C++, а где C#,Java и другие языки.
S>1. С++ реально заточен под скорость.

Да, и не только.

S>Кстати а как там со скоростью компиляции


Скорость компиляции медленнее чем у других mainstream языков.

S>и отладки?


А что с отладкой? Тот же Edit and Continue был уже давно.

S>А то до недавнего времени многие программировали в блокноте


В каком блокноте?

S>2. Уровень сложности в С++ значительно превышает противопоставляемые ему языки


Сам язык сложнее безусловно. Но из этого не следует для старта нужно знать всю эту сложность.

S>3. Во многих случаях рулят динамические языки.


Это спорный тезис.

S>Выявим те отрасли где применим C++, а где C# и почему.


Не, у тебя это не получится — ты банально не знаешь C++, и судишь по нему на основе стародавней мифологии.

S> Пока разговор свелся к тому, что у С# проблемы с инлайном и векторизацией.


Это же передёргивание, я уже несколько раз сказал что векторизацию не учитываю, так сказать даю фору. И проблемы не только с инлайном — я уже их перечислял, но ты опять игнорируешь.

S>Теперь зададимся вопросом, а какова доля в приложении таких недостатков?


В каком приложении?
Re[13]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 14:48
Оценка:
Здравствуйте, Ikemefula, Вы писали:

_>>Потому что там этих оптимизаторов просто нет. )

I>Именно. Осталось объяснить, что же это за заговор такой — такой распрекрасный язык, раза в два даст прибавки к производительности а оптимизаторов — нет.

Не знаю про C++ для JVM (я про такое даже никогда не слышал), а скажем версия C++ для .net — это не C++, а какая-то хрень убогая. ))) Причём опять же не потому, что авторы идиоты, а потому что физически невозможно создать нормальный C++ под clr.
Re[14]: Java vs C# vs C++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.15 14:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Причём опять же не потому, что авторы идиоты, а потому что физически невозможно создать нормальный C++ под clr.


Опаньки !
Re[31]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 14:54
Оценка:
Здравствуйте, Ikemefula, Вы писали:

_>>Так ниша то не одна, а таких много разных. ) В итоге язык C по разным рейтингам уже много лет держится на одном уровне популярности с Java. А если добавить к нему ещё C++, то является самым популярным с большим отрывом.

I>Не будет у него никакого отрыва. не ясно как ты считаешь популярность. Ты наверное смотришь рейтинги навроде тиобе или какой мусор.
I>Смотреть нужно по вакансиям. Если си и сиплюс занимают в сумме больше, чем джава или шарп, это ничего не значит. В общей массе это будет около 20%, всё остальн
I>Вот скажем, java, .net, python, ruby, php, javascript вместе взятые это около 500 тыс вакансий на glassdoor `united states`.
I>С++ выдает ажно 370 тыс, но это за счет того, что выборке оказывается практически весь дотнет и обжектив-си. С учетом того, что дотнета реально около 120 тыс, то у сиплюса выходит всего 250 тыс и то это грязные результат

Ну и? ) Ты по сути подтверждаешь мои слова. Да, и если что, можно быть лидером рынка и с 5% от него — всё зависит от расклада по остальным участникам. )))

I>И до кучи — самый популярный язык с большим отрывом, это, внимание, JavaScript — его знают и постоянно применяют примерно 90% разработчиков, даже если в вакансиях это не указано.


JS держится на неплохом уровне только из-за принуждения к его использованию в браузерах.

I>Вобщем суммарно выходит так, что доля unmanaged только растет. Собственно ничего неудивительного здесь нет.


Ты видимо хотел сказать "managed"? ) Ну и как бы с этим никто и не спорит. Тем более, что самое интенсивное развитие в последнее десятилетие было со стороны веб'а. Хотя сейчас ситуация понемногу начинает меняться... )
Re[19]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 14:59
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>Сравнивать нужно с С++ под JVM, что бы все были в равных условиях.

EP>>А я что предлагаю? Не, ну действительно "буквы не читай, сообщения пиши"
EP>>

EP>>>Можем сделать тест: пишем примерно одинаковый код с небольшими абстракциями на Java и на C++.
EP>>>C++ перегоняем в Java по следующей схеме: C++ -> JavaScript через Emscripten -> Java механически вручную, без принципиальных изменений.
EP>>>Согласен?

I>Джаваскрипт что ли стал уже сиплюсплюсом или что ?

Если не понял схему, сразу бы вопрос задал.
Поясняю. Нормального компилятора C++ -> JVM я не знаю, ты его тоже не привёл. Для сравнения я предлагаю перевести C++ в Java по следующей схеме:
1. Компилируем C++ в JavaScript, с помощью Emscripten.
2. Из получившегося JavaScript кода выдираем релевантные куски, механически переводим их в Java код без принципиальных изменений и делаем необходимый мини-обвяз (на замену тому которые был в JavaScript коде).
Схема ясна?
Re[36]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 14:59
Оценка:
_>Какая ещё динамическая типизация в C#? )))
ключевое слово dynamic
S>>Кроме самого языка огромную роль играет еще и VS в которую встроено для поддержки различных технологий, что приводит к удобству программирования и отладки

_>Для Java и C++ это всё тоже в наличие) Причём к тому же ещё и кроссплатформенное.


S>>Выявим те отрасли где применим C++, а где C# и почему.

S>> Пока разговор свелся к тому, что у С# проблемы с инлайном и векторизацией.
S>>Теперь зададимся вопросом, а какова доля в приложении таких недостатков?

_>Это всё уже давно обсуждалось на этом форуме. Главные преимущества Java и C# хорошо известны — эти языки позволяют достаточно безопасно использовать не особо квалифицированных программистов, что является крайне удобным для большинства не IT компаний (так называемый enterprise, но только своими силами, а не через заказ у профильных компаний).


То есть скорость разработки и инструментов не важны?
А вот представь, что я программирую на нескольких языках. Мне нужно найти примеры для решения огромного круга задач. Совместить их с 1С.
Для C# я нахожу все быстро и применяю.
Для большинства задач скорости выше крыши. Те недостатки которые есть не являются критическими, а в основных реалиях код на C# генерит тот же машинный код, что и C++.
А вот для многих и C# и Java тоже оочень сложны.

Кстати про Linq. То много расширений https://github.com/loresoft/EntityFramework.Extended/wiki/Batch-Update-and-Delete
и солнце б утром не вставало, когда бы не было меня
Re[36]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 15:02
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:


S>>Выявим те отрасли где применим C++, а где C# и почему.


EP>Не, у тебя это не получится — ты банально не знаешь C++, и судишь по нему на основе стародавней мифологии.

Ну ты же знаешь все. Так что можешь и ответить на этот вопрос.
S>> Пока разговор свелся к тому, что у С# проблемы с инлайном и векторизацией.

EP>Это же передёргивание, я уже несколько раз сказал что векторизацию не учитываю, так сказать даю фору. И проблемы не только с инлайном — я уже их перечислял, но ты опять игнорируешь.


S>>Теперь зададимся вопросом, а какова доля в приложении таких недостатков?


EP>В каком приложении?

Вооооо. Наконец то. А то сферический конь.
Еще раз задам вопрос

Выявим те отрасли где применим C++, а где C# и почему.

и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.