Чем больше выбора, тем он сложнее: как обновления мешают работе JavaScript-программистов

26.09.2018     

Java и Javascript стали самыми популярными промышленными языками программирования, следует из исследований аналитической компании Cloud Foundry Foundation. Эксперты опросили корпоративных разработчиков и руководителей IT по всему миру.

Несмотря на популярность, у Java и Javascript есть и свои спорные стороны. Например, постоянное обновление инструментов для разработчиков, которое не позволяет специалистам сконцентрироваться на одном направлении. Чтобы труд оставался актуальным, приходится все время учиться новому. 

Мы уже рассматривали влияние использования JavaScript на индексацию сайтов в поисковых системах. В этой статье постараемся детальнее рассмотреть будни и боли JavaScript программистов.

Ветер перемен

Изучение языка – только часть становления программиста. Чтобы написать ПО, требуется целый набор инструментов: от самого кода до выполняющих его облачных вычислений.  

У пишущих код для браузеров всегда было меньше вариантов, чем у работающих на серверах коллег. Браузеры чаще всего запускают язык программирования JavaScript, тогда как сторонние программисты могут выбирать из головокружительного количества языков.

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

Программисты часто опираются на инфраструктуру приложений и пакетные программы. В начале 2015 года самой распространенной платформой для JavaScript была Backbone. К концу 2015-го первенство взяла библиотека React. В 2018 году, Backbone скатилась на 5-ое место рейтинга, уступив новым платформам, таким, как upstart Vue.

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

Почему это так сложно?

Первоначально JavaScript использовался для создания интерактивных веб-страниц. Но в наше время перед разработчиками часто стоит задача писать сложные приложения, которые работают прямо в браузере: например, Trello или Workplace Slack.

Эти задачи требуют, чтобы команды программистов работали совместно, обновляли и исправляли код, когда пользователи находят ошибки. Развитие инструментов JavaScript должно упростить работу, освободив специалистов от повторного создания общих функций с нуля.

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

Нестабильность может усугубляться другими тенденциями. Например, применение «функционального программирования» зачастую усложняет код в одной части программы ради изменений в другой.

Каковы перспективы?

Тем не менее библиотеки вроде React с открытым исходным кодом для разработки пользовательских интерфейсов становятся нормой. Специалисты говорят, что при выборе технологий рассматривают размер сообщества, стоящего за новым инструментом. Даже если высококлассную «обновку» разработал один программист, доверие к инструменту снизится. Ведь один человек мог и не предусмотреть все ситуации.

Чтобы справиться с непредсказуемостью, нужно сосредоточиться на создании прочных основ программирования, особенно в JavaScript. Часто HR-менеджеры предпочитают нанимать кандидатов со знанием современных тенденций.

Конечно, большинство разработчиков не останутся без работы за одну ночь. Многие компании имеют программное обеспечение, основанное на Backbone и подобных библиотеках, которые нужно поддерживать. Подобные ситуации позволяют оттачивать навыки и изучать другие инструменты. Но на практике это значит, что новые инструменты придется изучать в свободное от работы время.


Автор:
Сергей Кравченко Обозреватель


Какой язык программирования вы считаете самым сложным?


1С (30%, 15 голосов)
30%
Objective C (24%, 12 голосов)
24%
Java (22%, 11 голосов)
22%
Другое (в комментарии) (22%, 11 голосов)
22%
Scala (14%, 7 голосов)
14%
Rust (6%, 3 голосов)
6%
Javascript (4%, 2 голосов)
4%
Go (2%, 1 голосов)
2%
Python (2%, 1 голосов)
2%
Swift (2%, 1 голосов)
2%

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CyberCerber 646 26.09.18 15:55 Сейчас в теме
К опроснику: Brainfuck очень сложный язык.
Jestery; Reaper_1C; DoctorRoza; dimisa; Kochergov; +5 Ответить
4. Darklight 24 26.09.18 16:08 Сейчас в теме
(1)Согласен, но это чисто академический почти абстрактный язык - не применяющийся на практике - просто некое почти бесполезное достижение для Книги рекордов Гиннесса, так же как и поедание хотдогов на скорость! Засорять опросник этим вариантом не стоит - ибо и так понятно, что те, кто о нём знает - выберет именно его, ибо данный язык действительно мозгодробительно сложен. Не отдав голоса за какой-то практический вариант.

Лично мне очень не нравится "Objective C" - он ломает моё сознание! Странно что нет языка "Perl" - тот ещё уродец. Хотя Python, мне тоже не "зашёл". На их фоне языки Java, JavaScript и 1С - вполне красивые и простые языки. Хотя мне больше нравится Scala - хоть это далеко не самый простой в освоении язык! Kotlin бы ещё добавить - как один из самых молодых и быстрорастущих языков на платформе Java Runtime и JavaScript.

