Возврат к списку

Теория и практика многоязычного программирования: как изучать и сочетать в работе

28.11.2018     

В ноябре вышел ежемесячный рейтинг самых популярных языков программирования TIOBE. Основа ранжирования – результаты поисковых запросов с названием языка. Выяснилось, что первая четверка осталась стабильной с ноября 2017 года: Java, C, C++ и Python. 

Всего в рейтинге TIOBE перечислено 100 ЯП. Рассказываем, как из всего многообразия выбрать новый язык для изучения и работы, и разбираемся в особенностях многоязычного программирования. 

Почему появляются новые ЯП

В рейтинге TIOBE не только популярные Java и Python: не спешат уйти со сцены Fortran, Ada и Lisp, разработанные в 1960-1980 годах. Они продолжают работать, и рынку нужны специалисты для сопровождения и развития существующих программ. Если вы решите устроиться программистом в компанию Boeing, то вам придется изучить достаточно прогрессивный для своего времени и не очень распространенный в наше язык программирования Ada.

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

Старые

  • Fortran, Cobol, PL\I, Basic, Pascal, Ada, Lisp и т.д.

Мейнстримные

  • C, C++, Java, C#, JavaScript, Python, Ruby, PHP и т.д.

Нишевые

  • D, Clojure, OCaml, Haskell и т.д.

Новые и будущие

  • Go, Swift, Hack, Rust, Kotlin, Scala и т.д.

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

  • необходимость избавиться от архаичного наследия «старых» языков;
  • уровень абстракции в ЯП недостаточен для решения сложных задач;
  • желание разработчиков сохранить контроль над эволюцией языка.

Новые языки от известных ИТ-компаний, появившиеся в последнем десятилетии:

Компания

Год

Язык

Описание

Apple

2014

Swift

язык общего назначения на замену Objective C

Facebook

2014

Hack

замена PHP

Google

 

2009

Go

язык реализации веб-приложений

2011

Dart

более надежная и производительная замена JavaScript

JetBrains (СПб, Россия)

2011

Kotlin

простая и эффективная замена Java

Microsoft

2012

TypeScript

«улучшенный» JavaScript (аннотация типов, классы)

Mozilla

2010

Rust

язык реализации алгоритмов для многоядерных архитектур

RedHat

2011

Ceylon

«упрощенный» Java

Однако язык не может существовать сам по себе. Требуется активное сообщество, которое использует, популяризирует и участвует в его развитии. В современных условиях ЯП без возможности интеграции с существующими библиотеками не имеет будущего. Новый язык должен поддерживать вызов библиотечных функций, написанных в формате языка C.

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

Структурирование многоязычных приложений

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

Пирамида Ола Бини

Для понимания того, какие языки и в каком сочетании можно использовать в многоязычных проектах, энтузиаст языка программирования Ruby Ола Бини предложил рассматривать структуру приложения по слоям. В своем делении Бини выделяет три слоя и рассматривает их в виде перевернутой пирамиды.

 

Пирамида Ола Бини

 

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

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

Основное назначение языков программирования из верхнего слоя – быстрая поставка ПО. Это языки переднего края, максимально приближенного к своим потребителям, настолько, что даже знаний непрограммиста может хватить для создания своего веб-сайта или построения БД для личного учета. В этом слое разрабатывается самый значительный объем ПО и ему соответствует самая широкая часть пирамиды Бини.

Слой

Описание

Языки

Предметный слой

Быстрая прикладная разработка

1С, SQL, XML, XAML, веб-шаблонизаторы

Динамический слой

Быстрая продуктивная, гибкая разработка

JavaScript, Python, Clojure

Стабильный слой

Стабильный, высокопроизводительный, хорошо протестированный функционал

Java, C#, Scala

Разделение языков по уровню типизации

Системный архитектор Нил Форд предложил разделить языки программирования по признаку типизации: сильная-слабая, статическая-динамическая. Такое разделение позволяет соотнести ЯП по слоям пирамиды Бини.

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

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

К динамическому слою относятся языки с динамической сильной типизацией. ПО этого слоя: скрипты автоматизации, скрипты администрирования и создания тестов, веб-разработка (бэк-енд), прототипирование.

На верхнем слое располагаются предметно-ориентированные языки с динамической слабой типизацией. Это языки, на которых пишется ПО прикладного уровня: системы учета, скрипты с упрощенным синтаксисом для программирования формул или встроенной техники, devops, моделирование бизнес-правил и интеграции. 

 

Языки по типизации: сильная-слабая, статическая-динамическая с выделением слоев Бини

 

Функциональное деление (будущее языков)

Нил Форд предположил, что в будущем стабильные языки программирования по Бини станут поддерживать функциональный стиль в большем объеме. Этот стиль программирования входит в моду: программы бухгалтерского учета пока еще не пишут на Haskell, но многие языки начинают поддерживать операции с функциями высшего порядка. Такие понятия, как «декларативный», «чистые функции», «каррирование» проникают в лексикон все большего количества программистов.

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

Мультипарадигмальные языки

Современные языки идут по пути поддержки мультипарадигмальности. ЯП, исторически поддерживающие парадигму процедурного и объектно-ориентированного (ОО) программирования, начинают вводить элементы поддержки парадигмы функционального стиля. Функциональные языки, наоборот, расширяют свои возможности, вводя поддержку ОО-парадигмы.

Мультипарадигмальность увеличивает мощь языка, но может и привести к проблемам. Когда один проект разрабатывается разными командами с использованием различных парадигм, то существует риск разработки несовместимых библиотек. Разработка в ОО-парадигме стимулирует использование структур, а в функциональной – композицию и функции высшего порядка. В результате смешения парадигм могут получиться различающиеся алгоритмы, с которыми нельзя работать без взаимной адаптации. Эти условия усложнят проект. Подобные проблемы команды разработчиков уже испытывали при переходе с Java на Ruby или с C на C++.

 

Распределение языков по слоям приложения по функциональному признаку

 

Выбор языков

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

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

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

В языке С++ и в Java есть определение классов. Одна и та же синтаксическая конструкция «ТКласс Класс» в первом случае определит ссылку на объект указанного класса, а во втором – создаст сам объект. Попытка работать на C++ со ссылкой как с инициализированным объектом приведет к сбою программы.

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

Выбор для образования

Цель

Язык

Узнать, как устроен и работает компьютер

C

Научиться работать со сложными структурами данных

C#, Java

Научиться программировать эффективные алгоритмы работы с данными

C++

Научиться строить большие и сложные сайты

JavaScript

Выбор для работы

Цель

Язык

Недостатки

Нужна быстрая и эффективная программа?

C, C++

трудно писать; трудно поддерживать

Быстро написать и получить работающую программу или сайт?

JavaScript, Python, Ruby

работает медленно, часто ломается (зависает), пока происходит поиск ошибок

Быстро написать небольшой веб-сайт?

PHP

для дальнейшего улучшения веб-сайта может потребоваться много усилий

Выбор для проекта

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

  • Какова кривая освоения языка?
  • Насколько эффективны существующие фреймворки?
  • Хорошо ли развито сообщество языка?
  • Как быстро можно найти нужных разработчиков?
  • Легко ли язык интегрируется в многоязычную среду?

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


Автор:
Андрей Калякин Обозреватель


Сколько языков программирования вы знаете?


Мне достаточно 1С (16.67%, 17 голосов)
16.67%
Хорошо знаю и работаю с популярными: Java, Python, С (12.75%, 13 голосов)
12.75%
Немного знаком с несколькими, но не работаю с ними (47.06%, 48 голосов)
47.06%
Один, но задумываюсь об изучении дополнительных (23.53%, 24 голосов)
23.53%

Комментарии
Избранное Подписка Сортировка: Древо
1. lmnlmn 50 28.11.18 10:25 Сейчас в теме
А можно пример программы на языке программирования XML посмотреть? Хотя скоро текст в Ворде уже программой будет считаться.
16. mkalimulin 363 28.11.18 13:13 Сейчас в теме
(1)
<?xml version="1.0" encoding="utf-8"?>
<!DO CTYPE recipe>
<recipe name="хлеб" preptime="5min" cooktime="180min">
<title>
Простой хлеб
</title>
<composition>
<ingredient amount="3" unit="стакан">Мука</ingredient>
<ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
<ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>
</composition>
<instructions>
<step>
Смешать все ингредиенты и тщательно замесить.
</step>
<step>
Закрыть тканью и оставить на один час в тёплом помещении.
</step>
<!--
<step>
Почитать вчерашнюю газету.
</step>
- это сомнительный шаг...
-->
<step>
Замесить ещё раз, положить на противень и поставить в духовку.
</step>
</instructions>
</recipe>
Bukaska; Kochergov; Dementor; +3 Ответить
17. Darklight 19 28.11.18 13:21 Сейчас в теме
(1)Действительно XML - считается языком разметки, а не программирования. Но вот XAML - считается языком декларатативного программирования в синтаксисе языка XML - хотя программирование получается очень специфическое

// версия для C#
using Samples;
MyObject obj  = new MyObject();
obj.SomeProperty = 1;


<!— версия для XAML —>
<MyObject xmlns='clr-namespace:Samples; assembly=samples.dll'
  SomeProperty='1'/>


