Комментарии 148
Пропустим все ваши 237 фатальных ошибок в рассуждениях и сфокусируемся на том, что JS — это такая неведомая хрень, которая работает (должна) на стороне клиента, для чего есть такое умное слово Front-end.
C# же — это язык, который предназначен для разработки бизнес-логики, что, в связке с веб-мордой фронтенда, можно назвать не менее умным термином Back-end.
Разные задачи — разные инструменты.
как — то
Но в целом, буду признателен, если вы вкратце обрисуете (своими словами) преимущества JS для back-end по сравнению с более традицонными подходами.
Два слова: изоморфный рендер.
1. На заре интернета есть классическая клиент-серверная архитектура со скучными статическими страничками.
2. Чтобы добавить какой-то интерактивности на клиенте, разрабатывается некоторый скриптовый язык программирования.
3. Но поскольку этот язык разрабатывается людьми, перманентно находящимися под веществами, пользоваться и делать что-то полезное с помощью этого языка можно, только по уши обвешавшись всякими костылями, начиная с JQuery и по нарастающей вплоть до React/Angular.
4. С учетом всех этих костылей, самая простая веб-страничка начинает весить чуть бошьше, чем ранние дистрибутивы винды, грузится далеко не мгновенно, да и поисковиками воспринимается не без вопросов.
5. Решение? А давайте перенесем вот весь этот костыльный рендеринг на сервер! Ну и чтобы, значить, не писать все костыли по два раза, давайте сервак тоже запилим на JS.
Ну а виноват во всем этом, конечно, кровавый enterprise с его C#, смерь ему. :)
Не путайте костыли, библиотеки и фреймворки.
Но все-таки поясню, почему все вышеперечисленное я отношу к костылям. Согласно вики: «Фреймворк — программная платформа, определяющая структуру программной системы» и «Одно из главных преимуществ при использовании «каркасных» приложений — «стандартность» структуры приложения».
Что имеем: с одной стороны есть растущая куча «фреймворков» (React, Angular, Vue...).
ОК, если каждый «фреймворк» предназначен для решения какого-то специфического класса задач.
Не ОК, если все «фреймворки» решают одни и те же задачи, просто в очередной раз «чуть проще и лучше».
На практике мы видим, что количество статей "[Angular, React, Vue, неведомая фигня] [лучше, хуже] чем [Angular, React, Vue, неведомая фигня]" перевалило за все мыслимые пределы, а, значит, ни у кого нет понимания, как правильно построить эту самую «структуру программной системы». Кажется, это практически определение костыля.
С другой стороны, даже внутри одного фреймворка мы не видим «стандартности структуры приложения»: тот же Angular 1 и Angular 2/4 — чуть менее, чем совсем разные продукты, и нельзя вот так взять и перейти с одной версии на другую, просто поменяв опцию конфигурационного файла. Переписывать-с надобно!
Так что, простите, но вот назвать все вот эти поделия «фреймворками» у меня язык не поворачивается.
В данном случае, аргументов по существу я не нашел у вас, одна экспрессия ("под веществами", "костыли").
Что же до растущей кучи библиотек — хорошо когда есть из чего выбирать. Это лучше чем ситуация когда выбирать не из чего. Никто не заставляет же переписывать свой проект каждый раз на новый фреймворк.
PS Angular.js и Angular надо считать совершенно разными фреймворками. Тогда и не будет фантазий насчет "просто поменять опцию конфигурационного файл".
Но как-то сложно спокойно относиться к языку и его производным, где
('1' + 1) равно '11', и ('1' — 1) равно 0
кажутся вполне логичными и нормальными вещами на фоне всего остального.
А вот дальше должна быть картинка про 14 конкурирующих стандартов.
Хорошо, когда есть, из чего выбирать разного. Плохо, когда есть дофига, но чего-то одинакового. И плохо, когда то, что ты выбрал, к моменту окончания разработки оказывается бесконечно устаревшим и никем более не поддерживаемым.
И еще, наверное, плохо (хотя я не знаю наверняка, как фронтендные соискатели к этому относятся), что перед любым собеседованием на JS надо держать в голове всю эту растущую кучу «фреймворков», чтобы хотя бы просто быть в курсе.
Зачем держать в голове все фреймворки перед собеседованием? Достаточно тех, которые указаны в вакансии.
А если где-то принято на собеседовании экзаменовать сразу по всем фреймворкам — бегите оттуда!
('1' + 1) равно '11', и ('1' — 1) равно 0
И часто вы пишете такой код?
Наверное, не чаще, чем C++ разработчики используют goto.
Строковые — я вообще не вычитаю почему-то, даже в мыслях не было...
Не имею привычки забывать значение какого типа я положил в переменную. Ну и еще TypeScirpt есть, я его уже упоминал.
фотографической памяти и способности к телепатии между коллегами
Для JS, может и да.
Но хорошая IDE для TS/C++/C# и т.д. вполне успешно показывает тип переменной.
В параметре конструктора вы не указали тип параметра 'myService'. При этом компилятор TS подставит тип any.
Я могу так написать:
class MyClass {
void* mService;
public:
MyClass(void* myService) {
mService = myService;
}
search() {
this->mService-> //???
}
};
Но согласитесь, что это не проблема C++, а проблема моих рук.
А вообще для такого интерфейсы и нужны
Ваш код в TS не скомпилируется (в строгом режиме — точно не скомпилируется).
Правильный код выглядит как-то так:
export class MyClass{
constructor(private service: MyService) { }
search(){
this.service./*здесь IDE выведет публичные свойства и методы класса MyService*/
}
}
правильно понимаю историю развития всей этой… ммм… штуки?
1. На заре интернета есть классическая клиент-серверная архитектура со скучными статическими страничками.
2. Чтобы добавить какой-то интерактивности на клиенте, разрабатывается некоторый скриптовый язык программирования.
3. Но поскольку этот язык разрабатывается людьми, перманентно находящимися под веществами, пользоваться и делать что-то полезное с помощью этого языка можно, только по уши обвешавшись всякими костылями, начиная с JQuery и по нарастающей вплоть до React/Angular.
4. С учетом всех этих костылей, самая простая веб-страничка начинает весить чуть бошьше, чем ранние дистрибутивы винды, грузится далеко не мгновенно, да и поисковиками воспринимается не без вопросов.
5. Решение? А давайте перенесем вот весь этот костыльный рендеринг на сервер! Ну и чтобы, значить, не писать все костыли по два раза, давайте сервак тоже запилим на JS.
Ну а виноват во всем этом, конечно, кровавый enterprise с его C#, смерь ему. :)
1) Было в 2000 годах, помним
2) Да, JS, но он был не удобным, работать с DOM было сложно и создали Jquery
3) Эра Jquery окончена, теперь у JS полноценные функции для работы с DOM, теперь делать что-то больше сайта визитки стало сложно и для упрощения разработки появились фреймворки (даже в C#/C++/java есть фреймворки, глупо не воспользоваться готовой архитектурой, готовым решением)
Конечно я понимаю вы настоящий программист и все пишите с нуля, такие как вы пишут REST API на чистых сокетах.
4) Entity Framework, laravel / Yii2 / Spring / servicestack это тоже костыли, если следовать вашей логике что angular / react / vue один большой костыль?
— Самая простая веб страничка весит 20 кб, никто не использует фреймворки для сайтов визиток. Не согласны со мной, думаете что весь интернет заполонили SPA сайты, покажите мне пример таких плохих сайтов, вряд ли они у вас есть, вы просто поддались на хабра-пропаганду и придерживаетесь её.
— Бандл весит максимум 2 мегабайта (но и это можно оптимизировать, сделать динамическую подгрузку бандлов), 2 мб — это нормально для 2017 года, для мобильных устройств делают SSR и все рады, не согласны со мной? покажите мне код с JS в 50 МБ?
— Поисковики дружат отлично с такими сайтами, для этого делает есть все тот же SSR
Почему вы этого не знаете? а потому что вы не веб разработчик и вас в голове информация о JS примерно 2010 годов, этого не знает JS разработчик за 60 000 рублей, про это я тоже описал в своем посте.
5) Упс, оказывается вы знаете про рендеринг на сервере для мобильных устройств и поисковиков (напомню что десктоп все устраивает, если у вас проблема с 2 MB сайтами, то это не проблема сервиса, это проблема вашего поселения, проблемы вашего компьютера, другими словами, если у вас nokia 3310 не жалуйтесь что сайты глючат, бесплатные сайты, которые вам ничем не обьязаны, созданные энтузиастами, не согалсны? покажите мне хотя бы 1 такой сайт, я не прошу 100, хотя вы и говорите что почти все сайты, покажите хотя бы 1 сайт и я скажу в чем там проблема, в сервере, в канале или реально в JS файле в 700 МБ :D)
Опять, вы не веб разработчик, серверный рендеринг делается за 5 минут.
Мы разрабатываем проект за 1 000 000 и создаем продукт под все системы(в том числе и мобильные)
Конкурент разрабатывает проект за 1 000 000 и разрабатывает только под Window
вы рассуждаете как программист, я рассуждаю как владелец бизнеса
Что актуально а что нет, как писать код решать будет всегда бизнес, а не программист, лидировать будет всегда тот у кого грамотное руководство, тесно связанное с бизнесом, а не программист с манией величия.
Цель — деньги. плевать всем на ваш код.
Конечно вы сейчас скажете что я идиот, зарубежом идиоты и Microsoft идиоты, которые начали писать свои продукт на JS, skype на JS, vscode На JS, идиоты. только русские программисты умные, пишут HTTPRESTAPI На чистых сокетах в 2017 году, потому что СКОРОСТЬ! мать ее :)
Мне, например, было бы очень и очень интересно почитать про рефакторинг JS-кода, серьезно.
вы рассуждаете как программист, я рассуждаю как владелец бизнеса
Вы "рассуждаете" опираясь на утверждение, что вы и ваш конкурент создаете полностью идентичный (кроме системных требований) продукт за одни и те же деньги/ресурсы. А на чем, собственно, основано это утверждение?
Мы создаем приложение за 2 000 000 рублей под все платформы, в том числе и мобильные.
Конкурент создает такое же приложение за 2 000 000 рублей но только под Window, что нужно сделать конкуренту что бы создать это приложение под все системы? Ему нужно расширить штат, новые джуниоры, новые сеньеры, и вот бюджет уже расширяется под 10 000 000 рублей, а что делаем мы? мы используем JS и пишем на нем под все возможные платформы (electron + r native)
Господи ну какая может быть производительность в выводе таблиц из 50 строк? Вся нагрузка падает на SQL.
Конкурент создает такое же приложение за 2 000 000 рублей но только под Window
Откуда вы взяли это утверждение?
Конкурент создает такое же приложение за 2 000 000 рублей но только под Window
Откуда вы взяли это утверждение?
Ну это элементарная математика, писать сразу по 4 платформы системы с 2 программистами или писать писать под 4 системы с 8 программистами.
По мимо C# программистов, нужно будет нанимать Unix/Android/Ios
Core не способен решить эту задачу в 2017 году, сейчас можно только разворачивать сервера, но рисовать формы и прочее — сейчас невозможно, я не отрицаю что это скоро сделают, но пройдет лет 5.
За эти 5 лет уже много поменяете и NET будет как всегда оставаться на 10 шагов.
Теперь комьюнити, знаете сколько готовых календарей у react native и electon, минмиум под два десятка, что может предложить ваш Core? ничего, конечно вы мне опять скажете что настоящий программист должен тратить месяц на то что бы нарисовать свой календарь на канвасе, это круто для вашей самооценке, но мне как для бизнеса нужен человек который создаст календарь за 1 сутки
Ну это элементарная математика, писать сразу по 4 платформы системы с 2 программистами или писать писать под 4 системы с 8 программистами.
Никакая "элементарная математика" не объясняет, почему вы считаете, что разработка на C# (под одну платформу) занимает столько же ресурсов, сколько и разработка на JS (под ту же одну платформу).
Понимаете ли, вот у нас типовая "современная" система — то есть, распределенная, с веб-интерфейсом, API и мобильными клиентами. Поделим ее на три зоны: бэкенд, веб-фронт и мобильный фронт. Время разработки мобильного фронта не зависит от того, на чем написан бэк (они все равно изолированы через API). Предположим, что веб-фронт у нас на реакте. Внимание, вопрос: почему вы утверждаете, что разработка веб-фронта на JS + бэкенда на JS не медленнее, чем веб-фронт на JS + бэкенд на C#?
Предположим, что веб-фронт у нас на реакте.
Это, на самом деле, предположение, не влияющее на дальнейшее рассуждение. Достаточно предположить, что у нас не изоморфный фреймворк.
2) ios — swift
3) Backend — C#
4) FrontEnd — Javascript
Никто не может заменить друг дружку в этой схеме, т.е. нужно как минимум 4 программиста, каждому я буду платить от 140 000 рублей, правильно? или JS программисту не нужно платить 140 000 можно взять за 50 000 рублей, а java и swift это один человек. как считаете?
Угу, а теперь берем вашу схему:
1) android — JS
2) ios — JS
3) Backend — JS
4) FrontEnd — JS
Четыре программиста, каждому от 140000 рублей, правильно?
Что поменялось? Где экономия?
Любой человек может заменять другого сотрудника и быстро переучиваться в процессе это сокращает бюджет.
Если я сегодня писал FrontEnd то я уже через неделю могу писать все тоже самое, но на выходе у меня будет мобильные приложений (да игры не напишу, с API операционки работать не смогу, но тот проект что описал выше я сделаю)
Единственное условие: Все сотрудник должны хорошо знать нативный JS
Любой человек может заменять другого сотрудника и быстро переучиваться в процессе
Или не сможет. Зависит исключительно от квалификации сотрудника.
это сокращает бюджет.
Нет, не сокращает. У вас есть четыре компонента, стоимостью A, B, C и D человеко-часов. Суммарная стоимость — (A+B+C+D)*P, где P — стоимость человеко-часа. От того, что вы можете перекидывать людей между компонентами, бюджет не уменьшается, потому что количество часов не уменьшается. Более того, бюджет может и увеличиваться, потому что на переучивание в процессе уходят деньги.
Общий технологический стек может помочь, но только в том случае, когда у вас сильно несбалансированная нагрузка между компонентами, и вы не хотите набирать такие же команды, а потом пытаться угадать, правильно ли вы расчитали численность.
Выгода вот в чем, вы не сможете найти фулстек разработчика за 140 000 на 2-3 направления, а я смогу найти. (ситуация поменяете в вашу пользу, если через 5 лет NET.CORE Трансформируется во что-то больше чем серверочек под линукс)
мне нужно уже не 4-5 сотрудников, а 2 фулстек разработчика.
В проектах крупных как правило участвуют и джуниоры и прочии ребята, вам нужно 12 сотрудников а мне 6.
Сейчас вы скажете что нереально найти спецаилиста и по фронтенду и по бекенду за 140 000 рублей.
Что нереально найти спецаилиста по фронтенду и по мобильным за 140 000.
А я отвечу, что легко.
Более того накинув им 20 000-40 000 рублей в процессе работы их можно заточить и под сервера.
Выгода вот в чем, вы не сможете найти фулстек разработчика за 140 000 на 2-3 направления, а я смогу найти. мне нужно уже не 4-5 сотрудников, а 2 сотрудника.
Которые сделают работу в два раза медленнее (чем четыре). Что значит, что денег вы потратите все равно столько же, только еще и на рынок позже выйдете.
В проектах крупных как правило участуют и джуниоры и прочии ребята, вам нужно 12 сотрудников а мне 6.
Это утверждение снова ни на чем не основано. Вы не знаете, как распределяется пропорция в команде.
Более того накинув им 20 000-40 000 рублей в процессе работы их можно заточить и под сервера.
То есть у вас был фронт-разработчик, вы ему "накинули 40 тысяч", и он сразу стал писать хороший бэкенд код? Вау.
Которые сделают работу в два раза медленнее (чем четыре). Что значит, что денег вы потратите все равно столько же, только еще и на рынок позже выйдете.Это утверждение снова ни на чем не основано. Вы не знаете, как распределяется пропорция в команде.То есть у вас был фронт-разработчик, вы ему «накинули 40 тысяч», и он сразу стал писать хороший бэкенд код? Вау.
Вы не разбираетесь в JS и вам сложно давать оценку моим словам, возможно вы топ программист в С++ C#, но в веб у вас опыта нет, вы хотя бы примеры проектов посмотрели на тех технологиях что я описал, у вас есть только примерное представление о JS и скорей всего эти представляения 2010 годов, но я вам подскажу перескочить с технологии на технологию дело 1 недели (Js(es5 es6 es7)-> node.js -> React -> react native -> electron) Это JS, 90% остается неизменным, меняются незначительные вещи, именно по этому я и сказал что нужно искать JS специалиста, который хорошо знает нативный JS, тогда никаких проблем и не будет. Я Node.js Учил за 2 часа после JS, я понял основную идею, веб сервис я могу поднять за 20 минут, если потребуются какие-то другие задачи, то я пойду читать документацию, да задач то и не много: Работа с файлами, работа с сеть. работа с бд (это учится максимум за неделю, если не за пару дней ), а все остальное мы уже знаем (js То учили)
Да, бекенд специалистом стать не проблема, опять таки, нам нужно искать не Jquery веб мастеров, а JS программистов, это совершенно разные профессии, вы живете еще в 2010 году, вам кажется что JS это только сайты визитки и смена цвета кнопке. Единственная проблема будет с SQL, но и тут у нас есть решение.
Основы можно за недельку выучить, но вот проектирования БД нужен опыт, но у нас проектированием занимается всегда 1 человек, других даже не подпускаем.
Не переоценивайте свою значимость, возможно вы гений оптимизации, но нам не нужна высокая производительность, у нас работают люди возможно глупее чем вы, я этого не отрицаю, но они получают больше чем вы и многие .NET программисты :3
бизнесу плевать на ваши амбиции, даже если вы изобретете какой-то мощный алгоритм, всем будет плевать. Ценятся те кто может решать задачи и приносить бизнесу деньги, самое главное это нужно делать быстро. Наши клиенты всегда довольны.
возможно вы топ программист в С++ C#, но в веб у вас опыта нет,
Вам, конечно, лучше знать, какой опыт у меня есть, а какого нет.
Это JS, 90% остается неизменным, меняются незначительные вещи
У вас в языке меняется 10% просто при переходе с клиента на сервер? Мне вас жаль.
да задач то и не много: Работа с файлами, работа с сеть. работа с бд (это учится максимум за неделю, если не за пару дней )
Какая у вас простая жизнь на сервере… тот простой факт, что клиентское и серверное приложение существуют в принципиально разных окружениях, начиная, банально, с того, что у первого всего один источник стимулов, а у дргого — десятки, сотни и тысячи одновременно (и все они, неизбежно, влияют друг на друга) — он вами как учитывается? Куча паттернов для распределенных приложений, вот это вот все — это все ненужная фигня?
Да, бекенд специалистом стать не проблема
Да нет, понятно, что не проблема. Практика, книжки, снова практика, снова книжки, намылить, смыть, повторить. Несколько месяцев, несколько лет — и вот вы специалист.
у нас работают люди возможно глупее чем вы, я этого не отрицаю, но они получают больше чем вы
А вот теперь конкретные цифры в студию. Сколько именно получают ваши люди, и сколько получаю я.
Ценятся те кто может решать задачи и приносить бизнесу деньги, самое главное это нужно делать быстро.
Вы все время говорите о быстроте, но на основании чего вы утверждаете, что любые (хорошо, 95% рынка) приложения в вашем технологическом стеке пишутся быстрее (с сохранением остальных атрибутов, конечно же), чем на других стеках?
Наши клиенты всегда довольны.
Наши довольны не всегда (я еще не видел всегда довольного клиента), но достаточное количество времени, чтобы платить деньги.
У вас в языке меняется 10% просто при переходе с клиента на сервер? Мне вас жаль.
map + reduce + filter + Underscore, все что нужно для обработки данных, да, я использую готовые решения, а вы наверное по старинке пишите километровые алгоритмы, наверно и сортировки пишите все с нуля?
Ради интереса, можете описать хотя бы одну сложную задачу которую вам приходилось решать на сервере, не на уровне SQL запросов, а именно на серверном языке прошу, хотя бы одну ^^ мне вас жаль, я бы уволил вас давно, гений программирования и оптимизаций :)
map + reduce + filter + Underscore, все что нужно для обработки данных
И какое отношение это имеет к 10% в языке между сервером и клиентом?
(да, кстати, а в ваши "map/filter", которые "все что нужно", уже завезли AST?)
Ради интереса, можете описать хотя бы одну сложную задачу которую вам приходилось решать [...] именно на серверном языке
Что такое "серверный язык"? Я такого не знаю.
они получают больше чем вы и многие .NET программисты
Кажется, мы так и не узнаем, сколько получают работающие у вас люди.
Знаете, мне вот что интересно. Вы говорите, что JS-разработчики приносят компании экономию. Как так получается, если их зарплаты выше (при одном и том же качестве продукта)?
Пример:
Бюджет заказчика 5 000 000 рублей.
Сроки на разработку 4 месяца.
Цена разработки с нашей стороны: 1 500 000 рублей.
Сроки: 1 месяц.
на выходе готовый продукт под все системы в короткие сроки, да возможно половину мы написали не с нуля, да возможно наше приложение запускается 6 секунд вместо ваших 0.3s, но нам плевать да и клиенту тоже.
Да, человек получает 300к+ рублей у нас самый «жирный» при этом он приносит самые большие деньги компании, так или иначе все остаются в большом плюсе.
Это эконмия, если бы он получал 300к и приносил 500 000 это не экономия, но когда он получает 400 000 и приносит миллион — это экономия, условный пример конечно.
Цена разработки с нашей стороны: 1 500 000 рублей.
Сроки: 1 месяц.
Отсюда и начнем, бюджет заказчика не релевантен. У вас k разработчиков, суммарная месячная зарплата которых 1.5м. Вы утверждаете, что зарплаты у вас выше, чем у .net программистов (при продукте того же уровня). Это значит, что если заменить разработчиков, делающих в вашем проекте бэкенд, с JS на .net, суммарная месячная зарплата упадет. Значит, упадет общая стоимость проекта. Значит, экономия возникает при найме .net-разработчиков, а не JS-разработчиков.
Правда, любопытно? Или все-таки JS-разработчики у вас получают меньше, чем .net-разработчики на рынке?
Вот простая задачка
f5.s.qip.ru/etSMzaYX.png
Сколько это займет у C# разработчика?
Сколько это займет времени у Java разработчика?
Сколько это займет времени у Swift Разработчика?
Про Lunix мы забыли, кто этот календарь будет у вас под Linux Делать и сколько это времени займет?
То что мы делаем за месяц, вы будете делать 3 месяца, вот и весь секрет.
Стоп-стоп, а можно основания и границы для этого утверждения?
Вот простая задачка f5.s.qip.ru/etSMzaYX.png
Подозреваю, что во всех случаях ответ "нисколько, возьмите готовый контрол". А конкретно взятый C#-разработчик про это вообще ничего знать не будет, потому что он на бэкенде.
А сколько займет разработка системы, скажем, в 5 миллионов строк кода (на чем угодно), у разработчика на js и разработчика на .net?
А еще все эти ваши рассуждения основаны на том, что вы будете использовать JS для написания мобильных приложений (ну то есть заодно "пора убить Swift" и "пора убить Java"). Но есть компании, которые считают, что им нативный мобильный UX важнее, чем униформная команда разработки, и они выделяют отдельных разработчиков под каждое мобильное направление. И что вы с ними будете делать?
А еще все эти ваши рассуждения основаны на том, что вы будете использовать JS для написания мобильных приложений (ну то есть заодно «пора убить Swift» и «пора убить Java»). Но есть компании, которые считают, что им нативный мобильный UX важнее, чем униформная команда разработки, и они выделяют отдельных разработчиков под каждое мобильное направление. И что вы с ними будете делать?
Да, так и есть, уже сейчас можно заменить одним разработчиком(но только на простых задачах, никто не говорит о разработке игр)
Цена такого заменителя будет стоить около 140 000, плюс к этому этот заменитель еще будет и сайты мне делать в свободное время, если потребуется.
Подгоните мне человека который пишет под Swift Java за 140 000 рублей? 1-2 на весь рынок и просит около 240 000?
Да, так и есть, уже сейчас можно заменить одним разработчиком
Вы утверждаете, что можно. А я говорю, что есть компании, которые считают, что нельзя.
Например:
- в Uber — Objectve-C/Swift и Java.
- в Slack — нативные приложения на телефонах (при том, кстати, что для десктопов — JS-based)
- Telegram — Java и
Objective-C (кажется, тоже со свифтом, но не уверен) - ну и можно продолжать
Так как ваша арифметика ко всем этим компаниям применима?
Подгоните мне человека который пишет под Swift Java за 140 000 рублей? 1-2 на весь рынок и просит около 240 000?
Вы давно на моемкруге не были? Ценник начинается от 50 тысяч, и я даже не искал.
PS И это мы еще делаем вид, что не существует Xamarin.
Посмотрите приложения и название компаний, много популярных, ни одной Российской, потому что Российский рынок остается на 5 лет. Хсамарин это конечно круто, но знаете что делает технологию крутой? комьюнити и большой набор готовый инструментов
Конечно же, компании, про которые я пишу выше, никогда про электрон не слышали, да-да-да.
Еще раз: они осознанно приняли решение писать мобильные приложения на нативных языках. Как к ним применима ваша арифметика "возьмем одного JS на все компоненты"? Или просто не применима?
Вот кстати вам приложение РФ на JS vk.com/messenger
Вот тоже прикольная вещь: www.getpostman.com
Работает быстро, нет сильного отжора оперативки и это все JS
те компании что описаны выше это старые продукты,
Ну то есть к компаниям с существующими продуктами ваша арифметика не применима, правильно я вас понял?
(тот факт, что их на рынке явно больше 5%, вас не смущает?)
Скоро подключит в дело Electron
Яндекс использует React + node.js на новых проектах.
только React и node.js?
Впрочем, не суть. Как это отвечает на мой вопрос про арифметику?
только React и node.js?
Впрочем, не суть. Как это отвечает на мой вопрос про арифметику?
Нет, но на новых проектах в простых задачах используется этот стек. Где там C# core на сервере? А нигде, этот шлак никому не нужен, технология сделанная для галочки.
Я вам уже кучу примеров кинул, гитхаб, майкрасофт, яндекс, все потихоньку переходят на JS стек.
Арифметику я описал выше, если человек приносит компании 1 000 000 рублей, то мы платим ему 300 000 рублей.
Если человек приносит компании 100 000 рублей, то мы платим ему 40 000 рублей.
300 000 рублей это человек который может писать продукт под все системы. Универсальный солдат.
Нет, но на новых проектах в простых задачах используется этот стек.
Во всех?
Где вам C# core на сервере?
https://www.reddit.com/r/dotnet/comments/6m88q7/whos_actually_using_net_core_in_production/
Я вам уже кучу примеров кинул, гитхаб, майкрасофт, яндекс, все потихоньку переходят на JS стек.
MS переходит на JS-стек? Можно пруф?
Арифметику я описал выше, если человек приносит компании 1 000 000 рублей, то мы платим ему 300 000 рублей. Если человек приносит компании 100 000 рублей, то мы платим ему 40 000 рублей.
… а из чего вы делаете вывод, что JS-разработчик приносит компании в десять раз больше денег, чем .net-разработчик?
а из чего вы делаете вывод, что JS-разработчик приносит компании в десять раз больше денег, чем .net-разработчик?
Вот простая задачка
f5.s.qip.ru/etSMzaYX.png
Сколько это займет у C# разработчика?
Сколько это займет времени у Java разработчика?
Сколько это займет времени у Swift Разработчика?
Про Lunix мы забыли, кто этот календарь будет у вас под Linux Делать и сколько это времени займет?
А как быть а адаптивностью в window ios И linux, если пользователь захочет изменить размер формочки?
Что? опять сроки увеличиваются в N раз?
Что? это никому не нужно все фиксируют размеры формы?
Вот вы и будет оставаться всегда в жопе, а мы будем делать удобные продукты под пользователи и самое главное красивые. Мы это сделаем быстрей чем вы
Вот вы и будет оставаться всегда в жопе, а мы будем делать удобные продукты под пользователи и самое главное красивые. Мы это сделаем быстрей чем вы
Во-первых, докажите мне, что ваши мобильные продукты удобнее и красивее, чем нативные. Я же правильно понимаю, что вы-таки решили расширить свой пост с "пора убить C#" на "пора убить C# и нативную разработку под мобилы"?
Во-вторых, объясните мне, что мне мешает быть умным и написать клиентов на той технологии, которая позволяет писать красивые и удобные клиенты (для простоты дискусии — на той же, которой пользуетесь вы), а бэкенд — на любом другом языке, на котором мне удобно?
А вы даже не понимаете о чем говорите.
что-то в стиле этого будет?
auto x3 = cos( angle + PI / 3 * 4 ) * radius + xc;
auto y3 = sin( angle + PI / 3 * 4 ) * radius + yc;
cr.setSourceRgb( 1.0, 0.0, 0.0 );
cr.moveTo( x1, y1 );
cr.lineTo( x2, y2 );
cr.lineTo( x3, y3 );
Мы сделаем это быстрей вас в 5 раз и мы сделаем под все системы махом.
Не знаком с GTK, но это вроде как тот же Canvas, где все рисуется на низком уровне. Как сделать hover и Tooltip Над элементом, опять куча математики с масок?
нет, я вас бы сразу уволил, вы программист, но вы не выгоды бизнесу и не сможете быстро решать задачи
Нет, GTK — это очень далеко не Canvas. Тултип я бы сделал вот так (на GtkSharp):
Tooltips tooltips1 = new Tooltips();
Widget button1 = new Button ("button 1");
tooltips1.SetTip(button, "This is button 1", null);
К сожалению, у вас бы не получилось бы меня уволить, потому что вы не смогли бы меня нанять.
К сожалению, у вас бы не получилось бы меня уволить, потому что вы не смогли бы меня нанять.
Вот плюс один. Меня тоже обещали сразу уволить, не поинтересовавшись, хочу ли я там работать.
Скоро этот пост превратиться в "пост увольнений" судя по тенденции.
Вообще таких уникальных специалистов давно не встречал: максимализм, упорность, невежество и хамство в авторе поста присутствуют с избытком (судя по камментам не только в этом посте). Можно только коллегам посочувствовать т.к. как раз нужных для командной работы черт не наблюдается.
Снимаю шляпу перед вашим терпением и спокойствием в попытке образумить автора, я б уже после первых ответов закончил разговор.
Но каменты забавно почитать — интересно чем закончится.
Очередной программист, который напишет 10000 строк кода, но решит задачу. что-то в стиле этого будет?
Вы серьезно никогда нормальных библиотек контролов не видели?
В энтерпрайзах часто разработчики вообще не доходная статья, а расходная. Предлагаете у них брать деньги за возможность работать? Ну ведь компания на них тратит деньги, а не зарабатывает. Или, например, тот самый R&D, благодаря которому у вас появился электрон и относительно быстрый javascript, который теперь вас кормит на микроаутсорсинге.
300 000 рублей это человек который может писать продукт под все системы. Универсальный солдат.
Угу. У нас есть продукт под четыре системы, разработка под каждую занимает месяц, выйти на рынок надо через полтора месяца. Сколько таких "универсальных солдат" вам надо?
Для начала дайте определение традиционного подхода и чем же он отличается от использования Node.js на бэкенде.
Традиционный подход к разработке ПО в моем видении подразумевает использование языков и средств, облегчающих работу программиста. Придание же «взрослости» изначально кривому скриптовому языку, на мой взгляд, облегчению работы не способствует.
И как можно писать и затем поддерживать что-то относительно серьезное на языке, где даже типизации нету — я, честно говоря, не представляю. Если же вам это удается — то я за вас рад и совершенно не хочу ни в чем переубеждать.
И пока TS позволяет any, его типизация — это что-то из серии безалкогольного пива и резиновых тетенек.
И пока С++ позволяет void* и reinterpret_cast, его типизация — это что-то из серии безалкогольного пива и резиновых тетенек.
И пока Delphi позволяет нетипизированный var, его типизация — это что-то из серии безалкогольного пива и резиновых тетенек.
И пока C# позволяет dynamic, его типизация — это что-то из серии безалкогольного пива и резиновых тетенек.
Не нравится any? Не используйте его.
Для использования var в Delphi вам нужно сначала все-таки привести нетипизированную переменную к желаемому типу, и только затем сделать с ней что-нибудь осмысленное.
Насчет dynamic в C# — это действительно что-то за гранью добра и зла. Но, к счастью, в живых проектах ни одного dynamic-а я так в своей практике и не увидел.
Что же касается any — во многих случаях это практически неизбежный вариант, т.к. далеко не факт, что все используемые JS компоненты представляют типизированные спеки.
С учетом того, сколько контринтуитивных вещей закреплены в JS на правах стандарта, я даже не уверен, какой из двух вышеперечисленных языков является эзотерическимЯ ожидал от вас большего, но, видимо, зря…
Традиционный подход к разработке ПО в моем видении подразумевает использование языков и средств, облегчающих работу программиста.Расскажите, а как убогая пародия на Java в виде C# облегчает работу программисту?
Придание же «взрослости»C#, например, только недавно научился в платформы отличные от Windows, вот это, я понимаю, признак «взрослости».
И как можно писать и затем поддерживать что-то относительно серьезное на языке, где даже типизации нетуДа есть там типизация, есть. Я надеюсь, вы только прикидываетесь дурачком, а не на самом деле такой.
На C# делали Form Aplication, взаимодействовали с данными из базы данных, после этого создатели осознали что это полная убогость и создали WPF, стало немного покрасивей, но до сих пор присутствует визуальная убогость, интерфейсы как были не удобными, так и остались.
Потом microsoft осознал что нужно что-то для серверов, придумал
— WCF
— ASP.NET
— ASP.NET Web API
— CORE
Первое это очень низкоуровневая штука (очень много кода), круто конечно когда программист умеет писать rest api в виде 10000 строк (После чего бьет себя в грудь, что он настоящий программист, а кто делает на servicestack — полный ноль)), но это не нужно бизнесу, плевать всем на ваши навыки, бизнесу дунжны деньги и решенная задача + поддерживаемый код. А самое забавное что у него до сих пор есть такая зависимость как WINDOW, в 2017 году ^^
Что там у нас дальше ASP.NET, покажите мне хотя бы парочку известных проектов на этой технологии? Не легаси проекты, а именно современные проекты. опять зависимость в виде window. А что у нас там с SPA, дайте угадаю, тоже все плохо, мешанина JS внутри C#, отдельно шаблоны HTML, мы опять вернулись в 2010 года к эре MVС, опять перезагружать странички вручную? в 2017 году?
ASP.NET Web API — полно дерьмо, которое имеет зависимость в виде window, ну какой нормальный человек будет развертывать дорогую win систему для простенького REST API из 20 роутов?
Остался CORE что это такое? Это серверная технология под Unix, что мы получили? мы отказались от зависимости в виде window и теперь можем поднимать сервера на UNIX системах, круто? не сказал бы, прогреса нет, есть только «не отставание».
Я просто не знаю как у вас на работа, мой текущий проект это разработка Key Performance Indicators системы.
Я считаю это легкой задачей, таких задач 95% на рынке, тут не нужны супер расчеты и какая-то сложная алгебра, отрисовка 1000000 палигонных объектов, это просто работа с данными, я не отрицаю что кому-то приятней было бы писать на C#, но наш продукт обходится в 1 000 000 рублей и на выходе мы получаем реализацию на всех плотформах.
Продукт конкурент обойдется в 1 000 000 и на выходи они получат только WINDOW реализацию.
Я не отрицаю что JS в чем-то убог и может он зря лезет в други ниши, но он выгоден бизнесу.
Не верите мне — взгляните на рынок труда за рубежом, посмотрите спрос на Electon, в России эту технологию рассматривают только как «Выродок, который залез туда, куда не следует», Вон Microsoft выпустил Skype на Electon(JS), не задумывались почему?
NET можно начать уважать когда он сделает что-то кросплатформенное, у сообщества зачатки есть: но эта такая убогость, что даже скачивать не хочется:
github.com/AvaloniaUI/Avalonia
Еще раз повторю, высокая производительность никому не нужна в 2017 году.
Слишком громкое утверждение.
Там где нужна производительность берут С++
… и это тоже.
На C# делали Form Aplication, [...] после этого [...] создали WPF [...]
Потом microsoft осознал что нужно что-то для серверов, придумал [...] ASP.NET
asp.net вышел в первом .net framework, одновременно с десктопными фреймворками и задолго до WPF. Вы бы хоть разобрались в том, о чем так громко пишете.
Первое [WCF] это очень низкоуровневая штука (очень много кода)
Это просто неправда. Когда вы используете WCF по назначению (для SOAP), кода там столько же, сколько при обычном вызове объекта (плюс using
для клиента). На сервере приблизительно то же самое.
круто конечно когда программист умеет писать rest api в виде 10000 строк
Не надо писать REST API на WCF, он для этого плохо подходит. asp.net WebAPI не зря сделали.
А самое забавное что у него до сих пор есть такая зависимость как WINDOW, в 2017 году
Нет у него такой зависимости.
Что там у нас дальше ASP.NET, покажите мне хотя бы парочку известных проектов на этой технологии?
StackOverflow?
А что у нас там с SPA, дайте угадаю, тоже все плохо, мешанина JS внутри C#, отдельно шаблоны HTML, мы опять вернулись в 2010 года к эре MVС, опять перезагружать странички вручную?
Нет.
ASP.NET Web API — полно дерьмо
Аргументируйте.
ну какой нормальный человек будет развертывать дорогую win систему для простенького REST API из 20 роутов?
Тот, для которого стоимость этой "дорогой системы" пренебрежима по сравнению со стоимостью разработки. Ну и да, .net core не зря выпустили.
Остался CORE что это такое? Это серверная технология под Unix, что мы получили? мы отказались от зависимости в виде window и теперь можем поднимать сервера на UNIX системах, круто?
Вопрос не "крутости" — а того, что все ваши предыдущие аргументы "у него зависимость" пропали.
Я просто не знаю как у вас на работа
Вот именно, что не знаете. Но беретесь говорить.
Продукт конкурент обойдется в 1 000 000 и на выходи они получат только WINDOW реализацию.
… если он не догадается писать на .core.
NET можно начать уважать когда он сделает что-то кросплатформенное
asp.net core, добро пожаловать.
Слишком громкое утверждение.
Это не громое утверждения, я описал все в посте, 95% задач бизнеса это примитивная работа с данными. Я не знаю может вы научный деятель и работаете с сложными расчетами, но это не ходовая задача, ее как раз я и вынес в 5%, на деле всем требуются просто приложения которые получают данные с БД, выводят их на экран, обрабатываются визуализируются грубо говоря простые CRM аналитические системы, системы учета производста и прочее, вот скажите мне, для чего тут высокая производительность? тут нужно копать в сторону БД а не в сторону клиента.
Там где нужна производительность берут С++
так и есть, слабым звеном всегда будет БД.
Опишите мне задачу где нужна производительность и C# справится там лучше чем JS и с каких пор C# стал высокопроизводительным?
Потом microsoft осознал что нужно что-то для серверов, придумал [...] ASP.NET
asp.net вышел в первом .net framework, одновременно с десктопными фреймворками и задолго до WPF. Вы бы хоть разобрались в том, о чем так громко пишете.
Возможно так и есть, я не знаком с точными датами, я лишь просто описал возможности NET. Моя ошибка, нужно было заменить слово «Далее они придумали» на «еще они придумали». Тут вы правы, я не знаю историю в деталях.
Нет у него такой зависимости.
С недавних пор, после выхода core :)
Что там у нас дальше ASP.NET, покажите мне хотя бы парочку известных проектов на этой технологии?
StackOverflow?
А еще парочка гос сайтов, все это легаси, разработка велась еще с 2005 годов, сейчас никто новые проекты не запускает на ASP.NET Я не зря упомянул легаси.
А что у нас там с SPA, дайте угадаю, тоже все плохо, мешанина JS внутри C#, отдельно шаблоны HTML, мы опять вернулись в 2010 года к эре MVС, опять перезагружать странички вручную?
Нет.
И как это выглядит, можете показать пример?
Тот, для которого стоимость этой «дорогой системы» пренебрежима по сравнению со стоимостью разработки. Ну и да, .net core не зря выпустили.
О этом и речь моего поста, я предлагаю бизнесу экономить огромные деньги, на вот таких программистах как вы. Вы рассуждаете как программист, я рассуждаю как владелец бизнеса, который управляет рабами и финансами.
Продукт конкурент обойдется в 1 000 000 и на выходи они получат только WINDOW реализацию.
… если он не догадается писать на .core.
NET можно начать уважать когда он сделает что-то кросплатформенное
asp.net core, добро пожаловать.
Тут ложь, Core не способен это сделать в 2017 году.
Вы можете написать WCF или FORM приложение на CORE, а так же для мобильных?
нет, тогда нафиг ваш CORE никому не сдался.
Это не громое утверждения, я описал все в посте, 95% задач бизнеса это примитивная работа с данными.
И вы считаете, там не нужна "высокая производительность"? Ну вот когда у вас прибежит несколько сотен заказов под синхронизацию за пару минут, вы поймете, насколько она вам не нужна.
для чего тут высокая производительность?
Чтобы пользователь получал отклик за комфортное время.
тут нужно копать в сторону БД а не в сторону клиента.
слабым звеном всегда будет БД.
Вы так уверенно считаете, что тормоза на стороне БД… но нет. Уже давно нет. Мы профилируем систему и видим, что БД как раз отрабатывает быстро, за милисекунды — а вот прикладной сервер потом выжирает секунды на обработку ответа.
Опишите мне задачу где нужна производительность и C# справится там лучше чем JS
А я где-то утверждал, что C# справляется с задачами на производительность лучше JS?
С недавних пор, после выхода core
Никогда не было.
А еще парочка гос сайтов, все это легаси
SO — легаси? Смешно. Они его регулярно дорабатывают, и при их архитектуре им ничего не стоило бы бросить asp.net.
О этом и речь моего поста, я предлагаю бизнесу экономить огромные деньги, на вот таких программистах как вы.
… и каким же образом бизнес может сэкономить деньги на "таком программисте как я"?
Тут ложь, Core не способен это сделать в 2017 году.
Прочитайте мою фразу еще раз: asp.net core.
Вы можете написать WCF или FORM приложение на CORE, а так же для мобильных?
Нет, а зачем?
нет, тогда нафиг ваш CORE никому не сдался.
Не "никому", а разработчикам клиентских приложений (да и то может быть, потому что я просто давно в эту область не лажу).
После прочтения один вопрос: почему C#?
Или тратим бабло на оптимизацию, но зато экономим на серверных мощях или экономим на оптимизации, но разоряемся на закупке серверных мощностей.
И ещё не известно, что будет выгодней.
К томуж C# тож не самый быстрый язык.
js brain damage
Вам не нужен C# — не пишите на нем. Убивать-то зачем? Если никому не будет нужен то сам умрет.
2) Кросплатформенность — .net core, правда без WPF
3) Строить большие приложения без статической/строгой типизации, которая присуще .net — очень сложно, поэтому на js придумывают много вещей типа typescript и т.д.
Давайте на секунду представим что С++ C# создадут фреймворк, который будет конкурировать с React и Angular, просто пофантазируем.Бэкенд фрейм который конкурирует с фронтенд фреймом? Я сомневаюсь в вашей компетентности, походу по вашим ушам кто-то прошелся и вы ему поверили.
Вся статья просто толстый троллинг
имеем C# веб апи и несколько react сайтов. Изначально написали админки управления контентом и чатами на реакте внутри движка сайта. Но в первые же месяцы она стала такой отсталой, трудно поддерживаемой, неудобной для мультилогина (сайтов-то много, человек на поддержке один) и долгой в имплементации новых фич, что взяли и тупо написали на шарпе же приложение, в котором собрано всё сразу и вместе, апдейтится нативно вместе апи на единой кодовой базе.
Но вообще да, честно говоря, тенденции нездоровые. Точнее дело не в шарпе как таковом. При чем здесь бекэнд язык. Просто сам бытовой рынок стал сильно направленным на фронт, который либо на вордпрессе, либо уже на JS. Более того рынок таким стал не потому что серьезных бекэндов стало меньше, а потому что теперь каждая пивнушка хочет свой сайт с доставкой пива на дом. Поэтому в сумме, конечно, выходит перекос в сторону востребованности JS-ников
Косяки с первых же строк. Толсто или максимализм неофита.
Настолько привык к саркастичному общению на хабре, что до конца поста был уверен, что это шутка. Особенно после "Пора убить веб", отличным ответом на который этот пост является.
Не знаю как автор, но 67 читателей явно приняли всерьёз. Теперь я уже не знаю, было это троллингом или реальной точкой зрения.
«Пора убить веб» habrahabr.ru/post/338880
Забавно ведь :)
Трэш какой. Ну, рейтинг уже говорит сам за себя. Автор то ли тролль, то ли в голове у него транслятор JS-хайпа.
Не как не гоню на C#…
Но JS действительно проникает куда только возможно, и приложения для мобильников, бекенд, 3D визуализация… может местами и больно, но многие приложения возможно писать на JS.
Очень интересно почему минусы, я конечно не согласен с автором…
Но для небольших компаний, ИП javacript разработчики имеют приоритет…
Один напишет бекенд и худо бедно можно портировать на мобильные устройства, хорошо пару человек. Вместо того что бы отдавать деньги топовым программерам. Для малого бизнеса самое оно.
C# конечно не умрет, пока он нужен Microsoft, но с другой стороны…
C object сменился на swift
Kotlin поддержал Google
Есть движки для 3д на javascript
nodejs дает о себе знать…
В чем я не прав понять не могу…
Я только могу сказал о том что javascript уже не игрушка для свистелок для браузера, а уже занимает нишу где программисты более сурьезные не возьмутся за работу, а так же набирает популярность(Если я в студенчестве хотел знать С/C++, то сейчас все хотят знать JS).
Взять PHP…
как много ему угрожали смертью, но что-то так и не произошло…
на JS все смотрели с презрением, даже PHP программисты…
а 1С программистов вообще хаяли))
Давайте посмотрим правде в глаза, там где ниша не заполнена, ее заполнят, так как есть спрос...
Понятно))) Здесь обитает очень много обиженых анонимных C# программистов))
Не бойтесь С# не умрет....
«Ванильный» C# — да, не нужен, это ведь просто набор синтаксических конструкций.
Ну так вообще никакие языки не нужны тогда.
Пора убить C#