Собственно это про Россию вопрос. Откуда вы беретесь там?
Те я понимаю про Украину — там люди не инженеры скорее натуры творческие и школы инженерной нет. Для них си_щарп и шарепонит норм
С Москвой тоже понятно — там он сегодня сшарп крафтсмен, завтра сантехник, потом совладелец гей-клуба (гонится за мечтой так сказать)
Но Россия? Это же против рынка. На рынке джава там востребован и тп. Откуда это все? Зачем??
Здравствуйте, a_g_99, Вы писали:
__>Собственно это про Россию вопрос. Откуда вы беретесь там?
Вот какой ты надотумок, такие и вопросы у тебя дебильные — даже сформулировать толком не можешь! Клоун блин...
Как раз с т.з. C# вполне понятно, почему язык так популярен. А вот что делают в 21 веке диноJavры — вообще неясно! Время простыней кода прошло, сейчас времена DSL'ей и высокоуровневых языков, а не "покоцаных сипипей с виртуалочками".
Здравствуйте, Kolesiki, Вы писали:
K>Здравствуйте, a_g_99, Вы писали:
__>>Собственно это про Россию вопрос. Откуда вы беретесь там?
K>Вот какой ты надотумок, такие и вопросы у тебя дебильные — даже сформулировать толком не можешь! Клоун блин... K>Как раз с т.з. C# вполне понятно, почему язык так популярен. А вот что делают в 21 веке диноJavры — вообще неясно! Время простыней кода прошло, сейчас времена DSL'ей и высокоуровневых языков, а не "покоцаных сипипей с виртуалочками".
об_ясните нормально — если каждая мартышка может с_шарп/дсл то за что платить?
__>Но Россия? Это же против рынка. На рынке джава там востребован и тп. Откуда это все? Зачем??
Рынок он большой. Примерно половина рынка просто бегает за хайпом — позавчера они всё писали на nodejs, вчера на go, сегодня фанатеют от scala и rust. К сожалению эта толпа как дискотечный автобус — сверкает и шумит на всю улицу, и кажется что кроме них никого и нет. Делают они при этом мало и криво — начинают очередной опен-сорс, сил хватает в основном допилить некие "базовые библиотеки", типа там в json сериализовать, в лог написать, и т.д. После чего инвесторские деньги заканчиваются и все разбегаются. А в это время спокойно появляются проекты на шарпе, на давно и полностью готовых библиотеках успешно решают задачи бизнеса, после чего спокойно заростают мхом и превращаются в legacy.
А ещё современный шарп, из-за инерции мышления многих разработчиков, очень недооценен — например недавно запускал нагрузочный тест проектика написанного на шарпе "влобешник" — без каких-то грязных оптимизаций, комфортно используя async/await, создавая объекты как попало и где попало, ловя исключения и записывая в log (привет языкам без исключений, до вас уже дошло почему деды, которые реально бились за каждый такт, придумали исключения аж 50 лет назад? лол). Чуть ли не PoC-код можно сказать И вот два дня эта штука держала пару тыщ коннектов и гоняла терабайты траффика без заметных признаков деградации, просадок из-за gc, и т.д. Весёлый момент который запомнился — как раз во время написания на хабре выскочила статья что Discord бросают плохой Go и бегут на хороший Rust — робяты, все адекватные люди видели проблемы go когда вы только начали хайпить его в блоге
В общем если стартап и деньги инвесторов то однозначно надо брать что-то хайповое, но если надо получить стабильное решение задачи и быстро то современный шарп имеет сотню очков форы.
P.S. Просто чтоб притушить желание сменить тему на "ты ничего не знаешь" — есть и опыт на Scala (на GitHub и публичными review), на rust и читаю и пишу, и т.д.
Здравствуйте, hi_octane, Вы писали:
_>P.S. Просто чтоб притушить желание сменить тему на "ты ничего не знаешь" — есть и опыт на Scala (на GitHub и публичными review), на rust и читаю и пишу, и т.д.
нет-нет, я рад дискуссии и понять.
а в чем преимущество? быстрая разработка/прототипирование и все?
Здравствуйте, AlexRK, Вы писали:
ARK>Не против рынка. Сишарп тоже востребован в не меньшей степени. Почему бы и нет.
мое понимание основано на видении американского рынка где сищарп порицается. в основном на нем работают юва пипл которые не хотят программировать просто нужен хоть какой то пейчек
Здравствуйте, a_g_99, Вы писали:
ARK>>Не против рынка. Сишарп тоже востребован в не меньшей степени. Почему бы и нет.
__>мое понимание основано на видении американского рынка где сищарп порицается. в основном на нем работают юва пипл которые не хотят программировать просто нужен хоть какой то пейчек
По-моему, порицать сишарп и при этом одновременно говорить про инженерную культуру на примере жабы — это что-то весьма странное. Не?
Здравствуйте, hi_octane, Вы писали:
>>В общем если надо получить стабильное решение задачи и быстро то современный шарп имеет сотню очков форы.
Да что там шарп, у нас Delphi лет 20 как работает. Просто работает. Без хайпа. Но на бэкенде, мобилках и десктопе. Быстро и удобно. И легаси переписывать не нужно, только добавляем новое.
А вы бегайте, бегайте за хайпом и "новыми" фреймворками. MS уже несколько раз свой ASP переписал. Удачи, чё )))
Здравствуйте, a_g_99, Вы писали:
__>нет-нет, я рад дискуссии и понять. __>а в чем преимущество? быстрая разработка/прототипирование и все?
Слушайте, у вас вроде бы флаг США на аватарке. Так вы может в США спросите, а что же там на C# разрабатывают? У автора Linq2DB вот спросите, что там за банк такой у него, который вместо Кобола на C# ведёт разработку.
В чём преимущество C# над явой — в том, что язык менее деревянный, более строго типизированный, работает в общем-то быстрее Явы, за счёт особенностей CLR. Я понимаю, что JVM является самой совершенной VM на планете, без шуток, но очень уж она старая, не всё в ней можно оптимизировать. Если бы те же самые усилия по ускорению были вложены в CLR, то скорость работы C# была бы сравнима с нативным кодом.
Здравствуйте, AlexRK, Вы писали:
ARK>По-моему, порицать сишарп и при этом одновременно говорить про инженерную культуру на примере жабы — это что-то весьма странное. Не?
почему? я конечно смотрю из своего монастыря java/c++/python но лучшие инженерные решения были сделаны на джава.
Здравствуйте, Слава, Вы писали:
С>Слушайте, у вас вроде бы флаг США на аватарке. Так вы может в США спросите, а что же там на C# разрабатывают? У автора Linq2DB вот спросите, что там за банк такой у него, который вместо Кобола на C# ведёт разработку.
С>В чём преимущество C# над явой — в том, что язык менее деревянный, более строго типизированный, работает в общем-то быстрее Явы, за счёт особенностей CLR. Я понимаю, что JVM является самой совершенной VM на планете, без шуток, но очень уж она старая, не всё в ней можно оптимизировать. Если бы те же самые усилия по ускорению были вложены в CLR, то скорость работы C# была бы сравнима с нативным кодом.
друг мой чтобы вы знали — быстрее джава только С++. я не про микробенчмарки сейчас а про производительность
Здравствуйте, a_g_99, Вы писали:
ARK>>По-моему, порицать сишарп и при этом одновременно говорить про инженерную культуру на примере жабы — это что-то весьма странное. Не?
__>почему? я конечно смотрю из своего монастыря java/c++/python но лучшие инженерные решения были сделаны на джава.
Какие, например, если не секрет? Венец творения человеческого разума Spring Framework?
По-моему (могу ошибаться), если вести речь об "инженерных решениях", то на их роль скорее претендуют сложные и/или ответственные системы — операционные системы, компиляторы, графические движки, программы для самолетов/марсоходов/коллайдеров, ну и т.п. А это C/C++, Ada, Fortran. А жаба — это по большей части просто быдлокод. Все, что на ней можно написать, можно написать и на C#.
Здравствуйте, AlexRK, Вы писали:
ARK>Какие, например, если не секрет? Венец творения человеческого разума Spring Framework?
ARK>По-моему (могу ошибаться), если вести речь об "инженерных решениях", то на их роль скорее претендуют сложные и/или ответственные системы — операционные системы, компиляторы, графические движки, программы для самолетов/марсоходов/коллайдеров, ну и т.п. А это C/C++, Ada, Fortran. А жаба — это по большей части просто быдлокод. Все, что на ней можно написать, можно написать и на C#.
ну программы наса для марсоходов написаны на джава как я помню. и движки всякие есть — хадупы, кассандры, спарки и пр. вполне. я не отрицаю мощь С++ но отдаю должное джаве
__>друг мой чтобы вы знали — быстрее джава только С++. я не про микробенчмарки сейчас а про производительность
JVM хорош и отполирован, но время его исключительности всё-таки в прошлом. C# все эти годы развивался в направлении высокопроизводительных и при этом всё ещё managed программ гораздо быстрее, и соответственно сейчас продвинулся очень далеко. Множество фич которые уже доступны в C# тупо отсутствуют в языках для jvm. Пока в jvm со скрипом добавляют value-type (для той самой производительности), CLR в деле этих самых value-type ушёл тупо за горизонт. Project Valhalla, который просто value-types всё ещё в EA, в то время как в C# в релизе уже года 3-4 ref-like types, stacalloc, и т.п. ништяки для микрооптимизаций. В стандартной библиотеки first-class citizen'ами стали Span<T> для удобной типизированной работы с произвольными буферами. Пока в большинстве языков программирования любой асинхронный код это куча аллокаций и низкая производительность по определению, в .NET постоянная работа над оптимизацией дошла до того что async/await для высокопроизводительного кода может вообще быть alloc-free (ValueTask и собственные "IAwaitable"). Когда хочется поиграть в alloc-free код нет нужды одевать монокль и вглядываться в каждую строчку — к решарперу ставится плагин, который подчёркивает выделения памяти, и любые места которые могут нагрузить GC тупо не проходят код-ревью. Если хочется работы с железом (всё еще типизированной!) — System.Runtime.Intrinsics.X86 к твоим услугам, и хоть мультимедиа-кодек пиши. Хочешь поработать с памятью без GC — бери готовый аллокатор типа smmalloc, или делай свой. И т.д., и т.п. Другими словами писать производительный код в C# не просто можно, это делается с комфортом и быстро.
Здравствуйте, hi_octane, Вы писали:
__>>друг мой чтобы вы знали — быстрее джава только С++. я не про микробенчмарки сейчас а про производительность _>JVM хорош и отполирован, но время его исключительности всё-таки в прошлом.
Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.
Java поддерживает намного больше платформ чем C#.
C чем соглашусь что C# приятнее синтаксис, но когда у тебя задача написать кроссплатформенный UI, то приятным синтаксисом придется принебречь.
И спрашивается а зачем C# ?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
__>нет-нет, я рад дискуссии и понять. __>а в чем преимущество? быстрая разработка/прототипирование и все?
Ну вот смотри — за пару месяцев был накидан проект (логики дофига, но всё сводится с сетевому прокси для пачки разных протоколов) который на старте держит нагрузку в 200% от требуемой. Причём нагрузка достаточно большая чтобы часть "экспертов" вооружённых мнением 10-летней давности говорила "тут нужен C++", "Rust", и т.п. Короче кто какой маркетинговый буллшит про performance чаще читает на reddit. Проект написан относительно просто и дубово — то есть не заморачиваясь premature optimization. Код читаемый, качественный, всё типизировано, никто не тусует байты по магическим смещениям ради производительности. По итогу запуска и снятия снэпшотов в течении двух дней — график нагрузки на процессор и потребление памяти ровные.
Production quality решение готово, миграция клиентов пошла. Быстро работает, легко будет поддерживать и расширять — это и есть преимущество для бизнеса.
А вот если бы это был не обычный бизнес, а развесёлый стартап, всё было бы совсем иначе. Само предложение "а давайте тут на C#" грозило бы увольнением в связи с профнепригодностью (не шучу!). Так то по итогу было бы наверное написано точно тоже самое, но на самом хайповом языке, превозмогая отсутствие тулзов и библиотек, и за пол-года а не за два месяца. Зато код можно было бы пихать прямо в резюме для следующего стартапа, потому что читать и править его смогла бы только редкая птица с таким же безумным опытом работы, и таким же атомным рэйтом.
O>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.
На каких именно трёх? А то для кого-то три платформы это Android, iOS, Tizen и тогда у C# есть решение в виде Xamarin. А на десктопе развиваются (но конечно до "развилась" ещё пару лет минимум) — Avalonia UI, и Uno, которые уже заявляют что production ready. Хотя, уверен, глюков у них у всех хватает, но для каких-то проектов точно сойдёт. Для экзотического UI можно посмотреть на Noesis GUI, хоть он и с уклоном в игры, но для настоящего самурая это не проблема а вызов
С другой стороны я например, иногда играю с детьми в игру Overload, а она написана для трёх платформ — Win/Mac/Lin, и вполне на C# — получается тоже кросс-платформа.
O>Java поддерживает намного больше платформ чем C#.
Ну разумеется выбирать язык под проект следует исходя из всех требований. И требование запускаться на микроволновке может сразу ограничить список языков до C. Но сейчас выбор кроссплатформенного UI по сути умер. Если хочется быстро и похрен на страдания пользователей — то придётся брать Electron. Если же хочется чтоб хорошо и быстро работало — то весь общий код на чём угодно, и фронт-енд на каждую платформу свой. Все эти фокусы с якобы кросс-платформенными библиотеками приводят к тому что в команде рано или поздно появляются люди которые вынуждены знать и кроссплатформенную библиотеку, и конкретную платформу с её особенностями. И дальше все пишут вроде как на кросс-платформенной библиотеке, но при этом полностью платформо-зависимый код
O>C чем соглашусь что C# приятнее синтаксис, но когда у тебя задача написать кроссплатформенный UI, то приятным синтаксисом придется принебречь.
Ну вот нафигачишь ты основной код на C# гораздо быстрее, больше времени на поддержку разных платформ останется
O>И спрашивается а зачем C# ?
Ну когда компания на серьёзных щщах, "мы не-стартап, мы решение для бизнеса", то в 90% случаев язык выбирается исходя из того что лучше знает команда. А команду набирал техлид под себя, соответственно что техлид знал когда был сеньёром, на том и пишут
__>ну программы наса для марсоходов написаны на джава как я помню. и движки всякие есть — хадупы, кассандры, спарки и пр. вполне. я не отрицаю мощь С++ но отдаю должное джаве
Java возникла сильно раньше шарпа, и потому некоторые решения родились и повзрослели именно на ней. Переписывать их на C#? Ну если ты заплатишь — с радостью. Но пока ты не платишь — берём биндинг от C# к кассандре, и используем её словно какой-нибудь MySQL.
Для .NET родились решения которых нехватало (учитывая что кассандры и хадупы уже были), например Orleans или Bond. Но из-за того что MS слишком заигралась в игру ".NET это Windows", то интересное что было создано для .NET, пиарить тяжело даже сейчас, в 2020-м.