И, я считаю, жаль в среде 1С практически нет библиотек (кроме БСП), упрощающих жизнь программистам. И нет никакой конкуренции - а то бы голосовалку на эту тему было бы интересно тоже сделать было бы.... лично мне БСП не нравится - очень громоздкая, постоянно кардинально меняющаяся, плохо документированная, трудно разделяемая на отдельные части - кодохрень! Но, пользы от БСП всё же гораздо больше, чем от если бы её не было :-)
TreeDogNight; Gureev; vrednyi_glavred; uri1978; +4 1 Ответить
18. Поручик 4445 26.09.18 20:49 Сейчас в теме
(4) В веб я начинал именно с Perl'a и он мне никогда не казался уродцем или сложным. Очень мощный язык.
27. herfis 378 27.09.18 10:57 Сейчас в теме
(18) Perl на какой-то момент был "наше все" в качестве скриптового языка общего назначения. Потом эту нишу занял python (и сейчас пока занимает).
2. cerrenesi 26.09.18 15:59 Сейчас в теме
3. katenok86 245 26.09.18 16:05 Сейчас в теме
Самый сложный тот который не знаешь)
TreeDogNight; JohnConnor; Teut_Vlad; alex-l19041; A_Max; Krio2; Interrupted; Gang031; protexprotex; Kochergov; +10 Ответить
5. Darklight 24 26.09.18 16:12 Сейчас в теме
(3)Речь как раз про освоение языков. Какие-то осваиваются легче, какие-то труднее. Так же как и с разговорными языками. Английский - учить легко. Китайский - крайне сложно. А, вот, на каком языке будут чаще говорить и писать через 100 лет большинство людей планеты - ещё вопрос: простом английском, или сложном китайском. А может на арабском? Но это уже совсем другая история...
Gang031; Kochergov; +2 Ответить
6. biz-intel 776 26.09.18 16:26 Сейчас в теме
Я бы написал статью, как беспринципные обновления типовых конфигураций 1С мешают работе программистов 1С:)
Gureev; akimych; Gang031; acanta; +4 Ответить
9. protexprotex 128 26.09.18 16:49 Сейчас в теме
(6) Как раз к теме - пишу сейчас на 1С в конфигураторе - сохранил все. Проверил. Все работает. Класс. Вышел из конфигуратора. Потом еще раз зашел чтобы еще кое-что поправить. Бац! - а всего того, что я написал уже в конфе и нет. Вот так вот. Так что 1С - это самый сложный язык - т.к. не всегда то, что ты написал даже сохраняется :-) - тут удача нужна. Ну и этот .... кеш та еще приставка.
TreeDogNight; Teut_Vlad; Gureev; tindir; igo1; Gang031; +6 Ответить
11. starik-2005 2228 26.09.18 17:18 Сейчас в теме
(9)
Потом еще раз зашел чтобы еще кое-что поправить. Бац! - а всего того, что я написал уже в конфе и нет.
Ни разу не сталкивался с такой ситуацией, а вот был у нас разработчик один - сталкивался постоянно. Видимо не особо хотелось ему работать.
12. herfis 378 26.09.18 17:29 Сейчас в теме
(11)
Ни разу не сталкивался с такой ситуацией, а вот был у нас разработчик один - сталкивался постоянно. Видимо не особо хотелось ему работать.

