LINUX.ORG.RU

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

Пишу на связке php + Go, но регулярно вижу, что народ хвалит .NET. В связи с этим у меня несколько вопросов:

  1. Почему .NET, а не java? Она ж, вроде бы, более платформонезависима была всегда.
  2. Как разрабатывать на .NET под Linux, и нет ли с этим проблем, если разверну полученное приложение на сервере под Linux?
  3. С чего начать, чтобы поковырять (именно под Linux)?
  4. Много ли .NET жрёт памяти в сравнении с Java?
  5. Годится ли .NET для различных RestAPI, как там с инструментами? Ну, генерилка swagger по каким-нибудь аннотациям есть, например?
dimuska139 ★★
()
Последнее исправление: dimuska139 (всего исправлений: 1)
Ответ на: комментарий от dimuska139

А это вторая сторона медали. Ставить на лошадей, у которых есть шанс.

И между прочим Rust – не такой уж и плохой кандидат. В списке моих TODO, как время найдётся.

Ну и третья сторона – не сколько количество, сколько качество. Как только оно уходит в большие массы – это уже не так интересно. Всегда найдётся русский индус, который будет делать в двое больше за в двое меньше.

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

python простой и мощный а вот насчет производительности трудно сказать.

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

При этом banshee как я помню стартовал гораздо быстрее условного хелловорлда на java.

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

Тебе понравится. Я так понял с нашей прошлой беседы, что ты ASP не пробовал. Сначала непривычно, потом за уши не оттащить.

Всё есть. И генерилка (https://www.nuget.org/packages/Swagger-Net/), и инфраструктура, библиотеки. Как вишенка, потом полюбишь Angular (и его весёлый подход к Reactive, и отсутствие проблем React с передачей вверх данных https://angular.io/api/core/Output). Или всё бросишь и будешь использовать Razor.

Проникнешься OOP и DI и всё заверте…

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

Всегда найдётся русский индус, который будет делать в двое больше за в двое меньше.

ДА. Но ты забываешь, что хороших индусов мало. Везде. А за теми, кто наделал, надо доделать/расширить/обновить. И за хорошие денежки. Так вот на эту работу индусы просто не идут. Им выгодней с нуля писать (опыта и знаний для поддержки франкенштейнов нет).

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

Тогда очень странный у тебя ответ. Честно.

Я помню, что там бывают проблемы в самых свежих версиях Entity FW. Но у МS всегда так. Индусы, Сэр.

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

Ну конечно, а ИМХО составил :)

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

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

Ну бред же. Rust, например, вышел 10 лет назад, а вакансий на нём много?

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

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

вероятно потому, что js там настоящий код на сишке для такой популярной штуки может дёргать.

У js сейчас лучший jit среди всех динамических языков, и плюс есть возможность прямо работать с примитивными типами, за счет этого он вполне может соревноваться например с явой, https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html только чуть ей уступая.

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

Ну бред же. Rust, например, вышел 10 лет назад, а вакансий на нём много?

Nim кстати старше раста, хотя версия 1.0 вышла позже чем 1.0 у раста. А вообще тот же питон точно больше десяти лет без вакансий просуществовал, на ruby тоже до рельсов вакансий особо не было, а это тоже считай десять лет.

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

Понял, спасибо. Angular я пробовал - не пошло. На React (с Redux) несколько админок запилил. Проблем «с передачей вверх данных» не видел (возможно, как раз потому, что юзал Redux).

Проникнешься OOP и DI и всё заверте…

Ну, DI - это ж не чисто ASPшная фича. В том же PHP у меня DI тоже есть, например. Но я понял.

dimuska139 ★★
()
Ответ на: комментарий от ya-betmen

В смысле для чего?) Такой стек в конторе, где работаю. Основную часть кода проектов (API) пишем на PHP, а где его не хватает по каким-то причинам (например, если вебсокеты нужны) - пишем на Go.

