Причины оттока IT-компаний из России

Аватар пользователя Ритор

Работаю в IT 14 лет.

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

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

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

Сразу оговорюсь, что "бегство" IT компаний зарубеж началось не вчера и не после 24 февраля, а очень давно (об этом ниже).

Распространённая используемая схема

[Зарубежная головная компания, владеющая правами на ПО] <<--- [российский офис разработки]

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

Деньги на разработку спускаются на российский офис разработки по договору разработки - тут только затраты на ЗП+налоги, аренду и покупку оборудования и ПО для разработки, иногда здесь собирается местная выручка (но чаще - нет).

Излишне говорить, что головными компаниями могут владеть вполне себе русские товарищи. И чаще всего так и есть. У крупных компаний, изначально российских, может быть сложная акционерная структура, ведь после выхода компании на большие объёмы появляется много желающих прикупить её кусочек. Но дела это не меняет, мы говорим о компаниях, имеющих изначально российское происхождение. 

Примеры таких компаний: Yandex, VK, Playrix и прочие крупняки. 

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

Причины. Поехали. 

1. НДС 20% на маркетинг (невозвратный). Эта причина имеет примерно 60% веса в важности факторов оттока.

В большинстве стран, которые служат местом регистрации головных IT-компаний, все сделки, касающиеся рекламы, не облагаются НДС. Либо если и облагаются, то этот налог возвратный (например, идёт в зачёт в другие налоги).

В России он уплачивается в полном объеме.

Почему эта причина такая важная? А вот почему.

В очень многих айти-бизнесах (особенно B2C) реклама после запуска проекта ест 50-70-80% от всех затрат компании (включая зарплаты и налоги). В моей сфере это 80% затрат. 

Бизнес модель такая. Платите 100 рублей за рекламу продукта -> получаете 130 рублей выручки -> отдаёте 20 рублей на зарплаты -> оставшиеся 10 рублей - прибыль (в карман или в развитие).

А теперь представьте, что вы платите не 100 рублей за рекламу, а 120 рублей (из-за НДС), а все остальные цифры те же. Почему цифры те же? Потому что вы конкурируете с компаниями, которые не платят НДС на маркетинг.

Платите 120 рублей за рекламу -> получаете 130 рублей выручки -> отдаёте 20 рублей на зарплаты -> убыток 10 рублей оставляете себе и закрываетесь или переводите компанию на Кипр (что и делают большинство IT-бизнесменов).

Эта причина появилась не вчера и не 3 года назад. Она была изначально. Поэтому отток компаний был тоже всегда. Все крупные компании имеют головные юр лица в НДС-гаванях (и вообще налоговых гаванях).

Таким образом, закупка рекламы (даже для пользователей России (сейчас малоактуально)) идёт из зарубежа от лица зарубежной головной компании (см. выше раздел "Распространённая используемая схема"), и НДС обнуляется.

 

2. Санкции.

а) ПО

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

Да, отечественное ПО есть. Но представьте, что для 10 программ, которыми вы пользуетесь при производстве своего ПО - есть только 2 отечественных аналога. Что вам делать с остальными 8-ю? А для вас это средства производства. 

 
А чего сами не производим все 10?

На АШ ответят - "надо всё ПО производить самим, мы же умные".

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

Во-вторых, мы и так уже имеем 2/10 аналога. Остальные 8 производит весь мир, а это десятки стран. Надеяться, что все 10/10 ПО-продуктов, выпущенных в России будут гениальными и самыми лучшими на рынке, и мы сможем себя обеспечить лучшим - достаточно оптимистично. Такого не может сделать ни одна страна на данный момент.

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

б) Оборудование

С оборудованием проблемы гораздо большие. Здесь не буду развивать, но покупать серверы, компьютеры и ноутбуки, а также коммуникационное оборудование стало гораздо сложнее и дороже (а на это всё санкции даже не вводились, просто импорт замер).

в) Рынки сбыта

Если ваше ПО ориентировано в том числе на экспорт и вы - юридическое лицо из РФ, о зарубежной выручке в условиях санкций и экономической войны можно забыть. 

Собственно, из России уходят те компании, у которых бòльшая часть выручки зарубежная.

г) Переводы денег внутрь России

Если головная компания находится за рубежом,  а офис разработки в России, то необходимо финансировать российский офис разработки путём перечисления денег в один из российских банков. 

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

3. Непостоянство налоговой политики.

В 2018 году Правительство РФ представило обширные льготы для IT-бизнеса. Вот некоторые из них:

- Снижение налога на прибыль до 3%.

- Снижение социальной части налогов на сотрудников с ~27% до ~8%.

Это очень, очень, очень хорошие меры. НО:

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

- Даже если бы эти меры помогали локализации IT... Им всего чуть больше 3 лет. В других странах налоговые политики выстраиваются десятилетиями и не меняются, либо меняются очень редко. Наша ФНС и законодатели пока стабильностью похвастаться не могут, к сожалению. 

- Среди этих мер нет обнуления НДС на рекламную выручку (а это невероятно важно, см. пункт 1).