Вполне возможная ситуация при наличии сбойного кэша и динамических обновлениях. Возможно, товарищ просто не соблюдал гигиену при разработке :)
13. starik-2005 2228 26.09.18 17:32 Сейчас в теме
(12)
Возможно, товарищ просто не соблюдал гигиену при разработке
Так вроде даже по стандартам разработки все пилят в тестовой базе на тестовом хранилище, при изменениях деплоят в него, а потом уже накатывают на продуктовую базу. Если кто-то разрабатывает что-то в магазине продуктов на окраине населенного пункта с численностью населения в районе 2к, то, конечно, можно и прямо в базу писать, только и динамических обновлений там быть не должно.
Kochergov; +1 Ответить
15. protexprotex 128 26.09.18 17:57 Сейчас в теме
(12) Да нет. В том - то и дело, что это было не динамическое обновления. Разработка велась в копии базы - там не было других пользователей. Самого такое чудо удивило. Причем, только у одного клиента такое у меня было - уже второй раз. Насколько я понимаю, это из-за отложенного сохранения на диск в винде - глюк какой - то.
21. agent00mouse 210 27.09.18 07:54 Сейчас в теме
(11) Три конфигурации в тестовых базах. Доработки вносятся +- равномерно во все, но у одной базы с завидной постоянностью (раз в месяц - полтора) уходит кеш. Может базе работать не хочется , а не программисту?
29. a30v 27.09.18 12:55 Сейчас в теме
(9) Знакомая история с пропажей кода. При чем, бывало, код удалишь, а он все равно выполняется ))
7. acanta 26.09.18 16:29 Сейчас в теме
Хирургу всегда мешают лишние движения пациента.
8. herfis 378 26.09.18 16:35 Сейчас в теме
Одно дело языки, другое дело - реальное промышленное программирование на этих языках.
Те же java и javascript - что в них сложного?
А вот инфраструктура реальных современных проектов на них - уууууу...
tindir; Kochergov; +2 Ответить
10. starik-2005 2228 26.09.18 17:17 Сейчас в теме
Какой язык программирования вы считаете самым сложным?
Серьезно куча народа на Инфостарте считает, что самым сложным языком является 1С? Или они вопрос не прочитали и ткнули сразу на знакомое? )))
TreeDogNight; neikist; Kochergov; +3 Ответить
23. Darklight 24 27.09.18 09:54 Сейчас в теме
(10)По-моему это просто стёб, судя по комментариям
14. DoctorRoza 26.09.18 17:55 Сейчас в теме
Не хватает кнопки - Посмотреть результат! ))
16. protexprotex 128 26.09.18 17:58 Сейчас в теме
17. Infactum 291 26.09.18 18:07 Сейчас в теме
Отличное голосование "от гуманитария". Критерий сложности какой?
Из субъективного - C++. И не потому что на нем трудно "просто что-то написать" - в такой нише полно разной эзотерики. Это именно язык, который трудно действительно знать. Одна только спецификация более 1000 страниц чего стоит.
alias_rus; Evil Beaver; Kochergov; +3 Ответить
19. CheBurator 3429 27.09.18 01:02 Сейчас в теме
ну если описание языка 1С порсмотретьсейчас - то на скольо страниц потянет?
ну а Perl - очень даже няшный! когда веб только из штанишек вырос - от нечего делать накропал текстовую базенку и генерил сайт перловым скриптом ... до сих пор на просторах валяется http://tomba.rasc.ru
26. Darklight 24 27.09.18 10:53 Сейчас в теме
(19)Само описание языка программирования (без встроенных функций) 1С можно уложить в несколько десятков страниц. В худшем случае - в 100 страниц! Синтаксис языка очень простой. Описание встроенной библиотеки функций и прикладных объектов - это уже не совсем язык - но потянет ещё где-то на пол тысячи страниц.

Но вообще-то я ранее встречал сравнение языков по сложности - их сравнивают совсем по-другому: описывают синтаксис языка в какой-то единой форме, наиболее популярная форма "Бэкуса-Наура". И сравнивают число слов в таком описании - чем слов больше, тем язык сложнее в освоении. Конечно это тоже спорное решение, ведь тот же ассемблер не так уж богат на синтаксические конструкции. А вообще тут правильно был задан вопрос: а сложность чего измерять то?

Варианты:
1. Сложность освоения/изучения
2. Сложность интерпретации мыслей желаемого результата в элементы синтаксиса языка и его встроенные функции
3. Сложность восприятия и понимания написанного чужого (да и своего) кода и восстановление исходной логики (мыслей желаемого результата)
4. Сложность отладки и поиска ошибок (без учета помощи со стороны IDE)
5. Сложность, определяемая скоростью превращения мыслей реального результата в рабочий вариант в элементах синтаксиса языка (с учетом помощи IDE)
6. Сложность написания эффективных программ (производительных и надёжных)
7. Сложность тех или иных библиотек и фреймворков, написанных для языка, и напрямую влияющих на сложность итоговых программ
8. Сложность, определяемая объёмами различных терминов и синтаксических паттернов языка, которые необходимо запоминать и не путать

Язык 1С очень прост в освоении, в терминах и паттернах; средне сложен в интерпретации мыслей, отладке и анализе чужого кода. И сложность повышаться, когда речь заходит об эффективности написания надёжных и производительных программ. А когда речь заходит о фреймворках, то даже встроенная в платформу объектная модель 1С уже далеко не проста (начиная с редакции 8.3 всё усложняется и усложняется), а если заговорить о БСП - то там уже давно "чёрт голову сломит" и тоже, с каждым годом, всё усложняется и усложняется. Как растёт и сложность типовых конфигураций. И тут, на мой взгляд, проблема уже как раз в ограниченности и излишней простоте синтаксиса 1С и доступных встроенных операциях.

Когда язык не обеспечивает необходимый уровень инструментов для лаконичного выражения современных тенденций в структуре написания алгоритмов - то сами эти структуры начинают излишне обрастать сложными конструкциями и мусором, чтобы обойти эти ограничения и дать рост эффективности конечного результата, который требуется в погоне за мировой тенденцией и конкуренцией! Язык 1С уже безбожно отстал от современного уровня программирования.