Ещё язык XSLT порой тоже считают языком программирования - но это всё тоже очень натянуто

Помимо XSLT для преобразования XML есть ещё язык XProc
оцените сами - каково на нём программировать такие преобразования:

Пример создаёт xml-льный RSS поток из двух записей:
?xml version="1.0" encoding="UTF-8" ?> 
<p:pipeline version="1.0" 
      xmlns:p="http://www.w3.org/ns/xproc" 
      xmlns:c="http://www.w3.org/ns/xproc-step" 
      xmlns:l="http://xproc.org/library"> 

<p:serialization port="result" media-type="application/rss+xml" method="xml" /> 

<p:xslt name="prototypo-rss"> 
  <p:input port="source"> 
    <p:document href="/redirect.php?url=aHR0cDovL3Byb3RvdHlwby5ibG9nc3BvdC5jb20vZmVlZHMvcG9zdHMvZGVmYXVsdA==" /> 
  </p:input> 
  <p:input port="stylesheet"> 
    <p:document href="/redirect.php?url=aHR0cDovL2F0b20uZ2Vla2hvb2QubmV0L2F0b20ycnNzLnhzbA==" /> 
  </p:input> 
</p:xslt> 

<p:xslt name="jamesrdf-rss"> 
  <p:input port="source"> 
    <p:document href="/redirect.php?url=aHR0cDovL2phbWVzcmRmLmJsb2dzcG90LmNvbS9mZWVkcy9wb3N0cy9kZWZhdWx0" /> 
  </p:input> 
  <p:input port="stylesheet"> 
    <p:document href="/redirect.php?url=aHR0cDovL2F0b20uZ2Vla2hvb2QubmV0L2F0b20ycnNzLnhzbA==" /> 
  </p:input> 
</p:xslt> 

<p:ins ert match="/rss/channel" position="last-child"> 
  <p:input port="source"> 
    <p:inline> 
      <rss version="2.0"> 
        <channel> 
          <title>RSS Title</title> 
          <description>This is an example of an RSS feed</description> 
          [*]http://www.someexamplerssdomain.com/main.html 
          <lastBuildDate>Mon, 06 Sep 2010 00:01:00 +0000 </lastBuildDate> 
          <pubDate>Mon, 06 Sep 2009 16:45:00 +0000 </pubDate> 
          <ttl>1800</ttl> 
        </channel> 
      </rss> 
    </p:inline> 
  </p:input> 
  <p:input port="insertion" sele ct="/rss/channel/item"> 
    <p:pipe step="prototypo-rss" port="result" /> 
    <p:pipe step="jamesrdf-rss" port="result" /> 
  </p:input> 
</p:insert>

</p:pipeline>
Показать
wowik; A_Max; +2 Ответить
26. lmnlmn 50 28.11.18 14:10 Сейчас в теме
(17) Что касается подмножеств языка XML и термина "программирование", считаю что это, все же, декларирование и к программированию отношения не имеет. То что конфета завернута в фантик не делает последний кондитерским изделием. Да, модно прикрываться декларативным программированием, но как эти примеры семантически привязать к декларативному программированию не ясно.
Автор статьи просто где-то услышал новомодное "ЯОП" и выдал всю эту мешанину не разобравшись. Если бы нормально разложил по полочкам, то интереснее было бы почитать.
61. kalyaka 493 28.11.18 23:07 Сейчас в теме
(26) В соответствии с форматом новости статья вышла в сокращенном варианте. Полный вариант будет доработан по результату обратной связи и через какое-то время я планирую его тоже опубликовать.
2. FesenkoA 38 28.11.18 10:48 Сейчас в теме
6. brr 176 28.11.18 11:27 Сейчас в теме
Жизнь бьёт ключом, только в мире языка 1С тишина, как на кладбище.
7. neikist 28.11.18 11:27 Сейчас в теме
(6) Да. Наверно основная причина по которой я ухожу из 1с это отсутствие развития самого языка. Ну еще и гораздо больший интерес к технологиям чем к учету и подобному.
Gang031; Kochergov; 🅵🅾️🆇; +3 Ответить
12. TODD22 17 28.11.18 12:32 Сейчас в теме
(7)
Наверно основная причина по которой я ухожу из 1с

И куда уходите?
Сколько встречал людей которые уходили из 1с. Либо никуда не ушли либо вернулись.
Bukaska; wowik; user774630; +3 1 Ответить
14. neikist 28.11.18 12:52 Сейчас в теме
(12) В нативный андроид. Уже сразу после НГ.
Kochergov; 🅵🅾️🆇; +2 Ответить
20. Darklight 19 28.11.18 13:51 Сейчас в теме
(14)Игрушки делать там самое то - очень прибыльное дело!
30. androgin 28.11.18 14:39 Сейчас в теме
(12) 1С все никак не избавится от родительских методов через точку (РежимПроведения = .Проведение гораздо удобнее, чем РежимПроведения = РежимПроведенияДокумента.Проведение)
И такого г#вна полно в коде.
Ну и если ваше развитие остановлено и ограничено на 1С, то это не повод говорить "либо никуда не ушли либо вернулись"
32. user774630 28.11.18 15:05 Сейчас в теме
(30)
1С все никак не избавится от родительских методов через точку
это веская причина порвать с 1С?
jONES1979; Gang031; +2 Ответить
33. neikist 28.11.18 15:10 Сейчас в теме
(32) Просто когда таких причин набегают сотни, какая меньше, какая больше... Для меня да.
38. TODD22 17 28.11.18 15:43 Сейчас в теме
(33)так в андройде и джаве свои есть плюсы и минусы. Хорошо там где нас нет. Ну а так успехов конечно в этом начинание.
Korkmas; Gang031; Kochergov; +3 Ответить
40. neikist 28.11.18 15:48 Сейчас в теме
(38) Есть да. Просто для меня этот баланс смещается именно в сторону более гибких и современных языков вроде котлина, свифта и им подобным, а также в сторону решения технических и дизайнерских задач вместо учетных.
Спасибо.
CyberCerber; +1 Ответить
43. CyberCerber 300 28.11.18 16:01 Сейчас в теме
(40) Желаю успехов! Было бы интересно почитать вашу историю, как началось, к чему привело. Будет возможность, напишите статью, пжлст.
dkonakov; Korkmas; Gang031; neikist; +4 Ответить
90. Sapiens_bru 30.11.18 13:01 Сейчас в теме
(40) Потом выясняется, что без решения учётных задач технические и дизайнерские не особо важны.
Я писал приложение для автоматизации менеджеров на складах на java android использовал retrofit , zxing , sqlite . рисовал графический интерфейс на контейнерах итд.. Эта же приложуха на мобильном 1С собралась за 2 дня, а дизайн, скорость работы, размер приложения, масштабирование под всё подряд - это всё не нужно большинству заказчиков
92. neikist 30.11.18 13:41 Сейчас в теме
(90) Эм, с чего это? Я бы вообще сказал что учетные задачи это меньшая часть софта. Системное ПО, железки, всякие лендинги и подобное, форумы и чаты, социалки, игры и еще много разного есть.
94. Sapiens_bru 30.11.18 14:12 Сейчас в теме
(92)Это смотря где. В силиконовой долине безусловно. В Москве пожалуй 50/50. В моём Новосибирске учётные задачи 90% софта. Даже конторы явно 1С не занимающиеся пишут для бизнеса сайты, сервисы, мобилки. А всякие игры, соцсети, поисковые движки к нам приходят из Москвы в лучшем случае, а чаще из-за бугра.
Пара моих заходов соскочить с 1С в сторону более оплачиваемых (после 2014 года) языков закончилась возвратом опять к 1С.
Потому как мобилки тут никому не нужны на хорошем уровне, а на уровне приложения для курьеров навыков много не требуется и зарплат не платится.
И веб сайты сложные тут не делаются, а значит навыков на современные фреймворки не требуют.
Раскурил Java , дошел до фреймврков типа Spring и Dagger2. Раскурил JS+стили дошел до БЭМ и стал поглядывать на vue.js .. Это всё не только по книгам и курсам, но и на практике для конечных пользователей..

В итоге вернулся к 1С , тут зарплаты опять подросли (средняя с 50-60 в 2014 выросла до 80-100 в этом году)

Провинция
54. androgin 28.11.18 20:10 Сейчас в теме
(32) и где я сказал "порвать 1С"? процитируйте
35. TODD22 17 28.11.18 15:40 Сейчас в теме
(30)
Ну и если ваше развитие остановлено и ограничено на 1С, то это не повод говорить "либо никуда не ушли либо вернулись"

