LINUX.ORG.RU

Мертв ли C# и Java?

 , , ,


2

3

Привет всем, дорогие форумчане.

Я постараюсь максимально конструкутивно донести свою идею, сорри если кому-то не понравится.

Я - человек со стажем в 5 лет программирования на Шарпе. Изучал не только его, ес-но.

Читал Эванса, его книги по DDD. Изучал многие другие практики, как CQRS+ES, читал Фаулера, имел опред. успех в работе.

Но, в итоге ушел :) в Раби… Прошу, не обоссывайте за эту фразу - я за нее поясню. А если точнее в нескольких языков и платформ… Теперь, по-подробнее.

За время моей эволюции, я понял, что C# и его экосистема не так уж хороши. И спасибо, тут наверное, можно сказать мировому тренду в мир Docker/K8S. Ведь, именно благодаря им - я осознал насколько все-таки, M$-продукция - лажова. Но… Это в какой мере касается и Java.

Меня перестало устраивать их качество, их направление развития. Я считаю их - мертвыми. Для своего времени, как более легкий порог входа и обхода C/C++ - они сыграли свою роль.

Но, вот… Посидев и посмотрел, как условно работают C#/.NET/Dapper, даже если ты не доверяешь ОРМ и пишешь сам параметризированные SQL-запросы и оформляет, как repository… Все равно, это колымага проигрывает по производительности С/C++/libpq (если PgSQL юзается, хотя справедливо и относительно другого)…

В целом, делать SOLID, DDD, CQRS/ES можно даже и на Ruby с Питоном, и это совсем не шутки.

Я понял, насколько все C#/Java - это неудобные инструменты… При этом в последних своих версиях, видимо создатели данных языков решили внести все, что можно в языки. Извратив их и превратив в какой-то швейцарский нож, но получился не швейцарский…

В итоге… Картина такая: что порог входа выше, чем для Golang, Ruby, Python. А в плане производительности .NET/JVM, хоть ты их тюнь 100500 раз - очень сильно проигрывают. А если, вы начнете тюнить приложения с C/C++, Python, Ruby - так они лучше картину покажут…

Спасибо, конечно Шарпу - что меня заставил учить GoF, DDD/CQRS+ES… Теперь эти знания можно применить в других языках, и сидеть на Linux only env.

В итоге, я для себя сделал вывод:

  1. Хочешь клепать фичи по-быстрому для PoC/MVP - Ruby или Python.
  2. Хочешь интересно дизайна ПО - Haskell.
  3. Хочешь high load - C/C++.
  4. Обязательно Linux, забыть про Windows.

PS: дядя шарпист уходит в нирвану Linux. PS2: да, я понимаю что это ЛОР, понимаю что наверное меня кто-нибудь обоссыт за такие выводы… Ну и ладно, зато я сказал - как есть, что на душе. Желаю всем перейти на Linux. PS3: Шарпист, если ты читаешь этот пост - бросай его перейди на Kotlin, Java… не знаю, если перейдешь - потом перейдешь на Haskell, Elixir или др., главное!!! держись подальше от корпораций M$ и Oracle PS4: таки, вспомнил за что еще не люблю Жабу… от нее веет enterprise, и всякие OracleJDK позорят ее… да, есть OpenJDK… но… PS5: всем - добра, peace


Ответ на: комментарий от Midael

Ну можно и мониторингом назвать. Мониторингом финансовых рынков.

cocucka ★★★★☆
()
Ответ на: комментарий от anonymous

Можно.

Нельзя. Как минимум нужен аппаратный интерфейс железа. Он в спецификацию языка не входит.

X512 ★★★★★
()
Ответ на: комментарий от X512

Qt Creator заточен на С++, а там знаешь сам какая классная ситуация со стандартами, поведением кода и т.п. и т.д. Глянь мою тему про Qt и управляемые указатели в плюсах.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

С++, а там знаешь сам какая классная ситуация со стандартами, поведением кода и т.п. и т.д.

Не вижу никакой принципиальной разницы с Паскалем, и там, и там ручное управление памятью и манипуляции с указателями. Object Pascal — это по сути недо C++ с паскалеподобным синтаксисом. Другое дело Оберон и Rust, где обеспечивается безопасность памяти.