- Кто может поручиться, эти меры не будут отменены завтра? А если вы уже сделали ставку и перевели (или оставили) бизнес в России,  завязав на это всю организационную структуру и финансы? Цена будет высока.

4. Удалёнка и глобальность рынка труда IT.

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

Это привело к повышению доходов айтишников и дефициту IT-кадров в России.

Многие компании, имеющие головные офисы зарубежом, закрывают российские дочки. Сотрудников, ценных и готовых к релокации - перевозят. Ценных и не готовых у релокации - оформляют на удалённую работу на западное юр. лицо через схему "договор подряда с ИП или самозанятым". Не достаточно ценных - увольняют. Офис в России - закрывают. 

5. Курс рубля (недавняя причина).

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

Предположим для упрощения, вы получаете выручку в долларах. 100 000 долларов в месяц. 

Зарплата Senior Developer 230к рублей (да, такие зарплаты в Москве).

При курсе 75 руб. за доллар - это ~3000 долларов. Вы можете иметь 30 разработчиков в штате.

При курсе 53 рубля это ~4500 долларов. Вы можете иметь 21 разработчиков в штате.

Или ФОТ штата из уже имеющихся 30 сотрудников вырос на 30%. Был 100к долларов, стал ~130к.

Понизить зарплаты в рублях вы можете попробовать, но люди справедливо уйдут, потому что цена жизни растёт, есть инфляция в 20%, и это при росте курса рубля. 

Кстати, 4500 долларов - это ЗП, которую получает какой-нибудь немец в Германии, такой же квалификации. Разговаривал со своим партнёром, у него свой айти-бизнес. Он говорит "блин, курс доллара просто больнейше бьёт. Щас уже немцев дешевле нанимать, чем русских, с таким курсом. Плюс затраты выросли на 30%. Ещё в марте были в плюсе, а щас уже в минусе, а выручка - не падала!".

6. Доход от продажи куска акций. 

Предположим, вашему бизнесу 10-15 лет, вы уже устали, хотите отдохнуть или стартовать совсем новый бизнес (вспомним Дурова). Для этого вы, как основатель, нуждаетесь в деньгах. 

На западе коэффициент оценки ИТ-компаний по отношению к годовой прибыли равен 20-30, а если компания супер-растущая, то иногда 50-100 - но это редкость и перебор. 

У основателя компании есть выбор. Ждать 30 лет и получить свои деньги на новый бизнес или на пенсию / отдых через 30 лет из прибылей или продать свои акциим сейчас, все или часть,  и получить деньги по оценке сразу. 

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

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

7. Идеология. Самое сладкое.

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

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

По моей личной оценке идеология имеет процентов 10 веса в том, что происходит, не больше. 

 

Вывод. 

"Отток" IT-компаний по различным схемам - не недавнее явление. 

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

Способы борьбы - за рамками этой статьи. 

Авторство: 
Авторская работа / переводика

Комментарии

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Да, конечно, я так и работаю.

У меня замок выходит через 3 дня после начала работы.

И я его представляю спарринг-партнеру.

Только замок этот - безо всякой детализации, рано ещё.

Партнер дает замечания, и на следующий день - вторая версия замка.

Так со временем и до кирпичей доходит.

И на каждом этапе замок можно исследовать, испытывать, даже жить в нем.

Это называется "top-down approach", и я о нем узнал из книг Дейкстры и других, которые были популярны в конце 60-х - начале 70-х.

Моя собственная методика, естественно, отличается от эталона, но в основных чертах ему следует.

Другое дело, что я не бизнесмен, а программист, и мне вполне хватает того, что я зарабатываю.

100-200 миллионов или миллиардов - это Билл Гейтс.

Аватар пользователя ViSlav
ViSlav(9 лет 5 месяцев)

Вы только что описали обычную крупную стройку :) Заказчики во всех сферах похожи.

Аватар пользователя hello
hello(3 года 10 месяцев)

Что характерно, заметил, что на российском ИТ-рынке очень много вакансий 1С. Есть мысль (не в обиду никому!!), что 1С-ники это то российское АйТи которое никогда никуда не уедет, ввиду специфики своей работы (ну кому на западе нужны 1С-ники?).

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

Аватар пользователя RusEngineer
RusEngineer(7 лет 9 месяцев)

Поумневший головастик из 1С может сбежать через калику с надписью SQL. На волю,  в пампасы!

Аватар пользователя monk
monk(12 лет 2 месяца)

Смысла нет. SQL после 1Сного языка запросов как ассемблер после Си++. Сбегая придётся выучить английский хотя бы на уровне устного общения и свободного владения в предметной области. При этом будешь там по жизни чужаком. Зачем?

Аватар пользователя Сергей Низовцев

Прочитал внимательно пост и комментарии - Вы первый , кто упомянул 1С . Но вот мне кажется, что эта компания - повесомей всех перечисленных автором и комментаторами ..... 

Аватар пользователя predessor
predessor(6 лет 2 месяца)