А я где то писал про ограниченность? По мимо жёлтой программы в данный момент по работе пишу на python и Go. По мимо этих языков доводилось писать ещё на нескольких даже на Асме.
Вопрос был больше из праздного любопытства. Ну а так за последние лет 5 встречал много людей кому надоела 1с и которые говорили "всё подайте пальто, я ухожу" но таки почему то возвращались. Вы же вот вроде такой разносторонний и за других додумывающий, но таки сидите на сайте 1сников и наверно работаете программистом 1с?
55. androgin 28.11.18 20:13 Сейчас в теме
(35) Ваш ответ уже говорит об ограниченности! Если человек ушел от 1С - значит он это осознает и у него есть варианты.
Вы либо выбирайте выражения, либо яснее выражайтесь)
И да, я разносторонний, но я не уходил от 1С. Если она еще достаточно далеко от других языков, то это не значит, что в ней не работают и поддержка этой желтой программы не нужна.
Мыслите шире)
41. Darklight 19 28.11.18 15:52 Сейчас в теме
(30)Не согласен с Вами.
Может программирование через "точку" и не самое красивое и короткое - зато точное и понятное. Особенно как это сделано в расширении ReSharper (для C#). Причём ваш пример от точки не избавился, как раз ;-) И что вы привели - это не более чем синтаксический сахар (и его вполне моно было бы добавить в 1С - правда с кучей ограничений - 1С ведь динамически типизированный язык, причём не интерпретируемый) - и никак не может быть серьёзным аргументом к выбору того или иного языка вместо 1С.
user774630; CyberCerber; +2 Ответить
56. androgin 28.11.18 20:15 Сейчас в теме
(41) Мой пример показал, как избавить от родительского начала.
Точка осталась, но это уже не огромное предложение, и логику никак не изменило. Мы все равно смотрим на "последнее слово"
13. vasvl123 93 28.11.18 12:34 Сейчас в теме
(7) я бы добавил отсутствие развития в других направлениях, кроме разного учета
18. 🅵🅾️🆇 404 28.11.18 13:37 Сейчас в теме
(7) Удачи, братишка :3
vano-ekt; CyberCerber; neikist; +3 Ответить
60. kalyaka 493 28.11.18 22:55 Сейчас в теме
(2) всего в мире существует несколько тысяч языков, а доля запросов по языку 1С сравнительно невелика, потому и нет. Зато есть в списке обзора зарплат на HH ;)
64. FesenkoA 38 29.11.18 10:50 Сейчас в теме
(60) hh_ru ?)) понятно что не очень популярній в мире, но все же..
3. d.zhukov 449 28.11.18 10:52 Сейчас в теме
Все что нужно для автоматизация учета давно реализовано в 1С .Если нужно больше (взаимодействие с девайсом, сторонними приложениями) для этого есть компоненты, api и т.д.. не думаю, что для работы с ними нужно быть гуру в другой среде программирования. Достаточно освоить небольшую часть языка и этого будет достаточно.
A_Max; vln; +2 Ответить
19. Darklight 19 28.11.18 13:49 Сейчас в теме
(3)Не согласен. Язык 1С очень сильно отстал от мировой тенденции. В статье правильно подмечено (хоть и не акцентировано) - будущее за повышением декларатативного уровня разработки + (об этом, сожалению в статье не упоминается) развитии макро(мето)програмирования - когда из более абстрактноого уровня при совмещении его декларатативным подходом (более простым для понимания человеку) рождается адаптированнйы, оптимизированный и специализировнный программный код - для более подходящий для среды исполнения. А для учета - и возможностей и языка в версии 7.7 хватало.

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

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

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


Хотя я понимаю, что такие кардинальные изменения в языке - это явно выходит за рамки поколения 1С Предприятие 8. Это уже серьёзные изменения в архитектуре языка - и переход на другое поколение - может через десятилетия это появится в 1С Предприятие 9.

Хотя я бы, кое-что потихоньку бы уже и в 1С 8 начал бы внедрять - если бы.... если бы не маркетинг - ведь когда придёт время 1С Предприятие 9 - надо же будет как-то к ней привлечь внимание - всё новое и сладкое - будет уже только там! И её нужно будет заново преобретать (и лицензировать) и цена вопроса - думаю будет заметно выше, чем у 8-ки. Вполне возможно, и 8-ка и 9-ка будут вполне ещё существовать вместе друг с другом гораздо более тесно, чем сейчас 7.7 и 8.х - просто 9-ка будет предлагаться для проектов более высокого уровня, в 8-ка займёт нишу простых решений: типа как сейчас хотя бы у Микрософта есть Navision и Axapta - 1С: Предприятие 9 вполне может целится даже в область конкуренции с SAP r\3.

И ещё. Если 8-ка не смогла состояться как международная платформа (путь и поддерживающая UNICODE и разные языки). То 9-ое поколение наверняка будут создавать уже с большИм прицелом на распространение именно в других странах (и в России в первую очередь среди крупных международных компаний). От того, секторы внедрения 8-ки и 9-ки изначально могут сильно разойтись.
CyberCerber; neikist; +2 Ответить
24. mkalimulin 363 28.11.18 13:59 Сейчас в теме
(19) 9-ой версии не будет.
JohnConnor; Krio2; +2 Ответить
25. Darklight 19 28.11.18 14:06 Сейчас в теме
(24)Уверен на 100% что будет. Но думаю, что очень не скоро - мой прогноз - не ранее чем через 15 - 20 лет (хотя к этому моменту скорее всего только 8.6 выйдет, а 9-ку ещё лет 10 ждать придётся). Более вероятно - что 9-ое поколение выйдет уже во второй половине XXI века (я думаю, как раз где-то на рубеже - 50-60 годы XXI века) - но с вероятностью, близкой к 100% до конца века то уж точно выйдет - так что не спорьте! Если, конечно, не произойдёт каких-нибудь планетарных катаклизмов/войн или компанию 1С не сожрут конкуренты!

Но может выйти (альфа/бета версия), ну или хотя бы быть официально анонсированной, уже лет через 20 - если компания 1С (как я написал выше) задумает позиционировать 9-ку не как замену 8-ки - а как её более старшего брата - для внедрения на разных потребительских рынках и за разную стоимость. Но, чтобы успеть выпустить 9-ку в такие сроки с заложенным достаточно высоким (по сравнению с 8-кой) функциональным потенциалом - разработка 9-ки уже должна идти, хотя бы на уровне проработки архитектуры и ТЗ. Но я не знаю - ведётся ли эта работа или нет.
27. mkalimulin 363 28.11.18 14:27 Сейчас в теме
(25) Так не бывает. Либо у тебя 5-я, 6-я, 7-я, 8-я, 9-я, 10-я .... версии с интервалом в 2-3 года. Либо у тебя 5,6,7,8,8,8,8,8... и так 15 лет. Последний случай означает, что ты попросту сдох. 9-ой версии не будет.
quNas; acanta; +2 1 Ответить
34. Darklight 19 28.11.18 15:38 Сейчас в теме
(27)Я обратил внимание на интервал выхода версий 1С начиная с 7.0 и до 8.4 (которая до сих пор в альфа версии) - сейчас есть тенденция к увеличению этого интервала. Сейчас это около 4 лет - правда 8.4 до сих пор не вышла даже в виде полной версии для тестирования (беты) - думаю интервал между прошлым (не тестовым) релизом 8.3 и ожидаемым не тестовым релизом 8.4 будет не менее 6 лет (ожидаю 8 лет - т.к. 8.4 явно серьёзно забуксовала, и бета версии нет до сих пор).
Хотя считаю, что 8-мь и более лет разницы между версиями 8.3 и 8.4 это всё-таки будет сейчас как небольшое исключение - но тенденция к увеличению интервалов сохранится и дальше.

Итого, если 8.4 выйдет к 2020 году (хотя бы в виде бета версии), то 8.5 я бы ддал не ранее 2025 года, а 8.6 не ранее 2030(1) года, тогда 8.7 не ранее 2038 года, и где-то в то же время стоит ждать, как минимум, анонса 9-го поколения Платформы (может анонсируют и до 2030 года, тогда вместе 8.7 к 2040 году можно ожидать и выхода хотя бы бета версии 1С: Предприятие 9). Но я, думаю версий 8-ки до выхода 9- будет ещё больше: 8.8 к 2049 году, 8.9 к 2059 году 8.10 к 2060 году и только тут стоит ждать выхода не тестовой версии 1С: Предприятие 9, но даже после её выхода, веротянро ещё выйдут 8.11 и 8.12 но с интервалами не менее 10-15 лет - если в-ка будет дальше поддерживаться как продукт другой ниши

Но если компания 1С уже ведёт разработку 9-го поколения, то оно может выйти раньше
8.4 в 2020
8.5 в 2024
8.6 в 2029
9.0 в 2030-х годах
Далее, 8-ка может тоже продолжать поддерживаться как продукт для более простых решений
8.7 в 2035(6) -
8.8 в 2042
8.9 в 2050
и т.д.

Таковы мои прогнозы. Но это не более чем мои мысли и мои ощущения!

9-ка не выйдет скоро, по многим причинам. Главные - это должно быт революционным решением, архитектутрно не имеющим обратной совместимости с платформой 8.х

Для 8-ки это стали сильные изменения в языке (не желания тянуть прошлое) + появление 3-х звеной архитектуры + пояление нового графического движка + отказ от компонентного лицензирования (и реализации движка), ну и свою IDE для разрабоки хотели сделать (7-шный вариант был очень неудобен и не современен). Да и 7-ку, вообще-то, создавали на аутсорсе для компании 1С по её заказу - видимо компании не понравилась реализация проекта - решили замутить свой.