Глянь мою тему про Qt и управляемые указатели в плюсах.

Я там вроде отвечал про std::unique_ptr, который совместим с любыми голыми указателями.

X512 ★★★★★
()
Ответ на: комментарий от Kogrom

а ты робот, что ли? посиди 5-6 лет на Шарпе, посмотрю, как ты на стенку полезешь… даже за высокие бабки

hazkel
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Йес сёр! А ещё пойду напишу клиент к кафке, activemq, hdfs и прочим. Ещё свои версии сериализаторов наколхожу и поддержку в ci/cd.

cocucka ★★★★☆
()
Ответ на: комментарий от LongLiveUbuntu

Ничерта там ничего не совместимо оказалось.

Любой вызов delete можно заменить на std::unique_ptr. Читайте документацию. Подсказка: конструктор с голым указателем и методы get() и release().

X512 ★★★★★
()
Ответ на: комментарий от cocucka

Дельфи может и он наверняка тоже.

grem ★★★★★
()

Мертв ли C# и Java?

Нет. Остальной текст не читал, очень много читать надо, побоялся не осилить.

turtle_bazon ★★★★★
()
Ответ на: комментарий от hbee

у меня такой вопрос, а откуда вы такие беретесь в IT? вот, про таких и хочется написать:

«твой район - это хипстеры-гошники, смузи и ботексные губы мой район - это монады, Хацкель и выбитые зубы, я уже дважды отвечаю тебе на ЛОРе, и это имеет значение знаешь, в 1-ый раз - приключение, а второй раз - извращение»

мужик, ты вышел на говно со слова «раби»… ты же не училка начальной школы, которая бесится с «бикукле»… будь выше!

а если по Сабжу, ничего плохо не вижу в Раби… говенно можно и на Шарпе с Джавой и Котлином писать, а чистенько по clean architecture и на Раби…

hazkel
() автор топика
Ответ на: комментарий от hedgehog_alex

Может у него телевизор Рабин был.

anonymous
()
Ответ на: комментарий от hazkel

Я говорю, что C# - гибрид двух рабочих лошадок - Delphi и Java. Ну в последнее время в него из OCaml-а что-то привнесли, а у того символом является верблюд. То есть C# - совсем не арабский скакун. Понятно, что особого восхищения он не вызывает. Везёт свою тележку и везёт.

Зачем лезть на стенку - не ясно. Если только у Вас кругом многоэтажные иерархии классов, приправленные со всех сторон инверсией зависимости. Ну так нечего Фаулером чересчур увлекаться. Он, конечно, интересные книжки пишет, но надо же и своё понимание иметь.

Kogrom
()

ушел :) в Раби

В раввины ушёл?

seiken ★★★★★
()
Ответ на: комментарий от cocucka

Эээ... А я в мёртвом BoaConstructor формы wxPython рисую...

Shadow ★★★★★
()

Ответ на все твои вопросы - го. Подойдёт дебилам, но код получится читаемым. Можно быстро итерироваться, ну а может когда-нибудь потом и плюсы осилишь, но с плюсами лучше пораньше начинай. Раби - это вообще отстой, следующее дно после питухона. Просто юзай го и компиль свои скрипты в бинарники.

anonymous
()

В тексте столько загадочных аббревиатур, что кажется уже поздно уходить на раби. Мозг уже захвачен жабой, и на любом языке будет получаться программа на жабе.

bread
()
Ответ на: комментарий от ritsufag

Захожу на techempower

Это там, где попугаями меряются на выводе строчки текста? А потом открываешь вкладку «multiple queries», а там разница уже не в 100500 раз, а в 1.5. Потому что БД для всех тормозит одинаково.

bread
()

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

praseodim ★★★★★
()

