Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Разработка информационных систем Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 .. 52   вперед  Ctrl
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
Что вы понимаете под ООП? Классы есть и их можно развивать в разные стороны. Хотя я не знаю, как хорошо спроектировать объектную систему. По мне, они все плохи. Скорее всего, на начальном этапе будут "записи" с одиночным наследованием и с мультиметодами. Мультиметоды можно будет специализировать по любому типу, включая встроенные, а также по значениям переменных (т.е. для значения данной глобальной переменной выполнить особое тело метода).
В go интересный подход.

budden
3. Вы имеете в виду ORM?
Ну а зачем?
Все равно движки СУБД не позволяют "прозрачно" работать с другими базами.
Да и в целом для "правильной" работы с MSSQL, Oracle и скажем Postgres нужно использовать
совершенно разный подход /это разные вселенные у них общее только пресловутый термин SQL/

автор
5. в отличии от идеи 1с 8.2./8.3 не надо контекст передавать на сервер приложений на прямую, просто вызываете его, компилятор сам должен понимать где его выполнят
Не плохо, не плохо ...
budden
6. Моё мнение - хранимые процедуры нужны только там, где скорость критична
Как это на вас еще не напали с замечаниями, что бизнес логика должна быть на сервере и все в том же духе.
Судя по вашим ответам намечается интересный язык /или технология?/
29 ноя 15, 09:08    [18487305]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
skyANA
А можете конкретный пример привести того, что Вы под rapid системой понимаете?
1C
29 ноя 15, 09:08    [18487306]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26740
Владимир2012
skyANA
А можете конкретный пример привести того, что Вы под rapid системой понимаете?
1C

И как в 1C построить цикл: Требования -> Дизайн -> Разработка -> Тестирование -> Использование (оценка, обратная связь) -> Требования... ?
29 ноя 15, 09:19    [18487314]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

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

Малыш и карлсон по телевизору показывают жуликов
29 ноя 15, 09:21    [18487317]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Naf
Member

Откуда: Москва
Сообщений: 2693
budden
автор
а я сильно ЗА:
но мое видение должно быть учтено:
1. язык должен быть ООП и желательно ФП
2. и со статической и с динамической типизацией
3. система должна поддерживать непосредственную связь с БД как в 1С: строим в БД сущность, она появляется и в объектах, но ее можно переопределить/перекрыть
4. составные типы только из ссылочных состоят
5. в отличии от идеи 1с 8.2./8.3 не надо контекст передавать на сервер приложений на прямую, просто вызываете его, компилятор сам должен понимать где его выполнять
6. главное! часть логики (проведения документов особенно) компилируется на СУБД в хранимые процедуры и триггеры и незасталяют данные перемещать по сетки
7. в связи с этим код должен быть универсальным, как для двузвенной архитектуре, так и для трезвенной
8. отсюда: код написанный на клиенте всегда компилирутя, если даже не выполняется на нем, но выполняется на сервере (приложений или субд)
ну пока все, пишите в личку, отвечу