Чтобы говорить о 9-ом поколении - изменения архитектуры должны быть ещё заметнее. Формально даже ООП, функциональное и асинхронное программирование, ИИ-помошников, и инстурменты нейропрограммирования, а так же новые элементы метаданных и компоненты взаимодействия приложений - вполне можно внедрить и в 8-е поколение (просто расширяя режими совместимости). Даже встроенную поддерджку Java можно было бы внедрить в платформу (не смотря на то, что она написана на С++) при желании (каких только средств интеграции сейчас не наплодило мировое сообщество).

Но , вероятно, именно желание снова переписать платформу - будет тем двигателем, что будет продвигать разработку 9-го поколения 1С Предприятия.
Да - вероятно 9-ку буду разрабатывать на языке Java - это очень перспективно и соврменно. У данного языка очень высокое распрострагнение в мире, он стабилен, достаточно производителен, вполне лёгок в использовании и освоении, надёжен, кросплатформенен, имеет огромное число библиотек и сфер применения

Возможно компания так же откажется от языка 1С на 9-ке перейдя на JavaScripts или Java (но это, конечно многих бы расстроило, как и многих бы обрадовало). Ещё может произойти отказ от написания программы на русском языке (и воогбще применения любых симовлов в алгоритмических кроме набора 127-кодов, даже с учётом мировой тенденции к обратному - написание программ с применением не английских букв и хранения исходников в UNICODE файлах) - всё ради того, чтобы программы писались на ставшем мировом стандарте языка - английском - и были понятны всем.

От конфигуратора 1С, вероятно тоже откажется (наверное - сменив среду разработки на ECLIPSE, но, если 1С выберет основным языком Kotlin или Java - то можно договориться с российской компанией JetBtains и вместе разрабатывать единую среду Intellij IDE, или к тому моменту уже стоит далее развивать Rider IDE), но от своей IDE 1С скорее всего ткажется на 9-м поколении (но вряд ли раньше).

От своей стековой машины 1С тоже откажется - в пользу, например Java-машины, ну или какой-нибудь иной LLVM-совместимой машины - такова современная тенденция в кроссплатформенном программировании.

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

1. Алгоритмический уровень - примерно то что мы сейчас наблюдаем в 1С 8.x - тут будут описываться структуры данных и алгоритмы работы с ними - причём на максимально глубоком (широком) уровне. Но при этом, не все элементы алгоритмов будут сразу определены - уровень абстракции убудет повышен (ну как шаблоны в С++ например, хотя реализация явно будет более современная)
2. Декларатативный уровень - злесь программа больше будет задаваться обработкой настроек, и представлять собой инструкции по трансформации алгоритмов более низкого уровня - этакое метапрограммирование (макропрограммирование) и автогенерирование кода - после которого уже окончательно сформированные и избавившиеся от абстракций *(заодно и от лишних частей) алгоритмы будут уже транслироваться в бинарный код (например Java-машины)
3. Возможно будет отдельный уровень для разрабтки визуализации форм.
4. Возможно будет отдельный уровень для программирования нейросетей (куда уж без них во второй половине XXI века)

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

А в завершение - не забудут и про взятый курс (не только компании 1С - это тоже мировой тренд) по переносу ПО в облака, и интернет сервисы - вероятно 1С: Предприятие 9 будет реализована полностью (ну или хотя бы частично) как интернет-сервис (и без интернет подключения работать не будет - прощай пиратство).
39. mkalimulin 363 28.11.18 15:46 Сейчас в теме
(34) Когда в 2003 году в 1С поняли, что 8-ка провалилась, было принято решение больше никогда ничего нового не делать. 9-ки не будет.
42. Darklight 19 28.11.18 15:53 Сейчас в теме
(39)Почему провалилась - очень даже неплохо отправилась в будущее
И народная мудрость гласит "никогда не говори никогда"!
44. CyberCerber 300 28.11.18 16:10 Сейчас в теме
(34) Ничего себе вы футуролог, на 30 лет эволюцию ПО прогнозируете.
Но во всех этих расчетах есть одна очень неустойчивая переменная: 1С - это язык одной компании, а не открытого сообщества. И любые экономические неполадки, конкуренты, смена акцентов может похоронить развитие языка.
Вот если бы язык 1С стал открытым, причем для всего мира, проектом... Но это так, тоже просто рассуждения.
45. TODD22 17 28.11.18 16:28 Сейчас в теме
(44)
Вот если бы язык 1С стал открытым, причем для всего мира, проектом...

Язык или фреимворк(платформа)? а то сам то язык как бы не очень то... И вряд ли будет конкурентоспособен. И смысл всем миром развивать "бэйсик переведённый промтом"?
47. CyberCerber 300 28.11.18 16:47 Сейчас в теме
(45) Ну да, вернее сказать, фреймворк. Потому как, в общем, очень хорош для быстрой разработки бизнес-приложений. А вот язык внутри, да... Вот как раз сообщество бы его и доработало. Что-то типа 1С++ для 7.7
49. TODD22 17 28.11.18 17:05 Сейчас в теме
(47)
Потому как, в общем, очень хорош для быстрой разработки бизнес-приложений.

Как раз наблюдаю как два программиста .NET три дня спорят над структурой таблиц и связями. На 1с это решается 2 справочниками, одним документом и одним РС. И сделать можно за день.
91. Sapiens_bru 30.11.18 13:19 Сейчас в теме
(49) За час, причем всместе с настраиваемыми под пользователя экранными формами, разделением прав итд итп.
48. Darklight 19 28.11.18 16:57 Сейчас в теме
(45)Бейсик как раз кроме Била Гейтса никто особо и не развивает. Да и Билл, не особо то его продвигает. Этот язык пока держится лишь на макросах в продуктах микрософта. И то, не во всех.

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

Возможно поэтому 1С его и не развивает - хочет закрыть его поддержку и перейти на другой - уже развивающиеся мировыми сообществом, язык. Желательно с готовым компилятором и машиной выполнения. Вот Java - хороший кандидат на эту роль, хотя мне больше C# или Kotlin нравится, или Scala - Но это уже не вероятные сценарии. Тут главное со средой исполнения определиться. Из актуальных, кроссплатформенных и распространённых на текущий момент - не так много вариантов - JVM и CLR.NET

Правда есть ещё такая весь как LLVM - она ещё не сильно распространена но у неё большой потенциал к росту и поддержка именитых компаний (например Google) - но это не лишь стандарт по инструкциям - движок всё равно надо будет ещё вбирать - или делать свой. Зато можно будет писать программы на целом ворохе языков, имеющих компиляторы в LLVM - компилировать в библиотеки и совместно всё это использовать на любой платформе и ОС, где есть поддержка движка - этот как JVM только более универсально и не ограничено лицензией Oracle на Java.
81. kalyaka 493 29.11.18 23:10 Сейчас в теме
(48)
Возможно поэтому 1С его и не развивает

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

Дальнейшее развитие языка в расширении состава абстракций (СКД, функциональные опции, объектная модель запроса и т.д.).
52. Darklight 19 28.11.18 17:57 Сейчас в теме
(34)Замечание: у JetBrains очень много проектов программ в помощь программисту, если бы компания 1С им заказала поддержку инструментария для новой 9-й платформы - они бы вмиг бы наверстали всё упущенное (на текущий момент).

У JetBrains есть универсальная IDE - MPS - поддерживающая "любые" предметно ориентированные языки (каким по сути является язык 1С) - эта IDE могла бы стать хорошей платформой для поддержки языка 1С, если от данного ЯП не откажется сам а 1С.
80. kalyaka 493 29.11.18 23:05 Сейчас в теме
(34)
метапрограммирование (макропрограммирование) и автогенерирование кода

Это реализуется в языках общего назначения, когда на языке описывается некий новый синтаксис с семантикой максимально близкой к решаемой задаче (внутренний DSL). Далее программирование идет уже на этом языке. При компиляции язык DSL преобразуется в базовый, а далее в байт-код.
62. vano-ekt 1179 29.11.18 07:46 Сейчас в теме
(25)
)Уверен на 100% что будет. Но думаю, что очень не скоро - мой прогноз - не ранее чем через 15 - 20 лет (хотя к этому моменту скорее всего только 8.6 выйдет, а 9-ку ещё лет 10 ждать придётся). Более вероятно - что 9-ое поколение выйдет уже во второй половине XXI века (я думаю, как раз где-то на рубеже - 50-60 годы XXI века) - но с вероятностью, близкой к 100% до конца века то уж точно выйдет - так что не спорь

опа... да тут в камментах битва экстрасенсов
65. FesenkoA 38 29.11.18 11:03 Сейчас в теме
(19) ИМХО смысл в версии исключительно психологический. Пусть откроют исходный код платформы, и через год энтузиасты сделают полноценный ООП. Но зачем? 1С это как бы не об ООП. Важнее програмисту 1С знать о том как распределить общепроизводственные затраты, чем о, например, прерывателе многопоточного выполнения.