1С - это наш Microsoft.

Аватар пользователя Штурман Зелёный

Эта компания (по результатам её труда) - самый большой вредитель в мире ИТ для страны.

Большего дерьма (технического, и, главное, архитектурного) я за свои 36 лет в отрасли не видел.

Вы сравнили её с Мелкомягкими. Согласен со сравнением - те тоже, имея несравненно худший по сравнению с современниками продукт, сумели стать практически монополистами.

Если это будет наш флагман и светоч - нашему ИТ конец в обозримой перспективе.

И никакие успехи в ИТ оборонки (ракеты, ПВО, ВВС, РЭБ и прочее) этого не исправят. Там другое, весьма специфическое ПО (я знаю, был опыт).

Грустная это тема. У нас ещё есть шанс выкарабкаться. Но вот "вектор движения" оптимизма не внушает.

А по поводу программистов - они ОЧЕНЬ разные. И по квалификации (это как раз не страшно, при ЖЕЛАНИИ и способности к САМООБУЧЕНИЮ - всё навёрстывается достаточно быстро), и по жизненным установкам. Я за свои годы на многих насмотрелся, сейчас сын 3 курс закончил, один из хороших ВУЗов, топовая ИТ-специальность. Был поток около 200 человек. Сейчас уже меньше сотни. Из них толковых, которым что-то интересно и которые пытаются чего-то добиться (читай, работают со 2-3 курса по специальности), можно пересчитать по пальцам рук и, возможно, ног. Остальные - ради диплома.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Программиста нельзя научить.

Он только сам может всему научиться.

Все программисты - самоучки.

Те, которые действительно программисты.

У меня внук тоже не потянул.

В техникуме.

Программа нормальная, но это - не его.

Мозги другие.

Аватар пользователя monk
monk(12 лет 2 месяца)

Большего дерьма (технического, и, главное, архитектурного) я за свои 36 лет в отрасли не видел.

А можно предметно? При выборе языка реализации между Си++, Джавой, 1С и Дельфи у 1С преимущество перед Си++ и Дельфи в безопасности кода, перед Джавой в лаконичности, перед ними всеми в русских идентификаторах (что проще понять CustVAT или ТаможНДС?).

те тоже, имея несравненно худший по сравнению с современниками продукт, сумели стать практически монополистами.

В обоих случаях на начальном этапе был демпинг  (MS DOS, 1С 7.5). И на современном этапе уже альтернативы хуже (Windows 2019 явно лучше, чем Mac OS 12 или RedHat, а 1С 8.3 явно лучше, чем SAP, Axapta, Галактика и Парус).

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Не бывает программистов 1С или Си.

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

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

И не только..

Но программист к платформе не привязан.

Хотя, конечно, подавляющее число молодых программистов - привязаны.

Аватар пользователя Zanuda
Zanuda(3 года 2 месяца)

Не бывает программистов 1С или Си.

Дело не в этом. Это в 90е-00е можно было из сферы в сферу скакать без бэкграунда (и без проблем его нарабатывать в десятке разных сфер). Сейчас либо это будет переход на более низкую оплату (если дадут попробовать, чтобы на тебя посмотреть), либо по знакомству, либо по конкретному такому таланту и умению учиться (тоже не всем дано).

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Все так.

И это очень плохо.

Фактически, превращает программиста в кодировщика.

Он не задачи решает, а строит дом по чертежу.

Но время от времени программисту нужно осваивать новые платформы.

Обязательно когда-нибудь освоить ассемблер.

Да и всех денег не заработаешь.

Аватар пользователя hello
hello(3 года 10 месяцев)

Один мой знакомый 1с-ник на украине как-то помнится приуныл когда пошла речь о запрете 1с на ее территории. Все-таки лет 10-15 положил в эту платформу. Язык - ничто, а вот платформы и технологии - это всё. Например, скажем, годный WPF-разработчик появляется только через пару лет постоянной работы на платформе. Писатель драйверов - тоже надо несколько лет, и т.д. Платформа - очень затратная вещь для осваивания.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Да, на Украине много хороших программистов и грамотно работали с 1с.

Думаю, они научились обходить препоны.

И конечно - изучить платформу нужно время.

Запомнить функции, методы и т.п.

Но это куда проще, чем полиглоту изучить десятый естественный язык.

Аватар пользователя hello
hello(3 года 10 месяцев)

а дальше работает психология и практика. С точки зрения психологии, вот он твой рынок 1С-программистов, в котором ты как рыба в воде, и достиг определенных высот. Зачем тебе переучиваться? Понятное дело, это работает не на всех, но на многих. Другой момент в практике: нельзя научиться водить авто только по видеороликам, нужна практика реального вождения. У программистов точно так же - даже выдумай себе сферический проект в вакууме, сделай его сам, - и это не то же самое что и реализовать настоящий проект заказчика.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

На себя - это не работа.

Партнер нужен.

Свой проект в вакууме никогда не заработает.

Нужна точка опоры.

Аватар пользователя Штурман Зелёный