Никогда не понимал людей, которые пишут калькулятор и которым не хватает производительности Явы.
У меня на чистой Яве (без внедрений си и т.п.) телеметрия периметра аэропорта (30+км, 10К+ датчиков шлющих данные на 33Гц) влезает в расбери4 с двойным запасом (в расбери3 тож влезает но впритык по памяти).
На не совсем чистой (кусочек на си) та-же расбери4 уже почти стабильненько держит полный гигабит rtsp потоков (200*4мбит/с).
И да, та-же расбери4 может держать одновременный обмен по tcp с 10к иотов с помощью нетти, которая, насколько помню, тоже чистая ява.
Все это на обычном, не тюненом опенждк, с обычным свинговым гуем, и все это без какого либо участия таскается между лин-вин-мак и между х86/амд64/арм. С гуем, бд и тп.

Причём тут расбери? Просто это махонький армик, который с «тормозной Явой» способен решать совершенно реальные задачи, а уж если у тебя целый компуктер есть …

rukez ★★★★
()
Ответ на: комментарий от rukez

Причем тут Расбери, да?

Расскажите мне о Жабе, когда у тебя биржа, и идут котировки… Базы под high load и в репликах всех, и где якобы «нетормозная жаба справляется» с Hibernate в обслуживании котировок из баз… Справляется, если только докупить 128 Гб ОЗУ…

Если Вы работаете/работали на бирже, то должны были лицезреть, как эти Жабы-Шарпы якобы «справляются» со своими .NET/JVM… Что по сей день много ПО на бирже на C/C++ основано и как-то C#/Java таки не смогли зайти… помимо С/C++ , кто прогает под биржу - занимаются не только оптимизацией кода, но еще и тюнингом ядра Linux для этого ПО и др. (про наличие Вендовых аля MetaTrader знаю, но это др. вопрос уже)

И всегда, если были попытки на Жабке или Шарпе сварганить под high load, как правило картина одна:

  1. медленный ОРМ, даже если юзать облегченный ОРМ и писать запросы вручную
  2. много тормозляндий из-за Reflection
  3. утечки памяти и вуаля сборка мусора при high load не справляется
  4. всегда надо готовить докидывать ЦПУ и РАМ

Из-за чего дирекция подобных контор отказывается от попыток юзать Жабки и предлает юзать legacy, которое было написано давно (в 2002-2005) на плюсах, да и к тому же которое работает, как ни странно шустрее и лучше Жабки на 2021 год

PS: и да «тормозная Жаба» много где дала о себе знать и в др. метсах. Вы ELK вращали сами? Пробовали обслуживать hot-warm архитекутуру с обработкой логов на ЕЛКе? Надеюсь не начнете рассказывать, что ЕЛКа способна на АРМе шустро работать? Вот я и рассказал Вам насчет «компуктера».

hazkel
() автор топика
Ответ на: комментарий от ritsufag

что-то сомневаюсь насчет Питона… в то, что Руби - непопулярен, да

а Питон… сейчас data science’цисты во всю его юзают

JupyterHub/JupyterNotebooks Apache AirFlow c ДАГами

крайне популярны в сфере BigData, посему слабо верю в то, что Питон вне топа

ибо, когда у меня были проекты с БигДатой, таки Питона и Питон-инструментов там много было

PS: не надо напомнить про Java/Scala в данном контексте, про Хадупы и Спарки, ХДФСы тоже знаю. И кстати говоря почему-то рынок БигДата хочет уходить от Жаба-мира даже тут. Даже, когда я был на проекте - об этом в открытую говорили, что Жаба в этой сфере хоть и дала много, но крайне неповортлива.

hazkel
() автор топика

Шарпы вряд ли куда-то денутся, а вот жабка явно просрала все полимеры. На неё и те же шарпы наступают, котлин, груви, Go, да даже питон.

А вывод про то, что линукс — мастхев для разраба, умиляет, конечно. Весь твой предыдущий опыт — мусор, видимо, раз ты только сейчас осознал.

И ведь живут же люди, годами поглощают кактус, разработчиками себя считают…

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

ну почему мусор-то сразу? Жабка с Шарпом делают хорошие вещи, я даже выделил в пред. сообщении

это касается проектирования ПО с DDD/CQRS+ES

что-то я пока не замечал проектов на Питоне или Го с очень годным DDD, да и программисты которые как правило на данных стэках, услышав слово «ДДД» - моментально спрашивают «чо?»

прогают без задней мысли, посему в данном месте не мусор

мусор, касаемо опыта с Вендой и с Вендоспецифичными вещами, это да… это мусор, что добровольно признаю