По простому говоря: какое ООП, в 1С все еще нет даже Sleep(), нркмны))
66. Darklight 19 29.11.18 11:16 Сейчас в теме
(65)ООП просто мог бы помочь более эффективно структурировать код и данные. А асинхронное программирование - повысить эффективность выполнения алгоритмов. А декларатативное программирование сделать тоже что и ООП, и асинхронное + свести задачи (как в Вашем в примере "распределение общепроизводственных затрат" и другие) к отделению алгоритмической реализации вычислений от логики применения этих алгоритмов к данным в бизнес-процессах. То есть для понимания как это выполнить эту операцию - не должно требоваться копаться в алгоритмах её реализующих (или запускающих - в идеале). А если сюда ещё добавить документирование кода (с чем у 1С большая проблема), создаваемое авторегисрацией такой документации (как это происходит в некоторых более зрелых современных языках) - то поиск декларатативного описания применения данной операции - должно было бы быть делом нескольких минут. Там же в этой тех. документации могла бы быть и ссылочка (скажем на ITS) где описывается данная операция с пользовательской точки зрения: для чего нужна, как настраивается, что делает в итоге, и как её использовать). Но это всё к языку программирования отношения не имеет.

То что в платформе нет метода sleep() - я согласен, большое упущение; но не так часто нужен этот метод в 1С (да и программируя за пределами 1С я уже давно его не применял), особенно без применения многопоточности, а когда действительно нужен - сообщество программистов уже давно нашло альтернативные решения.

И пожалуйста, воспринимайте мои рассуждения о том, чего нет в 1С СЕЙЧАС - только как мой личный взгляд на будущее в развитии данной учётной системы лет через 30. Если Вы, конечно, вертите в то, что у платформы 1С Предприятие во второй половине XXI века вообще есть будущее. Ведь рано или поздно конкуренты создадут свои прорывные решения, а инвесторы найдут деньги на их внедрение - если развитие платформы останется, скажем так, для понимания, на уровне dos Бухгалтерии 5.0, когда у конкурентов будут системы решающие бизнес-процессы с применением глубокой автоматизации вообще почти не прибегаю даже к графическому интерфейсу, работая через интернет из любой точки планеты - то 1С постигнет та же судьба что и её менее удачных конкурентов, например Турбо бухгалтер (Парус с Галактикой даже не трогаю) - забвение, даже если за это время 1С к своей dos бухгалтерии прикрутит и графический интерфейс аля windows 3.11, и другие фишки, но останется на той же архитектуре - у неё попросту не будет будущего!
84. FesenkoA 38 30.11.18 10:26 Сейчас в теме
(66) На платформе 1С не нужно писать большие приложения. Когда эффективность по Гилеву становится недостаточной - стоит задуматься о переходе на более низкоуровневій язык программирования. Если недостаточно гибкая и красивая - более высокоуровневый. 1С заточена на скорость разработки программ учета. Да, конечно на ООП система была бы гибче, но это уже не была та 1С, в которой за 3 часа можно запилить приложение по учету заказов + мобильная версия.

Sleep нужен для всяких сервисов гугла, например, когда 1С может сделать к нему 400 запросов за секунду, а он после 10 начинает требовать платную версию. А то чем его можно заменить - костыль. но суть в другом: 1С очень, очень медленно развивается. Возможно, это стагнация большой компании (когда работает 1, в носу ковыряют 2, что скорее всего), возможно - они занимаются стартапами которые не выгорают, а может и немного подзабили на развитие патформы в сторону развития решений, но факт есть факт

Ну вот вы сами и рассказали какое будущее у 1С. Мое мнение - распадется на 2-3 компании которые начнут развивать свои (надеюсь, совместимые) ПП + отвалятся франчи в других странах.
85. TODD22 17 30.11.18 11:19 Сейчас в теме
(84)
отвалятся франчи в других странах.

Отвалятся от чего? Франч нужен только что бы коробками торговать. Смотреть надо долю продаж коробок. А то 1с может и не заметит что там кто то отвалился.
Мое мнение - распадется на 2-3 компании которые начнут развивать свои (надеюсь, совместимые) ПП

На сколько знаю 1с активно скупает другие компании. Приобретает доли других компаний.
86. neikist 30.11.18 11:31 Сейчас в теме
(85)
Франч нужен только что бы коробками торговать.

Вот сейчас было странно. Хотя немало их конечно этим именно занимаются. Но вообще важно комьюнити именно разработчиков на платформе (кастомизации крупные, свои решения).
87. TODD22 17 30.11.18 12:14 Сейчас в теме
(86)кастомизации и свои решения можно без статуса франча делать. Или нет?
88. neikist 30.11.18 12:23 Сейчас в теме
(87) Можно, и франчи в т.ч. и этим занимаются. Ну т.е. странно звучит что франчи нужны только для торговли коробками.
89. TODD22 17 30.11.18 12:49 Сейчас в теме
(88)не франчи нужны для торголвли, а статус франча. То есть заключённый с 1с договор нужен для продажи софта. Это был ответ на "отвалятся франчи в других странах". Просто надо посмотреть сколько 1с получает дохода от франчей из других стран. А то может вендор и не заметит что там кто то отвалился если их продажи в общей сумме продаж маленькие.
96. FesenkoA 38 30.11.18 14:49 Сейчас в теме
(85)
Отвалятся от чего?
как это стало модно говорить в этой стране "получат Томос"))) То есть перестанут быть франчом 1С, а просто получат права у одной из правоприемниц использовать/дорабатывать платформу, тем более что локализацией типовых решений занимаются франчи сами

На сколько знаю 1с активно скупает другие компании
это не отменяет стагнирования основного направления. 1С монополист в РФ, и почти монополист в постсоветских странах, что делает ее очень..ммм... нединамичной но и богатой, что дает им возможность демпинговать . Либо они меняют приоритеты и скорость работы, либо прийдет кто то с отличной и дешевой идеей, сметя желтые листья...
95. Darklight 19 30.11.18 14:26 Сейчас в теме
(84)Не понимаю, чем Вам ООП помешает "пилить за 3 часа приложения по учёту заказов"! Пожалуйста, не думайте об ООП, как о чём-то шибко сложном. В 1С? Предприятие за последнее время появились гораздо более сложные технологии - и ничего - не мешают "пилить за 3 часа приложения по учёту заказов", но в целом сложность конфигурирования от 8.0 к 8.3 заметно подросла. И я не считаю, что это плохо. Если компания 1С будет ориентироваться на детсад - то это путь к провалу (может не сразу, но неизбежный путь туда).

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

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

Да,и замечу, что ООП в 1С есть. Он был даже в 1С 7.x - просто объекты все только типовые - свои нельзя делать..... да ладно.... неужели нельзя.... а как же в 1С 8.x формы и элементы метаданных - те же классы, поддерживающие, правда, только инкапсуляцию.

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



А по поводу sleep() - да я сказал, что метода не хватает, но нужен он очень редко - и в этих случаях всё легко решается... да - через костыли... но решается же - 99% программистов и конфигураций 1С вполне обходятся без реализации метода sleep() и не жалеют об этом. Но, замечу, наличие/отсутствие данного метода - не является проблемой развития языка - а лишь проблема наполнения встроенной библиотеки стандартных функций 1С, которые с приходом кроссплафторменных Native-ВК расширяются лёгким движением руки без каких-либо проблем - добавьте себе sleep() через такую компоненту (где он будет реализован по строгим канонам классического программирования) - и радуйтесь! Хотя и прочие костыли вполне нормально заменяли sleep(): например, если алгоритм выполняется в фоновом задании (что в 8.3 бывает достаточно часто), то я пишу вот так:

Функция ПриостановитьФоновоеЗадание(СпатьСекунд, Знач ФоновоеЗадание = неопределено) экспорт
	Если ФоновоеЗадание  = неопределено Тогда
		ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); //Функции нет в старых релизах 1С Предприятие, нет в мобильном приложении - но там можно по другому достичь цели - текущего фонового задания (как и сразу можно получить ФЗ, например, зная его  наименованию или идентификатор)
		ТекущееФоновоеЗадание = ТекущийСеанс.ПолучитьФоновоеЗадание();
	Иначе
		ТекущееФоновоеЗадание = ФоновоеЗадание;
	КонецЕсли;
	
	Если ТекущееФоновоеЗадание = неопределено Тогда
		ВызватьИсключение "Функцию ""ПриостановитьФоновоеЗадание"" можно вызывать только для/из фоновых заданий";
	КонецЕсли;
	
	ТекущееФоновоеЗадание = ТекущееФоновоеЗадание.ОжидатьЗавершенияВыполнения(СпатьСекунд); //Ждём сами себя - фоновое задание, при этом, приостанавливется (но у ФЗ состояние будет = "Активно")
	возврат ТекущееФоновоеЗадание;
КонецФункции
Показать


И я бы не сказал что это большой костыль.

Для алгоритмов не выполняющихся в фоне - есть другие способы (но там уже действительно костыли: запуск ping, JavaScript в html поле, ВК...).
97. acanta 60 30.11.18 15:02 Сейчас в теме
(95)
Да,и замечу, что ООП в 1С есть. Он был даже в 1С 7.x - просто объекты все только типовые - свои нельзя делать..... да ладно.... неужели нельзя.... а как же в 1С 8.x формы и элементы метаданных - те же классы, поддерживающие, правда, только инкапсуляцию.


