Причины популярности C#
От: vaa  
Дата: 27.05.22 02:44
Оценка:
Ознакомившись с доводами относительно причин популярности java
стало совсем непонятно как C# стал так популярен?
Ну меня только одна версия, простой и бесплатный компилятор(на 2001 год) с набором ado.net и Winforms, плюс IDE.
В остальном явных преимуществ не видно.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Отредактировано 27.05.2022 2:47 Разраб . Предыдущая версия .
Re: Причины популярности C#
От: 4058  
Дата: 27.05.22 06:15
Оценка: 1 (1) +5
Здравствуйте, vaa, Вы писали:

vaa>Ознакомившись с доводами относительно причин популярности java

vaa>стало совсем непонятно как C# стал так популярен?

Причина популярности C#, заключается преимущественно в популярности платформы .NET, сам по себе язык не очень интересен.
.NET в отличие от Java изначально не гнался за мультиплатформенностью, поэтому существенно выигрывал в плане производительности и обширному наличию библиотек (пускай и прибитых местами гвоздями к Windows), при этом пропагандировал мультиязыковость, в итоге много кто сначала переполз на VB.NET/J#/MC++, а потом и на C#.
Также немалый вклад для популяризации (как платформы) внёс удобный inter-оп с "внешним миром" (DllImport и т.п.)
Re[2]: Причины популярности C#
От: vaa  
Дата: 27.05.22 06:33
Оценка:
Здравствуйте, 4058, Вы писали:

4>.NET в отличие от Java изначально не гнался за мультиплатформенностью, поэтому существенно выигрывал в плане производительности и обширному наличию библиотек (


насчет производительности спорно. может в 2001 году так и было. хотя скорее это из-за печально известного гуя джавы.
он действительно был слабоват. ну и холодный старт больное место сложного приложения на джава.
ну а по кол-ву бесплатных библиотек тут джава на порядок лучше.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Причины популярности C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.05.22 07:17
Оценка: +16
Здравствуйте, 4058, Вы писали:

4>Причина популярности C#, заключается преимущественно в популярности платформы .NET, сам по себе язык не очень интересен.

Не могу согласиться. Язык, конечно, твёрдо стоит ногами в платформе, но он интересен именно как язык.
Неспроста Java вышла из комы и начала развиваться как язык именно под влиянием C#.
И до сих пор при прочих равных Шарп как язык выигрывает у той же Java с разгромным счётом.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Причины популярности C#
От: 4058  
Дата: 27.05.22 07:35
Оценка: 1 (1) +1
Здравствуйте, vaa, Вы писали:

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


4>>.NET в отличие от Java изначально не гнался за мультиплатформенностью, поэтому существенно выигрывал в плане производительности и обширному наличию библиотек (


vaa>насчет производительности спорно. может в 2001 году так и было.

vaa>хотя скорее это из-за печально известного гуя джавы.

Не только, у Java в целом производительность была ниже (сейчас уже не знаю), т.к. изначально делалась ставка на мультиплатформенность.

vaa>он действительно был слабоват. ну и холодный старт больное место сложного приложения на джава.


Холодный старт больное место для любого крупного приложения если присутствует JIT-компиляция.

vaa>ну а по кол-ву бесплатных библиотек тут джава на порядок лучше.


Стоит учитывать не только кол-во, но и качество. Многие полезные лайбы обычно оперативно портируются с Java на .NET, например: iText -> iTextSharp, Bouncy Castle, POI -> NPOI ...

P.S. Ну и как язык, C# изначально можно было рассматривать как Java "на стеройдах".
Re[3]: Причины популярности C#
От: 4058  
Дата: 27.05.22 07:41
Оценка:
Здравствуйте, Sinclair, Вы писали:

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


4>>Причина популярности C#, заключается преимущественно в популярности платформы .NET, сам по себе язык не очень интересен.

S>Не могу согласиться. Язык, конечно, твёрдо стоит ногами в платформе, но он интересен именно как язык.
S>Неспроста Java вышла из комы и начала развиваться как язык именно под влиянием C#.

Я говорю о том, что популярность C# во многом обусловлена его платформой, если бы на старте это был просто язык, со скудным набором лайб, шансов на успех было-бы существенно меньше.

S>И до сих пор при прочих равных Шарп как язык выигрывает у той же Java с разгромным счётом.


С этим я согласен, чуть выше
Автор: 4058
Дата: 27.05.22
я охарактеризовал C# как: "Java на стеройдах".
Re[3]: Причины популярности C#
От: Философ Ад http://vk.com/id10256428
Дата: 27.05.22 08:00
Оценка: 3 (1)
Здравствуйте, vaa, Вы писали:

vaa>насчет производительности спорно. может в 2001 году так и было. хотя скорее это из-за печально известного гуя джавы.


Жаба догонит шарп по произоводительности, когда там появятся ValueType'ы — без них даже элементарынми GUID'ами куча засирается. Full GC в жабе — это боль. Собственно проблема в том, что производительность GC сильно зависит от кол-ва живых объектов. Да и отсутствие всяких Point, Vector3 и т.д. не добавляют производительности — без них всякие гуёвые задачи — грусть/тоска.
Собственно
А)
struct Point {public int X, Y}

void A(ref Point point) {}


Б)
class Point {public int X, Y}