Вы в теории за или готовы приложить руку? Давайте в теме, если не трудно, а не в личке.
1. ФП будет в какой-то степени (функции первого класса, замыкания). Думается, что с распространением JS к замыканиям народ более-менее привык. Что именно вам нужно от ФП? Что вы понимаете под ООП? Классы есть и их можно развивать в разные стороны. Хотя я не знаю, как хорошо спроектировать объектную систему. По мне, они все плохи. Скорее всего, на начальном этапе будут "записи" с одиночным наследованием и с мультиметодами. Мультиметоды можно будет специализировать по любому типу, включая встроенные, а также по значениям переменных (т.е. для значения данной глобальной переменной выполнить особое тело метода). Но я думаю, не слишком ли и этого много.
2. Да.
3. Вы имеете в виду ORM? Это вопрос библиотек, к языку не относится. В язык нетрудно добавить нужные конструкции (например, определить для данного типа оператор "точка", который выбирает поле по имени, как в 1сpp в типе "запись" или "стркутура" - забыл название).
4. Не понял. Имеется в виду, что нет как в С++ class a { b; } , где b - это тоже класс? Наверное, да.
5. Тут я не в теме, как сделано в 1С.
6. Моё мнение - хранимые процедуры нужны только там, где скорость критична. Потому что их тяжело отлаживать, а делать это в реальной жизни всё равно придётся. Для остальных случаев есть трёхзвенная архитектура. Я на прошлой работе долго пытался всё сделать в двухзвенке на хрпр (Firebird), но потом понял, что это тупик, сделал третье звено и стало гораздо лучше. Лично я писать транслятор на язык хрпр в обозримом будущем не планирую. Однако инфраструктура компилятора будет открыта, язык простой. Ничто не мешает вам попробовать написать кодогенератор для бекенда T-SQL или аналогичного.
7. Написать клиента можно будет на том же языке, что и сервер приложений - в этом нет проблемы. В двухзвенной архитектуре клиент может выполнять ту же роль, что сервер приложений в трёхзвенной. Но это вопрос не языка программирования, а скорее архитектуры. Я разрабатываю пока что язык, а не среду разработки учётных приложений. От языка требуется лишь наличие примитивов (например, примитивов синхронизации).
8. Выполняется там же, где компилируется. Нет технологической возможности передавать исполняемый код в другое место. Но можно будет заставить сервер приложений сгенерировать код, отправленный ему в виде строки, скомпилировать его на ходу и выполнить.


Прочитал ответ и забыл:
язык, раз уж он на взаимодействии с БД основан, должен имет констуркции встроенного SQL общего вида: select, insert, update, delete
Тогда можно писать как
select ...
from ...
where ID=MyVar 

так и более функционально:
select ...
from ...
where foo(ID)


1. ООП: Абстарктные расширямые сущности должны быть не науровни ядра, а на уровне библиотеки, которые можно расширить
2. по опыту 1С статическая типизация хороша в бизнес-логике:верификация данных, агрегация; динамическая в отчетах
3. если язык основан на работе с БД, то такая возможность считаю должна быть включена
4. Нет, в 1С составной тип это когда поле таблицы может быть, например, строкой длины 120 или ссылками вот на эти два справочника, реализовано через поля "семафоры типов"
5. Ну как так? вы делаете аналог 1С и не знаете? В 1С не возможно из события формы клиента обратить к серверу, надо напрямую контекст данных передать, мне кажется на это способен компилятор (это кстати было главным отвращением новой идеи тонкого клиента1С: написания тупого ручного кода)
6. В дебаг режиме хранимые процедуры могут выполняться эмулируясь простыми запросами на клиенте, но это довольно скользкий вопрос, согласен
7 и 8: это все по пункту 5. Мы пишем код в клиентском событии, а сервер сам решает, где его выполнить

Готов приложить руку, я неплохо знаком с 1С и ее внутренностями. В качестве разработки я бы выбрал Qt С++
29 ноя 15, 11:24    [18487400]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Shuhard
budden
Не знаю статус этой технологии под 8-кой.

http://v8.1c.ru/overview/Term_000000795.htm
включая update , delete и insert

Отлично! А можно ли управлять транзакциями?
29 ноя 15, 11:57    [18487457]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Naf
язык, раз уж он на взаимодействии с БД основан, должен имет констуркции встроенного SQL общего вида: select, insert, update, delete. Тогда можно писать как...

Я про это писал уже. Повторить проще, чем найти. Здесь есть такие аспекты:
1. Синтаксис, чтобы не нужно было эскейпить кавычки внутри запроса. Это однозначно будет сделано и будет поддержка со стороны среды. И будет ещё сахар для SQL. Есть успешный опыт подобной разработки.
2. Подстановка параметров из переменных языка, подготовленные запросы. Подстановка параметров из переменных языка - да. Подготовленные запросы - для Postgres будет, но это больше зависит от библиотеки.
3. Контроль корректности запроса во время компиляции. Сделать легко, но это замедляет компиляцию. Видимо, должен быть флаг для компилятора.
4. Генерация локальных переменных по запросу:
for select * from tbl into myrec do 
  ... 