dimuska139 ★★
()
Ответ на: комментарий от dimuska139
  1. Это скорее вкусовщина, но жава всегда была довольно многословна в плане синтаксиса(не знаю как сейчас), и во многом из-за своего неторопливого развития выбор пал на конкурента. Собственно дотнет и C# в частности, все это время активно развивался, обрастал фичами, опенсорснулся. Сейчас он такой же платформонезависимый так что стоит выбирать по каким то другим критериям - кол-во вакансий, пакетов и личные предпочтения.
  2. Нет никаких проблем. Проект создаётся с помощью консольных комманд(ну и возможно в иде типа rider/vscode возможно через гуй). Запускается и отлично работает в разных вариантах деплоя. Можно хоть self contained приложение собрать, для которого не нужен рантайм на хосте.
  3. Ставишь vscode/rider или какую нибудь опенсорсную IDE, ставишь дотнет по гайду из оф. документации. Собственно и всё. Разумеется потребуется время чтобы вкатиться у новую платформу и тут уже надо взвесить все за и против - нужно ли это все, для каких целей и т.д
  4. Тут не скажу. Нужно смотреть бенчмарки конкретных приложений.
  5. Конечно. Скажем в шаблонах приложений уже есть готовый пресет с ASP.NET Core + swagger. Да и вручную его добавить нужные сервисы и мидлуху по докам дело 5 минут. Новый ASP.NET к слову совершенно другой фреймворк - был вдохновлён современным фреймворками с других платформ, во многом что называется low ceremony, многие вещи работают по конвенции.
ritsufag ★★★★★
()
Последнее исправление: ritsufag (всего исправлений: 1)
Ответ на: комментарий от peregrine

Он и на бэкенде медленный по сравнению с серьёзными языками в случае умеющих в них разрабами, конечно

Ну как. За счёт того, что экосистема молодая и нет 100500 прослоек он даст форы, не смотря на то, что фибоначи считается в 2-3 раза медленнее.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от KRex

На нем в последнее время что-то большое пишут?

конечно, порнхаб

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

C# полноценный ООП язык, легко и приятно писать сложный софт

А мне этот вывод неочевиден. Проводимые не мной практические опыты говорят, что писать в процедурном стиле так же быстро, как и на классах. В сухом остатке мы имеем лишь защищенную от неправильной работы с памятью VM... которая есть и в CLR, и в Go.

А на Си# же пишут мощные монолитные приложухи

Kubernetes, почти 2 млн строк. Что гугл делает не так?

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

Существует такой язык который производительный, простой и мощный одновременно?

Сделай инструмент, который сможет понять даже дурак — и только дураки будут им пользоваться. На самом деле я не совсем согласен с этой цитатой. Причина сего феномена заключается в том, что если некий продукт позиционируется для каких-нибудь секретарш и менеджеров среднего звена, то с целью коммерческого успеха есть смысл сделать продукт прям совсем вообще тупым, без какого бы то ни было второго дна. На самом деле можно сделать продукт, которым было бы комфортно пользоваться и дуракам, и чуть более интелектуально развитым особям — но этим никто не будет заниматься, опять-таик из маркетинговых соображений. Даже если опенсорс — смотри на историю PHP, Python, MySQL, Mongo, Docker, и так далее.

byko3y ★★★★
()

Шо то говно, шо то говно. Бери Аду.

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

Kubernetes - это не монолитная приложуха. На C# пишут игры и прочее потому, что есть наследование, и прочие удобства. В Go ничего этого нет, и он по сути C на стероидах. Если ты не писал на ООП, то тут уже ничего тебе не объяснить. В целом ответ такой - ООП решает многие проблемы структурирования кода, чем больше пишешь в процедурном - тем больше код становится запутанным и неочевидным. Но и на ооп, конечно, часто городят лапшу, особенно этим грешат java с фабриками фабрик и прочим бредом

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

производительный
простой
мощный одновременно

JavaScript

По моим субъективным ощущением это до боли напоминает какой-нибудь brainfuck, только со сборкой мусора и встроенными в базовый язык ассоциативными массивами. Потому что на некоторые достаточно простые операции строить такую гору из скобочек разной формы, что лисперы обзавидуются. При этом метапрограммирования, естественно, нету — потому лисперы не завидуют жабоскриптерам.

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

На C# пишут игры и прочее потому, что есть наследование

Наследования, как мы привыкли (множественного), там нет. Там слегонца другой механизм.

white_bull
()
Последнее исправление: white_bull (всего исправлений: 1)
Ответ на: комментарий от dimuska139

Не, пробовать и писать что-то среднее, это разные вещи. Там всё по другому. Просто вход сложнее с JS. Вот после шарпов вход очень положительный. Ну и поддерживать удобнее.

А Redux после Angular - многословное и дурнопахнущее.

Проблем «с передачей вверх данных» не видел

А ты просто не можешь. Там змея ест свой хвост…

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

Kubernetes - это не монолитная приложуха

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

В Go ничего этого нет, и он по сути C на стероидах

Член — это такой палец с яйцами снизу. Да, там где-то далеко есть корни Си, но они также есть и в питоне, но вряд ли ты назовешь питон Си на стероидах. Особенно когда в языке есть сборка мусора и безопасная память, что перечеркивает всё бережно хранимое наследние Си.

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

