Re[8]: Вопрос с_шарп крафтсменам
От: okon  
Дата: 01.04.20 23:23
Оценка:
Здравствуйте, hi_octane, Вы писали:

O>>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.

_>На каких именно трёх? А то для кого-то три платформы это Android, iOS, Tizen и тогда у C# есть решение в виде Xamarin. А на десктопе развиваются (но конечно до "развилась" ещё пару лет минимум) — Avalonia UI, и Uno, которые уже заявляют что production ready. Хотя, уверен, глюков у них у всех хватает, но для каких-то проектов точно сойдёт. Для экзотического UI можно посмотреть на Noesis GUI, хоть он и с уклоном в игры, но для настоящего самурая это не проблема а вызов
_>С другой стороны я например, иногда играю с детьми в игру Overload, а она написана для трёх платформ — Win/Mac/Lin, и вполне на C# — получается тоже кросс-платформа.

Ну все равно Java покрывает больший спектр решений.
И когда встает выбор — какой путь выбрать, который приятнее писать но много заборов которые не перепрыгнуть или чуть менее приятно — но все дороги открыты ?
Мне кажется второй более разумен, ты потенциально можешь решить больше задач на большем количестве платформ.

O>>Java поддерживает намного больше платформ чем C#.


_>Ну разумеется выбирать язык под проект следует исходя из всех требований. И требование запускаться на микроволновке может сразу ограничить список языков до C.


Не речь не о том что давайте напишем приложение под все железки.
На что мы решим затачивать свой скил — на C# ок, но будем спотыкаться когда придет время написать что-то из UI под MacOS/Linux.
Ведь нужно привыкать к инструментарию и лучше привыкнуть к тому инструменту который позволяет больше препятсвтий преодолеть.


O>>C чем соглашусь что C# приятнее синтаксис, но когда у тебя задача написать кроссплатформенный UI, то приятным синтаксисом придется принебречь.

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

Не уверен что быстрее — дело привычки.
Написать поддержку платформы намного сложнее чем пару лишних букв в коде.

O>>И спрашивается а зачем C# ?


_>Ну когда компания на серьёзных щщах, "мы не-стартап, мы решение для бизнеса", то в 90% случаев язык выбирается исходя из того что лучше знает команда. А команду набирал техлид под себя, соответственно что техлид знал когда был сеньёром, на том и пишут
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[9]: Вопрос с_шарп крафтсменам
От: hi_octane Беларусь  
Дата: 02.04.20 00:07
Оценка: +1
O>Ну все равно Java покрывает больший спектр решений.
O>И когда встает выбор — какой путь выбрать, который приятнее писать но много заборов которые не перепрыгнуть или чуть менее приятно — но все дороги открыты ?
O>Мне кажется второй более разумен, ты потенциально можешь решить больше задач на большем количестве платформ.
Ну ты мыслишь с категории "я хочу быть более универсальным программистом". Но при этом сам же себя ограничиваешь одним языком. Но посмотри на все современные языки — они просто безумно одинаковые и убогие. Буквально пол-сотни разных концепций которые надо изучить, после чего для тебя любой современный язык воспринимается словно чек-лист: "исключения есть/нет; async/await есть/нет; метапрограммирование есть/нет; текстовые макросы есть/нет; gc нет/ref-counting/full; ковариантность ...; high order ...; hkt ...; green threads; first-class actors; и т.д.". Ну и немного нюансов каждой VM если язык крутится на VM. И вот когда все эти концепции в голове улеглись, синтаксис и библиотеки становятся глубоко вторичными. Ты можешь натурально впервые видеть язык с его библиотеками, но зная этот самый "чеклист" платформы и языка, уже примерно представлять как этим языком решить задачу, и какие у решения будут ограничения и слабые места.

O>На что мы решим затачивать свой скил — на C# ок, но будем спотыкаться когда придет время написать что-то из UI под MacOS/Linux.