Поэтому в мире периодически возникают новые языки, которые учитывают опыт развития более древних языков и новые требования к эффективности программирования - и повышают эту эффективность на новый уровень - без лишних усложнений, без груза старых подходов - только то, что нужно современным разработчикам. Например, когда-то таким языком стал Си или Pascal, или Бейсик - пришедшие на смену Алголам, Фотранам, Адам и Ассемблеру (и дали толчок к развитию более новым - ещё более продвинутым языкам). Или языки C#, Scala пытавшиеся вытеснить Java и C++. Сейчас - появился язык Kotlin - конкурирующий с Java и JavaScript. Это хорошо и для старых языков - это конкуренция заставляет их тоже развиваться.

У языка 1С сейчас нет прямой конкуренции (OneScript пока не в счёт) - язык застрял в начале нулевых в своём развитии, лишь IDE и фреймворк немного развивались - но и их уровень сейчас остался ещё где-то в нулевых годах XXI века. К концу 20-х годов всё это окончательно моральна устареет. В 2030 году будем смотреть на 1С8 так, как сейчас смотрим на 1С7, а то и ещё хуже.

И вряд ли компания 1С за ближайшие 10 лет "выкатит" что-то кардинально новое и свежее во вопросах построения программной архитектуры, даже появление, так не любимой Наралиевым, ООП модели и действительно асинхронного многопоточного программирования - это лишь медленный бег за уходящим в даль поездом, правда если к этому ещё добавить глубокую интеграцию с функциональным стилем и что-то на подобии асинхронного LINQ (из C#), то это могло бы хоть выглядеть как рьяная попытка угнаться за поездом мирового уровня написания программного кода, который через 10 лет умчится ещё дальше).

Ну, или компания 1С попросту откажется от своего собственного языка программирования и перейдёт на какой-то мировой. Например на любимый ими Java (хотя лицензионный скандал компании Google c Oracle тут должен как раз отпугнуть). Тогда выбрать путь компании Google - и перейти на язык Kotlin, сохранив runtime модель Java машины, через механизм трансляции LLVM - в случае чего - это легко поможет сменить и runtime модель в будущем. Но это всё очень кардинально.

Это всё явно не для поколения 1С8 это уже 1С9. А для разработки нового поколение платформы - нужно ого-го как много времени - тут тоже 10 годами уже не отделаешься, вон - 1С 8.4 уже более 3-х лет пилят - и всё никак не забрезжит "свет в конце туннеля" в виде, даже, анонса бета версии. А 1С 8.4 вряд ли станет последней редакцией в поколении 1С8 (такими темпами ждать 1С 8.5 надо где-то к 2025 году, 1С 8.6 выйдет уже после 2030 и только затем будет анонсирована 9-ка, которая выйдет ещё лет через 10 в качестве бета версии).

Но, вероятно, компания 1С уже сейчас, заранее, прощупывает почву дальнейшего развития языка и платформы - серьёзные изменения требуют серьёзной подготовки и сбора аналитических данных. Может и этот опрос - лишь часть этой аналитической работы ;-)
28. starik-2005 2228 27.09.18 11:10 Сейчас в теме
(26)
а сложность чего измерять то?
С точки зрения современных реалий выбора, сложность - это время, которое нужно потратить на то, чтобы начать на этом зарабатывать. Если из этого исходить и взять полностью не умеющего программировать человека, то уже можно примерно оценить сложность того или иного инструмента (языка программирования) для создания приложений.

Если говорить вообще о том, сколько нужно времени, чтобы начать зарабатывать на 1С, то для человека с нуля нужно примерно три месяца. За это время можно научиться писать выражения на любом языке (т.е. "А = 1 + 2 ..." - присваивание), научиться булевой алгебре ("Если А > 10 Тогда ... Иначе ...") и определиться с тем, как меняются объекты (лайф-цикл объекта конфигурации). Также можно освоить простое конструирование запросов (выборки из одной таблицы, соединения, группировки) и научиться строить отчеты с помощью СКД (на уровне простых реестров с отборами).

Т.е. за три месяца при правильном подходе к развитию компетенций можно получить вполне вменяемого разработчика начального уровня (Junior). Дальше уже человек может развиваться самостоятельно, осваивая алгоритмы из того же списка минимализмов Ильдаровича, предварительно обучившись принципиальным методам обхода коллекций, деревьев и преобразования строки. Ну и все. Дальше уже нюансы СУБД и объектных блокировок. За три года можно вполне достичь компетенций эксперта по технологическим вопросам и иметь овер 200к. С другими языками так вряд ли получится.
30. Darklight 24 27.09.18 13:09 Сейчас в теме
(28)По-моему слишком радужно всё расписываете, особенно в конце. Хотя да, соглашусь с тем, что такой путь возможен, но не более 1-2 новичка из сотни пройдут его примерно за 3-4 года и уж тем более получат после овер 200. Ну и я не спорю, что 1С простой язык. С непростыми фреймворками.