А как же планы видов характеристик (когда пользователь может создать свои)? Это ж ООП.. наверное.
99. Darklight 19 30.11.18 15:05 Сейчас в теме
(97)План видов характеристик - это элемент метаданных (о которых я упомянул) - если нет - Вы сами знаете куда Вам идти (напомню - в библиотеку за жёлтыми книжками).
100. acanta 60 30.11.18 15:08 Сейчас в теме
(99) к сожалению, я в желтых книжках не разбираюсь. А пионеры-тимуровцы стали такие, бабушкам не помогают совсем..
103. Darklight 19 30.11.18 15:16 Сейчас в теме
(100)для не читающих - есть у Евгения Гилёва на курсах по 1с рф есть видеокурсы по программированию, в т.ч. бесплатные!
102. Darklight 19 30.11.18 15:15 Сейчас в теме
105. FesenkoA 38 30.11.18 15:23 Сейчас в теме
(95)
Не понимаю, чем Вам ООП помешает
Сейчас мне не нужно писать/искать клас, интерфейс который рисовал бы форму, не думаю о том "наследуется ли метод _добавить_ в эту тч" итд, я собираю конструктором форму, дописываю кодом алгоритмы работы элементов и все. Я знаю что там будет кнопка записать, что она добавит запись в БД, очистит значение объекта из ОЗУ итд.. Да, именно поэтому с 1С ников смеются другие программисты, но этот подход позволяет унифицировать ПП, ускорить время и уменьшить стоимость разработки/сопровождения. А если вы имеете в виду "написать ЗУП, а потом залезть в метод _отрисовка формы_ и сделать закругленные края" - то это то что я и говорю: открытый код платформы. ТО есть под конкретного заказчика можно сделать конкретный ПП. И да, программа - это все же платформа+конфигурация. А так как конфигурация - этот всего лишь набор процедур, то ООП будет в платформе.

Как раз в БСП я и вижу кучу наследований и полиморфизмов. Всякие процедуры _Выполнить1(Структура)_ позволяют изменять результат в зависимости от набора значений структуры. Всякие вложенные процедуры, когда каждая вложенная - более абстрактная - это инкапсуляция. Наследование развито слабо, но я все же вижу примеры. Все меньше используются общие модуля, и все больше этот код идет в обработки (например печать). Но смысл развивать во что то большее я не вижу. Простота разработки дает возможность программисту развиваться не в сторону "кодер" (или "формашлеп") а в сторону "разработчик", думать о масштабировании, оптимизации, а не о том "как вывести ТЗ из пользовательских отборов менее чем за 15 строк".

Опять же, если разрабы откроют исходники, и будет возможность делать и там и там - это будет действительно очень удобно: программист накидал метаданных, прикинул процедуры, а кодер устанавливает синус закругления угла у кнопки в зависимости от объема продаж контрагента, или еще какую то дичь))) Зачем разработчику знать о том как заполнить условное оформление программно, если конструктором это делается за 30 сек. Нужно что то сложнее. например условное оформление через свойство ссылки - здравствуй кодер!

И мой любимый Слип. Вызов компоненты самописной - костыль разработика, т.к. это не 1С. Вызов Слип методом ВижуалБейсика - не очень точно, так как подключение к компоненты ОС - занимает время + 1С может стоять на Юникс/макось. Пустой цикл, или выполнение какой то операции забивающей время - ошибка, т.к. занимается процессорное время. Обработчик оповещения - требует клиента, ваш код конечно же не громадный, в отличие от АЖ 7 символов "Sleep()" (но интересный, нужно попробовать), как и все выполнение фоновых заданий. Отсутвие Слип - это недостаток общения разрабов платформы с сообществом, так как в 1С есть такая ВАЖНАЯ команда "Сигнал()" которую так часто используют...
106. Darklight 19 30.11.18 16:59 Сейчас в теме
(105)Вот я и говорю - Вы боитесь парадигмы ООП, воспринимая его как нечто такое, что отбрасывает уровень сервиса платформы на поколения назад - что вам опять нужно думать о низкоуровневом программировании. Но это же не так. Появись в 1С ООП - это не привнесло бы почти никаких новых заморочек: формы так же сами рисовались. А из типа - "ТаблицаЗначений (коли вы уверены, что это таблица значений) не исчезли бы знакомые и понятные методы. Появление ООП я бы сравнил с появлением просто нескольких общих модулей в 1С 8.0, по сравнению с одним глобальным в 1С 7.7. Только теперь эти модули стали бы больше похожы на обработки (т.к. смогли бы хранить данные и для работы с ними нужно было бы создавать их экземпляры - для не статических классов).

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

А уж техника доступа к данным (не обязательно) через свойства - это вообще лепота - когда при изменении количества или цены - автоматически пересчитываются суммы , связанные с количеством в месте определения класса, а не вместе его использования, а сумма "Всего" (с налогами) не хранится и высчитывается только при обращении к ней. Где бы не происходило обращение к такому объекту.

То что вы видите сейчас в БСП - это как раз следствие отсутствия ООП - жуткий огород вычислений кода на лету и вызовов кучи вложенных функций. Был бы наследование, свойства, полиморфизм, инкапсуляция + функции высшего порядка - код бы стал на порядок лаконичнее (а если ещё и избавиться от разделения модулей по контексту выполнения - перейдя на маркировку только самих функций - и число модулей сократилось бы и число вложенных вызовов функций тоже).

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


программист накидал метаданных, прикинул процедуры, а кодер устанавливает синус закругления угла у кнопки в зависимости от объема продаж контрагента, или еще какую то дичь))) Зачем разработчику знать о том как заполнить условное оформление программно, если конструктором это делается за 30 сек. Нужно что то сложнее. например условное оформление через свойство ссылки - здравствуй кодер!


Здесь я с Вами не спорю. Я за то, чтобы в 9-ом поколении платформы 1С были разделены по разным контурам управленияя такие задачи как:
1. Администрирование 1С, сбор ошибок, оптимизация и другие тех. задачи - решал соотвествующий технический контур специалистов (можно сказать совсем без программирования, хотя это не правда - ибо даже системные админы пишут скрипты и курят pwershell).
2. Создание общей архитектуры функционирования подсистем, структура данных и алгориттмов взаимодействия и визуализации - программисты (тут и кодеры и разработчики и архитекторы - просто это более низкий уровень абстракции - почти как сейчас в 1С)
3. Созданием макетов визуализации (форм, отчетов, печатных документов...) занимались дизайнеры (взаимодействия с другими контурами разработки только на уровне постановки задачи и описания нужного API - интерфейса, прошу прощения за тавтологию).
4. Настройкой бизнес логики функционирования тех или иных процессов на платформе автоматизации - на основе готовых программных блоков - должны заниматься IT-бизнес-архитекторы (возможно не совсем то слов - я не готов сейчас дать правильный термин) - им почти не нужно программировать (ну максимум писать какие-то высокоуровневые скрипты или описания запросов к данным или фильтры). Они работают как раз желаемом Вами уровне - с уже подготовленными на других уровнях сущностными (объектами кстати: классами и интерфейсами): декларатативно настраивая тонкости их определения и поведения для реализации необходимой бизнес логики. Создают аналитические отчеты из готовых компонент. Это уже более высокий уровень абстракции, чем даже даёт сейчас СКД.
5. ну ещё я упоминал про ИИ и нейросети - конфигурирование этого уровня - это отдельная тема - и в 9-й платформе этот уровень неминуемо должен появиться.

Вот ООП - он касается в основном 2 и 4-го уровней. На втором он во всей полноте. На 4-том примерно в объёме как сейчас в 1С 8.3 (только эти возможности используются гораздо шире, чем на 1С 8.3, но без углубления).


Про sleep() Вы, видимо, не внимательно читали что я написал выше:
- для кросплатформенности - пишут сейчас Native внешние компоненты. Создать такую для метода sleep - дело 1 часа (кто никогда не делал ещё Native-ВК, но умеет программировать на с++, и хотя бы знаком с COM-компонентами или не знаком, но уже прочитал материалы по созданию Native-компонент; кто ничего из этого не умеет (но имеет значимый опыт любого другого программирования , в т.ч. на 1С) - дело 1-2 х дней - главное взять все готовые шаблоны и примеры с поставки дистрибутивов платформы актуальной версии, а не из статьи ИТС) чтобы собрать её для платформы wibdows + немного больше времени понадобится для сборки компоненты для других платформ.

- Время на создание внешних компонент - это особый случай:
а. Во-первых - это уж совсем редко когда нужна уж такая точность ожидания прям до секунды (когда нужна высокая точность - надо крутить цикл, без вариантов, но только на последних 2-х секундах ожидания).
б. Вы можете засечь время перед началом алгоритма выполнения ожидания и когда дойдёт до собственно ожидания - вычесть прошедшее на подготовку время из ожидания (и для высокой точности вычесть ещё 1-2 сек - которые уже прокрутить в цикле ожидания на завершающем этапе алгоритма ожидания)
в. Созданные объекты ВК - проще всего закешировать через модуль повторного использования - чтобы не тратить на их создание время (но хотя периодически оно всё-равно будет тратиться).
г. Не так уж и важна величина программного кода - когда его можно разместить в вызываемой из общего модуля процедуре.
д. Вот добавила бы Вам фирма 1С глобальный Методы Задержка(Милисек) которая бы просто крутила бы процессор - Вам легче было бы?