А можно спросить: вам кто это сказал? Или это ваше мнение? Если так, то на чём оно основано?

Вот у меня более 30 лет опыта. Несколько языков программирования с хорошим погружением (для тех, кто в курсе: ассемблеры трёх разных архитектур, PL/1, С, С++, Java и всякая экзотика типа PowerScript). Несколько серьёзных реализованных систем (одна из них до сих пор на сети РЖД работает уже более 10 лет без нашего сопровождения - там персонал железо вышедшее из строя меняет блоками и прошивку нашу только заливает)

И вот что интересно: я, например, писал на Java. Но, один момент, на Java SE. И вот даже это (плюс весь мой предыдущий бэкграунд) не позволит мне "за 2 недели" стать хотя бы Middle-разработчиком того же спринга или JavaEE.

А у вас "программист к платформе не привязан"...

Хотя, конечно, что считать привязкой. Если то, что он СМОЖЕТ перепрофилироваться - я не спорю, нормальный разработчик сможет. Но вот сроки этого перепрофилирования - тайна великая есть. Особенно для поражённых болезнью "1с". У них мозги или изначально неправильные, или переформатированные за годы работы в 1с.

Кстати. Для информации. В среде "профессиональных разработчиков" (на всякий случай в кавычках), "программист 1с" - это отдельная каста. Сродни неприкасаемым в Индии. Может, и гипертрофированно, но не лишено оснований.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Я программирую профессионально с 1966 года.

Начинал с машинных кодов на Минск-22 и БЭСМ-6.

С пультовой отладкой.

И несколько раз менял предметную область, языки программирования и ЭВМ-компьютеры.

Чем больше, тем лучше.

Кругозор расширяется.

Вот если я к вам приду на JAVA программировать, то попрошу ваши коды, изучу их и за две недели научусь программировать вашим почерком.

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

Как-то так.

Я не знаю, можно ли меня назвать "профессиональным разработчиком", поскольку я 1С занимаюсь с 1997 года.,

Но по общему количеству написанных кодов вряд ли уступлю любому ныне живущему программисту.

Не говоря о том, что заведовал когда-то отделом программирования на большом ВЦ.

10 с лишним лет.

 

Аватар пользователя Штурман Зелёный

Я программирую профессионально с 1966 года.

Начинал с машинных кодов на Минск-22 и БЭСМ-6.

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

ЕСки 1030, 1033, 1045, 1046. ОС - MVT, VM/SP с CMS  и СВМ с ПДО (кстати, докопался, в чём между ними разница).

СМ4 и 1420 с RSX-11/M. IBM Risc с AIX.

Далее была уже архитектура x86. DOS, Windows (немного, но куда же без неё), QNX, Unix (немного), Linux (очень много).

Насчёт кругозора - я не спорю. Я и первый свой пост написал потому, что не согласен с заявленными сроками "переподготовки".

Вот, например, Вы пишете:

Вот если я к вам приду на JAVA программировать, то попрошу ваши коды, изучу их и за две недели научусь программировать вашим почерком

Если заметили, я написал не про Java. Java - это всего лишь ещё один язык программирования. Я писал про Spring и JavaEE. Не вдаваясь в детали - фреймворки со своими особенностями и тонкостями. Если человеку, который хорошо знает Java показать код спринга, например, он там мало что поймёт. Синтаксис, вроде, знакомый, но что там написано - хрен разберёт. Куча вызовов каких-то функций, непонятные аннотации и т.п.

Понятно, что ничего сверхестественного нет и всё это нормальным программистом поднимается. Вот только не за такое время. За пару недель дай бог с одним Spring Data разобраться, а там ещё много чего  есть. Писать, вроде, просто - берёшь документацию (или книги и статьи) и пишешь по примерам. Самое веселье начинается, когда в процессе работы что-то идёт не так и чтобы понять - приходится лезть в исходники того же спринга. А там то ещё веселье.

Я не знаю, можно ли меня назвать "профессиональным разработчиком", поскольку я 1С занимаюсь с 1997 года

Мне, честно говоря, не попадались программисты 1с с таким бэкграундом. Все (!) были достаточно ограниченными (в плане ИТ-кругозора) и ничего за пределами экосистемы 1с не знающими и не стремящимися узнать (а это главное). Перефразируя известное высказывание "Нас и 1с нормально кормит". Поэтому и отношение в профессиональной среде к ним такое.

Может быть Вы - счастливое исключение из этого правила. Дополнение: И, думаю, это как раз связано с тем, что к 1с Вы пришли через 30 лет опыта разработки в других системах и на других языках.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

На 1с я перешел в 1997 году, поскольку моя среда обитания окончательно разрушилась, институт превратился в офисный комплекс, контсрукторов разогнали, кульманы выбросили на помойку.

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

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

Даже разговаривать не будут.

Впрочем, иногда берут.

Но ничего хорошего из этого не получается.

Во-первых,я обнаружил, что за 30 лет дико упала квалификация сотрудников в этой отрасли.

Во-вторых, я обнаружил, что в существующей организации работ все тянут время.