enddo 

Генерируется запись myrec с полями, соответствующими полям таблицы tbl, и компилятор проверяет имена и типы полей. Сделать можно и я так делал, но это замедляет компиляцию. Я не вынес однозначного суждения, хорошо это или плохо. Для очень большого проекта время компиляции таких конструкций может стать неприемлемым. Видимо, не нужно это делать для 1.0. Можно сделать облегчённый вариант для случая, когда поля перечислены явно - понадобится разбор части запроса между select и from, это вроде нетрудно. Типизация будет динамическая.

(про ORM) 3. если язык основан на работе с БД, то такая возможность считаю должна быть включена

Язык не основан на работе с БД, а всего лишь допускает её. Язык общего назначения. Если тебе это нужно, можно обсудить, какой функционал нужно включить в компилятор, чтобы это можно было сделать библиотекой. Я не вижу проблем здесь. Кстати, забыл упомянуть такую особенность, как относительную лёгкость добавления своих конструкций в язык. Правда, для этого знания одного языка будет недостаточно.

составные типы только из ссылочных состоят
...
Нет, в 1С составной тип это когда поле таблицы может быть, например, строкой длины 120 или ссылками вот на эти два справочника, реализовано через поля "семафоры типов"

Это то, что в C - union, а в Delphi - вариантная запись? Вы хотите, чтобы нельзя было сделать строку, а только ссылки? А зачем такое ограничение?

в отличии от идеи 1с 8.2./8.3 не надо контекст передавать на сервер приложений на прямую
...
5. Ну как так? вы делаете аналог 1С и не знаете? 

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

Я знаю, что 8-ке есть &НаСервере, но не вникал глубоко. Если тебе нужна конструкция языка, которая отбирает набор локальных переменных данной процедуры + заданный тобой перечень глобальных переменных, упаковывает её в пакет и отправляет в другое место, то это сделать не так сложно. Но сама задача не проста и выходит за рамки моей разработки. Экспресс-анализ:

Пример 1: хотим отправлять контекст в каждой итерации цикла. В контексте почти ничего не меняется, но зато есть глобальная переменная, в которой закачанный из локального файла мегабайт данных. А сервер за интернетом. Мы не хотим отправлять каждый раз мегабайт, значит, для эффективной работы нужен некий инкрементный механизм отправки.

Пример 2: мы отправили контекст на сервер, после чего продолжили работу, и сервер продолжил. Мы поменяли контекст и сервер поменял. Теперь мы хотим прочитать переменную из контекста. Что делать?

Пример 3: хотим отправить на сервер класс "открытый файл", который связан с локальным ресурсом. Это уже какой-то DCOM/CORBA получится в итоге, т.к. вызванные удалённо методы чтения из файла должны выполняться локально. Дальше плюс вопрос обработки ошибки потери соединения, вопрос синхронизации, вопрос должной деинициализации и начинает становиться неприятно сложно.

Сформулируй чёткие требования, какие примитивы тебе нужны в языке или в инфраструктуре компилятора.

6,7,8 - вопросы сводятся по сути к созданию более чем одного бекэнда. Один из них, как ты хочешь сделать, это процедурный SQL (T-SQL, PL/SQL и иже). Другой, как велят требования времени, это Javascript. Всё это выходит за рамки моих планов. Во-первых, я стараюсь здраво оценивать свои возможности. Во-вторых - это всё не так уж и гладко. Ещё примеры:

Пример 1. Обработка исключений. Семантика исключений в разных СУБД отличается. Например, в Firebird исключение приводит к откату транзакции до точки входа в окружающий блок begin..end. В MSSQL механизм исключений точно другой (не помню, какой).

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

Пример 2. Обработка транзакций. В Firebird ты не можешь управлять транзакциями внутри хранимой процедуры, в MSSQL, кажется, можешь. Т.е., для бекенда Firebird цикл на миллиард с транзакцией в каждой итерации компилятор будет вынужден разорвать код между сервером и клиентом. Если сервер далеко от клиента по сети, это может убить производительность.