никто по пол-года за тысячи баксов академиков по языку C# не ищет

Ты хочешь сказать, что в академиях сидят талантливые архитекторы, а не полные кретины, которые даже работу программиста не могут освоить?

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

Огромная скорость разработки правда плюс

Есть единственный способ быстрее разработать софтину — это взять уже готовую софтину. В остальном за многие годы скорость разработки изменилась весьма слабо. Более корректно было бы говорить «на этом языке глючный кусок дерьма издали напоминает работающее приложение» — и ты таки прав.

byko3y ★★★★
()

учёные 50 лет работали, что бы дать им божественный хацкель, а им подавай говно, ещё и ложками.

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

Почему .NET, а не java? Она ж, вроде бы, более платформонезависима была всегда

Потому что архитектуру Java делали эффективыне менеджеры, потому ее использование представляет собой непрерывные боль и страдание. Некоторые люди не понимают, но Microsoft отличилась от Sun тем, что таки сумела найти квалифицированных кодеров. Кождый раз, когда я запускаю VS/VS Code, я чувствую, что эту софтину писали программисты для программистов. Каждый раз, когда я читаю доки по Java, мне чудятся совещания, UML-диаграмы, пути к файлам на 250 символов, а в самих файлах — одна строчка кода.

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

Как разрабатывать на .NET под Linux, и нет ли с этим проблем, если разверну полученное приложение на сервере под Linux?

Linux не нужен.

Много ли .NET жрёт памяти в сравнении с Java?

Столько же. Потому что это, по большому счету, копия JVM.

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

ДА. Но ты забываешь, что хороших индусов мало. Везде. А за теми, кто наделал, надо доделать/расширить/обновить. И за хорошие денежки. Так вот на эту работу индусы просто не идут. Им выгодней с нуля писать (опыта и знаний для поддержки франкенштейнов нет)

Да, потому что поддерживать чужой код на порядок сложнее, чем писать что-то с нуля. Тут как бы дело даже не в «выгоднее» — как человеку с ДЦП «не выгодно» играть в роли нападающего Реал Мадрида.

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

У js сейчас лучший jit среди всех динамических языков

Ровно потому, что ты ничего другого не знаешь. Лучший JIT у Lua, а чтобы завезти JIT в V8 кодеры из гугла много лет жрали кактусы и плакали.

плюс есть возможность прямо работать с примитивными типами, за счет этого он вполне может соревноваться например с явой

Жава вдоль и попеерк состоит из контейнеров и бесконечных вызовов, потому мало отличается от JS, и потому она была одним из первых языков с JIT-компиляцией. С момента статизации контейнеров в V8 начинается тот же самый Hotspot, и работы там непочатый край.

В данном случае я не столько унижаю JS-V8, сколько Java-JVM, которую на ровном месте снабдили всеми свойствами для успешного провала почти во всех сферах применения, кроме отдельных серверных приложений.

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

На C# пишут игры и прочее потому, что есть наследование

Наследования, как мы привыкли (множественного), там нет. Там слегонца другой механизм

А еще на нем пишут игры, потому что там скобочки.

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от EXL

Кождый раз, когда я запускаю VS Code, я чувствую, что эту софтину писали программисты для программистов

https://habr.com/ru/post/402601/

/thread про монстра с миллиардом щупалец по имени Chromium, которого даже гугл не может довести до цивилизованного состояния. В итоге гуглевые сайты работают быстро только на хроме, а в самом хроме быстро работают только сайты гугла. Так и живем.

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

Ровно потому, что ты ничего другого не знаешь.

Не важно что jit пытались прикрутить много к чему, и даже получилось например к питону или луа, мы сейчас обсуждаем именно js.

Лучший JIT у Lua

Был, но сейчас уже нет.

В данном случае я не столько унижаю JS-V8, сколько Java-JVM,

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

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

Linux не нужен

Ну не знаю. В случае с .NET - может быть. Но сервак на Винде я себе слабо представляю. Да и в принципе Виндой уже лет 7 вообще не пользуюсь, поэтому вопрос и возник.

Столько же. Потому что это, по большому счету, копия JVM.

Тогда почему так часто разговоры про то, что JAVA дофига жрёт, а про .NET их нет?

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

Тогда почему так часто разговоры про то, что JAVA дофига жрёт, а про .NET их нет?

В NET есть экономные value type и в последних версиях и прямой безопасный доступ к буферам памяти, и что важнее не принято городить настолько богатые ООП иерархии как в яве.

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