И никому не нравится, что работу на 3 часа я делаю за 3 часа.

И потом в простое 3 дня, о чем все время напоминаю.

И очень много начальников.

Тимлидеры всякие и ещё кто-то.

Программировать  не умеет никто, но все считают коэффициенты.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Я кроме 1с постоянно изучаю другие возможности.

Изучил ajax, php.

Кстати, управляемые приложения не поймешь, если не знаешь html и phpю

Это калька оттуда.

Но, как Вы правильно сказали, со стороны ни в один проект не войдешь.

Только в юном возрасте.

Аватар пользователя monk
monk(12 лет 2 месяца)

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

Ну-ну... переучить программиста с питона или 1С на Си или с Си на Хаскел или Форт достаточно сложно. Ещё можно J или APL попробовать осилить.

Но программист к платформе не привязан.

В случае 1С легко перейти на любую другую русскоязычную. После нормальных терминов всё переводить в уме на английский неприятно. А оставлять русские термины в платформе с англоязычной стандартной библиотекой превращает код в плохочитаемую мешанину.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Ну, Вы даете!

1С - это Паскаль первоначально с небольшими отличиями.

Вот я и пишу там if-else и while-do.

Все ключевые слова по-английски.

И Find вместо Найти, TrimAll, Mid и т.п.

А названия процедур по-русски, как правило.

Питон мне не нравится из-за отсутствия операторных скобок и компилятора.

А так - мне все равно на чем писать.

PHP, Java - вообще диалекты Си.

Разнообразие бодрит.

Но сейчас - не время универсалов.

По-английски читаю свободно уже лет 45.

Все программисты знают английский.

Аватар пользователя monk
monk(12 лет 2 месяца)

1С - это Паскаль первоначально с небольшими отличиями.

Во-первых, не Паскаль. Или покажите мне на Паскале эквивалент

Струк = Новый Структура("ПолеА,ПолеБ");
Струк.Вставить("ПолеВ", 5);
Струк.ПолеА = Струк.ПолеВ + 3;

Там даже аналога «Для каждого Элемент Из Коллекция» нет.

Зато есть обязательное декларирование переменных с типами.

И Find вместо Найти, TrimAll, Mid и т.п.

А названия процедур по-​русски, как правило.

В строчке смесь языков плохо читается и раскладку на каждое слово переключать неудобно. Названия своих процедур по-русски можно практически на любом языке. Но неудобно. Find(Catalogs.Контрагенты.FindByCode(Код).Наименование, "*") читать вслух просто ужасно.

Все программисты знают английский.

Ну разве что как в анекдоте «английский лёгкий язык, в нём все слова из Паскаля».

Хотя после утверждения «PHP, Java - вообще диалекты Си» меня уже ничего не удивляет. А вьетнамский тогда диалект французского? Ведь похожести столько же, как между Си и Джавой.

 

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Я об языке, а не о объектных прибамбасов, которые выросли из С++.

Но в 7.7 конструкторы делали по типу BASIC (CreateObject), а не New., как в 8 позже

И вслух программы никто никогда не читает..

Никогда не употребляю английские синонимы методов и свойств.

Хотя, при работе с  COM они иногда только и работают.

Только ключевые слова и некоторые функции, которые во всех языках ужу установились со своим названием.

«Для каждого Элемент Из Коллекция» -> for each Стр in Табл do  - только так и употребляю.

Но это дело вкуса.

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

У нас с Вами опыт разный и стаж.

Отсюда и разница в оценках.

 

 

Аватар пользователя monk
monk(12 лет 2 месяца)

Но в 7.7 конструкторы делали по типу BASIC (CreateObject), а не New., как в 8 позже

С BASIC'ом согласен, общего много. Не не с Паскалем. Или, по-Вашему, BASIC диалект Паскаля?

И вслух программы никто никогда не читает..

Вы работаете в одиночку? Или если Вас новичок спрашивает в какой строке у него ошибка, то Вы вместо того, чтобы эту строку прочитать, отправляете её по электронной почте?

Но это дело вкуса.

Не совсем. Ещё единообразия стиля. Если уже есть миллион строк кода с «Для каждого Элемент Из Коллекция», то втыкать свои исправления в стиле for each Стр in Табл do является неприличным. Если писать всю программу целиком с нуля, тогда конечно всё равно. Но тоже рекомендуют или всё на английском или всё на русском. Чтобы встретив строку «Н = Find(Стр, Стр2)» не гадать, где латинские буквы, а где русские.

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

Ещё бы сами разработчики 1С их не писали...

У нас с Вами опыт разный и стаж.

Для опровержения утверждения «Все программисты знают английский.» достаточно единственного контр-примера. Среди программистов на 1С достаточно много тех, кто учил немецкий или французский, Или даже учил английский, но знает его на уровне школы (потому что необходимости учить дальше не было).

Аватар пользователя predessor
predessor(6 лет 2 месяца)

А я с Вами и не спорю.

Мне кажется, что язык 1с похож на Паскаль.