Пример 3. Надёжность сети. Надёжность зависит от того, как распределён код между клиентом и сервером. Если распределением кода занят компилятор, то ты по исходнику даже не увидишь, где у тебя проблема с надёжностью. Будет казаться, что строчка безобидна, например, а=b, а на самом деле окажется, что она требует запроса по сети и нужно предусмотреть возможность разрыва соединения. Игнорирование угрозы чревато зависанием всей системы.

Готов приложить руку, я неплохо знаком с 1С и ее внутренностями. В качестве разработки я бы выбрал Qt С++

С++ однозначно нет, Qt - пока что нет, после версии 1.0 можно вернуться к вопросу.

Причины (для информации, а не для спора) :

С++: медленно компилируется, динамическая замена кода крайне затруднена, не поддерживает сборку мусора, не несёт на борту компилятор, ненадёжен.
Qt: тяжеловесна. Но более страшно то, что она постоянно меняется.

Если хочешь присоединяться, тебе придётся освоить те средства, которые я использую.
Но знай, что они весьма маргинальны и не в моде.
29 ноя 15, 13:19    [18487549]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
ФОрматирование плохое, повторяю:

Naf
язык, раз уж он на взаимодействии с БД основан, должен имет констуркции встроенного SQL
общего вида: select, insert, update, delete. Тогда можно писать как...


Я про это писал уже. Повторить проще, чем найти. Здесь есть такие аспекты:
1. Синтаксис, чтобы не нужно было эскейпить кавычки внутри запроса. Это однозначно будет сделано и будет
поддержка со стороны среды. И будет ещё сахар для SQL. Есть успешный опыт подобной разработки.
2. Подстановка параметров из переменных языка, подготовленные запросы. Подстановка параметров
из переменных языка - да. Подготовленные запросы - для Postgres будет, но это больше зависит от библиотеки.
3. Контроль корректности запроса во время компиляции. Сделать легко, но это замедляет компиляцию.
Видимо, должен быть флаг для компилятора.
4. Генерация локальных переменных по запросу:

for select * from tbl into myrec do 
  ... 
enddo 


Генерируется запись myrec с полями, соответствующими полям таблицы tbl, и компилятор проверяет имена
и типы полей. Сделать можно и я так делал, но это замедляет компиляцию. Я не вынес однозначного суждения,
хорошо это или плохо. Для очень большого проекта время компиляции таких конструкций может стать
неприемлемым. Видимо, не нужно это делать для 1.0. Можно сделать облегчённый вариант для случая,
когда поля перечислены явно - понадобится разбор части запроса между select и from, это вроде нетрудно.
Типизация будет динамическая.

Naf
(про ORM) 3. если язык основан на работе с БД, то такая возможность считаю должна быть включена


Язык не основан на работе с БД, а всего лишь допускает её. Язык общего назначения. Если тебе это нужно,
можно обсудить, какой функционал нужно включить в компилятор, чтобы это можно было сделать библиотекой.
Я не вижу проблем здесь. Кстати, забыл упомянуть такую особенность, как относительную лёгкость
добавления своих конструкций в язык. Правда, для этого знания одного языка будет недостаточно.

Naf
составные типы только из ссылочных состоят
...
Нет, в 1С составной тип это когда поле таблицы может быть, например, строкой длины 120 или
ссылками вот на эти два справочника, реализовано через поля "семафоры типов"


Это то, что в C - union, а в Delphi - вариантная запись? Вы хотите, чтобы нельзя было
сделать строку, а только ссылки? А зачем такое ограничение?

Naf
в отличии от идеи 1с 8.2./8.3 не надо контекст передавать на сервер приложений на прямую
...
5. Ну как так? вы делаете аналог 1С и не знаете?


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