void A(Point point) {}


А и Б — семантически почти одно и тоже, но при этом очень-очень разные вещи по производительности. На тысяче точек это слабо заметно, но если точек миллион, то жабе становится очень грустно. С гуидами тоже самое.

Ещё жабе сильно поможет добавление unsafe кода.
Всё сказанное выше — личное мнение, если не указано обратное.
Отредактировано 27.05.2022 8:02 Философ . Предыдущая версия . Еще …
Отредактировано 27.05.2022 8:01 Философ . Предыдущая версия .
Re[4]: Причины популярности C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.05.22 08:10
Оценка: 1 (1)
Здравствуйте, Философ, Вы писали:

Ф>А и Б — семантически почти одно и тоже, но при этом очень-очень разные вещи по производительности. На тысяче точек это слабо заметно, но если точек миллион, то жабе становится очень грустно. С гуидами тоже самое.

Ну, джава гордица своим JIT и ескейп-анализом. Он, предположительно, должен спасать от просада производительности с Point.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Причины популярности C#
От: Michael7 Россия  
Дата: 27.05.22 08:12
Оценка: 3 (1) +1
Здравствуйте, vaa, Вы писали:

vaa>Ознакомившись с доводами относительно причин популярности java

vaa>стало совсем непонятно как C# стал так популярен?
vaa>Ну меня только одна версия, простой и бесплатный компилятор(на 2001 год) с набором ado.net и Winforms, плюс IDE.
vaa>В остальном явных преимуществ не видно.

Я думаю, что из-за платформы .NET, как самый основной для нее язык. Я понимаю, что .NET вроде как мультиязычный и тем не менее, C# — это самый родной все же для нее язык, не считая своего ассемблера, конечно. При этом в .NET ниже порог вхождения (по крайней мере был ниже) по сравнению с Java. Ну и сам язык был достаточно простой и неплохо спроектированный, можно сказать даже с учетом Java, а также успеха Delphi, так как главный архитектор Хейлсберг в свое время создавал Delphi.
Re[5]: Причины популярности C#
От: Философ Ад http://vk.com/id10256428
Дата: 27.05.22 08:21
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Философ, Вы писали:


Ф>>А и Б — семантически почти одно и тоже, но при этом очень-очень разные вещи по производительности. На тысяче точек это слабо заметно, но если точек миллион, то жабе становится очень грустно. С гуидами тоже самое.

S>Ну, джава гордица своим JIT и ескейп-анализом. Он, предположительно, должен спасать от просада производительности с Point.

Имею некоторый опыт с Java 8 — не бог весь что, но другого нам не завезли (не знаю почему). Иногда ескейп-анализ работает. Добавляешь буквально несколько строк уже не работает. Да и само написание подразумевает, что у тебя где-то есть набор Point'ов, а значит в жабе они обязательно будут в куче лежать, в месте с описателем типа рядом сданными, а в шарпе они вполне могут лежать на стеке, или даже в неуправляемой памяти.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[6]: Причины популярности C#
От: Ночной Смотрящий Россия  
Дата: 27.05.22 08:36
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Имею некоторый опыт с Java 8 — не бог весь что, но другого нам не завезли (не знаю почему). Иногда ескейп-анализ работает. Добавляешь буквально несколько строк уже не работает.