А Вам не кажется.

Мне кажется, что PHP диалект Си.

У Вас может быть другое мнение.

Если программист не знает английского, то у него все впереди.

Я тоже первые 10 лет английский знал на уровне института.

"Но тоже рекомендуют или всё на английском или всё на русском."

Да, я и с этим сталкивался.

Дело в том, что обычно я и был тем, кто рекомендует и проверяет.

И мне глубоко безразлично на каком языке написаны ключевые слова.

Хотя, я придерживаюсь древнего стандарта.

Это нисколько не мешает понимать программы.

И да, в основном, я пишу оригинальные программы.

Но иногда исправляю чужие ошибки.

И там моя правка должна быть обязательно заметной.

При помощи комментариев для каждой правки, но в заплатках я тоже ключевые слова пишу по-английски.

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

Времена сейчас другие.

А язык программирования новый программист должен осваивать за 2 недели.

Кроме ассемблера, вероятно.

Тут 3 недели могут понадобиться.

Насчет того, что в выражении Стр= могут быть английские буквы Вы совершенно правы.

Приходилось исправлять такую ошибку в бухгалтерской конфигурации.

Это был какой-то табличный реквизит, который никак не ловился прямой отладкой.

Пришлось явно нацелиться на такую ошибку.

И это никак не было связано со стилем программирования, там вся программа была на кириллице написана.

Что касается стиля.

Была такая старая работы Дейкстры "Структурное программирование".

Там много про стиль.

Но разработчики 1С её не читали.

А жаль.

Аватар пользователя monk
monk(12 лет 2 месяца)

А язык программирования новый программист должен осваивать за 2 недели.

Кроме ассемблера, вероятно.

Языки программирования бывают разные. Вы сможете за две недели освоить J? Так, чтобы понимать с листа код наподобие