- Пустой цикл - это плохое решение - процесс выполнения не засыпает и ггрузит процессор - что для сервера очень критично (ну это Вы сами знаете), хотя для случая короткого ожидания (не более 1-2 сек) вариант с циклом предпочтительнее (уверен - классический sleep() для таких интервалов сделает так же - где-то я уже про это читал, но это было про C# наверное, в разделе асинхронного программирования - но там свои замочки)!

- А вот выполнение команды ping - не грузит процессор, как и приведённый мной выше алгоритм для фоновых заданий

- Можно завести ещё какое-нибудь служебное фоновое задание (регламентное задание) - которое постоянно бы крутилось на сервере (не вжно что бы оно делало, главное - постоянная работка "Пока (Истина) Цикл ЧтотоявадноеделаюАможетИнеДелаю() КонецЦикла" ), тогда из любого места (с учётом требуемого серверного вызова) можно было бы слипиться на ожидании этого фонового задания:

Функция Приостановить(СпатьСекунд) экспорт
	НачДата =  ТекущаяУниверсальнаяДатаВМиллисекундах();
	
	//Код для корокого ожидания  через цикл - опущу его тут
	
	УстановитьПривилегированныйРежим(Истина);
	ФонЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Новый Структура("Состояние, Ключ", СостояниеФоновогоЗадания.Активно, "Некий ключ, заданный при запуске специальног фонового задания"));
	Если ФонЗадания.Количесвто() =0 Тогда
		ФонЗадание = запускФЗ(); //Тут какой-то код по запуску этог специального фонового задания, опущу его тут
	Иначе
		ФонЗадание = ФонЗадания[0];
	КонецЕсли;
	ТекДата =  ТекущаяУниверсальнаяДатаВМиллисекундах();
	Прошло = ТекДата - НачДата;
	Если Прошло >= СпатьСекунд Тогда
		возврат Цел(Прошло / 1000);
	КонецЕсли;
	Осталось = СпатьСекунд - Прошло;
	
	//Код для корокого ожидания оставшегося времени через цикл - опущу его тут
	
	ПриостановитьФоновоеЗадание(Осталось, ФонЗадание);
	
	ТекДата =  ТекущаяУниверсальнаяДатаВМиллисекундах();
	Прошло = ТекДата - НачДата;
	
	возврат Цел(Прошло / 1000);
КонецФункции
Показать
107. acanta 60 30.11.18 17:05 Сейчас в теме
(106)
Появление ООП я бы сравнил с появлением просто нескольких общих модулей в 1С 8.0, по сравнению с одним глобальным в 1С 7.7. Только теперь эти модули стали бы больше похожы на обработки (т.к. смогли бы хранить данные и для работы с ними нужно было бы создавать их экземпляры - для не статических классов).


Да, и почему бы не выделить каждую подсистему в отдельную обработку, а в обработке добавить возможность создавать собственные типы документов, справочников,планов счетов и еще неизвестно чего?


А уж техника доступа к данным (не обязательно) через свойства - это вообще лепота - когда при изменении количества или цены - автоматически пересчитываются суммы , связанные с количеством в месте определения класса, а не вместе его использования, а сумма "Всего" (с налогами) не хранится и высчитывается только при обращении к ней. Где бы не происходило обращение к такому объекту



Это привело к полному отказу от рекурсии, и вообще алгоритмов сколько нибудь сложных, и вся 8ка ушла в "спагетти код", только ради того чтобы в любом месте было доступно свойство через точку.
108. Darklight 19 30.11.18 17:09 Сейчас в теме
(107)Топорно - но тоже вариант. Но красота вся нарушится тогда, когда эти подсистемы начнут друг с другом взаимодействовать и взаимопроникать - опять будет винегрет!
117. kalyaka 493 02.12.18 17:58 Сейчас в теме
(107) появление ООП плохо соответствует целям языка (см. пост 115). Исходя из назначения всю основную работу берет на себя платформа, а язык лишь позволяет описывать отличия от типового механизма.
116. kalyaka 493 02.12.18 17:54 Сейчас в теме
(84)
На платформе 1С не нужно писать большие приложения. Когда эффективность по Гилеву становится недостаточной - стоит задуматься о переходе на более низкоуровневій язык программирования
Исходя из назначения языка 1С (см. пост 115), чем сложнее приложения, тем больше будет становится расширений платформы.
4. lmnlmn 50 28.11.18 10:56 Сейчас в теме
Статья высосана из пальца и иллюстрирует весьма поверхностное знакомство автора с предметом и, тем более, с практикой применения языков программирования.
79123890854; Vovan1975; A_Max; c1nil; +4 Ответить
118. kalyaka 493 02.12.18 18:00 Сейчас в теме
(4) Можете расшифровать более подробно те моменты в статье, которые показались вам поверхностными?
5. jONES1979 28.11.18 11:19 Сейчас в теме
Как XML и XAML попали в языки программирования?
По каким признакам SQL, XML были отнесены к предметно-ориентированным?
15. lmnlmn 50 28.11.18 13:06 Сейчас в теме
(5) Вообще интересно по каким признакам они к языкам программирования отнесены. Допустим у SQL еще есть всякие PL, Transct SQL и иже с ними, но XML-то за что?))
21. Darklight 19 28.11.18 13:52 Сейчас в теме
114. kalyaka 493 02.12.18 16:58 Сейчас в теме
(5) на XML пишут конфигурационный файлы - это как пример программирования состояния программы. XAML - основанный на XML язык разметки для декларативного программирования приложений, разработанный Microsoft.
Языки предметно-ориентированные отличаются от языков общего назначения узкой специализацией и синтаксисом отвечающим решению специализированной задачи. SQL - это декларативный язык работы с реляционными таблицами, в нем нет даже возможностей работы со средствами ввода/вывода.
Из предисловия к книге Фаулера "Предметно-ориентированные языки программирования":
«предметно-ориентированный язык – это язык с ограниченными выразительными возможностями, ориентированный на некую конкретную предметную область». Этот язык значительно проще языков программирования общего назначения, таких как C++ или Java, оперирует ограниченным кругом понятий, но при этом позволяет реализовать события определенной предметной области таким образом, что полученная программа будет абсолютно понятна экспертам в этой конкретной области. Одно из основных преимуществ предметно-ориентированных языков — это возможность достичь понимания между разработчиками и постановщиками задачи, далекими от компьютерной тематики....
Предметно-ориентированный язык позволяет закодировать частные задачи в рамках большой системы наиболее эффективным и прозрачным для заказчика способом. Он повышает производительность труда разработчика, поскольку тот получает инструмент быстрого создания и простого изменения определенных частей программного комплекса.
8. amd1986 28.11.18 11:44 Сейчас в теме
Все держится на языках
Java, C#, Scala
. Что то с этим миром не то.
И да, мне встречались программисты HTML. Было весело)
10. herfis 280 28.11.18 12:10 Сейчас в теме
Слишком шероховатая статья.
CyberCerber; +1 Ответить
119. kalyaka 493 02.12.18 18:05 Сейчас в теме
(10) Можете пояснить?
В посте (76) я расшифровал идею оригинальной статьи, представленная здесь - это сокращенная версия в формате новости с привязкой к событию.
11. Ziggurat 47 28.11.18 12:11 Сейчас в теме
От куда Ол Бини узнал про 1С?
d.zhukov; CyberCerber; +2 Ответить
22. Darklight 19 28.11.18 13:54 Сейчас в теме
(11)Первый раз о нём слышу, но думаю там был другой язык - это уже автор статьи пририсовал.
58. kalyaka 493 28.11.18 22:37 Сейчас в теме
(11) Конечно зарубежные специалисты скорее всего не знают 1С, как и многие из тысяч других существующих языков. 1С здесь показана для повышения иллюстративности.
В оригинальной статье вообще приведено абстрактное название языков верхнего уровня как DSL.
63. vano-ekt 1179 29.11.18 07:49 Сейчас в теме
(11) гугл транслэйт "VBA" так перевёл
CyberCerber; Ziggurat; +2 Ответить
23. Gureev 28.11.18 13:56 Сейчас в теме
Самое главное что не описано в статье, это как же
изучать и сочетать в работе


И еще вопрос, как поднять бабла?
Какой язык выгоднее?
Какой язык лучше всего подходит для фриланса?
Какой для фикса?
Какой лучше учить 1Снику?
Korkmas; user774630; +2 Ответить
29. Darklight 19 28.11.18 14:37 Сейчас в теме
(23)И еще вопрос, как поднять бабла? думаю это выходит за рамки технической статьи. Учите языки для мобильной разработки или для веба - на ближайшие десятилетия основные деньги будут там крутиться. Ну и 1С не забывайте - тут тоже хорошие заработки.

Какой язык выгоднее? кому? так на вскидку - на C++ Python, Dart, Java, Objective С, Swift - сейчас очень выгодно создавать мобильные приложения (особенно игры) для Android и iOS - можно и на 1С создавать мобильные приложения - но рынок таких приложений пока крайне слабо развит - зато есть где развернуться - конкуренция слабая, но такие приложения будут занимать достаточно специфические ниши потребления.

Какой язык лучше всего подходит для фриланса? если оценивать вообще то тут хороши как 1С так и PHP - в обоих стизях фриланс сейчас достаточно распространён

Какой для фикса? Java, C#, Python, Perl наиболее популярны среди работодателей (акромя языка 1С) и вполне годятся для спокойной работы (поэтому не привожу нервосжигательный мозгокрутящий С++)