В дотнете схожая проблема, хоть и не в таком масштабе. Любое лишнее движение и здравствуй боксинг. Там, правда, сей факт можно отследить статически, но глазами это сделать порой совсем непросто.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Причины популярности C#
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 27.05.22 08:58
Оценка: 3 (1) +6
Здравствуйте, vaa, Вы писали:

vaa>Ознакомившись с доводами относительно причин популярности java

vaa>стало совсем непонятно как C# стал так популярен?
vaa>Ну меня только одна версия, простой и бесплатный компилятор(на 2001 год) с набором ado.net и Winforms, плюс IDE.
vaa>В остальном явных преимуществ не видно.

Популярность у .NET и C# появилась не сразу, а росла постепенно

1) Во времена .NET 1.0 основными драйверами популярности были: WinForms — визуальный дизайнер формочек аля делфи, и практически насильное пересаживание программистов VB на VB.NET
2) Когда вышел .NET 2.0 основным драйвером популярности стал WebForms. Microsoft активно продвигал идею, что приложения в вебе можно собирать как приложения на десктопе, и у многих это даже получалось.
3) А потом появился .NET 3.5 и C# 3.0 в котором появилось функциональное программирование Linq и C# в один момент переплюнул все существующие на тот момент языки, кроме того linq настолько упростил работу с данными, что создание корпоративных приложений стало довольно простой задачей.
4) Следующий удар — async в C# 5.0 и .NET 4.5, с этого момента преимущество C# как языка стало неоспоримым, все языки начали копировать фичи из C#, но развитие тормозилось прибитым к Windows .NET FW
5) После долгих мучений с платформой и компилятором появились .NET 3.1 и C# 8, которые стали первым по-настоящему кроссплатформенным релизом. Язык C# собрал все возможности современных языков — интерполированные строки, индексы и слайсы, паттерн-матчинг, а также получил возможности оптимизации программ за счет выделения памяти в стеке, а не в куче.

На сейчас все языки пытаются стать похожими на C#.
Re[2]: Причины популярности C#
От: Философ Ад http://vk.com/id10256428
Дата: 27.05.22 09:08
Оценка: 1 (1) +2
Здравствуйте, gandjustas, Вы писали:


G>4) Следующий удар — async в C# 5.0 и .NET 4.5, с этого момента преимущество C# как языка стало неоспоримым, все языки начали копировать фичи из C#, но развитие тормозилось прибитым к Windows .NET FW


Я немножко ревьюил код чуваков, которые к нам устраивались. Не видел ни одного человека, который бы понимал как работают async/awate. Людей мы нанимали тем ненемее а потом я правил баги и вызванивал одного чувака, чтобы рассказать что он сделал не так. Притом там категорическое непонимание того что это такое. И кстати, разбирать дампы с дедлоками после async'ов — это пипец! Оно не упрощает жизнь, оно её усложняет.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[7]: Причины популярности C#
От: Философ Ад http://vk.com/id10256428
Дата: 27.05.22 09:11
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>В дотнете схожая проблема, хоть и не в таком масштабе. Любое лишнее движение и здравствуй боксинг. Там, правда, сей факт можно отследить статически, но глазами это сделать порой совсем непросто.


фишка в том, что такие места МОЖНО отследить статически.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: Причины популярности C#
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 27.05.22 09:31
Оценка: 2 (1) +5
Здравствуйте, Философ, Вы писали:

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



G>>4) Следующий удар — async в C# 5.0 и .NET 4.5, с этого момента преимущество C# как языка стало неоспоримым, все языки начали копировать фичи из C#, но развитие тормозилось прибитым к Windows .NET FW


Ф>Я немножко ревьюил код чуваков, которые к нам устраивались. Не видел ни одного человека, который бы понимал как работают async/awate.

Я на собеседовании спрашиваю. Кто не понимает совсем — не берем.