Но я не понимаю тех, кто голосует за 1С как за сложный язык! Это больше на стёб похоже.
31. starik-2005 2228 27.09.18 13:16 Сейчас в теме
(30) производительность труда зависит от трех факторов: квалификации, процессов и мотивации. Эффективность обучения зависит в основном от мотивации. Если человек решил для себя, что это ему надо - он сможет за три года освоить весьма глубоко именно 1С и сопутствующий devOps, чтобы стать экспертом по технологическим вопросам. Но это если человек умный, если он способен мыслить и задавать правильные вопросы (в частности - себе), качественно интерпретировать ответы на них и продолжать работать над собой. Если же человек не очень умный и, соответственно, не очень хочет разбираться в нюансах платформы и devOps'а, то он вполне может пойти в РП - вертикальный рост, но для этого тоже нужно поработать над собой, но уже с другой стороны. Таким образом даже не особо умный человек, познакомившийся с платформой, может через 3 года зарабатывать в этой нише вполне хорошие деньги.

Все меняется, когда человек ленив. Тут кроме экзистенциального кризиса ему никто не поможет.
32. Darklight 24 27.09.18 15:14 Сейчас в теме
(31)Имхо - чаще плох тот программист, кто не ленив. Обычно волосы дыбом встают наблюдая что они своим неуёмным рвением генерят! Но, это большинство. Они, конечно же, не есть 100% всех активных трудоголиков - среди них и вполне адекватные программисты есть, готовые, к тому же, не просто качественно код строчить, но и развиваться - но их очень мало!
33. starik-2005 2228 28.09.18 11:13 Сейчас в теме
(32)
Имхо - чаще плох тот программист, кто не ленив.
Я не о программисте говорю, а о человеке, который встал на желтые рельсы и отправился в путь.

А по поводу того, что там генерят неленивые (про "умность" Вы, как я понял, пропустили), то наличие функционала отличается от его отсутствия кардинально. Лучше пусть будет что-то, что работает, пусть и неоптимально, но реализует требуемый функционал, чем не будет ничего. Может быть умный и ленивый программист сделает достаточно сложный продуманный и поддерживаемый код за то же время, за которое неумный трудоголик запилит свой неподдерживаемый простой спагетти-код, но в рамках сложности кода первого для его поддержки уже будет необходим еще один умный, а их мало.
34. herfis 378 28.09.18 11:29 Сейчас в теме
(33)
Лучше пусть будет что-то, что работает, пусть и неоптимально, но реализует требуемый функционал, чем не будет ничего.

Увы, но далеко не всегда. Только если "выбросить" эту реализацию в последующем будет стоить дешево. Другими словами - если не придется менять внешние интерфейсы. В противном случае переделка может стоить настолько дорого, что гораздо дешевле было бы обождать с реализацией. Конечно же, сильно зависит от сроков на "обождать" и ценности функциональности.
35. starik-2005 2228 28.09.18 11:44 Сейчас в теме
(34)
В противном случае переделка может стоить настолько дорого, что гораздо дешевле было бы обождать с реализацией.
Пример можно?
36. herfis 378 28.09.18 11:57 Сейчас в теме
(35) Переделать кривой отчет - очень дешево. У него вообще нет внешних зависимостей.
Переделать криво заложенную архитектуру подсистемы (пусть даже небольшой) на базе которой начали строиться новые инструменты и выстраиваться бизнес-процессы - гораздо дороже.
37. starik-2005 2228 28.09.18 12:05 Сейчас в теме
(36)
Переделать криво заложенную архитектуру подсистемы
А пример будет? Конкретный.
38. herfis 378 28.09.18 12:13 Сейчас в теме
(37) Остаточный регистр с незакрываемыми измерениями, например. Или еще конкретнее?
39. starik-2005 2228 28.09.18 13:02 Сейчас в теме
(38) а в чем проблема закрывать измерения? Сделать регламент - пять минут.
40. herfis 378 28.09.18 13:11 Сейчас в теме
(39) Вы так ловко расправились с самым простым примером, который я смог придумать, что не вижу смысла продолжать спор. С более сложными примерами вы расправитесь еще ловчее. Фрактальное подпирание подпорок конечно же работает. До какой-то степени. Только лучше без меня.
41. starik-2005 2228 28.09.18 13:53 Сейчас в теме
(40)
Фрактальное подпирание подпорок конечно же работает.
Все зависит от удовлетворенности клиента. Если система работает так, как должна работать, то заказчику важно не то, как это сделано, а то, сколько времени на это потребовалось.

Вряд ли можно накосячить в архитектуре так, чтобы все состояло из подпорок. Не отрицаю, что существуют гении, но не уверен, что они будут способны просидеть на одном месте достаточное для этого количество времени.
43. herfis 378 28.09.18 15:47 Сейчас в теме
(41)
Если система работает так, как должна работать