Какой лучше учить 1Снику? Python, C#, Java, C++, Perl - наверное в такой последовательности
- Python и Perl используются во вспомогательных скриптах (при работе даже с 1С проектами)
- C#, C++ хороши для создания внешних компонент (с C# всё не очень гладко, но лучше начать с него, чем сразу с C++)
- Java - используется для создания плагинов к Eclipse и вообще сейчас 1С, держит пока лёгкий, курс в сторону Java - вообще Java сейчас самый перспективный язык для изучения. Вместе Java обратите внимание ещё на Kotlin - это более современный язык для JVM и JavaScripts - естественно совместим с ними на уровне библиотек.

ну ещё есть OneScript - тоже не плохо бы ознакомиться 1С-нику - тем более там есть высокая совместимость с языком 1С, и очень высокий потенциал роста.

Надеюсь я нормально разъяснил ;-)
LordMatrix; pavlov_dv; +2 Ответить
31. acanta 60 28.11.18 14:46 Сейчас в теме
(29) Не понимаю, почему 1с-ник должен изучать Python и Java вместо того чтобы народ, изучивший Python и владеющий Java объединился с народом, знающим 1С в команду и они вместе, весело провели весь процесс перевода к примеру молокозавода с 1с на что-то еще, более прогрессивное.
Тем более что в наших центрах занятости работает замечательная система профориентации, переквалификации и социальной адаптации.
И самое главное - расскажите нам, каким образом человека, в чьем резюме будет значится "Программист 1С" могут взять на работу продавцом, менеджером по продажам, оператором ЭВМ, кладовщиком или к примеру бухгалтером.
36. Darklight 19 28.11.18 15:41 Сейчас в теме
(31)Потому что Python сама 1С выбрала как скриптовый язык для своих проектов.
а Java - тоже всё бльше и больше интегрируется с 1С, да и в будущем 1С может на него перейтию
Ну и Java просто очень популярный и не сложный в освоении язык - так сказать - вдруг захочется уйти из 1С сферы, или просто паралелльно халтурить на нё для себя или для доп дохода - это очень выгодный язык.


самое главное - расскажите нам, каким образом человека, в чьем резюме будет значится "Программист 1С" могут взять на работу продавцом, менеджером по продажам, оператором ЭВМ, кладовщиком или к примеру бухгалтером.

здесь моя вас не понимать!
46. Ziggurat 47 28.11.18 16:34 Сейчас в теме
(23)
И еще вопрос, как поднять бабла?

Азино, три топора.
starik-2005; +1 Ответить
67. Darklight 19 29.11.18 11:41 Сейчас в теме
(46)Правильно мыслите:
Вариант 1:
1. Для начала изучаете 1C, OneSript, SQL, JavaScripts, PHP, HTTP5, HTTP-сервисы
2. Пишите свой движок для казино
3. Создаёте в офшоре свой сервер с казино
4. Запускаете вирусную рекламу своего онлайн-казино
5. Ну и гребёте бабло!

Вариант 2:
По сути отличается сменой платформы WEB на мобильную (можно и 1С Мобильная платформа)
- Делаете мобильное приложение - казино
- Ещё лучше делаете мобильную игру с донатом + в неё ещё и казино встраиваете + если сделаете красиво и увлекательно и не поскупитесь на раскрутку - миллионные прибыли ежемесячно гарантированы!
- Думаю такой мобильный проект можно было бы и на мобильной платформе 1С даже поднять (пусть не так крассиво как могло бы быть, но если геймплей не подкачает - это как стартовый проект вполне можно было бы сделать): тут годятся всякие пошаговые игрульки, карточные или экнономические, квесты - изучайте рынок - таких проектов много - но посражаться за свой кусок пирога ещё вполне можно! Главное не забудьте туда прикрутить инфостарт с блекджеком и ш...
98. Bukaska 130 30.11.18 15:04 Сейчас в теме
28. acanta 60 28.11.18 14:31 Сейчас в теме
Номер занят Парусом 9 уже много лет. Требуется не просто развиваться и поддерживать, требуется совершить прыжок через нишу, занятую и обжитую конкурентами (которые тоже не сидят на одном месте).
37. Darklight 19 28.11.18 15:43 Сейчас в теме
(28)Парус - это другой продукт. Возможно (т.к. 1С и Парус сейчас партнёры) они будут вместе разрабатывать 9-ю версию 1С Предприятия и вместе переводить потом на неё своих клиентов - почему бы и нет! Должно же быть развитие. Ну и очередная стрижка бабла на новом лицензировании.
50. Perfolenta 28.11.18 17:16 Сейчас в теме
Цитата из книги Дэна Эпплмэна, 2001-й год:
"Думаю, программисты Visual Basic комплексовали перед своими коллегами, работавшими на С++, которые часто задирали носы и говорили: "Visual Basic не настоящий ООП язык, в настоящем ООП языке есть полноценное наследование!!!" Услышав это бедный программист Visual Basic удалялся в свою каморку и за час выдавал больше кода, чем программист на С++ мог написать за неделю. Но ни кто не обращал на это внимания, т.к. С++ считался "современным, элегантным, профессиональным ООП языком", а Visual Basic "пережитком прошлого, игрушкой, языком новичков""

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

Я, вот, из тех чудаков, которые пишут свой язык ради интереса и отвлечения от надоевшей работы, но продолжают работать на 1С, т.к. кушать хочется :)
quNas; CyberCerber; user774630; Vovan1975; +4 Ответить
59. kalyaka 493 28.11.18 22:40 Сейчас в теме
(50)
свой язык ради интереса и отвлечения от надоевшей работы

Можно смело добавить еще одну причину возникновения новых языков :)
Perfolenta; +1 Ответить
68. Darklight 19 29.11.18 11:52 Сейчас в теме
(50)С++ жуткий язык - я бы не стал с ним виз.бейсик сравнивать - этот тот случай, когда области применения этих языков совсем из разной оперы.

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

Виз. бейсик, правда, тоже далёк от совершенства - и с ним бы лучше тоже не связываться, когда есть языки, позволяющие ещё больше повысить эффективность кодинга - например: Java, C#
74. Perfolenta 29.11.18 20:05 Сейчас в теме
(68) современный Visual Basic ни в чем не уступает Java и C#... эффективность кодинга не отличается ни чем... можно говорить только о вкусовых предпочтениях, кто-то любит кучу скобочек {{{{ }}}}, а кому то больше нравится End If, End Sub и т.д.
Мне вот кажется, что в свете быстрого развития систем распознавания речи, диктовать текст программы будет гораздо удобней на Visual Basic, чем на Java, C#...
51. Perfolenta 28.11.18 17:36 Сейчас в теме
И еще есть одна проблема... экосистемы большинства языков стали настолько большими, что перейти на другой язык не став при этом "чайником" очень сложно, надо потратить много времени за свой счет или за счет работодателя на изучение библиотек, фреймворков, шаблонов, стандартов и т.д. нового языка... профессионалам не хочется становиться чайниками, поэтому они не спешат переходить, если жизнь не заставляет...
взять тот же 1С 8.3, работать вообще не заглядывая в документацию и синтакс-помощник наверняка могут не многие... использовали в своей работе все возможности 1С, включая все виды клиентов, серверов, мобильные приложения, расширения и т.д. так же далеко не все программисты 1С... это уже давно не 1С 7.7, которую многие знали как облупленную...
в нынешней 1С всегда есть что изучать, выучил язык изучай стандартную библиотеку, дальше можешь БСП изучить, СКД, расширения, бух.учет, налоговое законодательство, короче, было бы желание...
53. PerlAmutor 42 28.11.18 20:10 Сейчас в теме
Одна и та же синтаксическая конструкция «ТКласс Класс» в первом случае определит ссылку на объект указанного класса, а во втором – создаст сам объект.


Меня одного смущает написанное? В C++ код:

MyClass myClass;


Создаст объект на стеке, который грохнется при выходе из области видимости. Ссылки не будет. Будет переменная myClass, содержащая адрес объекта, интерпретируемая языком как сам объект. Ссылка в C++ - переменная типа ссылка, содержащая адрес на объект. В первом случае доступ к членам класса через точку, во втором через разыменования указателя "->", плюс необходимость освобождать память выделенную динамически через оператор delete.
57. kalyaka 493 28.11.18 22:19 Сейчас в теме
(53) Действительно, здесь в примере закралась ошибка.
Пример должен был демонстрировать одинаковый синтаксис в языках программирования. Для примера возьмем в C++, Java/C# следующую синтаксическую конструкцию:
MyClass myClass;
В языке C++ она будет означать конструирование объекта, а в языках Java/C# - неинициализированный объект типа null. В 1-ом случае можно продолжать работать с объектом, а во 2-ом нужно вначале сконструировать объект:
myClass = new MyClass();
и только потом с ним работать.
69. Vovan1975 14 29.11.18 12:43 Сейчас в теме
в общем в статье ответа на вопрос "как изучать" не нашел
ответа на вопрос "как применять" не нашел.

О чем статья то?
triviumfan; +1 Ответить
72. alex_bitti 117 29.11.18 13:37 Сейчас в теме
(69) кто то нашел пирамиду перевернутую в сети и решил по своему разумению вставить туда языки)) причем ключевое слово "своему"
Оставьте свое сообщение