Ф> Оно не упрощает жизнь, оно её усложняет.


По сравнению с чем?
Я врукопашную писал state machine для IAsyncResult во времена .NET 2.0 и готов поспорить что async\await сильно упрощает жизнь.
Вообще любая асинхронщина с async\await сильно проще чем эквивалентный асинхронный код без этих операторов.
Re[4]: Причины популярности C#
От: Философ Ад http://vk.com/id10256428
Дата: 27.05.22 09:41
Оценка: -2
Здравствуйте, gandjustas, Вы писали:

G>Я на собеседовании спрашиваю. Кто не понимает совсем — не берем.


А смысл!? Тех кто хорошо понимает что это такое исчезающе мало, при этом среди тех кто не понимает достаточно людей способных решать задачи и разобраться в существующем.

Ф>> Оно не упрощает жизнь, оно её усложняет.

G>По сравнению с чем?

По сравнению с рукопашной асинхронщиной.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[5]: Причины популярности C#
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 27.05.22 12:41
Оценка:
Здравствуйте, Философ, Вы писали:

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


G>>Я на собеседовании спрашиваю. Кто не понимает совсем — не берем.


Ф>А смысл!? Тех кто хорошо понимает что это такое исчезающе мало, при этом среди тех кто не понимает достаточно людей способных решать задачи и разобраться в существующем.

А вы денег платите и будет достаточно.

Ф>>> Оно не упрощает жизнь, оно её усложняет.

G>>По сравнению с чем?
Ф>По сравнению с рукопашной асинхронщиной.
Видимо вы ни разу не занимались рукопашной асинхронщиной.
Re[6]: Причины популярности C#
От: Философ Ад http://vk.com/id10256428
Дата: 27.05.22 13:22
Оценка: +2
Здравствуйте, gandjustas, Вы писали:

G>>>По сравнению с чем?

Ф>>По сравнению с рукопашной асинхронщиной.
G>Видимо вы ни разу не занимались рукопашной асинхронщиной.

Скажем так, я никогда не видел ничего сложно в том, чтобы напихать задач в тредпул и подождать их завершения. С появлением TPL это стало несколько удобнее, особенно из-за того что таски стало очень удобно Join'ить между собой. У меня никогда не возникало проблем с тем чтобы одновременно забрать данные из БД и дождаться результата WebRequest'а. Даже отсутствие тасок до 4-го дотнета.
Сложности появились в дотнете 4.5 вместе со словом await. Разобраться в том, что просиходит в принесённом дампе стало крайне сложно.
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Причины популярности C#
От: rudzuk  
Дата: 27.05.22 15:41
Оценка: 1 (1) :)
Здравствуйте, vaa, Вы писали:

vaa> Ознакомившись с доводами относительно причин популярности java

vaa> стало совсем непонятно как C# стал так популярен?
vaa> Ну меня только одна версия, простой и бесплатный компилятор(на 2001 год) с набором ado.net и Winforms, плюс IDE.
vaa> В остальном явных преимуществ не видно.

Все очень просто. Мода и тренды. Еще "крутость". Поясню. Сделали язык на платформе, под которую легко писать с название созвучным с языком на котором "круто" писать (да, это я про C/C++). Все.

з.ы. в подтверждение своего тезиса скажу, что даже тут уже дотнечики жалуются на падающую популярность и набирающий обороты JS (будь он проклят). В смысле, это очередная итерация — еще проще и тоже круто (ну, сайты же)
avalon/3.0.0
Re[3]: Причины популярности C#
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 28.05.22 16:35
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Я немножко ревьюил код чуваков, которые к нам устраивались. Не видел ни одного человека, который бы понимал как работают async/awate. Людей мы нанимали тем ненемее а потом я правил баги и вызванивал одного чувака, чтобы рассказать что он сделал не так. Притом там категорическое непонимание того что это такое. И кстати, разбирать дампы с дедлоками после async'ов — это пипец! Оно не упрощает жизнь, оно её усложняет.


Когда те же люди пишут без async/await, дедлоки плодятся сами собой, а порой разобраться вообще шансов нет, только переписать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.