Это очень лукавая формулировка. Потому что требования к бизнес-приложениям динамичны. Зачастую ОЧЕНЬ динамичны. Гораздо динамичнее адекватного срока эксплуатации системы. Естественно, мы не обсуждаем ситуации, когда заказчика все устраивает. Проблемы возникают, когда за очередную доработку ему выкатывают неадекватный по его ощущениям ценник или когда система резко начинает тормозить и глючить при начале параллельного ввода данных или появлении пары филиалов. Он-то подразумевал что платит деньги за адекватно масштабируемую систему, а не за автоматизацию одного рабочего места с тремя кнопками для ввода трех документов в неделю отныне и на веки вечные, хотя изначально его все устраивало.
Вряд ли можно накосячить в архитектуре так, чтобы все состояло из подпорок. Не отрицаю, что существуют гении, но не уверен, что они будут способны просидеть на одном месте достаточное для этого количество времени.

Гении или нет, но скорость нарастания технического долга обратно пропорциональна квалификации разработчиков. А уже появившиеся подпорки провоцируют появление новых и скорость нарастания технического долга увеличивается - я не зря вспомнил про фракталы. Потому что всегда проще впиндюрить еще одну подпорку, чем пытаться обосновать внезапные немаленькие трудозатраты на рефакторинг. Тут даже грамотный специалист может оказаться в ситуации, когда деваться некуда - переступит через себя и рыдая втулит костыль под костыль. Потому что еще не факт, что трудозатраты на рефакторинг окупятся. Но технический долг при этом вырастет и потенциальная стоимость будущего рефакторинга возрастет. Чем больше технический долг - тем выше совокупная стоимость владения системой. Стоимость поддержки и развития будет постоянно расти, скорость разработки - постоянно снижаться. В конце-концов система превратится в такого толстокожего монстра, что станет дешевле его пристрелить и вложиться в сложный и дорогой переход на новую систему. Квалифицированные разработчики способны значительно отодвинуть этот момент и сэкономить предприятию кучу денег.
Ессно нет смысла пыхтеть над идеальной архитектурой, если более простое и быстрое решение обеспечит приемлемый срок нормальной эксплуатации или гарантирует быстрый рефакторинг в случае необходимости. Проблема в грамотном отделении мух от котлет. А тут, к сожалению, только опыт, сын ошибок трудных.
44. starik-2005 2228 28.09.18 15:59 Сейчас в теме
(43)
костыль под костыль
Помню как раз на прошлом месте занятости было несколько костыльных механизмов, которые разработали франчи. И только один в итоге я перепилил полностью, при этом тот мой полный перепил еще раз перепилили.

Т.е. ничто не защищает архитектуру от модернизации - даже качественная идея в ядре, т.к. изменения могут коснуться и принципиальных моментов.

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

А та часть технического долга, которая оказалась в надежном банке, - да, будет однажды востребована кредиторами, и на нее будет выделен соответствующий ресурс. И даже при этом новая архитектура не будет гарантировано без костылей. Я, например, видел крайне мало решений, где явные костыли отсутствовали. Зато концепций о безкостыльности от теоретиков слышал немало. Это такие вот "Аркаши" из одной публикации гражданина из ОкноСофта - они могут бесконечно вылизывать архитектуру, а требования - они ограничены временными рамками терпения заказчиков.

-----------------