как ни странно, обосрав Шарп, в принципе я признаю, что он - нормальный язык… мне лишь жалко, что я когда-то давно повелся за ним и сидел долго на M$-стэке… это крайне жалко, тут много просранного времени

но, с другой стороны… когда я тогда начинал, по своей сути выбора не было большого, либо Жабка или Шарп

всяких Котлинов и Го еще не было, а всякие Питоны не были настолько развиты, как сейчас

hazkel
() автор топика
Ответ на: комментарий от hazkel

Расскажите мне о Жабе, когда у тебя биржа, и идут котировки… Базы под high load и в репликах всех, и где якобы «нетормозная жаба справляется» с Hibernate в обслуживании котировок из баз… Справляется, если только докупить 128 Гб ОЗУ…

чо, прям такая биржа что не может себе позволить 128гб озу?
чо, прям такая биржа где реально юзают хибернейт?
чо, прям такая биржа где не могут нанять дба чтоб разрулил тупящие базы?
это не биржа - это сборище инвалидов

И всегда, если были попытки на Жабке или Шарпе сварганить под high load, как правило картина одна: медленный ОРМ, даже если юзать облегченный ОРМ и писать запросы вручную много тормозляндий из-за Reflection утечки памяти и вуаля сборка мусора при high load не справляется всегда надо готовить докидывать ЦПУ и РАМ

если на твоей бирже инвалиды пихают рефлекшены и генераторы запросов в хайлоад то яп тут совершенно не виноват :-)

Из-за чего дирекция подобных контор отказывается от попыток юзать Жабки и предлает юзать legacy, которое было написано давно (в 2002-2005) на плюсах, да и к тому же которое работает, как ни странно шустрее и лучше Жабки на 2021 год

и использовать xp!
не, ну натурально инвалиды :-)

Вот я и рассказал Вам насчет «компуктера».

ты собрал пачку мифов и легенд, притом к «биржам и рефлекшенам» забыл добавить только «ентерпрайз и обертки примитивов»

впрочем, это хорошо что в яву больше не лезут те, кто считает что без хибернейта и рефлекшек жизни нет и надо обязательно хотя бы раз в день их куда-то пихнуть

rukez ★★★★
()
Ответ на: комментарий от X512

приходится кнопки руками класть по фиксированным координатам

Я очень сомневаюсь что такое нужно было там даже в 2005 году каком нибудь.

MOPKOBKA ★★★
()
Ответ на: комментарий от hazkel

в го нет культа объектов, поэтому и про ддд никто не слышал - не нужно для работы. в го используется композиция - это когда ты вместо создания иерархии комбинируешь сущности теми местами где они сростаются. типа как в юниксе cat соединяется с grep через пайпы, а не одно наследуется от другого. такое есть только в го, с++ и языках с динамической типизацией.

anonymous
()
Ответ на: комментарий от cocucka

Lazarus на Lazarus'е... Skype на Delphi был, а Lazarus практически Delphi.

MOPKOBKA ★★★
()
Ответ на: комментарий от X512

Потому что в 100 раз быстрее и удобнее. Обработчики событий сами корректируются, обновляются, не нужно создавать хедеры/cpp, не нужно наследоваться для простейших компонентов, не нужно заниматься интеграцией каких нибудь компонентов, они и так уже интегрированы будут так как GUI един.

К тому же поддержка от Win2000 (а может и меньше), и не тащит за собой Qt.

MOPKOBKA ★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от rukez

чо, прям такая биржа что не может себе позволить 128гб озу?

Где, блин, был тезис, что биржа не может себе позволить? Я это сказал? Нет. Перечитай, я сказал иное. Но, тем не менее расширять без конца парк из-за Жабки высшее рук-во, напрягает. Это помимо того, что ПО написанное на ней частенько вылетает.

чо, прям такая биржа где реально юзают хибернейт?

Ты выдергивать из контекста будешь? Перечитай, 2-ой раз говорю. Попытки разрабов были, выпилии данные подделки.

чо, прям такая биржа где не могут нанять дба чтоб разрулил тупящие базы?