Я знаю, что 8-ке есть &НаСервере, но не вникал глубоко. Если тебе нужна конструкция языка,
которая отбирает набор локальных переменных данной процедуры + заданный тобой перечень
глобальных переменных, упаковывает её в пакет и отправляет в другое место, то это сделать
не так сложно. Но сама задача не проста и выходит за рамки моей разработки. Экспресс-анализ:

Пример 1: хотим отправлять контекст в каждой итерации цикла. В контексте почти ничего
не меняется, но зато есть глобальная переменная, в которой закачанный из локального файла
мегабайт данных. А сервер за интернетом. Мы не хотим отправлять каждый раз мегабайт, значит,
для эффективной работы нужен некий инкрементный механизм отправки.

Пример 2: мы отправили контекст на сервер, после чего продолжили работу, и сервер продолжил.
Мы поменяли контекст и сервер поменял. Теперь мы хотим прочитать переменную из контекста.
Что делать?

Пример 3: хотим отправить на сервер класс "открытый файл", который связан с локальным
ресурсом. Это уже какой-то DCOM/CORBA получится в итоге, т.к. вызванные удалённо методы
чтения из файла должны выполняться локально. Дальше плюс вопрос обработки ошибки
потери соединения, вопрос синхронизации, вопрос должной деинициализации и начинает
становиться неприятно сложно.

Сформулируй чёткие требования, какие примитивы тебе нужны в языке или в инфраструктуре компилятора.

6,7,8 - вопросы сводятся по сути к созданию более чем одного бекэнда. Один из них, как ты
хочешь сделать, это процедурный SQL (T-SQL, PL/SQL и иже). Другой, как велят требования
времени, это Javascript. Всё это выходит за рамки моих планов. Во-первых, я стараюсь здраво
оценивать свои возможности. Во-вторых - это всё не так уж и гладко. Ещё примеры:

Пример 1. Обработка исключений. Семантика исключений в разных СУБД отличается.
Например, в Firebird исключение приводит к откату транзакции до точки входа в окружающий
блок begin..end. В MSSQL механизм исключений точно другой (не помню, какой).

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

Пример 2. Обработка транзакций. В Firebird ты не можешь управлять транзакциями внутри
хранимой процедуры, в MSSQL, кажется, можешь. Т.е., для бекенда Firebird цикл на миллиард
с транзакцией в каждой итерации компилятор будет вынужден разорвать код между сервером
и клиентом. Если сервер далеко от клиента по сети, это может убить производительность.

Пример 3. Надёжность сети. Надёжность зависит от того, как распределён код между
клиентом и сервером. Если распределением кода занят компилятор, то ты по исходнику даже
не увидишь, где у тебя проблема с надёжностью. Будет казаться, что строчка безобидна,
например, а=b, а на самом деле окажется, что она требует запроса по сети и нужно предусмотреть
возможность разрыва соединения. Игнорирование угрозы чревато зависанием всей системы.

Naf
Готов приложить руку, я неплохо знаком с 1С и ее внутренностями. В качестве разработки
я бы выбрал Qt С++


С++ однозначно нет, Qt - пока что нет, после версии 1.0 можно вернуться к вопросу.

Причины (для информации, а не для спора) :

С++: медленно компилируется, динамическая замена кода крайне затруднена, не поддерживает
сборку мусора, не несёт на борту компилятор, ненадёжен.
Qt: тяжеловесна. Но более страшно то, что она постоянно меняется.

Если хочешь присоединяться, тебе придётся освоить те средства, которые я использую.
Но знай, что они весьма маргинальны и не в моде.
29 ноя 15, 13:25    [18487555]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Shuhard
Member

Откуда:
Сообщений: 4987
budden
Shuhard
пропущено...

http://v8.1c.ru/overview/Term_000000795.htm
включая update , delete и insert

Отлично! А можно ли управлять транзакциями?

ВнешнийИсточникДанныхМенеджер.<Имя внешнего источника>.НачатьТранзакцию (ExternalDataSourceManager.<Имя внешнего источника>.BeginTransaction)
ВнешнийИсточникДанныхМенеджер.<Имя внешнего источника> (ExternalDataSourceManager.<Имя внешнего источника>)
НачатьТранзакцию (BeginTransaction)
Синтаксис:

НачатьТранзакцию(<РежимБлокировок>, <УровеньИзоляции>)
Параметры:

<РежимБлокировок> (необязательный)

Тип: РежимУправленияБлокировкойДанных.
Установка параметра имеет смысл, если для свойства внешнего источника данных "Режим управления блокировкой данных" выбрано значение "Автоматический и Управляемый".
Если значение параметра Автоматический, то данная транзакция будет выполняться в режиме автоматических блокировок.
Если значение параметра Управляемый, то в данной транзакции будут выполняться управляемые блокировки.
Если к моменту вызова данного метода была начата транзакция, выполняющаяся в автоматическом режиме управления блокировками, то установка значения параметра Управляемый не приведет к изменению режима управления блокировками.
Если к моменту вызова данного метода была начата транзакция, выполняющаяся в управляемом режиме блокировок, то установка значения параметра Автоматический приведет к возникновению исключительной ситуации, которая может быть обработана конструкцией Попытка... Исключение... КонецПопытки.
Если для свойства конфигурации "Режим управления блокировкой данных" выбрано значение "Управляемый", то значение параметра по умолчанию Управляемый.
Значение по умолчанию: Автоматический.
<УровеньИзоляции> (необязательный)

Тип: УровеньИзоляцииТранзакций.
Параметр указывает необходимый уровень изоляции транзакции.
Если параметр установлен в Авто, то фактический уровень изоляции будет выбран на основании параметра РежимБлокировок, иначе будет выбран указанный уровень. Если данный уровень не поддерживается базой данных внешнего источника данных, то уровень будет автоматически повышен.
Значение по умолчанию: Авто.
Описание:

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

Доступность:

Сервер, толстый клиент, внешнее соединение.
См. также:

ВнешнийИсточникДанныхМенеджер, метод ЗафиксироватьТранзакцию
ВнешнийИсточникДанныхМенеджер, метод ОтменитьТранзакцию

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

Методическая информация
29 ноя 15, 14:22    [18487649]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Shuhard, можно было всё не копипастить а просто написать "да". Спасибо.
29 ноя 15, 16:02    [18487868]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Владимир2012
В go интересный подход.

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

Возможно, я неправ.

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

И ещё прочитав вот это, http://habrahabr.ru/post/243593/, не могу понять, если в каждом интерфейсе 1-2 метода, то
как мы передадим в функцию объект, если нам в функции нужен от него не 1-2 метода, а 3-4.
29 ноя 15, 16:29    [18487914]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
В плане минимализма неплохо, хотя отказ от наследования мне кажется экстремизмом.

В какой-то мере объекты go похожи на объекты 1С.
Ну вот смотри в 1С:
- имеем объекты определенные в конфигурации /грубо говоря структуры/;
- в модуля помещаем набор методов для работы с объектом

В go:
- определили структуры /объекты/;
- на структуры нацепляли методы;

И вариант используемого метода Find будет зависеть от типа используемого объекта /структуры/
Чем не а-ля 1С?