Вообще, существует такая штука, как CMM - зрелость процессов организации, разрабатывающей софт. Там есть пять уровней. Так вот на последнем уровне как раз зрелость процессов достигает уровня, при котором и бюджет, и сроки соблюдаются, и технологии последние самые используются. Для подобного уровня характерны такие вещи, как ревью кода, парное программирование, постоянное повышение квалификации сотрудников и прочие моменты. В большинстве компаний, внедряющих 1С своими силами или силами франча о таких вещах никто не знает. Большинство франчей повышает квалификацию разработчиков и РП-ников только на уровне сертификации в 1С, которая и сама далека от CMM 5 - дай Боже на 3-ку у них там дела обстоят.
45. herfis 378 28.09.18 16:48 Сейчас в теме
(44) Отчасти соглашусь, отчасти нет. Те же системы уровня предприятия переписываются нечасто, это не интернет-стартапы. Слишком дорого. Потому и "кровавый энтерпрайз". В кровавом энтерпрайзе технический долг - это настоящий бич. Его мало не бывает. И бог знает, сколько лишних денег платят предприятия за толкание этого воза. Тут уж явно экономия на квалификации разработчиков выйдет боком. Квалифицированный и опытный разработчик априори генерит в разы меньше технического долга, чем неквалифицированный. Причем зачастую при тех же трудозатратах. Он просто предвидит наиболее вероятные сценарии развития функциональности и выбирает те варианты реализации, которые лучше в них впишутся при необходимости.
20. insurgut 191 27.09.18 06:34 Сейчас в теме
Ассемблер, бедный, все про тебя забыли :(
Shef_zeon; Teut_Vlad; Неопределено; +3 Ответить
22. DoctorRoza 27.09.18 09:32 Сейчас в теме
(20) Да статью-то гуманитарий писал. Не упамянул Clojure, а это уже функциональное программирование и т.д.
24. Darklight 24 27.09.18 10:03 Сейчас в теме
(22)В статье заведомо только императивные языки. А вот С++ да, забыли. Про ассемблер лучше не вспоминать - да, конечно на нём и сейчас пишут, но это, всё-таки язык из совсем другой ниши, чем языки из голосования. Хотя, я, наверное, понимаю по какому принципу отобраны языки - по принципу того, что они являются либо скриптовыми, либо используют виртуальную машину или компилируются в исполняемый байт код через LLVM (из этого принципа, наверное, только "Objective C " выделятся; хотя может ещё Go - не знаю, зачем он тут вообще, лучше бы Groovy привели; ну и C# тогда тоже забыли).
25. returnigor 30 27.09.18 10:16 Сейчас в теме
Haskell на мой взгляд сложный.
42. starik-2005 2228 28.09.18 14:08 Сейчас в теме
ЗЫ: Вообще, всегда есть два пути: искать причины и искать возможности.
Оставьте свое сообщение

См. также

Сотрудники на удаленке чувствуют себя более измотанными, чем при работе в офисе

Новость ИТ-новость Новости компаний

Анонимный опрос, проведенный сервисом Blind, показал, что 68% технических работников на удаленке чувствуют себя более измотанными, чем когда они работали в офисе.

02.11.2020    1956    capitan    13       

Минэкономразвития предложило проактивное оказание госуслуг

Новость Автоматизация ИТ-новость Цифровая экономика

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

04.09.2020    3030    VKuser24342747    0       

SuperJob проанализировал зарплаты выпускников российских ИТ-вузов

Новость ИТ-новость Образование

Сервис по поиску работы SuperJob составил список отечественных вузов, выпускники которых получают наиболее высокие заработные платы после окончания обучения. 

25.06.2020    4551    VKuser24342747    0       

Минфин раскритиковал планы Минкомсвязи по субсидированию онлайн-образования

Новость Образование

Министерство связи хочет выделить 300 млн рублей компаниям, предлагающим услуги онлайн-образования. Минфин опасается, что часть этих денег могут получить развлекательные и игровые сайты. 

22.05.2020    3585    VKuser24342747    1       

Боремся с «ленивой самоизоляцией»: цикл публикаций от Елены Дуюн на Infostart.ru

Новость Обучение, бизнес-тренинг, курсы

Организация работы в период пандемии – ценный опыт, которым нужно делиться. Продолжаем обсуждение вместе с бизнес-психологом, консультантом по подбору и развитию персонала – Еленой Дуюн. 

20.05.2020    6430    user997184    1       

Мир после коронавируса: российские компании не сохранят удаленку, США – наоборот

Новость Новости компаний

Многие компании вынуждены были полностью или частично перейти на удаленный формат работы. Но после снятия карантинных ограничений большая часть российских работодателей намерена вернуть сотрудников в офисы. В США ситуация противоположная.

15.05.2020    3863    user1015646    9       

Все.онлайн: в России запущен каталог бесплатных ресурсов для людей в самоизоляции

Новость Госдума Интернет

В России заработал портал, на котором собраны бесплатные ресурсы: развлекательные, образовательные и информационные. Они помогут провести время продуктивно, отдохнуть, заказать товары онлайн.

15.04.2020    3809    user1015646    0       

Минкомсвязи представило приложение для получения QR-пропусков на время карантина

Новость Минкомсвязь Мобильные приложения

В магазинах мобильных приложений появилась программа для получения QR-пропусков во время самоизоляции. В Минкомсвязи сообщили, что решение будет использоваться по всей России, кроме Москвы. 

14.04.2020    5944    VKuser24342747    2       

Опубликован список сайтов «бесплатного интернета»

Новость Интернет Минкомсвязь

Эксперимент продлится с 1 апреля по 1 июля 2020 года. Предполагается, что потоковое видео с сайтов при бесплатном доступе грузиться не будет.

10.04.2020    4654    AnastasiaKl    5       

Александр Жаров ушел из Роскомнадзора ради должности гендиректора «Газпром-Медиа»

Новость Роскомнадзор

Александр Жаров больше не возглавляет Роскомнадзор. Его место займет Андрей Липов, который руководит управлением президента по применению информационных технологий. 

25.03.2020    4695    VKuser24342747    0       

В России обсуждают введение нового вида занятости – удаленной работы

Новость Госдума Законодательство

Если поправки примут, работники смогут трудиться дома и в офисе по одному трудовому договору.

24.03.2020    4399    ЕленаЧерепнева    7       

На карантине: Google Chrome перестанет получать обновления до апреля

Новость Google

Google временно приостановила выпуск обновлений для Chrome. Команда разработчиков браузера переведена на удаленную работу и будет заниматься лишь исправлением проблем с безопасностью.

23.03.2020    5992    VKuser24342747    6       

Минкомсвязь не хочет компенсировать затраты операторов на «бесплатный» интернет

Новость Минкомсвязь Телекоммуникации

Доступ к сайту госуслуг и другим социально значимым ресурсам обещали сделать бесплатным с 1 марта. Но запуск проекта пришлось отложить: Минкомсвязь не успела согласовать нужные документы. 

17.03.2020    4650    user1015646    6       

Фельдшерам и учителям не хватило компьютеров для подключения к интернету

Новость Образование Цифровая экономика

Школам и фельдшерским пунктам не досталось компьютеров, положенных по проекту «Цифровая экономика». Заведения так и не получили возможность выхода в интернет. 

05.03.2020    4487    VKuser24342747    4       

Умер Ларри Теслер – разработчик, придумавший команды «копировать», «вырезать» и «вставить»

Новость Искусственный интеллект Языки программирования

Ларри Теслер , скончавшийся 16 февраля 2020 года, возможно, не является всемирно известным, как Стив Джобс или Билл Гейтс, но его вклад в упрощение использования компьютеров и мобильных устройств нельзя переоценить. Ведь именно он изобрел используемые по всему миру функции «вырезать», «копировать» и «вставить».

25.02.2020    5142    user-programmist    6       

Не на своем месте: суд оштрафовал Twitter и Facebook на 4 млн рублей

Новость Роскомнадзор Судебная практика

Роскомнадзор добился наказания для Twitter и Facebook. Суд принял решение оштрафовать каждую компанию на 4 млн рублей за отказ перенести данные о пользователях в Россию.

20.02.2020    3671    VKuser24342747    9       

ФАС попросит Apple и Google очистить смартфоны для российского ПО

Новость Google

Антимонопольная служба предложила привлечь Apple, Google и Microsoft к исполнению закона об обязательной предустановке российских приложений. Компании будут отвечать наравне с производителями и продавцами устройств. 

04.02.2020    4611    VKuser24342747    30       

Почтовый сервис Protonmail заблокирован в России

Новость Интернет

Спецслужбы считают, что через Protonmail, рассылались ложные сообщения об угрозах минирования на территории РФ.

03.02.2020    4998    Senator_I    68       

Чешские программисты бесплатно создали сайт, на который правительство хотело потратить 16 млн евро

Новость Государственные, бюджетные структуры Госзакупки Онлайн-торговля

Власти Чехии собирались потратить 16 млн евро на создание интернет-магазина для покупки талонов на проезд по платным дорогам. Местных разработчиков возмутил объем затрат: они организовали хакатон и за выходные бесплатно создали онлайн-магазин.

03.02.2020    5891    user1015646    31       

Лучше, чем Google: «Яндекс» возглавил рейтинг лучших работодателей для студентов в России

Новость Google Образование Яндекс

Сервис поиска вакансий FutureToday составил список лучших работодателей для студентов. На первом месте рейтинга в России – «Яндекс», который в этом году смог обогнать Google. 

31.01.2020    5485    user1015646    6       

Большие перемены: назначен новый министр по цифровому развитию и связи

Новость Цифровая экономика

Новым главой Министерства цифрового развития, связи и массовых коммуникаций стал Максут Шадаев. Он сменил на посту Константина Носкова, который сложил полномочия в связи с отставкой правительства.

28.01.2020    6651    user1015646    16       

Готовьте ваши миллиарды: утверждены новые требования к российским DNS

Новость Интернет Минкомсвязь

Минкомсвязи утвердило требования к операторам связи и интернет-сервисам, выполняющим функции DNS. Такие сервисы должны будут в течение года хранить информацию о пользователях и обеспечивать время отклика не более 100 мс.

28.01.2020    7172    user1015646    0       

Всем даром: доступ к сайтам госуслуг и госорганов станет бесплатным

Новость Интернет Телекоммуникации

Уже с 1 марта зайти на сайты государственных органов и госуслуг можно будет бесплатно. Ресурсы должны открываться, даже если у вас на счете «жирный минус», заявили в Минкомсвязи.

24.01.2020    6042    user1015646    4       

Российские банки перестанут собирать биометрические данные 

Новость Банки

Проект по сбору биометрических данных в российских банках решили заморозить. Пополнение единой биометрической системы откладывается на неопределенный срок.

23.01.2020    6888    user1015646    5       

Назначен новый руководитель Федеральной налоговой службы

Новость Налоги ФНС

После того, как Михаил Мишустин стал премьер-министром России, Федеральная налоговая служба получила нового руководителя. Налоговое ведомство возглавил Даниил Егоров.

22.01.2020    6646    ЕленаЧерепнева    22