А это вторая сторона медали. Ставить на лошадей, у которых есть шанс.
И между прочим Rust – не такой уж и плохой кандидат. В списке моих TODO, как время найдётся.
Ну и третья сторона – не сколько количество, сколько качество. Как только оно уходит в большие массы – это уже не так интересно. Всегда найдётся русский индус, который будет делать в двое больше за в двое меньше.
Всегда найдётся русский индус, который будет делать в двое больше за в двое меньше.
ДА. Но ты забываешь, что хороших индусов мало. Везде. А за теми, кто наделал, надо доделать/расширить/обновить. И за хорошие денежки. Так вот на эту работу индусы просто не идут. Им выгодней с нуля писать (опыта и знаний для поддержки франкенштейнов нет).
Ну бред же. Rust, например, вышел 10 лет назад, а вакансий на нём много?
Rust вышел пять с половиной лет назад, до версии 1.0 на нем писать было невозможно слишком уже часты были ломающие язык изменения, из-за этого даже после выхода 1.0 многие боялись к нему подойти еще год - два. Так что реально в годном для работы состоянии расту сейчас не больше четырех - пяти лет.
Ну бред же. Rust, например, вышел 10 лет назад, а вакансий на нём много?
Nim кстати старше раста, хотя версия 1.0 вышла позже чем 1.0 у раста. А вообще тот же питон точно больше десяти лет без вакансий просуществовал, на ruby тоже до рельсов вакансий особо не было, а это тоже считай десять лет.
Понял, спасибо. Angular я пробовал - не пошло. На React (с Redux) несколько админок запилил. Проблем «с передачей вверх данных» не видел (возможно, как раз потому, что юзал Redux).
Проникнешься OOP и DI и всё заверте…
Ну, DI - это ж не чисто ASPшная фича. В том же PHP у меня DI тоже есть, например. Но я понял.
В смысле для чего?) Такой стек в конторе, где работаю. Основную часть кода проектов (API) пишем на PHP, а где его не хватает по каким-то причинам (например, если вебсокеты нужны) - пишем на Go.
Это скорее вкусовщина, но жава всегда была довольно многословна в плане синтаксиса(не знаю как сейчас), и во многом из-за своего неторопливого развития выбор пал на конкурента. Собственно дотнет и C# в частности, все это время активно развивался, обрастал фичами, опенсорснулся. Сейчас он такой же платформонезависимый так что стоит выбирать по каким то другим критериям - кол-во вакансий, пакетов и личные предпочтения.
Нет никаких проблем. Проект создаётся с помощью консольных комманд(ну и возможно в иде типа rider/vscode возможно через гуй). Запускается и отлично работает в разных вариантах деплоя.
Можно хоть self contained приложение собрать, для которого не нужен рантайм на хосте.
Ставишь vscode/rider или какую нибудь опенсорсную IDE, ставишь дотнет по гайду из оф. документации. Собственно и всё.
Разумеется потребуется время чтобы вкатиться у новую платформу и тут уже надо взвесить все за и против - нужно ли это все, для каких целей и т.д
Тут не скажу. Нужно смотреть бенчмарки конкретных приложений.
Конечно. Скажем в шаблонах приложений уже есть готовый пресет с ASP.NET Core + swagger. Да и вручную его добавить нужные сервисы и мидлуху по докам дело 5 минут.
Новый ASP.NET к слову совершенно другой фреймворк - был вдохновлён современным фреймворками с других платформ, во многом что называется low ceremony, многие вещи работают по конвенции.
C# полноценный ООП язык, легко и приятно писать сложный софт
А мне этот вывод неочевиден. Проводимые не мной практические опыты говорят, что писать в процедурном стиле так же быстро, как и на классах. В сухом остатке мы имеем лишь защищенную от неправильной работы с памятью VM... которая есть и в CLR, и в Go.
А на Си# же пишут мощные монолитные приложухи
Kubernetes, почти 2 млн строк. Что гугл делает не так?
Существует такой язык который производительный, простой и мощный одновременно?
Сделай инструмент, который сможет понять даже дурак — и только дураки будут им пользоваться. На самом деле я не совсем согласен с этой цитатой. Причина сего феномена заключается в том, что если некий продукт позиционируется для каких-нибудь секретарш и менеджеров среднего звена, то с целью коммерческого успеха есть смысл сделать продукт прям совсем вообще тупым, без какого бы то ни было второго дна. На самом деле можно сделать продукт, которым было бы комфортно пользоваться и дуракам, и чуть более интелектуально развитым особям — но этим никто не будет заниматься, опять-таик из маркетинговых соображений. Даже если опенсорс — смотри на историю PHP, Python, MySQL, Mongo, Docker, и так далее.
Kubernetes - это не монолитная приложуха. На C# пишут игры и прочее потому, что есть наследование, и прочие удобства. В Go ничего этого нет, и он по сути C на стероидах. Если ты не писал на ООП, то тут уже ничего тебе не объяснить. В целом ответ такой - ООП решает многие проблемы структурирования кода, чем больше пишешь в процедурном - тем больше код становится запутанным и неочевидным. Но и на ооп, конечно, часто городят лапшу, особенно этим грешат java с фабриками фабрик и прочим бредом
По моим субъективным ощущением это до боли напоминает какой-нибудь brainfuck, только со сборкой мусора и встроенными в базовый язык ассоциативными массивами. Потому что на некоторые достаточно простые операции строить такую гору из скобочек разной формы, что лисперы обзавидуются. При этом метапрограммирования, естественно, нету — потому лисперы не завидуют жабоскриптерам.
Не, пробовать и писать что-то среднее, это разные вещи. Там всё по другому. Просто вход сложнее с JS. Вот после шарпов вход очень положительный. Ну и поддерживать удобнее.
А Redux после Angular - многословное и дурнопахнущее.
Модульный монолит. То есть, нет API, по которому ты можешь присобачить чужеродный сервис вместо родного. В ядре Linux тоже есть модули, и их даже можно подключать динамически, но никто в голову не придет назвать ядро Linux микросервисной системой, потому что каждый модуль ядра приколочен гвоздями к конкретной версии ядра, и отдельные внутренние сервисы не имеют смысла без инфраструктуры ядра.
В Go ничего этого нет, и он по сути C на стероидах
Член — это такой палец с яйцами снизу. Да, там где-то далеко есть корни Си, но они также есть и в питоне, но вряд ли ты назовешь питон Си на стероидах. Особенно когда в языке есть сборка мусора и безопасная память, что перечеркивает всё бережно хранимое наследние Си.
Есть единственный способ быстрее разработать софтину — это взять уже готовую софтину. В остальном за многие годы скорость разработки изменилась весьма слабо. Более корректно было бы говорить «на этом языке глючный кусок дерьма издали напоминает работающее приложение» — и ты таки прав.
Почему .NET, а не java? Она ж, вроде бы, более платформонезависима была всегда
Потому что архитектуру Java делали эффективыне менеджеры, потому ее использование представляет собой непрерывные боль и страдание. Некоторые люди не понимают, но Microsoft отличилась от Sun тем, что таки сумела найти квалифицированных кодеров. Кождый раз, когда я запускаю VS/VS Code, я чувствую, что эту софтину писали программисты для программистов. Каждый раз, когда я читаю доки по Java, мне чудятся совещания, UML-диаграмы, пути к файлам на 250 символов, а в самих файлах — одна строчка кода.
MS скопировало сам язык, но реализацию смогла сделать на порядок лучше сана.
Как разрабатывать на .NET под Linux, и нет ли с этим проблем, если разверну полученное приложение на сервере под Linux?
Linux не нужен.
Много ли .NET жрёт памяти в сравнении с Java?
Столько же. Потому что это, по большому счету, копия JVM.
ДА. Но ты забываешь, что хороших индусов мало. Везде. А за теми, кто наделал, надо доделать/расширить/обновить. И за хорошие денежки. Так вот на эту работу индусы просто не идут. Им выгодней с нуля писать (опыта и знаний для поддержки франкенштейнов нет)
Да, потому что поддерживать чужой код на порядок сложнее, чем писать что-то с нуля. Тут как бы дело даже не в «выгоднее» — как человеку с ДЦП «не выгодно» играть в роли нападающего Реал Мадрида.
У js сейчас лучший jit среди всех динамических языков
Ровно потому, что ты ничего другого не знаешь. Лучший JIT у Lua, а чтобы завезти JIT в V8 кодеры из гугла много лет жрали кактусы и плакали.
плюс есть возможность прямо работать с примитивными типами, за счет этого он вполне может соревноваться например с явой
Жава вдоль и попеерк состоит из контейнеров и бесконечных вызовов, потому мало отличается от JS, и потому она была одним из первых языков с JIT-компиляцией. С момента статизации контейнеров в V8 начинается тот же самый Hotspot, и работы там непочатый край.
В данном случае я не столько унижаю JS-V8, сколько Java-JVM, которую на ровном месте снабдили всеми свойствами для успешного провала почти во всех сферах применения, кроме отдельных серверных приложений.
/thread про монстра с миллиардом щупалец по имени Chromium, которого даже гугл не может довести до цивилизованного состояния. В итоге гуглевые сайты работают быстро только на хроме, а в самом хроме быстро работают только сайты гугла. Так и живем.
Не важно что jit пытались прикрутить много к чему, и даже получилось например к питону или луа, мы сейчас обсуждаем именно js.
Лучший JIT у Lua
Был, но сейчас уже нет.
В данном случае я не столько унижаю JS-V8, сколько Java-JVM,
Да пожалуйста, но все это не отменяет факта что js сейчас в категории относительно быстрых языков в отличии от абсолютного большинства других динамических языков.
Ну не знаю. В случае с .NET - может быть. Но сервак на Винде я себе слабо представляю. Да и в принципе Виндой уже лет 7 вообще не пользуюсь, поэтому вопрос и возник.
Столько же. Потому что это, по большому счету, копия JVM.
Тогда почему так часто разговоры про то, что JAVA дофига жрёт, а про .NET их нет?
Тогда почему так часто разговоры про то, что JAVA дофига жрёт, а про .NET их нет?
В NET есть экономные value type и в последних версиях и прямой безопасный доступ к буферам памяти, и что важнее не принято городить настолько богатые ООП иерархии как в яве.