Здравствуйте, Serginio1, Вы писали:
_>>Затем, что все тормоза 1C следуют из этого. Но и основные преимущества (DSL) тоже происходят из этого же. S> Из чего? Из-за того, что интерпритатор медленнее компилятора.
Нуу что-то в этом роде. Кстати, я уже говорил, что тот же JS не так уж сильно уступает в скорости Java/C# благодаря его JIT'у и при этом внешне это не отличается от работы интерпретатора (нет никакой компиляции в промежуточный байт-код). Так что теоретически это поправимо (для того же Питона существует PyPy), но для это авторам надо основательно поработать... )
_>>И я очень сомневаюсь, что какие-то профильные задачи решаются похоже на C# и 1C. Озвучь задачи тогда уж... Может это не профильные задачи 1C, а что-то Обычное? ) Тогда оно и на C++ будет выглядеть тривиально. S> Я тебе уже приводил Microsoft Dynamics CRM
Ну во-первых CRM — это по сути просто БД для маркетинга. Причём тут 1C или вообще ERP?
_>>Сомнительно) Озвучь ка эти самые задачи... S> Оооо ты не знаешь задачи 1С? Тогда сложно объяснять. На самом деле 1С и прочие системы имеют свой язык прежде всего, что бы на них зарабатывать. Когда они создавались C# был еще в так же как TS vs JS. S>Как я тебе показывал ссылки есть некая иерархия классов Справочники,документы, регистры сведений,оборотов, остатков, Константы, Планы счетов итд S>Я формирую аналогичные классы на C# только разумеется без модулей объектов. S>Которые также можно написать. Некоторые люди даже переводят из одного языка в другой. https://infostart.ru/public/321282/ S>В свое время народ пытался сделать убийцу 1С.
По сути ты говоришь, что теоретически можно написать новый 1C, причём такой, чтобы C# служил и базовым и скриптовым языком. Осталось "всего лишь" реализовать всю эту функциональность... Я правильно понял? )
Здравствуйте, Serginio1, Вы писали:
_>>А где кто-то говорил, что в задачах 1C нужна скорость? ) S> Она нужна и очень. Пока ниша 1С это мелкий и средний бизнес. А для выхода на компании от 1000 пользователей скорости уже не хватает. S>А там несколько и суммы другие. Прежде всего поддержка
Насколько я знаю для больших компаний полно своих продуктов. Причём как иностранных, так и наших. )
Здравствуйте, ·, Вы писали:
·>Нет, это просто языки разного уровня. Ровно то же самое можно сказать заменив Java/C# -> C++, C++ -> ассемблер.
При увеличение уровня обычно увеличивается уровень абстракции. А в случае перехода C++ -> Java/C# мы наоборот видим упрощение. Так что ничего подобного. Другой уровень — это например Пролог или какие-нибудь DSL'и. )
Здравствуйте, ·, Вы писали:
_>>·>Затем что в Джаве эта проблема решена. Такого типа некорректный код — невозможен. Это является сильным преимуществом в некоторых ситуациях. _>>И в Java и в C++ будет одинаковый расклад для таких ситуаций — исключение (правда в C++ системное, а не родное). _>>
delete x; x=nullptr;
x->v=1;
_>>
x=null;
x.v=1;
·>Неправда. Будет не исключение, а undefined behaviour, в дебаг-моде в лучшем случае может и грохнется. А если учесть всякие кастомные аллокаторы...
Undefined behaviour это по стандарту языка, без учёта работы ОС. Ну т.е. да, для каких-нибудь микроконтроллеров там действительно будет порча памяти, но на этих МК такие вещи как Java/C# вообще не живут. А в любой современной ОС мы получим соответствующее исключение.
P.S. Ну и да, не забываем, что это мы тут развлекаемся обсуждением заведомо некорректного кода. ))) Типа а вот если мы специально подставим компилятор вот так, то в каком языке какие ошибки будут... ))) В реальном коде такое естественно не встречается.
P.P.S. Я там в предыдущем сообщение опечатку сделал (типа из-за симметрии 2 строки на 2 строки) — сейчас исправил. )
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Serginio1, Вы писали:
_>>>Затем, что все тормоза 1C следуют из этого. Но и основные преимущества (DSL) тоже происходят из этого же. S>> Из чего? Из-за того, что интерпритатор медленнее компилятора.
_>Нуу что-то в этом роде. Кстати, я уже говорил, что тот же JS не так уж сильно уступает в скорости Java/C# благодаря его JIT'у и при этом внешне это не отличается от работы интерпретатора (нет никакой компиляции в промежуточный байт-код). Так что теоретически это поправимо (для того же Питона существует PyPy), но для это авторам надо основательно поработать... )
_>>>И я очень сомневаюсь, что какие-то профильные задачи решаются похоже на C# и 1C. Озвучь задачи тогда уж... Может это не профильные задачи 1C, а что-то Обычное? ) Тогда оно и на C++ будет выглядеть тривиально. S>> Я тебе уже приводил Microsoft Dynamics CRM
_>Ну во-первых CRM — это по сути просто БД для маркетинга. Причём тут 1C или вообще ERP?
БД этдельно, система отдельно.
Что такое Microsoft Dynamics CRM?
Microsoft Dynamics CRM — это наше бизнес-решение для управления отношениями с клиентами (CRM), которое помогает компаниям лучше продвигать и продавать свои продукты и услуги. Мы предоставляет извлекаемые из социальных сетей ценные сведения, бизнес-аналитику обеспечиваем производительность работы с помощью решений One Microsoft. Кроме того, мы предоставляем Microsoft Dynamics CRM в облаке, в локальной среде, а также в виде гибридной системы.
_>>>Сомнительно) Озвучь ка эти самые задачи... S>> Оооо ты не знаешь задачи 1С? Тогда сложно объяснять. На самом деле 1С и прочие системы имеют свой язык прежде всего, что бы на них зарабатывать. Когда они создавались C# был еще в так же как TS vs JS. S>>Как я тебе показывал ссылки есть некая иерархия классов Справочники,документы, регистры сведений,оборотов, остатков, Константы, Планы счетов итд S>>Я формирую аналогичные классы на C# только разумеется без модулей объектов. S>>Которые также можно написать. Некоторые люди даже переводят из одного языка в другой. https://infostart.ru/public/321282/ S>>В свое время народ пытался сделать убийцу 1С.
_>По сути ты говоришь, что теоретически можно написать новый 1C, причём такой, чтобы C# служил и базовым и скриптовым языком. Осталось "всего лишь" реализовать всю эту функциональность... Я правильно понял? )
Я говорю, о том, что на данном этапе можно использовать данные 1С с той же легкостью, с какой оно сделано на 1С.
Даже еще проще используя типизированный LInq. Еще раз C# vc 1C это так же как TS vs JS.
Вот например пример использования Net в 1С
Здравствуйте, ·, Вы писали:
_>>>>Да, всё верно. И я уверен что во всех случаях сделаю это лучше чем JIT. _>>·>Про все случаи я уверен, что нет. Просто устанешь и начнёшь лепить что-то дефолтное, забивая на эффективность. _>>Фокус в том, что дефолтное в C++ как раз и есть самое быстрое для 99% задач. ) ·>Это которое? Я ещё забыл варианты "MyClass[]", "MyClass*[]", все комбинации "xxx_ptr<vector<xxx_ptr<MyClass> >"
Дефолтное — это value type и контейнеры stl. Есть парочка редких случаев, когда применение этих инструментов приводит к не самому оптимальному кода (и тогда как раз делают всяческие кастомные аллокаторы и т.п.), но лично я на них натыкался исключительно в обсуждениях на форумах и т.п., а не в личной практике.
_>>·>А как же абстракция и прочие умные слова? Вместо простого "список объектов" начинаешь рассуждать как же оно будет в памяти, куча, стек, индирекции, индексы, указатели... И это чуть ли не для каждой строчки кода, а не для того 1% строчек где это действительно важно. _>>А что, разве не все программисты такое обдумывают на автомате в процессе проектирования? ·>А ты часто обдумываешь в какие регистры процессора какая переменная попадёт?
Совершенно не обдумываю, причём по разным причинам в двух разных случаях. В случае отсутствия необходимости в быстродействие (кстати в этом случае у меня скорее Питон в руках будет) понятно что не обдумываю потому что безразлично. А в случае необходимости высокого быстродействия и использования C++ тоже не обдумываю, потому как знаю, что оптимизатор современных компиляторов C++ создаст код лучше любого эксперта в ассемблере.
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Serginio1, Вы писали:
_>>>А где кто-то говорил, что в задачах 1C нужна скорость? ) S>> Она нужна и очень. Пока ниша 1С это мелкий и средний бизнес. А для выхода на компании от 1000 пользователей скорости уже не хватает. S>>А там несколько и суммы другие. Прежде всего поддержка
_>Насколько я знаю для больших компаний полно своих продуктов. Причём как иностранных, так и наших. )
И сколько они стоят? Сколько стоит поддержка итд. Я говорю о том, что на Net легко делать такие системы. Ничем не сложнее чем на скриптовых языках. Но скорость при этом будет приближаться к скорости C++. Или некий аналог TS на Net.
Дело в том, что в 1С клиентский код переводится в JS. Можно создать язык и систему классов для обеспечения кода как в Net так и его трансляция в JS.
Это уже существует DuoCode http://habrahabr.ru/company/enterra/blog/252079/
Я являюсь сторонником TS.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, ·, Вы писали:
_>>Ну если смотреть на этот список с точки зрения C++, то там вообще нет никаких извращений. Вполне нормальные архитектурные элементы не приводящие ни к каким ужасам. ·>"Извращения" это непривычный код, не так как учат в букварях.
Лично я не увидел в этом списке чего-то необычного, заставившего писать непривычный код.
·>Почитай, кстати там комменты — о том же рассуждают. Хорошо сказано: ·>
Java is a great platform none the less, but I think it’s biggest advantage is that ordinary business logic (90% of your code?) can still depend on GC and safety features and make use of highly tuned and tested libraries written with Unsafe. This is a great trade-off between getting the last 5% of perf and being productive. A trade-off that makes sense for a lot of people but a trade-off none the less. Writing complicated application code in C/C++ is a nightmare after all.
Рассуждения без аргументов не интересны. А если попробовать взглянуть на реальность, то "неожиданно" обнаруживается, что почти все самые сложные современные приложения написаны на C/C++. Причём не только системные, типа ОС, но самые пользовательские, типа браузеров.
_>>Если же взглянуть с точки зрения Java, то один пункт действительно становится извратом, реализация которого будет требовать страшного кода. Это пункт "Keep your reads sequential". Кстати как раз это мы обсуждали в соседнем сообщение. ·>И это ВНЕЗАПНО нужно делать и в плюсах, банальный vector<MyClass> может работать плохо, если, например, в классе куча полей, а тебя нужно последовательно читать только одно, вылезет structure of arrays и т.п.
Так а зачем я тогда буду делать такой MaClass? ))) Кстати, куча полей — это сколько? ) Ты в курсе размера линии кэша современных процессоров? )
_>>Из опыта каких компаний? ·>Упомянутых в топике. _>>Где java системы реалтаймого видео? ) ·>"«Ага!!!» — укоризненно сказали суровые сибирские плюсовики!" ·>даже не знаю что на такое возразить.
Ты похоже потерял контекст дискуссии — перечитай сообщения выше. )
Здравствуйте, Serginio1, Вы писали:
S>>> Я тебе уже приводил Microsoft Dynamics CRM _>>Ну во-первых CRM — это по сути просто БД для маркетинга. Причём тут 1C или вообще ERP? S> БД этдельно, система отдельно. S>...
Я в курсе что такое CRM))) И пока непонятно какое это имеет отношение к ERP.
_>>По сути ты говоришь, что теоретически можно написать новый 1C, причём такой, чтобы C# служил и базовым и скриптовым языком. Осталось "всего лишь" реализовать всю эту функциональность... Я правильно понял? ) S> Я говорю, о том, что на данном этапе можно использовать данные 1С с той же легкостью, с какой оно сделано на 1С. S>Даже еще проще используя типизированный LInq. Еще раз C# vc 1C это так же как TS vs JS. S>Вот например пример использования Net в 1С S>.. S>C# код мало отличается
Ты в этом примере демонстрируешь вообще другое. Возможность вызова .net кода из 1C. Ну так понятно что с этим нет проблем, если в 1C это специально предусмотрели. И с другими языками/платформами может быть аналогично. Непонятно что ты этим хотел показать.
Здравствуйте, Serginio1, Вы писали:
_>>Насколько я знаю для больших компаний полно своих продуктов. Причём как иностранных, так и наших. ) S> И сколько они стоят? Сколько стоит поддержка итд. Я говорю о том, что на Net легко делать такие системы. Ничем не сложнее чем на скриптовых языках. Но скорость при этом будет приближаться к скорости C++. Или некий аналог TS на Net.
В принципе это верное утверждение. Осталось только два нюанса:
1. Собственно сделать такую систему (т.е. переписать эти тонны скучного кода из 1C).
2. Убедиться что это кому-то надо. Т.е. проверить, что есть ещё много народа, который считает, что программировать эти дела на C# удобнее чем на языке 1C.
S>Дело в том, что в 1С клиентский код переводится в JS. Можно создать язык и систему классов для обеспечения кода как в Net так и его трансляция в JS. S>Это уже существует DuoCode http://habrahabr.ru/company/enterra/blog/252079/ S>Я являюсь сторонником TS.
А откуда в данном обсуждение взялся JS? ) Его ты куда хочешь тут воткнуть? )
Здравствуйте, alex_public, Вы писали:
_>S>>Вот например пример использования Net в 1С S>>.. S>>C# код мало отличается
_>Ты в этом примере демонстрируешь вообще другое. Возможность вызова .net кода из 1C. Ну так понятно что с этим нет проблем, если в 1C это специально предусмотрели. И с другими языками/платформами может быть аналогично. Непонятно что ты этим хотел показать.
Нет это не в 1С предусмотрели, а в Net. http://infostart.ru/public/238584/
А вот теперь покажи как можно использовать классы С++ раз это можно сделать аналогично.
Я к тому, что написать код аналогично 1С на C# нет проблем.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Serginio1, Вы писали:
_>>>Насколько я знаю для больших компаний полно своих продуктов. Причём как иностранных, так и наших. ) S>> И сколько они стоят? Сколько стоит поддержка итд. Я говорю о том, что на Net легко делать такие системы. Ничем не сложнее чем на скриптовых языках. Но скорость при этом будет приближаться к скорости C++. Или некий аналог TS на Net.
_>В принципе это верное утверждение. Осталось только два нюанса:
_>1. Собственно сделать такую систему (т.е. переписать эти тонны скучного кода из 1C). _>2. Убедиться что это кому-то надо. Т.е. проверить, что есть ещё много народа, который считает, что программировать эти дела на C# удобнее чем на языке 1C.
Ну там полно говногода, который тянется от версии к версии. По сути 1С переходя на Управляемые Формы переписывало заново практически весь функционал.
В этом нет ничего страшного. А вот дивиденды можно нехилые срубить.
S>>Дело в том, что в 1С клиентский код переводится в JS. Можно создать язык и систему классов для обеспечения кода как в Net так и его трансляция в JS. S>>Это уже существует DuoCode http://habrahabr.ru/company/enterra/blog/252079/ S>>Я являюсь сторонником TS.
_>А откуда в данном обсуждение взялся JS? ) Его ты куда хочешь тут воткнуть? )
В вэб клиента. Например в 1С в одном модуле ты можешь писать одновременно клиентский и серверный код. При этом клиентский код сильно ограничен.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
_>>Ты в этом примере демонстрируешь вообще другое. Возможность вызова .net кода из 1C. Ну так понятно что с этим нет проблем, если в 1C это специально предусмотрели. И с другими языками/платформами может быть аналогично. Непонятно что ты этим хотел показать. S> Нет это не в 1С предусмотрели, а в Net. http://infostart.ru/public/238584/ S>А вот теперь покажи как можно использовать классы С++ раз это можно сделать аналогично. S>Я к тому, что написать код аналогично 1С на C# нет проблем.
Аааа, так оно ещё и через COM это делается... ) Тогда уж точно никакой разницы с другими языками нет, причём уже прямо сейчас. Т.е. банально реализуем соответствующий COM интерфейс и без проблем используем его в 1C. Не знаю правда зачем, но делается это тривиально. )))
Здравствуйте, Serginio1, Вы писали:
_>>В принципе это верное утверждение. Осталось только два нюанса: _>>1. Собственно сделать такую систему (т.е. переписать эти тонны скучного кода из 1C). _>>2. Убедиться что это кому-то надо. Т.е. проверить, что есть ещё много народа, который считает, что программировать эти дела на C# удобнее чем на языке 1C. S> Ну там полно говногода, который тянется от версии к версии. По сути 1С переходя на Управляемые Формы переписывало заново практически весь функционал. S>В этом нет ничего страшного. А вот дивиденды можно нехилые срубить.
Нуу так вперёд.
Кстати, пока что активно завоёвывают рынок всяческие онлайн бухгалтерии (со сдачей отчётности в налоговую онлайн) и т.п. Так что 1C угрожают скорее отсюда. И да, та, которой пользуюсь я, написана как раз на C#. Только это совсем другое решение, без всяких там скриптов и прочей кастомизации. Т.е. это полностью готовое решение в виде онлайн-сервиса, где только кликают мышкой.
А вот жирные продукты для больших корпорации пока в безопасности — там вряд ли кто настроен переходить на онлайн-сервисы. )))
_>>А откуда в данном обсуждение взялся JS? ) Его ты куда хочешь тут воткнуть? ) S> В вэб клиента. Например в 1С в одном модуле ты можешь писать одновременно клиентский и серверный код. При этом клиентский код сильно ограничен.
А ну да, если для веб-интерфейса, то это понятно. Это неизбежно во всех решениях на всех языках из-за текущей ситуации в браузерах. )
Здравствуйте, alex_public, Вы писали:
S>>В этом нет ничего страшного. А вот дивиденды можно нехилые срубить.
_>Нуу так вперёд.
Я делаю все, что могу. Во всяком случае пытаюсь плыть против течения. _>Кстати, пока что активно завоёвывают рынок всяческие онлайн бухгалтерии (со сдачей отчётности в налоговую онлайн) и т.п. Так что 1C угрожают скорее отсюда. И да, та, которой пользуюсь я, написана как раз на C#. Только это совсем другое решение, без всяких там скриптов и прочей кастомизации. Т.е. это полностью готовое решение в виде онлайн-сервиса, где только кликают мышкой.
Так везде тыкают мышкой. Что ты имеешь под понятием скрипты? А в 1С есть некоторый набор конфигураций. А бухгалтерия практически одна с небольшими изменения ми для упрощенки. Обычно делают обмен между заточенной по производство программой и бухгалтерией которая соответствует текущему законодательству. Кстати 1С больше зарабатывает не на 1С самой а на поддержке в виде дисков ИТС.
В 1С очень продвинутая генерация отчетов СКД http://infostart.ru/public/181176/
Кстати это в тему динамических запросов, где клиент может сам менять группировки, ограничения итд.
_>А вот жирные продукты для больших корпорации пока в безопасности — там вряд ли кто настроен переходить на онлайн-сервисы. )))
_>>>А откуда в данном обсуждение взялся JS? ) Его ты куда хочешь тут воткнуть? ) S>> В вэб клиента. Например в 1С в одном модуле ты можешь писать одновременно клиентский и серверный код. При этом клиентский код сильно ограничен.
_>А ну да, если для веб-интерфейса, то это понятно. Это неизбежно во всех решениях на всех языках из-за текущей ситуации в браузерах. )
Посмотрим куда рынок двинется. В любом случае на хлебушек с маслом заработать не проблема
А хочется, чего то прорывного, и его применение.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, alex_public, Вы писали:
_>>>Если же взглянуть с точки зрения Java, то один пункт действительно становится извратом, реализация которого будет требовать страшного кода. Это пункт "Keep your reads sequential". Кстати как раз это мы обсуждали в соседнем сообщение. _>·>И это ВНЕЗАПНО нужно делать и в плюсах, банальный vector<MyClass> может работать плохо, если, например, в классе куча полей, а тебя нужно последовательно читать только одно, вылезет structure of arrays и т.п. _>Так а зачем я тогда буду делать такой MaClass? )))
1. Для группировки связанных по смыслу полей в одну сущность.
2. В других местах может быть оптимальнее именно vector<MyClass>
_>Кстати, куча полей — это сколько? ) Ты в курсе размера линии кэша современных процессоров? )
Смысл как раз в том, чтобы грузить в сумме меньше кэш линий при линейном обходе. И при применении structure of arrays это получится в тех случаях, когда размер интересующего поля (+alignment) не кратен размеру кэш линии — то есть очень часто (правда с разной эффективностью).
На C++ я делал такую трансформацию с помощью Boost.Fusion: на входе тип структуры — на выходе специальный контейнер, внутри которого несколько векторов, а снаружи он подражает vector<MyStruct>. Например при доступе по индексу возвращается структура с ссылками на поля (то есть внешне выглядит как объект исходной структуры), и если при линейном обходе используются только некоторые из всех полей из этой структуры со ссылками, то это факту выраждается в обход соответствующих внутренних массивов, не затрагивая массивы неиспользуемых полей.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
I>>Я про количество и глубину, а не порядок вызова.
EP>Глубина тоже никак не меняется от введения этой подстраховки
Браво, капитан, глубина не изменится, потому что граф объектов будет тем же самым.
Здравствуйте, ·, Вы писали:
I>>·>Enterprise apps, web apps, finance, IDE в конце концов. I>>Кроме finance, С++ уже давно ушел из этих областей, там нет ·>Не "ушел" а тупо не взлетел. Взлетали всякие бейсики, перлы, питоны, пхп, и прочее.
Все эти вещи когда то писали на Си/С++. Питон, перл, пхп — все это выстрелило уже после того, как С++ оттуда ушел.
I>>IDE и по сей день пишутся на плюсах. ·>Eclipse? IntelliJ? Да даже Студию уже на # переписывают.
Это единственные IDE что ли ?
I>> finance — в HFT плюсы в полный рост. ·>Наравне с Java.
Джава в роли догоняющего.
I>>Off-heap и есть архитектура. Все что ты выделяешь теперь, надо делать через этот off-heap ·>Да какая архитектура блин. Вместо "MyObj obj = new MyObj()" пишешь "MyObj obj = newMyObj()", в общем-то и вся разница по факту.
По факту запрещено многие вещи вызывать именно из за этого ограничения.
Здравствуйте, Ikemefula, Вы писали:
I>>>Я про количество и глубину, а не порядок вызова. EP>>Глубина тоже никак не меняется от введения этой подстраховки I>Браво, капитан, глубина не изменится, потому что граф объектов будет тем же самым.
Значит весь оверхед от случаев где ref-counting это исключительно подстраховка — это inc/dec (которых на C++11 существенно меньше). О чём я и говорил
I>Вобщем, мне стало скучно.
Здравствуйте, alex_public, Вы писали:
_>·>Не понял. Скажем, установка affinity для потока — делаешь через JNI-вызов ядерной функции. Реализовывать ничего не надо.
Кстати, если интересно, можете посмотреть какие "извращения java" сейчас популярны в LMAX. А то всякие offheap и байт-буферы уже устарели https://www.youtube.com/watch?v=-6nrhSdu--s
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай