Лет за 20 программирования... И этого списка мало. Там уже начинаешь убирать не столь актуальные технологии, поскольку слишком уже много.
23 года программирования, не считая детства со Спектрумом и всякие Дельфи в подростковом возрасте.
То, что человек играл или работал с определенными технологиям не делает его специалистом. Языки, фреймворки, парадигмы, инструменты быстро затираются в памяти.
Я по одному из популярных фреймворков Топ-1 на Stackoverflow, Топ-1 на Upwork, на GitHub 8 тысяч звёзд, связанных с этим фреймворком, есть сертификат по нему. Дак вот, я не писал на нем меньше года и уже много нюансов забыл. Я думаю, что среднее интервью я бы сейчас без подготовки завалил (если на этом интервью не показывал бы опыт и достижения).
Все эти ребята "я знаю четыре языка программирования", "я выучил новый фреймворк за месяц", "фулстеки существуют" вызывают не улыбку, а скорее фейспалм.
Основано на реальных событиях:)
Эдисон однажды пожаловался Эйнштейну, что никак не может найти себе помощника. Эйнштейн поинтересовался, как он определяет их пригодность. В ответ Эдисон показал ему несколько листов с вопросами. Эйнштейн стал их читать:
"Сколько миль от Нью-Йорка до Чикаго?" -
и ответил:
"Надо заглянуть в железнодорожный справочник".
Он прочёл следующий вопрос:
"Из чего делают нержавеющую сталь?" -
и ответил:
"Это можно узнать в справочнике по металловедению".
Быстро просмотрев остальные вопросы, Эйнштейн отложил листки и сказал:
"Не дожидаясь отказа, снимаю свою кандидатуру сам".
Почему мост упал?
Надо посмотреть в справочнике мостопадений.
Разница между этими двумя - один практик, другой теоретик.
один гениальный ученый, второй владелец компании) Для широкого взгляда на ситуацию и для поиска путей её оптимального решения требуется оперировать огромные объемами информации, человек не сможет держать столько в уме. В IT это справедливо при продумывании архитектуры приложений, продумывании реализации принципиально новых сервисов, где нет массы готовых примеров и реализаций...
Второй гениальный изобретатель, благодаря таким как он, те гениальные идеи и теории, которые выдают такие как Эйнштейн, воплощены в жизнь.
У Эйнштейна так же было несколько изобретений и патентов(вроде холодильника). Он в первую очередь знаменит тем что открыл ряд фундаментально новых принципов в физике, то есть сформулировал саму концепцию что так сделать можно(на уровне ядерного оружия). Причем сложность его мысли настолько высока, что её и сегодня крайне непросто понять (в отличии от принципа работы лампочки).
Нисколько не умаляю гениальность Эйнштейна, но называть Эдисона просто владельцем компании, несколько нечестно в отношении его вклада в технический прогресс.
Согласен, тут немного перегнул:) В сравнении Тесла / Эдисон просто обычно Тесла вызывает больше симпатии)
продумывая дизайн приложения неплохо иметь представление о механизмах его реализации, на каком движке и как это будет реализовано, какие ограничения накладывает современная верстка. Это обычно не делается и тем ни менее ускоряет реализацию проекта не в разы даже, на порядки. Так же желательно быть хорошим психологом, аналитиком, социологом.. и при это немного владеть фотошопом:)
Я не шарю в программировании до уровня хотя бы выпускника и с трудом редактирую чей то код под свои нужды если надо , и то долго (разобраться надо). Но мне кажется все требования к IT специалистам сейчас предъявляются нереальные потому, что тот кто "заказывает музыку" и "ставит музыку" не понимают, как происходит процесс, точнее понимают, но на уровне меня или даже ниже из за чего такие неадекватные запросы для человека в "теме". Ну или просто тупо денег жалко на найм группы сотрудников, а не пары человека-оркестра.
P.S. Такая же ситуация и в моей сфере (энергетике). Ты должен "шарить" и в теплоснабжении, и в электроснабжении, и холодоснабжении, и в криогенетике (сжиженный воздух), и в системах сжатого воздуха.... Больше не назову, ибо не помню, но на предприятиях их 10+. И это на столько разные, что словами не передать...
Ещё вариант, что до этого у них был специалист на которого потихоньку навалили 100500 обязанностей (новых или от уволившихся сотрудников). Лошадка не выдержала и ушла. Ищут замену :)
Даже не будучи на пике знаний конкретного языка, ты всё равно напишешь хороший годный код. А обновить знания займёт минимальное время.
Ну и чем фундаментальнее язык, тем с этим проще.
Я фулстак ненастяищий. Angular + c++, c#, Java, rust это то что могу сразу, не отходя от кассы. node - последнее что я буду использовать в разработке:)
До того как появился Rust очень любил плюсы, сейчас концепция поменялась.
С моей точки зрения Rust это номер один для бакенда - если бакенд что-то более сложное чем сходить в базу чего-нить туда положить и достать результат. Хотя и это решается на расте на раз-два.
У раста высокий порог вхождения, но этот высокий порог вхождения дает очень быстрый код и очень безопасный код. Написать что-то и получить например access violation, проеб стека, или о ужас, пропись в чужую память - невозможно в принципе!!!
Очень приятная плюшка раста - это то что в него сразу встроена система сборки, и менеджер пакетов. С ужасом вспоминаю половую еблю с cmake и vcpkg - этот ужас можно забыть :) Все собирается одной кнопочкой, и одинаково на маке, лине и вине.
Раст накладывает очень жесткие ограничения на взаимодействия многопоточного кода. Весь код на расте является потоко-безопасным - единственное что остается это дедлоки.
Сейчас для раста не хватает всяких экзотических библиотек, которых с достатком есть для плюсов. Например, для плюсов есть замечательная библиотека cgal - увы для раста ничего такого в ближайшее время не предвидится, c computer vision тоже не гладко.
Короче какой-нить слайсер для 3d печати я бы не рискнул писать на расте.
А вот всякое торчащее в веб, начиная с простейших веб-сервисов и заканчивая всякими стриминговыми платформами - только в путь.
UI на расте не трогал - там все не очень.
Знаю, что некоторые игроки в Геймдеве очень присматриваются к расту что бы съехать с плюсов. Но Unity и Unreal Engine практически никак не пересекаются с растом :(
Раст имеет шансы удачно улечься в микроконтроллеры. По крайней мере можно хреначить под STM32. Но с другой стороны у ST охраненный STM32CubeMX который исключительно под плюсы, и который очень облегчает разработку.
Еще есть модная тема WebAssembly. На расте собрать WebAssembly например с окошком с OpenGL намного проще чем на плюсах.
Но с другой стороны у ST охраненный STM32CubeMX который исключительно под плюсы, и который очень облегчает разработку.Не исключительно под плюсы, под голый Си он тоже. На котором всё-таки намного чаще пишут под МК, нежели на плюсах.
С другой стороны охрененный он только снаружи, внутри он генерит столько избыточного говнокода под свой HAL, что печально. Это на ББ давно оптимизация стала неважной, а на МК пока имеет место. Хотя тенденции меняются, сейчас с кризисом полупроводников снова актуально часто.
Расскажите это вот этим парням: https://discord.com/blog/why-discord-is-switching-from-go-to...
А ещё поделитись пожалуйста своим опытом разработки, и опытом разработки на раст. А то меня терзают смутные сомнения, что вы любите писать красивые слова, про то что “каждый язык чего-то там имеет" но не имеете никакого отношения к сути вопроса.
В указанной статье с дискордом не нашел ничего выдающегося. Практически типовой высоконагруженный проект для корпоративного заказчика с точки зрения архитектурных вариаций.
Судя по вашему чрезмерно восторженному комментарию про раст, вы не обладаете каким-то значительным опытом в разработке. Как будто только начали кодировать и узнали про новый язык. Я могу подобные комментарии ярко описать про несколько других языков с их килл-фичами.
Rust - весьма неплохой язык среди системных (с++, go, ...) со своими преимуществами и недостатками.
Как мой опыт разработки может оказать влияние на истинность высказывания? Либо истинно либо нет. Вы долго думали над этой просьбой?
Думал не долго, когда кто-то пишет "Rust - весьма неплохой язык среди системных (с++, go, ...) со своими преимуществами и недостатками." становится ясно, что автор не разбирается в вопросе обсуждения.
Судя по вашему чрезмерно восторженному комментарию про раст, вы не обладаете каким-то значительным опытом в разработке.
Конечно у меня восторженный коментарий про раст. И не на ровном месте. Поверьте, код начал писать и получать за это зп еще в прошлом веке. Восторженные коментарии исключительно потому вижу ахереннную перспективу как для комунити так и лично для себя. Если есть какая-то штука которая позволяет писать практически такой же быстрый код как на плюсах. И эта же штука позволяет писать код безопасней чем на c# java go. То очень сложно удержаться от восторженных отзывов.
Опытный разработчик всегда осторожен и обычно эмоционально более нейтрален. Как я уже говорил, не бывает идеалов. Эмоции могут дорого стоить.
Про java было очень интересно у вас. Я аж слезу вытер от умиления. Есть пруфы?
P.S. Порой долгий опыт работы не обязательно означает, что он был интенсивным и охватывал широкий круг технологий. Это не конкретно про вас, а общее утверждение.
At this point, Discord is using Rust in many places across its software stack. We use it for the game SDK, video capturing and encoding for Go Live, Elixir NIFs, several backend services, and more.
В статье как раз мои высказывания и подтверждаются: игры и вычислительные задачи (работа с видео) - особенно это актуально на клиентской стороне, где ресурсы ограничены.
В статье как раз мои высказывания и подтверждаются: игры и вычислительные задачи (работа с видео) - особенно это актуально на клиентской стороне, где ресурсы ограниченыТам как бы статья про то как они какой-то свой сервис оптимизировали:) На картинках CPU, Responce Time и прочее.
Поверьте я с такими картинками живу последние 8 лет. Иногда тошнит от них.
Оптимизация, тесты, картинки (grafana), спайки, ботлнеки, дампы, утечки, профайлы;)
Иногда месяцами.
особенно это актуально на клиентской стороне, где ресурсы ограничены.Ну у вас ресурсы актуальны на клиентской стороне. У меня на серверной;)
Причем здесь у меня ресурсы на клиенте? Я отвечал на ваш комментарий про статью и разбирал ее. Вот там и шла речь про клиентскую сторону в том числе.
Загляни на https://github.com/LesnyRumcajs/grpc_bench/wiki/2022-04-23-b..., Node ищи в подвале:)
Объясните ему, пожалуйста, что бенчмарки это, конечно, заебись (особенно когда в этом списке node находится выше самых популярных php/python/ruby)
То есть производительность ноды относительно php/python/ruby вас радует и в тоже самое время производительность ноды относительно cpp rust go вас не огорчает? Биполярочка?
И да, объясните моему директору, почему он должен не ахуеть, когда ему придёт месячный счёт не 5к$ а в 50к$ - и это за не самый навороченный деплой.
Ещё объясните яндексу, что они не правы, что у них high load написан на cpp а не на питончике например.
Когда в ноде за пару команд ты сможешь поставить веб-сервер, организовать его рестарт при критических завершениях и решить миллионы задач, на cpp только базовый класс будет написан в лучшем случае.
Я правильно понимаю что вы привыкли, что у вас сервис в одно инстансе обычно работает? И про high load вы еще не начинали задумываться? У взрослых дяденек инстансы болтаются за лоад-балансером, а количество инстансов одного сервиса колеблется от 2 до бесконечности, а кол-во всё различных сервисов колеблется от 10 и до 100-200. И за ребутание и деплой этого зоопарка отвечает какая-нить облачная инфраструктура или k8s?
Да, в синтетических тестах срр быстрее, но даже огромные компании в большинстве случаев предпочитают что угодно тому же срр, потому что проще написать быстро и качественно нужный функционал, чем искать хороших спецов которые пишут на срр и к тому же ещё не напишут код, который будет работать медленнее чем нода.
А если специалисты уже найдены - то все равно продолжать мучаться и жрать катус использовать ноду?
Стрелять пушкой по воробьям глупо, особенно если настройка этой пушки займёт в десятки раз больше времени на разработку, на поиск нужных специалистов что работают с этой пушкой (и не просто работают, а хотябы мидлы-сеньоры, иначе проект сразу мёртвый), в десятки раз больше бюджета на разработку и потом ещё и на поддержку после завершения проекта
Давай вы просто согласитесь что для решения какой-то задачи на node вам понадобится в 5-10 раз больше CPU и MEM чем скажем на расте. И деплой ваш будет стоить в 5-10 раз дороже.
А про скорость разработки мне нужны отдельные объяснения, что я делаю не так, если на расте или на cpp подниму свой http/grpc сервис за тоже самое время, что вы на ноде.
Хз как тут цитаты вставлять, попробуем маркдаун
> То есть производительность ноды относительно php/python/ruby вас радует и в тоже самое время производительность ноды относительно cpp rust go вас не огорчает? Биполярочка?
Go - замечательный язык, заточенный под веб-разработку. Ставить его в один ряд с CPP который может вообще все - глупо. То что за час будет написано на GO писаться на СРР будет неделями. И кто сказал, что меня это удручает? У всего свои цели, если нужно написать хайлоад микросервис и у тебя есть бюджет в несколько раз больше, чем для ноды - почему нет? Если время разработки не критично, у тебя проект который на старте сразу будет посещать миллионы человек в сутки и этот проект не просто должен отдавать статику, но и много считать, при этом у тебя не ограниченный по времени дедлайн и неограниченный бюджет - можно и на срр. При том что правильно приготовленный Nginx+nodejs на балансировщике в несколько нод спокойно будут держать миллионы пользователей. Тот же Nodejs может держать миллионы вебсокет соединений напрямую и не задохнуться на средней машинке.
И о каких $50к идет речь? Относительно мощный сервер по рынку стоит 50-60 евро. Если мы работаем на node express.js, то это 15к запросов на нормальном сервере в секунду. Аудитория, допустим, 10 миллионов пользователей в сутки, которые откроют, давай 100 страниц (чего в принципе дохуя). Итого грубый подсчет 10 млн * 100 страниц / 24 часа / 60 минут / 60 секунд === 11574 запроса в секунду. Давай возьмем, что днем больше простой и больше пиковая активность, а не распределенная и пользователи активны больше всего 14 часов а не все сутки. Это 19к запросов, с учетом прям пиков и с запасом пусть будет 30к запросов в секунду. 3 сервера на ноде (которых хватит до 45к запросов) по 60 евро = 180 евро. Настраиваем балансировщик на поднятие дополнительных серверов при подходе к порогу пиковой нагрузки и к отключению лишних серверов во время простоя и наш проект выдержит и 10 млн и 50 и 100. К слову, тот же фейсбук на территории Росии имеет официальную аудиторию (с учетом мультиаккаунтови и мертвых душ) порядка 8 миллионов, которые делают от силы 50-100 запросов (запрос статичных картинок и файлов мы тут не считаем, это на основные сервера не идет, а идет в CDN).
И стоит раздувать штат СРР разработчиками, чтобы сэкономить 50 евро? Конечно я тут не учитваю стоимость CDN, трафика и прочее, но СРР к ним никоим образом не относится и выгоды в них никакой не дает.
Сорян, но мне не платят чтобы я расписывал базовые вещи в комментах, если так интересно, дальше сам давай)
Go - замечательный язык, заточенный под веб-разработку. Ставить его в один ряд с CPP который может вообще все - глупо. То что за час будет написано на GO писаться на СРР будет неделями.
У вас есть опыт в го и плюсах что бы делать такие оценки?
У меня есть. На плюсах начал писать больше чем 20 лет тому назад.
Могу запилить все-что хочешь, начиная от кода для микроконтроллера, 3D (OpenGL, Direct3d, Vulkan, WebAssembly) и закачивая high-load сервисами. Со всей ответственностью могу заявить что зная некоторые правила можно на плюсах писать быстро и безопасно.
И о каких $50к идет речь? Относительно мощный сервер по рынку стоит 50-60 евро. Если мы работаем на node express.js, то это 15к запросов на нормальном сервере в секунду. Аудитория, допустим, 10 миллионов пользователей в сутки, которые откроют, давай 100 страниц (чего в принципе дохуя). Итого грубый подсчет 10 млн * 100 страниц / 24 часа / 60 минут / 60 секунд === 11574 запроса в секунду. Давай возьмем, что днем больше простой и больше пиковая активность, а не распределенная и пользователи активны больше всего 14 часов а не все сутки. Это 19к запросов, с учетом прям пиков и с запасом пусть будет 30к запросов в секунду. 3 сервера на ноде (которых хватит до 45к запросов) по 60 евро = 180 евро.
Замечательные вычисления. Остается только допустить что 45к запросов это не потолок, а могут быть ситуации с 450к и больше. И в деплое не один жалкий сервис а 20-50-100.
Может быть все-так получится сделать допущение, что в какой-то момент на железе можно сэкономить огромное кол-во бабла используя что то более подходящее чем Node?
А может еще получится сделать допущение, что если нагрузочка длится не один месяц а один год, или несколько лет, то экономия от оптимального кода в какой-то момент превысит затраты на зп?:)
Сорян, но мне не платят чтобы я расписывал базовые вещи в комментах, если так интересно, дальше сам давай)Опаньки. Пассажир утверждающий что Node - это все что нужно для счастья начинает упоминать какие-то "базовые вещи" и что ему не платят за их расписывание.
Интересно, как такой замечательный знаток базовых вещей может объяснить появление каких-то заумных штук как Boost.Asio?
Или появление таких заумных языков как Rust и rocket.rs?
Может стоит иногда выглядывать из своего замечательно мирка Node.js и смотреть чего интересного в мире происходит?
grpc это мастхев фреймворк на бакенде - contract first:) Поверх него уже можно и рест и прикрутить и swagger если захочется. Бтв там бенчмарк не только grpc но ещё http сервера + io из которого растёт grpc. А дальше там будет sql nosql redis rabbitmq или другая хрень. Дык о чем же я. Если node работает на порядок медленнее на http+grpc чем что-то другое - то все остальное (sql nosql rabbitmq и друхая хрень) будет также убого тормозить. Или вы допускаете, что именно grpc под для node написали кривым, а все остальное там прям конфетка?
Логика ваша максимально не верная. Исходя из неё получается, что если я плохо танцую танго, то целиком и полностью я плохой человек. Ваш бенчмарк показывает лишь то, что конкретная технология работает хуже чем на других.
Да что говорить о языке программирования, если даже как работает свой код через пол года не особо понимаешь)
"я выучил новый фреймворк за месяц"если бы. такие пишут: "фреймворк за выходные". причем, это иногда не ноунеймы с пикабу, а люди, дающие интервью. что у таких в коде, страшно представить.
Могу на почту скинуть, если интересно, здесь не буду постить. В прошлый раз меня какой-то неадекват здесь активно унижал, мол любой дурак может это сделать и мои работодатели идиоты раз меня нанимают. Ещё там много было про поедание говна и три комментария про пукание мне в рот. Все его комментарии, включая те, что про пукание, были сильно заплюсованы. Этого неадеквата забанили на две недели, конечно, но осадочек остался. Больше публично ссылки я точно не буду постить.
Вот только 99% из своего списка ты знаешь поверхностно и на уровне мануалов + стаковерфлоу.
Ну или за 20 лет ты занимался только изучением технологий. Так как в реальном раскладе проекты требуют специализации на чем то одном, остальное только в пределах необходимости.
И когда над проектом сидишь по нескольку лет, то далеко не всегда есть время на изучение чего то нового. Да и смысла особо нет, тупо изучать очередную фигню только ради хайпа.
Я последние годы фулл стек и специализируюсь на всем. Не спорю, что приходится одному делать работу всего департамента. Ну и ладно. Не у всех есть объём работ, которым можно загрузить этот самый департамент. Меня всё устраивает, работа находится.
Программисты шутят
201 пост1.2K подписчика
Правила сообщества
- пожалуйста не материтесь, можем забанить
- соблюдайте правила Пикабу
- сразу вставляйте USB кабель правильной стороной