f=: c1`c1`c2`c3 @. (#.@,&*) M.
c1=: >:@]
c2=: <:@[ f 1:
c3=: <:@[ f [ ack <:@]

?

Или Haskell. Или даже Форт (он простой, но читать его достаточно сложно).

Скорее ассемблер можно выучить за 2 недели. Больше пары сотен команд в процессорах не бывает и они очень примитивны. А вот идею, что сумма списка реализуется как

sum = getSum #. foldMap' Sum

а произведение

product = getProduct #. foldMap' Product 

где Product создаёт структуру с одним полем getProduct, за пару недель осознать вряд ли получится.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Конечно.

Я когда то функциональное программирование изучал, ЛИСП при мне обкатывался на БЭСМ-6.

Любой язык.

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

Другое дело, что для меня все новое интересно.

Даже не столько языки программирования, сколько новые предметные области.

Я и диссертацию защитил по станкостроению, за несколько месяцев досдав станочные науки.

Программирование - это {мое определение} "гармонизация окружающего пространства путем моделирования его на компьютере".

Какой компьютер, какой язык, какая предметная область - значения не имеет.

"Пришел, увидел, победил".

А при чем тут 1С?

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

Хотя, ЧПУ бы я занимался с гораздо бОльшим энтузиазмом.

Или авионикой.

Но "нельзя жениться на всех женщинах, которые нравятся".

Аватар пользователя monk
monk(12 лет 2 месяца)

ЛИСП при мне обкатывался на БЭСМ-6

Лисп лёгкий язык. Синтаксис тривиальный, семантика регулярная.

Для меня тяжёлым был Haskell. Ленивые структуры, бесконечные списки, программирование на типах (приведённый пример с sum и product): всё это в две недели не укладывалось. В J очень необычная комбинация функций. Когда «+/» сумма массива, «#» количество элементов массива, а «(+/%#)» расчёт среднего путём деления суммы на количество.

Ещё есть Си++. Который выучить нельзя ни за две недели ни за двадцать две. Потому что количество особенностей, которые надо знать для программирования без ошибок просто зашкаливает.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Вероятно, Вы имеете отношение к теории программирования?

А я - сугубый практик.

Но всегда следил за теорией.

И вот когда появился язык Алгол, я его проштудировал и стал готовиться.

Но Алгол так и не пришел.

Позже появилась ОС UNIX.

Как светлое будущее для всех.

Шли годы, UNIX оплодотворил все ОС, но так и не появился.

Си++ принес объектный подход.

Я его много раз перечитывал, вникал, проникся.

Но на нем не пишу и не буду.

Он так и останется в пантеоне высших достижений теории, которые до практики так и не снизошли.

1С взяли из объектного подхода то, что сочли нужным.

И ввели явочным путем свой стандарт.

Аватар пользователя monk
monk(12 лет 2 месяца)

Вероятно, Вы имеете отношение к теории программирования?

Нет. Просто у меня есть твёрдое убеждение, что язык программирования очень влияет на декомпозицию задачи. При этом сами методы между языками вполне переносимы: на Си вполне можно писать и в ООП стиле и в стиле стека как на Форте и в функциональном как на Хаскеле и даже локальный сборщик мусора прикрутить. И бывают задачи, когда соответствующие стили оправданы: ГИП в стиле ООП, разбор арифметики через стек, ...

Поэтому для эффективного решения задач желательно знать разные языки программирование по крайней мере на уровне хорошего понимания их концепций.

Си++ принес объектный подход.

Правильный объектный подход принёс Smalltalk. А сейчас его наследник Ruby.

С++ принёс идею бесплатных абстракций (zero-cost abstraction). И идею определяемых по типам шаблонов.

Он так и останется в пантеоне высших достижений теории, которые до практики так и не снизошли.

???

На Си++ написано огромное количество программ. Гораздо больше, чем на лиспе и 1С, например.

Шли годы, UNIX оплодотворил все ОС, но так и не появился.

FreeBSD и Linux — распространённые версии UNIX (в них всё, кроме торговой марки).

Аватар пользователя monk
monk(12 лет 2 месяца)

Была такая старая работы Дейкстры "Структурное программирование".

Там много про стиль.

Но разработчики 1С её не читали.

Если это намёк про многостраничные функции, то её много кто не читал. Например, авторы gzip: https://github.com/aixoss/gzip/blob/r1.6-aix/inflate.c#L279 и libdeflate: https://github.com/ebiggers/libdeflate/blob/master/lib/deflate_decompress.c#L553

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Дейкстра, кажется, учил, что любая программа состоит из 3 строк.

Инициализация();

Обработка();

Завершение();

 

Примерно так и пишу.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Язык имеет значение.

Но алгоритм может быть написан на любом языке.

А выбор языка программирования для задачи, как правило, бывает внешним.

Что говорят, то и делаешь.

И на 1С тоже талантливые любители пытались делать ООП, но большинство осталось на платформе разработчика, 

А вот стиль программирования может выбираться человеком добровольно.

Впрочем, только не в 1С.

Тут уже не рекомендуется, а навязывается начальством.

Тем не менее, я пишу ключевые слова по-английски и стараюсь отказаться от огромных запросов.

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

Так меня учили когда-то.

Иногда в ущерб эффективности.

В пределах нескольких секунд на работу программы.

Аватар пользователя monk
monk(12 лет 2 месяца)

И на 1С тоже талантливые любители пытались делать ООП, но большинство осталось на платформе разработчика, 

На 1С ООП реализуется даже самими разработчиками 1С. Наследование через обработки, отчёты и общие модули. В БСП активно используются интерфейсы в ООП смысле (то есть объект должен реализовать некие заданные экспортные процедуры и функции).

А вот стиль программирования может выбираться человеком добровольно.

Впрочем, только не в 1С.

Тут уже не рекомендуется, а навязывается начальством.

Противоречие вижу я. Либо в том числе в 1С добровольно (если начальства нет и пишешь для себя), либо начальством навязывается в любом языке программирования.

Тем не менее, я пишу ключевые слова по-​английски и стараюсь отказаться от огромных запросов.

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

Для нормального разработчика 1С ключевые слова по-английски резко снижают понятность. В частности, сейчас есть возможность встраивать HTML+JS в формы, но используется она крайне редко, так как JS весь англоязычный и сопровождать неудобно. 

Аватар пользователя predessor
predessor(6 лет 2 месяца)

В ООП важна возможность определения своих классов.

Инкапсуляция и полиморфизм.

Все это в 1С сильно упрощено и может моделироваться не лучше и не хуже, чем в том же фортране.

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

И из каждой обработки можно сделать класс, с методами и атрибутами.

Например, обработка БухгалтерскиеИтоги так построена.

Мне и самому приходилось писать такие обработки.

То есть, саму идею ООП расхватали на цитаты.

Я уже говорил про Алгол и Unix.

Это не ООП, но по мотивам.

Я не в претензии.

Мне и с просто функциями неплохо жилось.

Аватар пользователя monk
monk(12 лет 2 месяца)

 В ООП важна возможность определения своих классов.

Так они и создаются. Если нужен статический класс, то это общий модуль, если класс с объектам, то обработка. Потом

О = Обработки.МойКласс.Создать();

И работаешь как с нормальными классами и объектами.

Инкапсуляция и полиморфизм.

Это всё есть.

может моделироваться не лучше и не хуже, чем в том же фортране.

В фортране появился вызов метода через точку и определение тела метода по классу объекта?

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Да не в точке дело.

Раньше таки и писали: функции, которые что-то делали - метод.

А запись в КОБОЛЕ - это объект.

В том же Software tools очень хорошо показаны такие эталонные примеры.

Мыслить надо объектами, а изобразить это все можно даже в восьмеричном коде.

Аватар пользователя monk
monk(12 лет 2 месяца)

Раньше таки и писали: функции, которые что-​то делали - метод.

Только диспетчеризацию по типу первого аргумента вручную делать приходится. Ещё и типизация мешает.

А на 1С легко:

Для каждого О из МассивОбъектов Цикл
    О.Обработать(А, Б);
КонецЦикла

И Обработать будет вызываться своё для каждого объекта в массиве.

Мыслить надо объектами, а изобразить это все можно даже в восьмеричном коде.

Не надо. В объектно-ориентированном коде простейшее соединение с указанием типа сервера и протокола превращается в лапшу из фабрик. А принцип Лисков практически запрещает использовать наследование при почти любом отклонении поведения (наследование КнопкаСКартинкой : Кнопка уже неправомерно, так как в кнопку с картинкой поместится меньше текста).

Лучше как в Haskell классами типов. Тогда и проблемы с наследованием нет и обобщённые функции пишутся тривиально и один класс может принадлежать к паре дюжин классов типов и они не мешают друг другу.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Я однажды написал такой объект - valtable По мотивам замечательной программы Тельнова из 7.7.

Да, работает в принципе.

Но её лучше было бы на ассемблере переписать.

А так - смысла большого не имеет.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Мне кажется, не массивы, а структуры обеспечивают наибольшую гибкость.

В структуре и мас сивы могут присутствовать.

А возможность иметь разные имена объектов в структуре и анализ этих имен обеспечивают бОльшую наглядность.

Как это они сделали в объекте фабрика XDTO.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

 

Для нормального разработчика 1С

Не надо уж так недооценивать молодых программистов. 

Их ключевые слова не смутят.

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

И я так не делаю.

На самом деле, программы пишутся для себя самого, чтобы через 10 лет,глянув на текст, сразу можно было найти ошибку или точку для вставки новых опций.

А меня не смущают ни русский, ни английский варианты написания ключевых слов.

Важно, что в начале текста у меня стоят пронумерованные комменты, по которым я сразу лезу в нужное место.

Иногда по 300 строк таких комментов.

И я не заметил, чтобы ещё кто-нибудь так делал.

Аватар пользователя predessor
predessor(6 лет 2 месяца)

 

Противоречие вижу я.

Важно, чтобы такие противоречия не возникали в трудовом коллективе.

Иначе, он сразу разваливается.

И тогда никакую ОС не создать.

Там люди по многу лет должны вместе работать. 

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

Другое поколение.

 

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Да, я более 25 лет работаю в одиночку.

С новичками возился в 70-х, когда работал зав. отделом программирования.

До всякой 1С.

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

Сейчас по-другому работают.

Набирают новичков за 3 копейки, они 3 месяца что-то делают, потом уходят.

И так далее.

Я и сам пару раз так нанимался.

Порочная практика.

 

Аватар пользователя predessor
predessor(6 лет 2 месяца)

 

Для опровержения утверждения «Все программисты знают английский.» достаточно единственного контр-​примера.

Нет.

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

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

Но этот самородок-самоучка английский выучит "на щелчок".

Был такой талантливый человек Крис Касперски.

Самородок.

И английский он выучил, книги по-английски писал, жил потом в США.

Аватар пользователя monk
monk(12 лет 2 месяца)

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

Забавно. То есть по Вашему определению программистом является американский школьник, написавший пару строк на бейсике и не является человек, написавший систему учёта сервисного центра мобильных телефонов на 1С.

И я не понял, чем мне поможет знание английского в чтении книг по программированию. Всё хорошее иностранное от Кнута до МакКоннела давным давно переведено, русские книги изначально по-русски. По-английски без перевода разве что документация к некоторым иностранным языками программирования. Но есть языки, для которых документация только на иностранном не английском: قلب, 易语言, lexico. Это к слову, про выучить за две недели. Выучите за две недели 易语言?

Аватар пользователя predessor
predessor(6 лет 2 месяца)

Понятно, что это полемическое утверждение.

Слишком много исключений.

Все англоязычные пролетают.

И возможны программисты, не знающие английского языка.

Но пример Криса Касперски показывает, что чаще бывает наоборот.

И вовсе не все книги переводятся.

"Software tools" Кернигана и Плоджера не переведена.

Версия для Паскаля переведена, а RATFOR - нет.

"Выучите за две недели 易语言?"

Даже представить себе не могу, что это такое.

Но кто-то выучит.

Кому нужно.

Аватар пользователя monk
monk(12 лет 2 месяца)

Понятно, что это полемическое утверждение.

Слишком много исключений.

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

И возможны программисты, не знающие английского языка.

Рад, что Вы согласились. smile1.gif

Но пример Криса Касперски показывает, что чаще бывает наоборот.

Из единичного примера выводите общемировую статистику?

И вовсе не все книги переводятся.

"Software tools" Кернигана и Плоджера не переведена.

Я не писал «все». Я писал «все хорошие». Вот какие идеи (хотя бы одна) есть в указанной и нет в массе переведённых более поздних? Гораздо полезнее прочитать документацию по coreutils, там всё то же самое, но не на игрушечных примерах, а на реальных.

Версия для Паскаля переведена, а RATFOR - нет.

Тогда тем более. То есть те, кому важна история развития идей программирования, тоже могут прочитать по-русски. Зачем нужна версия для RATFOR? Сейчас существует программист, знающий Фортран или PL/1 и не знающий Паскаль?

Страницы