Здесь я переработаю свой опыт взаимодействия с системами, включая 1С. Кроме того, я поделюсь своим личным опытом, который, хотя и необъективный, частично искаженный, но все же основан на 20-летнем опыте программирования. Я надеюсь, что мой опыт поможет кому-то получить новые идеи или просто будет интересен для чтения.
Как я начинал
Где-то лет в 19 после первого курса университета, зависая в онлайн-игрушке я осознал, что не хочу больше ходить на пары, ведь преподаватели дают скучную математику, а можно писать зоны для муда, я забил на обучение и с головой погрузился в мир онлайн игр. Очнулся я когда моя девушка забеременела и нужно было резко решать, где я буду зарабатывать деньги на жизнь 3х человек в съёмной квартире, единственным вариантом было, найти сложную стрессовую работу за много денег в моем городе, и после большого количества попыток и неудач, я попал на выигранный местным интегратором тендер, как стажер, я катался по всей республике в рейсовом автобусе, обучал людей пользоваться новой для меня программой, видел как действительно 1с помогает работать ускоряет процессы и с головой лет на 10 погрузился, в мир внедрения доработок, типовых конфигураций внешних печатных форм. запросов высоконагруженных баз данных, на десятках разных проектов частично совершенно не связанных с 1с, ну в общем путь многих людей, которые вкатились в айти со стороны 1с.
Попытки осознать окружающее.
Спустя 10 лет я впервые познакомился с альтернативным миром. Он существовал параллельно и почти не взаимодействовал с 1С. Там писали на иностранных языках программирования и создавали приложения для телефонов. Мир интернета был целиком связан с этим всем. Но для меня это выглядело, как мир мусульман для истинного православного. Но любопытство зрело и несколько спустя я как любопытный человек, написал пару веб-сервисов на PHP, которые что-то отдавали, хранили и аккумулировали для 1С. Я понял, что ничего невозможного нет. Но денег и потребности их зарабатывать никуда не делась, поэтому я все еще был обоими ногами в мире 1С.
Импульс к изменению и само изменение
Все изменилось, когда я съездил в отпуск в другую страну. Я увидел, что есть такое понятие цифрового номада, и мне показалось, что я один единственный, кто здесь что-то пишет на 1С. А все остальные пытаются заработать на биткоинах, пишут криптовалютные биржи, мобильные приложения, чат-боты, и это не что-то недоступное из моего провинциального города, а вот в соседнем доме. И я осознал, что я тоже хочу также, чтобы язык был всего лишь инструментом, а не клеткой. По возвращении из отпуска я поставил ультиматум: либо меня отпускают на зимовку, либо я увольняюсь. И скрипя сердцем, очень хороший руководитель меня отпустил. Я старался его не подвести, работал больше, чем в офисе, жил в чужой стране, проникался культурой всего этого цыганского табора изучал возможности миграции общался и вникал.
И вот в какой-то момент я взял и ушел в самостоятельное плавание, уже не работая на какую-то одну компанию, а просто создав свою собственную галерку (наверное, даже плоскодонку) с несколькими джунами, но все еще в том же стеке.
Я добился уровня доходов, максимально возможного на текущем стеке, и понял, что чтобы дальше расти, мне надо уходить целиком в менеджмент. А менеджмент был не интересен мне на тот момент, ну или я не умел его правильно готовить.
Поэтому интерес к 1С сильно угас, и я записался на курсы JS, попросил друга научить меня JavaScript, он затащил меня на Upwork и дал первый толчок. Я работал с настоящим клиентом и делал настоящий продукт для человека, который не говорит на русском языке.
Конечно, это было говно, но это говно работало не тормозило и было сделано мной. Я ощутил тот же драйв, что и в самом начале карьеры, когда катался по республике, но теперь мой мир резко из кириллицы расширился многогранно.
Единственным слабым местом был уже не стек, а уровень моей квалификации, и я с упорством дебила начал перелазить, искать подработки. Спустя еще пару лет я уже окончательно ушел с 1С, оставшись на Python, сделав неплохое резюме и устроившись в стартап.
Дорос там до синьора подвыгорел может даже пару раз, поработал с машинным обучением, осознав все принципы SOLID, выяснив, что темная тема — это удобство, созданное для разработчиков даже если она бесполезна, она сама по себе является фактом уважения.
Но я все еще получаю какую-то часть денег со своих 1С-ных клиентов, самых лояльных и самых сложных. И я живу в двух мирах, все еще добровольно.
Теперь перейдем к сути статьи, которая касается того, почему 1С не является лучшим выбором для разработчика, и почему компания не проявляет достаточного уважения к своим разработчикам.
Если мой предыдущий текст не был понятен, я постараюсь объяснить более ясно.
Спагетти код (я не буду приводить примеры)
Ну, для начала возьмем тот уровень говнокода, который поставляется "as is" и который постоянно ломает совместимость, вынуждая тратить на доработку и поддержку своих же доработок дополнительные ресурсы. Вместо легковесного кода мы видим нагромождение кода, понятного только самим разработчикам 1С, и с каждым годом конфигурации становятся все сложнее для поддержки. Я начинал с 7.7 версии и закончил на уровне УНФ (лучшее, что сделала 1С со времени УТ 10.3) + 1С Drive. Я внедрял зарубежную конфигурацию 1С Drive, и концепция того, что мы пишем код, который с каждым годом все сложнее поддерживать, не меняется. Мне достаточно легко работать, потому что обладаю бэкграундом, но чтобы вписать своих джунов на уровень понимания кода в типовых, с каждым годом тратится все больше и больше времени. Механизмы, созданные компанией 1С для облегчения труда разработчиков, требуют все более мощное аппаратное обеспечение. Все хвалившие БСП за ее универсальность, идите глубже и дальше, посмотрите уровень разработки и скорость работы программ, разработанных без нее, например, "Камин Зарплата", и насколько она быстрее и легковеснее и да, ее намного легче отлаживать, хотя потребность возникает крайне редко. Тот же 1С Drive, откуда выпилено все ненужное, весит в 10 раз меньше (да я знаю, что из-за драйверов, но сама цифра).
я есть и будет так”
Аз есмь царь, да будет так
1С придумала базовые классы и сказала сюда ходи сюда не ходи. И все, никакой возможности расширить, совместить, скомбинировать. Постоянно упираешься в то, что 100 кб хватит для всех и никаких изменений в лучшую сторону. Это было нормально для 7.7. Там была даже своя система ускорения самой 7.7: управляемые блокировки, 1С++ и Toysql, и другие отличные вещи, которые драйвили. Ты не был заперт платформой. Но с каждой новой версией платформы, как-то расширить функционал с помощью внешних компонент становилось все сложнее, а иногда и незаконно.
Конечно, платформа развивается, инструментов становится больше, и отличных таких, как СКД, расширений, мобильных клиентов итд, итп. Но это скорее попытка догнать убегающий поезд человеку на костылях, чем реальная попытка двигать отрасль вперед. Я не умаляю величия заложенного в логику УПП 1.2, УТ 10, Бух 2, 1С Drive, Рарус и во всех тех отличных конфигурациях, но все они сделаны на не уважающей их платформе. Если бы они были сделаны в виде веб-сервиса, мультиязычными и содержащими ту же логику, они бы действительно могли встать вровень с Яндексом. Сейчас я вижу только Контур, который пошел по этому пути, и они мне кажутся намного более перспективны, чем сама 1С.
Третий тезис, который частично перекликается с предыдущим, “закрытая система”
Мы живем в мире, и хотя этот мир открыл для нас все возможные границы, мир программирования продолжает развиваться. Но компания 1с упорством дебила решает продолжать поддерживать свои собственные системы хранения версий изменений вместо использования гита, например. Это только один пример. Если такое решение лучше и быстрее существующего, то, конечно, можно использовать его. Однако это не так.
Давайте напишем интерпретатор запросов SQL на русском языке вместо использования встроенного языка. И не делать его открытым скрывать всю логику сборки подзапросов, логику создания таблиц, логику построения индексов…
Давайте не будем добавлять возможность использовать внешние IDE (например, Vim) и говорят, что такой возможности нет. Однако можно было написать плагин вместо того, чтобы пытаться написать какое-то тормознутое говно на Eclipse. открыв структуру cf файла, выпустить девятую платформу наконец.
Вроде бы ничего такого, но с каждым обновлением конфигурации становится все толще и толще, компьютеры нужны все мощнее и мощнее, чтобы не беситься от тормозов управляемых приложений
Типовые конфигурации никто уже не пытается рефакторить, модули нагромождаются и нагромождаются, башня все выше и выше и уже не видно неба. (Единственные удачные попытки с унф и драйв).
Это как пытаться запустить кризис на Эльбрусе. Но в отличие от Эльбруса, вас же никто не запирает в мире программирования, а вот вы запираете все больше и больше людей на знание своей экосистемы и только ее. Человек становится однобоко профессионален и одновременно беззащитно предан вам.
И вот исходя из написанного сумбурного перечисления фактов выше, родилась идея ответить. Для этого мне даже не нужно писать ничего положительного о стандартном мире и 1С. Нужно просто провести параллель между миром 1С и миром обычного программирования, где ты можешь подключить любую библиотеку, написать любой базовый класс, унаследовать любой объект, запилить систему не хуже 1С, и она будет однозначно быстрее, чем любая типовая. Да это требует повышенной квалификации и открывает простор, как для говнокода, так и для развития.
Но это автоматически дает полную власть разработчикам над их инструментами, и они становятся самыми преданными вашими пользователями вашими евангелистами.
Четвертый и последний: 1сники умные, но живут в золотой клетке. Обращение к коллегам.
Средний уровень программиста 1с не уступает, а во многом и превосходит уровень среднего веб разработчика всязи с тем, что 1сник рожден фулстаком проджектом и qa одновременно. И при переключении прошивки в нем уже есть все знания необходимые для того, чтобы птисать хороший код, подчеркну, что я описываю условного васю с 5 лет работы 1с.
Но уровень зарплат и продаж абсолютно разные. За ту же работу 1с программист создающий дашбоард руководителя, которым пользуются 2 пользователя получит 2 условных рубля, а программист создавший такой же дашбоард для 2000 пользователей получит 20 условных рублей и общественное признание.
Потому что решения реализуются быстро, вы просто используете готовые конструкции и получаете результат, но он тормозит, и им пользуются не 2000 человек, а 2. И вы быстро переходите к следующей задаче, не обрабатывая и не переваривая бэклог внутри себя, не воспитывая качество, а получая просто деньги. Да, со временем количество переходит в качество, но у меня ушло 10 лет. В обычной же разработке это происходит быстрее, потому что ты наглядно видишь, как влияет качество твоего кода на скорость работы пользователей. В 1С качество твоего кода сложно заметить на фоне типовых тормозов.
1Сники умные, они знают, как текут данные, как сделать, чтобы блокировки не мешали пользователям, знают, как собрать данные по коммерческой выгоде, знают, как общаться с фин. диром, но они не знают, что они стоят намного дороже, чем им платят. Их ограничивают зарплатными вилками, и будет довольно сложно найти тот проект, который заставит понять свой реальный IT уровень компетенций.
Критикуешь предлагай, Обращение к 1с
Что я хотел сказать, компании 1С. Пора меняться, делать систему открытой, разговаривать с разработчиками, наконец открывать код самой платформы, не угрожать исками за оптимизацию вашей же системы и слушать, что им нужно и делать то, что нужно им, а не делать то, что нужно вам.
Тогда у вас есть шанс не превратиться в "галактику".
Открывать конфигуратор, вырезать все ненужное и наконец переписывать, переписывать и делать систему легковесной, такой, которая и привела вас к успеху,
Делать систему международной, изначально отказавшись от идеи, что каждый бухгалтер сможет зайти в конфигуратор и написать свою бухгалтерию..
Быть, наконец, инновационной компанией, тогда люди будут гордиться тем, что они 1Сники, а не чувствовать, что их считают программистами второго сорта. (очень не обосновано)
Делать открытые API, чтобы любой разработчик мог быстренько запилить сервис или виджет для взаимодействия с 1С, познакомится восхитится тому уважению, которое появится (моя вера) в их продуктах, и захочет еще по взаимодействовать.
В заключение: отпишу, что я глубоко благодарен компании 1с за то, что она воспитала во мне программиста и человека то, что я пишу эту статью это акт уважения к компании 1с.