Где я сказал, что базы «тупящие»? Если интересно, то ДБА у нас есть. Отсюда юзание аля Dapper с параметризированные запросами, и оформленными, как repository. Таки, все равно, работает хуже.

ты собрал пачку мифов и легенд

ты ярлык навешал, я эти «мифы и легенды» на работе вижу. А что ты промолчал про ELK и hot-warm? Или выцарапываем из контекста, что хочется? :)

PS: дальше читать не стал, ибо выдергивается из контекста и перевирвается суть моих сообщений. Диалог - бесполезен.

hazkel
() автор топика
Ответ на: комментарий от hazkel

Не, я не про весь опыт в целом, а именно про виндовозный. Понятно, что код набирать да популярные паттерны использовать ты так или иначе научился.

Пользователь винды — это ходячий набор плохих привычек, если их нет, либо они давно забыты, вообще не понятно как и зачем ей пользоваться. Особенно если ты разраб. Я несколько месяцев назад использовал винду примерно две недели, как без рук остался, дно глубочайшее.

WitcherGeralt ★★
()
Ответ на: комментарий от hazkel

Ты совсем обгаженый?

Какой нахер орм? Нахер рефлекшен? Ты трейдинг системы в глаза хоть видел?

anonymous
()
Ответ на: комментарий от anonymous

поэтому и про ддд никто не слышал - не нужно для работы

по-моему, Вы что-то путаете… DDD о том, как проектирировать слой бизнес-логики через ограниченные-контексты, агрегаты

более того, Эванс в своей книги (да и др.) сами упомянули, что DDD нелимитирон - ОО-языками

если неймется, то пишите хоть на Haskell - DDD

я думаю, Вы имели ввиду SOLID-принципы… обычно Гошники про «композицию» вспоминают тут, особенно если начинается касаться тематика Generics, наследования и интерфейсов в том виде в котором обычно C#/Java разработчики прогают

DDD он не об объектах, хоть книга Эванса (красненькая) изобилие в Жаба-примерах имеет… автор сам подчеркивали, что можете ДДД заниматься хоть на Erlang

hazkel
() автор топика
Ответ на: комментарий от rukez

Только не говори, что у тебя это реально на малинке крутится…

Либо наоборот, говори где. Буду от этого аэропорта подальше держаться.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Я несколько месяцев назад использовал винду примерно две недели, как без рук остался, дно глубочайшее.

Согласен :) Я ее вырубаю, если мне дают. Уже смотреть на нее не могу. От одного интерфейса блевать тянет, не говорю уж о том, что шелл в туксах - намного приятнее и удобнее PowerShell. Да и в целом, вся организация системы Linux-дистрибутивов - лучше (fs, логи и др.), намного приятнее пользоваться.

hazkel
() автор топика
Ответ на: комментарий от WitcherGeralt

Позволить тормозить на персистансе? Наворовали бабок у лохов и трейдят обсаженные?

anonymous
()
Ответ на: комментарий от anonymous

Нет, даже отлично живем. И намного профессиональнее тебя. Тебя случаем не в сизо зачали, коль так общаешься?

hazkel
() автор топика
Ответ на: комментарий от X512

Object Pascal — это по сути недо C++

Возможностей меньше, но то что есть мне показалось более приятным, хотя приятного мало %) Но Qt/C++ - ад.

MOPKOBKA ★★★
()
Ответ на: комментарий от anonymous

DDD это не про композиция vs наследование. Это вообще абстракция другого порядка. Это архитектурный паттерн, а не технический. В DDD плевать совершенно, как именно ты пишешь свои сущности - хоть в сишных структурах.

anonymous
()
Ответ на: комментарий от anonymous

в го про ддд никто не слышал

Это утверждение означает лишь то, что на go никто не пишет прикладного и промышленного ПО, а только утилиты и вспомогательные сервисы, не представляющие из себя единой системы. При чем без всякого соблюдейния архитектуры, а как попало.

Ты сам того не ведая подтвердил то, что го не промышленный язык.

anonymous
()
Ответ на: комментарий от X512

если есть QtCreator

А, этот отстой. Там кстати что-то, чего там никогда не было, наконец подвезли или всё так же тормозят, Троллтези?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.