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

Программирование, как и большинство других ремесел, является средством для достижения цели, хотя в процессе есть искусство и мастерство, оно почти всегда связано с какими-то физическими или другими ограничениями (цитируется omeid)

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

Обновление: я решил изменить старый первый абзац, чтобы лучше объяснить свои мысли.

Я каждый день вижу, как разработчики говорят: «Если у нас есть ресурсы, почему бы нам их не использовать?». Так почему бы и нет?
Для начала, чем больше ресурсов вы используете, тем меньше у вас остается для других приложений. Если у вас 32гб памяти, ну и ладно! Но, возможно, если бы приложения, которые вы используете, были более производительными, вам не нужно было бы тратить «миллиард» долларов на такой объем памяти. А как насчет использования батареи? Как насчет того, чтобы машины оставались стабильными на долгие годы, а не менялись каждые 2-3 года? А как насчет того, чтобы запустить калькулятор без ожогов второй степени на ногах?

Боль…

Вот разбивка общего использования памяти приложениями при использовании шапки разработчика:
- Photoshop: 1,5–2 ГБ (большая часть моей работы связана с преобразованием PSD в HTML)
- Illustrator: 1–1,5 ГБ (для преобразования вектора в SVG)
- Chrome: 750 МБ-1,5 ГБ (7 вкладок)
- Код Visual Studio: 750 МБ – 1,5 ГБ (1 проект, 7 вкладок редактора)
- Virtualbox: 1–1,5 ГБ (1 vm)
- Slack: 700mb-1gb (10 команд)
- Limechat: 110mb (4 сервера, каждый со средним из 5 каналов)

Если бы я добавил все это (хотя я знаю, что это не совсем то, как работает управление памятью), он бы добавил к 9 ГБ, поэтому даже на современном компьютере (который обычно поставляется с 8 ГБ ) Мне было бы удобно и безопасно пользоваться этим стеком.

Photoshop и Illustrator - это мощное программное обеспечение, которое, как ожидается, займет столько (или даже больше). Разработчики Adobe могли бы немного разбить его на модули, так как мне не нужно столько раздувания, но тогда, возможно, это не спасет так много.
Chrome хотя я думаю, что он должен лучше справляться с неактивными вкладок и сэкономить память и данные, не в фокусе, держу пари, что разработчики Google внимательно изучают управление памятью и делают все, что в их силах. Они также хорошо поработали над V8.
Visual Studio Code, хотя это всего лишь текстовый редактор на стероидах, для меня это основное приложение. как разработчик, я доволен этим. Я знаю, что это могло бы сэкономить еще немного, но мы доберемся до цели.
Slack меня бесит! Если вы сравните его с Limechat, он использует как минимум в 7 раз больше, а для меня это не так много. В конце концов я обнаружил Slack шлюзы для IRC и использую их в Limechat вместо основного приложения Slack .

Итак, почему Slack занимает так много времени по сравнению с Limechat и почему Visual Studio Code может быть лучше?
Оба Slack и Code используют Electron, который по сути является Chrome в окне плюс Node.js , где Limechat использует собственные технологии. На данный момент ни Slack, ни Code нельзя считать MVP, и поэтому разве компании не должны стабилизировать приложения? Кажется, ребята из Microsoft принимают это во внимание (хотя все еще с Electron), но Slack продолжает добавлять больше вещей вместо того, чтобы создавать простое приложение для чата (это немного более того), что не заставит ваших компьютерных фанатов вращаться. Все еще не уверены, что Электрон - это проблема? Там еще одна статья об этом.

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

Было бы так сложно заставить такие приложения, как Slack, меньше использовать ваш компьютер без особых накладных расходов? Я так не думаю.

Что, по моему мнению, мы могли бы улучшить как разработчики?

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

Я создал несколько небольших приложений и инструментов с помощью Node.js, поймите меня правильно, я думаю, что Node.js довольно круто, но не более того. чем простые инструменты. В остальном, пробовали ли вы, например, Golang? Безопасен от распространенных синтаксических ошибок, скомпилирован, использует 1/10 оборудования ... Разработчику может потребоваться немного больше времени, чтобы построить что-то, так как вам нужно будет установить указатели и структуры (интерфейсы в Go ) и еще много чего, но в долгосрочной перспективе вам потребуется меньше тестирования, вам будет предоставлен отличный инструментарий, он будет более стабильным, вы избавитесь от надоедливых ошибок, и ваше приложение будет лучше подумай.

Статическая / строгая типизация - это не демон, с ней довольно приятно работать. Даже сообщество Javascript движется в этом направлении с помощью Typescript и Flow, но они просто пытаются украсить недостатки какашки. Простое скомпилированное приложение Go имеет размер около 6 МБ, представляет собой единый двоичный файл, и ему не нужно ничего устанавливать в систему, кроме общих общих зависимостей, таких как MySQL например. В Интернете есть масса статей, в которых сравниваются скорость, размер и использование сервера Go, поэтому я не буду вдаваться в подробности.

Вы когда-нибудь оставляли приложение Slack открытым в течение нескольких дней, чтобы обнаружить, что происходит утечка памяти? Я знаю, что сделал. То же самое с Atom (когда я его пробовал).

«Как бы вы тогда разместили HTML в окне для более быстрого прототипирования или просто потому, что вам не нравятся Qt и C-подобные технологии во внешнем интерфейсе?»

Я понимаю вопрос и почему это важно. Как фронтенд-разработчик, я по-прежнему хочу полагаться на старые добрые HTML и CSS. Вы проверили серво Mozilla Rust? Хорошо, это пока не лучший вариант, потому что ему нужно расти, но… скоро! Как насчет окна webkit для макета, в то время как все остальное делается на основном языке? Есть много способов создать это окно webkit и подключить к нему данные. Он не должен быть основан на Electron или Node.js.

Я понимаю, что технологии развиваются, и для того, чтобы иметь некоторые вещи, нам нужны их минусы, но где на этом пути разработчик остановился, чтобы заботиться об использовании оборудования? Следуем ли мы идеям Apple и просто раздуваем систему, заставляя пользователей покупать новые компьютеры? Я понимаю, что в состоянии MVP лучше создавать настолько быстро, насколько это возможно, но после того, как идея была проверена, не могли бы мы, как разработчики, принять более совершенные технологии? Или, может быть, от его использования с самого начала не так уж много накладных расходов.

В конце концов, вы обеспечите себе и своим пользователям лучший опыт при меньших затратах (что, возможно, станет вашей прибылью, если ничто иное).

Что ж… Думаю, это только моё мнение!

Обновление: удалены некоторые гифки.