Так на любом языке будешь спотыкаться. Я даже больше скажу — релиз Linux приложения на соседней Linux-машине — это сплошное спотыкалово Более-менее сложное приложение (java, C#, native) так или иначе потащит за собой готовые нативные библиотеки, тут и обнаружится что разные linux-билды отличаются друг от друга больше чем win7 от win10; какой бардак на MacOS, как получилось что мы тащим за собой весь OpenSSL?!! и т.д.

O>Ведь нужно привыкать к инструментарию и лучше привыкнуть к тому инструменту который позволяет больше препятсвтий преодолеть.

Ну привыкнешь ты, а куда расти? Я всё-таки стараюсь каждую вторую работу находить вне зоны комфорта. Да приходится страдать, ведь прежде всего в глаза бросается убогость и косяки, и только через пару месяцев начинаешь замечать достоинства. Но в каждом языке есть куча уникальных идей про которые на соседних платформах даже не знают что "а так можно было?". Например scala с её sbt — это прям образец того как правильно делать билд-системы для языка, читабельные и на этом же самом языке. Но кто про это знает? В том же .NET вместо того чтобы тупо скопировать идеи sbt чуть не сделали нечто "такое же как на xml только на json" Набив шишек, естественно, одумались и вернулись в "зону убогости" с билд-файлами на xml.
Re[10]: Вопрос с_шарп крафтсменам
От: okon  
Дата: 02.04.20 01:14
Оценка:
Здравствуйте, hi_octane, Вы писали:

O>>Ну все равно Java покрывает больший спектр решений.

O>>И когда встает выбор — какой путь выбрать, который приятнее писать но много заборов которые не перепрыгнуть или чуть менее приятно — но все дороги открыты ?
O>>Мне кажется второй более разумен, ты потенциально можешь решить больше задач на большем количестве платформ.
_>Ну ты мыслишь с категории "я хочу быть более универсальным программистом". Но при этом сам же себя ограничиваешь одним языком. Но посмотри на все современные языки — они просто безумно одинаковые и убогие.
Отчасти согласен, но дело же не только в синтаксисе, твоя продуктивность зависит от IDE, а они разные, от библиотек, а они очень разные, от пакетных менеджеров и способов их настройки — тоже куча вариаций.
Поэтому прыгать с языка на язык — это малоэффективный универсальный солдат.


O>>На что мы решим затачивать свой скил — на C# ок, но будем спотыкаться когда придет время написать что-то из UI под MacOS/Linux.

_>Так на любом языке будешь спотыкаться. Я даже больше скажу — релиз Linux приложения на соседней Linux-машине — это сплошное спотыкалово Более-менее сложное приложение (java, C#, native) так или иначе потащит за собой готовые нативные библиотеки, тут и обнаружится что разные linux-билды отличаются друг от друга больше чем win7 от win10; какой бардак на MacOS, как получилось что мы тащим за собой весь OpenSSL?!! и т.д.

Да но это таково устройтсво мира с этим бардаком ничего не поделать — он одинаков для всех языков. Не влияет на выбор языка.

O>>Ведь нужно привыкать к инструментарию и лучше привыкнуть к тому инструменту который позволяет больше препятсвтий преодолеть.

_>Ну привыкнешь ты, а куда расти? Я всё-таки стараюсь каждую вторую работу находить вне зоны комфорта. Да приходится страдать, ведь прежде всего в глаза бросается убогость и косяки, и только через пару месяцев начинаешь замечать достоинства. Но в каждом языке есть куча уникальных идей про которые на соседних платформах даже не знают что "а так можно было?". Например scala с её sbt — это прям образец того как правильно делать билд-системы для языка, читабельные и на этом же самом языке. Но кто про это знает? В том же .NET вместо того чтобы тупо скопировать идеи sbt чуть не сделали нечто "такое же как на xml только на json" Набив шишек, естественно, одумались и вернулись в "зону убогости" с билд-файлами на xml.

Дело тут не в привыкании, а в совершенствовании. Это тоже выход из зоны комфорта — например частая картина даже у сеньеров — перестать пользоваться мышкой и научиться пользоваться клавиатурой например, а настройки в большинстве IDE разные если не считать совсем простых операций. Java и C# настолько огромны выучить там все не получится, так что будет много не комфортных моментов. С каждым шагом ты преодолеваешь очередной барьер и делаешь свою работу еще продуктивнее — в этом смысл.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[5]: Вопрос с_шарп крафтсменам
От: Poopy Joe Бельгия  
Дата: 02.04.20 06:55
Оценка:
Здравствуйте, a_g_99, Вы писали:

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


ARK>>По-моему, порицать сишарп и при этом одновременно говорить про инженерную культуру на примере жабы — это что-то весьма странное. Не?


__>почему? я конечно смотрю из своего монастыря java/c++/python но лучшие инженерные решения были сделаны на джава.


Прям не монастырь, а какое-то отделение ада, если лучшие решения в нем на java.
Re[3]: Вопрос с_шарп крафтсменам
От: Ops Россия  
Дата: 02.04.20 07:41
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>об_ясните нормально — если каждая мартышка может с_шарп/дсл то за что платить?


Мартышка не может. Мартышка до сих пор яндекс от браузера не отличает, только кликать по знакомым иконкам умеет, на днях сам такую видел.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Вопрос с_шарп крафтсменам
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 02.04.20 10:34
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Но Россия? Это же против рынка. На рынке джава там востребован и тп. Откуда это все? Зачем??


Так понимаю, топик создан чтобы обосрать C#. Может быть это хорошо и правильно, хотя восхвалять java нехорошо и неправильно, но если отнестись к вопросу серьёзно. Вот читаю вакансии в моём не московском регионе: барс, unity, xamarin, asp.net, epam. Получается, что C# по крайне мере в моём регионе это аутсорс. Люди пишут какой-то прикладной софт для коммерческих организаций, используют как скриптовый язык для игр, так же идёт разработка для мобильных приложений и сайтов.
Re[3]: Вопрос с_шарп крафтсменам
От: serj.e  
Дата: 06.05.20 03:06
Оценка:
S>Да что там шарп, у нас Delphi лет 20 как работает.
Вот прям тот же Дельфи, что 20 лет назад? Что-то слабо верится. ЕМНИП, Borland-Inprise–Embarkadero тоже в свое время зашкварились то в переписывании одного и того же по 10 раз (VCL, CLX, Kylix, потом то же самое, но совместимое с C++Builder), то в утяжелении своих творений до бешеных весов. Могу, конечно ошибаться: впечатления очень давние и поверхностные, что происходит сейчас не знаю.

S>И легаси переписывать не нужно

S>MS уже несколько раз свой ASP переписал. Удачи, чё )))
Re[9]: Вопрос с_шарп крафтсменам
От: varenikAA  
Дата: 06.05.20 06:19
Оценка:
Здравствуйте, okon, Вы писали:

O>Ну все равно Java покрывает больший спектр решений.

Согласен, java и clojure
(dotimes [n 10] (println n (square n)))


0 0
1 1

2 4
3 9

4 16
5 25
6
36
7 49
8
64
9 81
nil


C# как бухгалтерский калькулятор с большими кнопками.
java как инженерный калькулятор с кучей кнопок для всякой всячины.
clojure как программируемый калькулятор.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[7]: Вопрос с_шарп крафтсменам
От: Явь-Истъ Земля  
Дата: 06.05.20 08:10
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>ну программы наса для марсоходов написаны на джава как я помню. и движки всякие есть — хадупы, кассандры, спарки и пр. вполне. я не отрицаю мощь С++ но отдаю должное джаве


А на дот-нете есть Unity
Re[7]: Вопрос с_шарп крафтсменам
От: AleksandrN Россия  
Дата: 06.05.20 09:18
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>ну программы наса для марсоходов написаны на джава как я помню


Нагуглилось, что на борту VxWorks и упоминание C, C++, Ada и Java. Но без каких-либо подробностей.
Про прикручивание поддержки Java к VxWorks нашёл заметку https://blogs.windriver.com/wind_river_blog/2016/09/wind-rivers-latest-vxworks-offering-brings-benefits-of-java-to-embedded-development/

Есть каки-нибудь ссылки на описание софта марсоходов и использованных средств разработки? В НАСА традиционно Ada используют. Интересно, что ещё и для каких задач?
Re[10]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 06.05.20 10:47
Оценка:
Здравствуйте, varenikAA, Вы писали:

Совсем неудачный пример, чтобы показать, что C# это калькулятор с большими кнопками.

AA>Согласен, java и clojure

AA>
AA>;(dotimes [n 10] (println n (square n)))
AA>;

А где пример на Java?

10.Times(n => Console.WriteLine($"{n} {Math.Pow(n, 2)}"));

норм?

на .net еще и F# есть.
</farsight>
Re[6]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.05.20 12:57
Оценка:
Здравствуйте, hi_octane, Вы писали:

__>>друг мой чтобы вы знали — быстрее джава только С++. я не про микробенчмарки сейчас а про производительность

_>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# не просто можно, это делается с комфортом и быстро.

Сюда еще нужно добавить CoreRT https://github.com/dotnet/corert
и солнце б утром не вставало, когда бы не было меня
Re[7]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.05.20 13:01
Оценка:
Здравствуйте, okon, Вы писали:

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


__>>>друг мой чтобы вы знали — быстрее джава только С++. я не про микробенчмарки сейчас а про производительность

_>>JVM хорош и отполирован, но время его исключительности всё-таки в прошлом.

O>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.

На каких C# не может? Огласи
O>Java поддерживает намного больше платформ чем C#.

O>C чем соглашусь что C# приятнее синтаксис, но когда у тебя задача написать кроссплатформенный UI, то приятным синтаксисом придется принебречь.