PS: Конечно могу ошибаться /так как на go не написал ни одной строчки/, но понимаю так как сказано выше.
29 ноя 15, 17:01    [18487997]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
Sorry за опячатку
Владимир2012
Ну вот смотри в 1С:
Должно быть: "Ну вот смотрите в 1С:"
29 ноя 15, 17:19    [18488049]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Владимир2012, это так во всех "ООП" языках, начиная от С++ и далее.
Однако в 1С есть местами наследование, например, конкретные виды документов могут добавлять поля к документу как таковому.
29 ноя 15, 17:25    [18488073]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
Однако в 1С есть местами наследование, например, конкретные виды документов могут добавлять поля к документу как таковому.
Обычно в ООП говорят - "Если у вас иерархия объектов выше (вот не помню 2 или 3 уровня) 2 уровня, то
что-то у вас, что-то не так в используемой архитектуре классов".
К чему говорю об этом?
В 1С вам сильно не достает классов?
Скорее всего нет.
Почему?
Потому что архитектура 1С хорошо приспособлена к определенному классу задач.
Вы какого-типа язык разрабатываете?
Универсальный или проблемно ориентированный?
Скорее всего это в какой-то мере является отправной точкой для проектирование архитектуры языка для
работы с объектами.
29 ноя 15, 17:42    [18488184]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26740
Владимир2012
Вы какого-типа язык разрабатываете?
Универсальный или проблемно ориентированный?
Выше он писал, что "Язык общего назначения".
29 ноя 15, 17:46    [18488200]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
Однако в 1С есть местами наследование, например, конкретные виды документов могут добавлять поля к документу как таковому
В том смысле того, что объекты 1С могут содержать ссылки на другие объекты?
29 ноя 15, 17:55    [18488234]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Владимир2012, в 1С предприятие 7.7 есть документ, а можно сделать документ приходная накладная, которая будет содержать все поля док-та и плюс ещё свои.

"Если у вас иерархия объектов выше (вот не помню 2 или 3 уровня) 2 уровня, то
что-то у вас, что-то не так в используемой архитектуре классов".


Это странно. То у нас классы универсальная система для описания всего на свете,
то у нас иерархия должна быть не глубже 3 уровней. Реальная жизнь-то уложится в 3 уровня?

Я разрабатываю унив. язык. Классы-не классы, а свои типы данных в языке необходимы.
Без них - да, плохо. Язык не годен для серьёзных задач.
29 ноя 15, 18:16    [18488279]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
Это странно. То у нас классы универсальная система для описания всего на свете,
то у нас иерархия должна быть не глубже 3 уровней. Реальная жизнь-то уложится в 3 уровня?
Конечно универсальный язык должен обеспечивать любую иерархию классов ...
Речь о том, что за частую программисты /часто и густо/ создают такую иерархию, что даже кошмарные сны в сравнение с ней - мультики
29 ноя 15, 18:52    [18488398]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
в 1С предприятие 7.7 есть документ, а можно сделать документ приходная накладная, которая будет содержать все поля док-та и плюс ещё свои.
Ну так это вам решать как будет представлена объектная модель в вашем языке.
Об некоторых требований вы уже сказали ... /но скорее всего это начальный уровень/.
В языке https://github.com/JuliaLang/julia/ разработчики взяли за основу http://www.hdfgroup.org/HDF5/ объектную модель.
Сделали над этими объектами свою обертку и вот вам объекты а-ля Matlab.
29 ноя 15, 19:11    [18488488]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
budden
это так во всех "ООП" языках, начиная от С++ и далее.
С 1С сравнил /конечно грубое сравнение/ потому, что ООП go гораздо больше похож на объекты 1С, чем скажем если сравнивать их с классами C++
29 ноя 15, 19:36    [18488560]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
Если не секрет.
Форма записи грамматики у вас как представлена /yacc, llvm, .../?
29 ноя 15, 20:07    [18488664]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Владимир2012, рекурсивный спуск.
29 ноя 15, 21:06    [18488844]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Владимир2012
Речь о том, что за частую программисты /часто и густо/ создают такую иерархию, что даже кошмарные сны в сравнение с ней - мультики

издержки профессии - борьба с копипастом кода. Всё оттуда.
30 ноя 15, 10:09    [18490295]     Ответить | Цитировать Сообщить модератору
 Re: Новый 1С - подобный язык и среда  [new]
budden
Member

Откуда:
Сообщений: 1060
Petro123, а я сейчас занимаюсь тем, что уничтожаю транслятор с языка 1С77. Нужен ли кому-нибудь такой транслятор? Он умеет переносить только программный код, конфигурацию не понимает. Объекты в 1С работают через позднее связывание, и транслятор тоже будет работать через позднее связывание.
30 ноя 15, 10:42    [18490479]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 .. 52   вперед  Ctrl
Все форумы / Разработка информационных систем Ответить