O>И спрашивается а зачем C# ?


Ну вообще то есть Xamarin.Forms https://github.com/xamarin/Xamarin.Forms/wiki/Feature-Roadmap

Xamarin Customer Showcase: PGS Software + Volotea
и солнце б утром не вставало, когда бы не было меня
Отредактировано 06.05.2020 13:02 Serginio1 . Предыдущая версия .
Re[7]: Вопрос с_шарп крафтсменам
От: LuciferSaratov Россия  
Дата: 06.05.20 16:12
Оценка: 1 (1) +1
Здравствуйте, okon, Вы писали:

O>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.

O>Java поддерживает намного больше платформ чем C#.

это вот всё тоже от области применения зависит.
например, в геймдеве C# вообще никаких шансов Java не оставляет.
у меня есть клиент с игрой на Java, они уже не первый год мечтают о том, чтобы на C# всё переделать.
Re: Вопрос с_шарп крафтсменам
От: MaxRos  
Дата: 06.05.20 18:27
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Откуда это все? Зачем??


Эту тему здесь уже обсуждали. C# для конченых
Автор: kaa.python
Дата: 10.12.18
просто, а в РФ, как известно любому неконченому, конченых хоть отбавляй.
Re[2]: Вопрос с_шарп крафтсменам
От: a_g_99 США http://www.hooli.xyz/
Дата: 06.05.20 19:22
Оценка: 3 (1)
Здравствуйте, MaxRos, Вы писали:

MR>Эту тему здесь уже обсуждали. C# для конченых
Автор: kaa.python
Дата: 10.12.18
просто, а в РФ, как известно любому неконченому, конченых хоть отбавляй.


я жестко плюсанул того комрада спасибо за линк! так победим!
Re[3]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 06.05.20 19:32
Оценка: +1
Здравствуйте, a_g_99, Вы писали:

MR>>Эту тему здесь уже обсуждали. C# для конченых
Автор: kaa.python
Дата: 10.12.18
просто, а в РФ, как известно любому неконченому, конченых хоть отбавляй.


__>я жестко плюсанул того комрада спасибо за линк! так победим!


Парни, вы под веществами что ли?
</farsight>
Re[4]: Вопрос с_шарп крафтсменам
От: MaxRos  
Дата: 06.05.20 19:37
Оценка:
Здравствуйте, Farsight, Вы писали:

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


MR>>>Эту тему здесь уже обсуждали. C# для конченых
Автор: kaa.python
Дата: 10.12.18
просто, а в РФ, как известно любому неконченому, конченых хоть отбавляй.


__>>я жестко плюсанул того комрада спасибо за линк! так победим!


F>Парни, вы под веществами что ли?


нет. просто я на шарпе программирую, ну а дальше всё понятно..
Re[11]: Вопрос с_шарп крафтсменам
От: varenikAA  
Дата: 07.05.20 05:58
Оценка:
Здравствуйте, Farsight, Вы писали:

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


F>Совсем неудачный пример, чтобы показать, что C# это калькулятор с большими кнопками.


AA>>Согласен, java и clojure

AA>>
AA>;>(dotimes [n 10] (println n (square n)))
AA>;>

F>А где пример на Java?

F>
F>10.Times(n => Console.WriteLine($"{n} {Math.Pow(n, 2)}"));
F>

F>норм?

F>на .net еще и F# есть.


В целом C# норм, конечно, но лет так 10 назад, сейчас из него пытаются выжать еще что-то.
F# конечно по прикольней смотрится, но у него та же проблема, что и у сишарпа — меньше чем в жаве библиотек.
Причем, все еще грустнее.
Например, провайдеры типов, круть конечно.
Но до сих пор не работает по кору. или работает но так намаешься с настройками (особенно под ГНУ Линукс), что больно становится.
Хотя сам язык гораздо более развит чем сишарп.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[12]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 07.05.20 06:12
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>В целом C# норм, конечно, но лет так 10 назад, сейчас из него пытаются выжать еще что-то.

В него добавляют полезные фичи, что конкретно не устраивает?

AA>F# конечно по прикольней смотрится, но у него та же проблема, что и у сишарпа — меньше чем в жаве библиотек.

Это стандартная матра jvm-щиков. Чего-то конкретного не хватает?

AA>Причем, все еще грустнее.

AA>Например, провайдеры типов, круть конечно.
AA>Но до сих пор не работает по кору. или работает но так намаешься с настройками (особенно под ГНУ Линукс), что больно становится.
Не скажу, не сталкивался пока. Дата провайдеры вроде норм под .Net Standard 2.0.
</farsight>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.