Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
 omniPascal - что за чудо?  [new]
Mikhail Tchervonenko
Member

Откуда: Münster, Germany
Сообщений: 1543
Всем доброго времени суток!

сегодня в очередной раз наткнулся тут на упоминание о omniPascal, кто то его уже пробовал? Какие впечатления?
Чем это лучше/хуже родной среды от delphi или lazarus и в чём смысл сего творения?

Спасибо.
11 июн 18, 12:46    [21484514]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6036
Mikhail Tchervonenko,

А тебе назачем он нужен?
11 июн 18, 13:13    [21484537]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Mikhail Tchervonenko
Member

Откуда: Münster, Germany
Сообщений: 1543
DarkMaster
Mikhail Tchervonenko,

А тебе назачем он нужен?


Долгое время работал в Visual Studio, интересно насколько авторы далеко зашли.
Какие преимущества даёт использование OmniPascal в студии, особенно в сравнении с родной средой.
11 июн 18, 13:34    [21484543]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВасЁкПупкин
Guest
действительно! на официальной сайте же нет никакой информации. почему бы не начать пустой треп на форуме
11 июн 18, 13:39    [21484544]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3663
Ради прикола пробовал несколько лет назад, когда он только вышел. Не понравилось -- глючно, тормозно и малоиспользуемо для проекта. Хотя удобные фичи в редакторе от визуал студии там есть, которые не помешали бы и родной делфи.
11 июн 18, 14:31    [21484596]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10496
JaDi
Хотя удобные фичи в редакторе от визуал студии там есть, которые не помешали бы и родной делфи.
Я юзаю IDEA Intellij для Java. После нее RAD студия - верх убожества
11 июн 18, 16:04    [21484687]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
_Vasilisk_
Я юзаю IDEA Intellij для Java. После нее RAD студия - верх убожества
IDEA Intellij очень хороший IDE для Жабы.
И все бы хорошо, но только корявость самой Жабы никто не отменял.
Сама жаба-машина от Оракл с 8-ой версии и выше - да, это вещь!
Рвет все "эти ваши" прадедовские Дельфи и богомерзко-тормозные ДотНЕТ-ы как тузик грелку, и по скорости работы кода идет ноздря в ноздрю с хорошими С++ оптимизированными приложениями при этом еще и имея реальную, а не декларативную или притянутую за уши кроссплатформенность!
А вот саму Жабу со всеми ее многочисленными, как бы помягче, странными-особенностями нафиг-нафиг.

Котлин ( Kotlin ) - вот реальная альтернатива Жабы от тех же JetBrains.
Создан ребятами из Питера ( точнее из Кронштадта ).
Официально поддержан Google как новый основной язык для Андройд.
Испытал благотворное влияние Паскаля!!! ;) (сказалась предыдущая работа создателей на Borland )
Язык простой и лаконичный.
Подходит и для Десктопа в связке с Жабой-FX и для мобилок и для Веба.
Совместим с жабными библиотеками и пакетами и работает на тех же скоростных жаба-машинах.

Короче, у Kotlin есть все шансы существенно потеснить эти ваши покрытые столетним мхом былинные Дельфи, богомерзко-тормозные и прожорливые ДотНЕТ-ы и сомнительно-корявые в своей "стройной" архаичности Жабы.
12 июн 18, 01:33    [21485340]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
поглядел на котлин - прикольно.
дохнуло паскалем.
вот бы еще был бы он нечувствительным к регистру,
вообще было бы здорово.
а так опять херня((((
12 июн 18, 04:56    [21485376]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1369
JetBrains молодцы, хорошую платформу для IDE сделали

автор
вот бы еще был бы он нечувствительным к регистру,

а чем это плохо?
12 июн 18, 08:57    [21485451]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
Дегтярев Евгений
автор
вот бы еще был бы он нечувствительным к регистру,

а чем это плохо?
Почему плохо?
Иногда даже хорошо когда PascalCase с lowerCamelCase сочетаешь для разделения полей и параметров или имен свойств.

Но defecator просто дедушка старый уже. Глаза видят плохо. Ему таких тонкостей уже не разглядеть. Да и begin end ему в этим вопросе сподручнее чем фигурные скобки.
12 июн 18, 09:25    [21485475]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
Дегтярев Евгений
JetBrains молодцы, хорошую платформу для IDE сделали

автор
вот бы еще был бы он нечувствительным к регистру,

а чем это плохо?

регистронезависимость - это очень крутая штука.
Без неё весь текст программы превращается в месиво
12 июн 18, 09:32    [21485478]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
defecator
Дегтярев Евгений
JetBrains молодцы, хорошую платформу для IDE сделали

пропущено...

а чем это плохо?

регистронезависимость - это очень крутая штука.
Без неё весь текст программы превращается в месиво

defecator, а если серьезно, то тебе не пофиг со всякими современными средствами типа intellisense и прочее?

Или тебя эстетически возбуждает смотреть на всякие изыски типа первой заглавной Begin, Function, или внешний BEGIN END а внутренние begin end.
И каких только еще извращений с регистром не приходилось видеть на "этих ваших" Паскалях.
Чувствительность к регистру как раз позволяет перевести эстетство этих извращенцев в более конструктивное русло.
12 июн 18, 10:05    [21485492]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
Leonid
defecator
пропущено...

регистронезависимость - это очень крутая штука.
Без неё весь текст программы превращается в месиво

defecator, а если серьезно, то тебе не пофиг со всякими современными средствами типа intellisense и прочее?

Или тебя эстетически возбуждает смотреть на всякие изыски типа первой заглавной Begin, Function, или внешний BEGIN END а внутренние begin end.
И каких только еще извращений с регистром не приходилось видеть на "этих ваших" Паскалях.
Чувствительность к регистру как раз позволяет перевести эстетство этих извращенцев в более конструктивное русло.


одно дело ключевые слова, а другое - наименование процедур/переменных и т.д.
в регистроЗАвисимой народ не парится и всё хреначит нижним регистром,
а на выходе - визуальная каша.

Особенно, testVar и TestVar - пишутся одинаково, но вдруг оказываются разными переменными.
Тьфу

И не надо про интеллисенсе - это костыль
12 июн 18, 10:13    [21485497]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
defecator
одно дело ключевые слова, а другое - наименование процедур/переменных и т.д.
в регистроЗАвисимой народ не парится и всё хреначит нижним регистром,
а на выходе - визуальная каша.

Особенно, testVar и TestVar - пишутся одинаково, но вдруг оказываются разными переменными.
Тьфу

И не надо про интеллисенсе - это костыль
Если сам именуешь процедуры - то делай как хочешь. Если в компании - как правило есть строгие правила, за отступление от которых как минимум следует "ай-ай-ай" и битье по заду.
А если, например, про Жабу, где методы должны начинаться с нижнего регистра и глагола - то это как раз хороший стиль, который визуально очень помогает и по смыслу сродни венгерской нотации.
Регистрозависимость - это есть хорошо. Просто ты не умеешь это правильно готовить.
12 июн 18, 10:19    [21485507]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
L_argo
Member

Откуда:
Сообщений: 301
defecator
одно дело ключевые слова, а другое - наименование процедур/переменных и т.д.
в регистроЗАвисимой народ не парится и всё хреначит нижним регистром,
а на выходе - визуальная каша.

Особенно, testVar и TestVar - пишутся одинаково, но вдруг оказываются разными переменными.
Тьфу

И не надо про интеллисенсе - это костыль
+500

Если в компании - как правило есть строгие правила, за отступление от которых как минимум следует "ай-ай-ай"
Ну соблюдайте правила. Причем тут регистрозависимость ?
12 июн 18, 12:27    [21485731]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
Leonid
таких тонкостей уже не разглядеть. Да и begin end ему в этим вопросе сподручнее чем фигурные скобки.

Фигурные скобки намного хуже и НЕнагляднее, чем begin-end. Были придуманы для экономии места на кассете. Снижают наглядность вообще, а наглядность плохо форматированного кода - снижают на 99%.

РегистроНЕзависимость - попытка сделать процесс очень долгой компиляции с-подобных языков хоть чуточку быстрее. Порождает ужасные ошибки с "похожими" названиями идентификаторов.

"Так повелось". Это как в паскале String с 1.

defecator
в регистроЗАвисимой народ не парится и всё хреначит нижним регистром

Мне раньше часто приходилось и сейчас иногда приходится некоторые куски своего кода переводить на C. Поэтому даже в делфе пишу всегда sizeof и страдаю от этого :).
12 июн 18, 13:32    [21485834]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
YuRock
РегистроНЕзависимость - попытка сделать процесс очень долгой

Вот блин.
РегистроЗАвисимость.
12 июн 18, 13:32    [21485835]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6036
Если приходится писать на бумаге - я еще и 0 перечеркиваю. Автоматически.

P.S. Народ, вы вообще о чем сейчас? О регистрах символов, JVM, C vs Pascal, C#? Тред все дальше и дальше от темы уходит
12 июн 18, 13:46    [21485880]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
Я не знаю как кому, а лично мне интересно про Паскаль под Студию послушать. А не детсадовские разговоры про регистронезависимость. Может делом займёмся?
12 июн 18, 14:13    [21485944]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВасЁкПупкин
Guest
Плохому танцору и ноги мешают, завидно смотря на другого

Delphi компилятор все исходы (RTL, VCL, FMX, DexExpres, LMD, .... ) Может собрать за минуту.
Жертвуя хорошей оптимизацией. За то, быстро, и не регистрирозависимо
12 июн 18, 14:50    [21486022]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
ВасЁкПупкин
Жертвуя хорошей оптимизацией

Скорость компиляции паскаля высока не из-за того, что ради неё пожертвовали оптимизациями. Ни разу. А из-а отсутствия макросов и модульной структуры проекта.
12 июн 18, 14:53    [21486032]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
YuRock
ВасЁкПупкин
Жертвуя хорошей оптимизацией

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

что ? из-а отсутствия макросов и модульной структуры проекта ?
нет, из-за того, что паскаль-компилятор однопроходный, и не компилит лишнего
12 июн 18, 14:55    [21486037]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
C++ компилятор тоже может быть быстрый
Если над ним будет работать человек с головой, а не сообщество теоретиков
Собственно, насколько мне известно, ребята из Clang смогли выжать скорости за счёт итеративной разработки
12 июн 18, 15:04    [21486061]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
alekcvp
Member

Откуда:
Сообщений: 1091
defecator
и не компилит лишнего
Я ошибаюсь, или от object pascal'евского Smart-Linking'а остался минимум из-за нового RTTI, который теперь вообще публичные методы из объектов не выбрасывает ни при каких условиях?..
12 июн 18, 15:07    [21486070]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
alekcvp
defecator
и не компилит лишнего
Я ошибаюсь, или от object pascal'евского Smart-Linking'а остался минимум из-за нового RTTI, который теперь вообще публичные методы из объектов не выбрасывает ни при каких условиях?..

именно так. скатилось в УГ
12 июн 18, 15:09    [21486074]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
SOFT FOR YOU
C++ компилятор тоже может быть быстрый
Если над ним будет работать человек с головой, а не сообщество теоретиков
Собственно, насколько мне известно, ребята из Clang смогли выжать скорости за счёт итеративной разработки

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

Но ты можешь родить свой собственный самый быстрый в мире компилятор Си !
ты же величайший оптимизатор нашего времени !
12 июн 18, 15:11    [21486079]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
alekcvp,

Зависит от опций компилятора
Можно выставить режим, чтобы всё это не компилилось
12 июн 18, 15:12    [21486084]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10496
Leonid
IDEA Intellij очень хороший IDE для Жабы.
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

Я не работал в Вижуал Студии, но после Идеи Делфя выглядит убого. Это я сейчас только об IDE.

Про сами языки я молчу. Хотя те же лямбды в джаве сделаны на порядок проще
12 июн 18, 15:17    [21486100]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
_Vasilisk_
Leonid
IDEA Intellij очень хороший IDE для Жабы.
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

Я не работал в Вижуал Студии, но после Идеи Делфя выглядит убого. Это я сейчас только об IDE.

Про сами языки я молчу. Хотя те
борла же лямбды в джаве сделаны на порядок проще

в то время, когда создавался Delphi, всего этого не требовалось.
зато сделали интерфейс для сторонних плагинов.
12 июн 18, 15:21    [21486104]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
defecator
нет, из-за того, что паскаль-компилятор однопроходный, и не компилит лишнего

Это - следствие отсутствия макросов и модульной структуры проекта :)
12 июн 18, 15:27    [21486127]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
YuRock
defecator
нет, из-за того, что паскаль-компилятор однопроходный, и не компилит лишнего

Это - следствие отсутствия макросов и модульной структуры проекта :)

макросы вещь очень удобная, я категорически согласен на эту фичу в Дельфи !
12 июн 18, 15:31    [21486138]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
defecator
макросы вещь очень удобная, я категорически согласен на эту фичу в Дельфи !
Кто ж от такого откажется. Только поздно (касаемо Дельфи). В других паскалях - еще может быть. Например - в omniPascal :)
12 июн 18, 15:33    [21486145]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
Че вам инлайны не угодили вместо макросов?
12 июн 18, 15:38    [21486158]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
SOFT FOR YOU
Че вам инлайны не угодили вместо макросов?
Это другое. Инлайны тоже нужны. Макросы <> функции.
12 июн 18, 15:42    [21486168]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
YuRock
SOFT FOR YOU
Че вам инлайны не угодили вместо макросов?
Это другое. Инлайны тоже нужны. Макросы <> функции.

+100
великий оптимизатор не понимает разницу между макросами и инлайнами
12 июн 18, 15:45    [21486181]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
YuRock,

Спорный момент )
Праздный вопрос. Приведи пример, когда одно хорошо, а инлайном или константами не решается
12 июн 18, 15:47    [21486186]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator,

Ну так ты ни инлайнов, ни дженериков не знаешь. О чем с тобой говорить ))
12 июн 18, 15:48    [21486190]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
MaratIsk
Member

Откуда: Astana, Kazakhstan
Сообщений: 2402
_Vasilisk_
Leonid
IDEA Intellij очень хороший IDE для Жабы.
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

Я не работал в Вижуал Студии, но после Идеи Делфя выглядит убого. Это я сейчас только об IDE.

Про сами языки я молчу. Хотя те же лямбды в джаве сделаны на порядок проще


после Delphi я понял как убога IDEA :))
12 июн 18, 15:49    [21486193]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
SOFT FOR YOU
defecator,

Ну так ты ни инлайнов, ни дженериков не знаешь. О чем с тобой говорить ))

моё неприятие генериков не исключает того, что я их знаю.
12 июн 18, 15:49    [21486198]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВасЁкПупкин
Guest
SOFT FOR YOU
Че вам инлайны не угодили вместо макросов?


Запретить и расстрелять! Он не может и 1 строку заинлайнить, без оверхеда

Вот инлайн
+
---.pas.135: begin
006A0E68 55               push ebp
006A0E69 8BEC             mov ebp,esp
006A0E6B 83C4F8           add esp,-$08
006A0E6E 33C0             xor eax,eax
006A0E70 8945FC           mov [ebp-$04],eax
006A0E73 8B450C           mov eax,[ebp+$0c]
006A0E76 33D2             xor edx,edx
006A0E78 55               push ebp
006A0E79 68030F6A00       push $006a0f03
006A0E7E 64FF32           push dword ptr fs:[edx]
006A0E81 648922           mov fs:[edx],esp
---.pas.136: if TYPE(x) <> TT_STRING then
006A0E84 0FB65008         movzx edx,[eax+$08]
006A0E88 80FA06           cmp dl,$06
006A0E8B 740F             jz $006a0e9c
---.pas.137: x := ConvertType(x, TT_STRING);
006A0E8D 6A06             push $06
006A0E8F 50               push eax
006A0E90 A1D4C81F01       mov eax,[$011fc8d4]
006A0E95 8B00             mov eax,[eax]
006A0E97 FFD0             call eax
006A0E99 83C408           add esp,$08
---.pas.139: result := GetStrXXX(x);
006A0E9C 33D2             xor edx,edx
006A0E9E 55               push ebp
006A0E9F 68E60E6A00       push $006a0ee6
006A0EA4 64FF32           push dword ptr fs:[edx]
006A0EA7 648922           mov fs:[edx],esp
006A0EAA 8945F8           mov [ebp-$08],eax
006A0EAD 8D45FC           lea eax,[ebp-$04]
006A0EB0 8B55F8           mov edx,[ebp-$08]
006A0EB3 8B12             mov edx,[edx]
006A0EB5 83C214           add edx,$14
006A0EB8 83EA04           sub edx,$04
006A0EBB B9E9FD0000       mov ecx,$0000fde9
006A0EC0 E807B1D6FF       call @LStrFromPChar
006A0EC5 8B4508           mov eax,[ebp+$08]
006A0EC8 8B55FC           mov edx,[ebp-$04]
006A0ECB E828AED6FF       call @LStrAsg
006A0ED0 33C0             xor eax,eax
006A0ED2 5A               pop edx
006A0ED3 59               pop ecx
006A0ED4 59               pop ecx
006A0ED5 648910           mov fs:[eax],edx
006A0ED8 68ED0E6A00       push $006a0eed
006A0EDD 8D45FC           lea eax,[ebp-$04]
006A0EE0 E8B3A9D6FF       call @LStrClr
006A0EE5 C3               ret 
006A0EE6 E9659ED6FF       jmp @HandleFinally
006A0EEB EBF0             jmp $006a0edd
---.pas.141: end;
006A0EED 33C0             xor eax,eax
006A0EEF 5A               pop edx
006A0EF0 59               pop ecx
006A0EF1 59               pop ecx
006A0EF2 648910           mov fs:[eax],edx
006A0EF5 680A0F6A00       push $006a0f0a
006A0EFA 8D45FC           lea eax,[ebp-$04]
006A0EFD E896A9D6FF       call @LStrClr
006A0F02 C3               ret 
006A0F03 E9489ED6FF       jmp @HandleFinally
006A0F08 EBF0             jmp $006a0efa
006A0F0A 59               pop ecx
006A0F0B 59               pop ecx
006A0F0C 5D               pop ebp
006A0F0D C3               ret 
006A0F0E 8BC0             mov eax,eax



Вот без
+
---.pas.135: begin
006A0E68 55               push ebp
006A0E69 8BEC             mov ebp,esp
006A0E6B 53               push ebx
006A0E6C 8B5D0C           mov ebx,[ebp+$0c]
---.pas.136: if TYPE(x) <> TT_STRING then
006A0E6F 0FB64308         movzx eax,[ebx+$08]
006A0E73 3C06             cmp al,$06
006A0E75 7411             jz $006a0e88
---.pas.137: x := ConvertType(x, TT_STRING);
006A0E77 6A06             push $06
006A0E79 53               push ebx
006A0E7A A1D4C81F01       mov eax,[$011fc8d4]
006A0E7F 8B00             mov eax,[eax]
006A0E81 FFD0             call eax
006A0E83 83C408           add esp,$08
006A0E86 8BD8             mov ebx,eax
---.pas.139: result := PAnsiChar(NativeInt(@x.val) - 4);
006A0E88 8B4508           mov eax,[ebp+$08]
006A0E8B 8B13             mov edx,[ebx]
006A0E8D 83C214           add edx,$14
006A0E90 83EA04           sub edx,$04
006A0E93 B9E9FD0000       mov ecx,$0000fde9
006A0E98 E82FB1D6FF       call @LStrFromPChar
---.pas.140: end;
006A0E9D 5B               pop ebx
006A0E9E 5D               pop ebp
006A0E9F C3               ret 
12 июн 18, 16:12    [21486268]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
ВасЁкПупкин,

Ну если бездумно, Delphi не самый оптимальный компилятор. Почему ты думаешь, что с чисто гипотетическими макросами будет быстрее )
12 июн 18, 16:17    [21486284]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
SOFT FOR YOU
Праздный вопрос. Приведи пример, когда одно хорошо, а инлайном или константами не решается

Миллиард примеров. Когда надо - тогда и не решается.
Вот, например (может и не самый лучший и наглядный, но лучше - лень искать):
https://github.com/FirebirdSQL/firebird/blob/master/src/include/firebird/UdrCppEngine.h
использование:
https://github.com/FirebirdSQL/firebird/blob/master/examples/udr/Functions.cpp
12 июн 18, 16:17    [21486286]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВасЁкПупкин
Guest
SOFT FOR YOU
ВасЁкПупкин,

Ну если бездумно, Delphi не самый оптимальный компилятор. Почему ты думаешь, что с чисто гипотетическими макросами будет быстрее )


Потому что надо знать как работают макросы. Макросы, это str-replace на нужное значение

С ними ты получишь 100% код, который бы мог написать руками

Пример развёртывания макросов
cpp -P code2.h
12 июн 18, 16:22    [21486303]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
YuRock,

Я ничо не понял
Но справедливости ради признаю твою правоту :)
12 июн 18, 16:24    [21486308]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
SOFT FOR YOU
Ну так ты ни инлайнов, ни дженериков не знаешь
Благодаря дженерикам и лямбдам (в реализации делфи) просмотр современного делфевого кода вызывает у меня рвотный рефлекс.
Потому я и говорю, что делфи уже ни макросы не спасут, ни объекты в стеке, ничего. Язык убит (оригинальный делфи который (копирайт Borland и post-Borland), а у других паскалей есть шансы).
12 июн 18, 16:41    [21486354]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
alekcvp
Member

Откуда:
Сообщений: 1091
А что вы понимаете под лямбдами в дельфи?..
12 июн 18, 16:50    [21486373]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
alekcvp
А что вы понимаете под лямбдами в дельфи?..

Лично я - всё, что связано с этим
https://ru.wikipedia.org/wiki/Лямбда-выражение
12 июн 18, 16:57    [21486388]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
YuRock,

Нет знаю. Мне всё нравится. И дженерики, и лямбды
12 июн 18, 17:07    [21486407]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
SOFT FOR YOU
Нет знаю. Мне всё нравится. И дженерики, и лямбды
На вкус и цвет. Я про себя говорил.
12 июн 18, 17:10    [21486413]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
alekcvp
Member

Откуда:
Сообщений: 1091
YuRock
alekcvp
А что вы понимаете под лямбдами в дельфи?..

Лично я - всё, что связано с этим
https://ru.wikipedia.org/wiki/Лямбда-выражение

Т.е. в контексте дельфей - только анонимные функции? Или там в 10ке ещё что-то новое ввели на эту тему?
12 июн 18, 17:28    [21486440]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
alekcvp
Или там в 10ке ещё что-то новое ввели на эту тему?
Не знаю, я не слежу.
12 июн 18, 17:28    [21486442]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
AWSVladimir
Member

Откуда:
Сообщений: 826
defecator
вот бы еще был бы он нечувствительным к регистру,

Меня здорово бесит
if a = b
if a == b
постоянно нужно всматриваться, а зрение уже не то...
12 июн 18, 19:15    [21486576]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
AWSVladimir
Меня здорово бесит
if a = b
if a == b
Да, это вообще пиндец. Это ужасно. После того, как находишь такую ошибку (регулярную), приходится бухать.
12 июн 18, 22:59    [21487010]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
Leonid,

Я не уверен на счёт обобщённых хелперов, но что не нравится в лямбдах?
Просто и со вкусом
В Delphi вообще всё просто и со вкусом
13 июн 18, 00:17    [21487093]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
SOFT FOR YOU
Leonid,

Я не уверен на счёт обобщённых хелперов, но что не нравится в лямбдах?
Просто и со вкусом
В Delphi вообще всё просто и со вкусом
Прости, где ты лямбды в Дельфях видел?
В Дельфях пока только анонимные методы есть - этакий "лямбда зародыш". До полноценных лямбд там как раком до Китая.
Полноценная лямда это что-то типа: c => c.City == "Moscow"
При том, что компилятор сам знает к какому типу привести "c" в данном примере, поскольку и в ДотНЕТ и в последних Жабах есть так называемый var - автовывод компилятором типа переменной. В Дельфях такого пока нет.
13 июн 18, 00:38    [21487114]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5872
defecator
Дегтярев Евгений
JetBrains молодцы, хорошую платформу для IDE сделали

пропущено...

а чем это плохо?

регистронезависимость - это очень крутая штука.
Без неё весь текст программы превращается в месиво

Так только кажется со стороны. Ни разу не встречался с ошибками из-за этого.
AWSVladimir
defecator
вот бы еще был бы он нечувствительным к регистру,

Меня здорово бесит
if a = b
if a == b
постоянно нужно всматриваться, а зрение уже не то...
А вот это бывает, приводит к ошибкам. Терпимо, есть гораздо худшие дыры в синтаксисе

А тема про то, что к текстовому редактору прикрутили 51й язык (подсветка и интеллисенс)?

Надо будет посмотреть, хотя говорят, что Электрон весьма прожорливое ч**о.
13 июн 18, 00:43    [21487116]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5872
Leonid,

Если ты не заметил, то Ява на десктопе загнулась. По вполне объективным причинам. Так что Дельфи тут в выигрыше.

Ява в Вебе тоже дышит на ладан.

Я еще с интересом посмотрю, как она переживет Го в последней своей среде обитания.
13 июн 18, 00:47    [21487118]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
Leonid
лямда это что-то типа: c => c.City == "Moscow"
В Дельфях такого пока нет
Странно. Ну, слава богу, что пока нет.
13 июн 18, 01:02    [21487128]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
Siemargl
Leonid,

Если ты не заметил, то Ява на десктопе загнулась. По вполне объективным причинам. Так что Дельфи тут в выигрыше.

Ява в Вебе тоже дышит на ладан.

Я еще с интересом посмотрю, как она переживет Го в последней своей среде обитания.
"Загнувшаяся" ява на Десктопе имеет тем не менее на порядок больше успешных десктопных внедрений (особенно во внутрикорпоративе) в мире, чем наш дельфийский старичёк. И даже жабаFX явно предпочтительнее сейчас для кроссплатформенного десктопа, чем Огненная обезьяна ( на которой только тормозные мобильные поделки и писать ).
Я не адепт Жабы, но Дельфи за пределами бывшего Совка И Латинской Америки и почему-то Австралии вообще крайне редко где использовали, а теперь так и вообще позабыли.
Даже на родине Андерса Хейлсберга, где тусуются одни из наших клиентов, и то уже дельфистов днем с огнем искать нужно.
13 июн 18, 01:06    [21487129]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
Leonid,

Видимо, я не знаю, что такое лямбда
Приведи пример того, как лямбда на "крутых языках" не воспроизводима на дельфях
13 июн 18, 01:18    [21487130]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
Leonid
ява на Десктопе имеет тем не менее на порядок больше успешных десктопных внедрений (особенно во внутрикорпоративе)
Видел за всю жизнь две-три проги на яве на десктопе. Одна из них - инсталляха оракла, вторая - нарды. Больше не помню. Дельфевых программ видел поболе. И внутрикорпоративе.
Хотя я - не показатель, конечно, откуда я десктопы видел.
13 июн 18, 01:21    [21487131]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
SOFT FOR YOU
Leonid,

Видимо, я не знаю, что такое лямбда
Приведи пример того, как лямбда на "крутых языках" не воспроизводима на дельфях
SOFT FOR YOU, почитай сам про лямбды в C# или в Жабе 8.
По большому счету - это просто синтаксический сахар.
Но он крайне удобен и куда более проще читаем, благодаря своей лаконичности в сравнении с анонимными методами, на которых и основан.
Короче говоря - это просто красивее, быстрее и удобнее в написании.
В Дельфях пока это невозможно как минимум по причине отсутствия поддержки компилятором автовывода типа переменной на момент компиляции ( чего-то типа var ).
Рано или поздно Быдлокодеро и это своруют. Но IMHO лучше бы они сначала хелперы и дженерики до ума довели, т.е. уже полноценно своровали из, пользуясь твоей терминологией, "крутых языков".
13 июн 18, 01:32    [21487139]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
Leonid,

Давай ты меня не будешь посылать что-то читать. Я и сам тебя послать могу
Я тебя попросил привести пример
Нормально же общались )
13 июн 18, 01:40    [21487141]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5872
SOFT FOR YOU,

Забей. Лямбы пришли не из "крутых" языков, а из хипстерских. В Яве, Шарпе, С++ это упрощения парадигмы.

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

Хочешь, посмотри примеры кода здесь, это упрощения, но все равно весьма непросто
http://en.cppreference.com/w/cpp/language/lambda
13 июн 18, 02:01    [21487151]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
SOFT FOR YOU
Leonid,

Давай ты меня не будешь посылать что-то читать. Я и сам тебя послать могу
Я тебя попросил привести пример
Нормально же общались )

SOFT FOR YOU, я тебя никуда не посылал дальше чтения документации. И нормально с тобой и общаюсь.
Я тебе простую конструкцию даже написал и конкретно объяснил глубинную причину, почему этот лямбда синтаксис не может быть пока реализована на Дельфи.
Поэтому, извини, я не знаю чего тебе еще сказать.
Вот тебе еще пример на вскидку:
Без лямбды:
IEnumerable<Order> query = orders.Where(delegate (Order o) { return o.Manager == "John"; });
C лямбдой:
var query = orders.Where(o => o.Manager == "John");

А на Дельфях ( если бы там были лямбды ) вместо анонимного метода для функции Where ты бы тоже теоретически писал что-то типа:
query := orders.Where(o -> o.Manager = 'John');

Компилятор зная тип переменной o: TOrder сам бы вывел нужную анонимную функцию-предикат для ф-ции Where
13 июн 18, 02:15    [21487157]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
YuRock
Видел за всю жизнь две-три проги на яве на десктопе...
Дельфевых программ видел поболе. И внутрикорпоративе.
Хотя я - не показатель, конечно, откуда я десктопы видел.
Ну если ты как и все мы родом из Совка/Постсовка, то оно и понятно.
На территориях обитания постсовков Дельфи даже и сейчас еще популярен не смотря ни на что и вопреки :)

А с Жабой на дестопе я впервые столкнулся лет пятнадцать тому назад, когда на одном геолого-разведовательном судне за бугром побывал. Там Sun-ы стояли c Java Desktop System и почти все десктопное управленческое ПО на Жабе намалевано было.
А позже похожее на предприятиях видел. В банках одно время так вообще почти поголовно не только серверная часть но дестоп на этом крутился.
Но опять же очевидно, что не в Постсовке.

А лично сам сейчас жабно-десктопные SmartSVN и SmartGIT на Винде и Линухе использую.
13 июн 18, 04:09    [21487169]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
Leonid,

Разве это не реализуется дельфовыми лямбдами?
Да и читабельнее будет
13 июн 18, 08:06    [21487248]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Exteris
Member

Откуда: Новосибирск
Сообщений: 957
Читал как-то про PascalABC.NET. Там есть реализация лямбда-выражений.
13 июн 18, 08:53    [21487305]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5872
Leonid
SOFT FOR YOU
Leonid,

Давай ты меня не будешь посылать что-то читать. Я и сам тебя послать могу
Я тебя попросил привести пример
Нормально же общались )

SOFT FOR YOU, я тебя никуда не посылал дальше чтения документации. И нормально с тобой и общаюсь.
Я тебе простую конструкцию даже написал и конкретно объяснил глубинную причину, почему этот лямбда синтаксис не может быть пока реализована на Дельфи.
Поэтому, извини, я не знаю чего тебе еще сказать.
Вот тебе еще пример на вскидку:
Без лямбды:
IEnumerable<Order> query = orders.Where(delegate (Order o) { return o.Manager == "John"; });
C лямбдой:
var query = orders.Where(o => o.Manager == "John");

А на Дельфях ( если бы там были лямбды ) вместо анонимного метода для функции Where ты бы тоже теоретически писал что-то типа:
query := orders.Where(o -> o.Manager = 'John');

Компилятор зная тип переменной o: TOrder сам бы вывел нужную анонимную функцию-предикат для ф-ции Where

Смешались вместе кони, лямбды =)

В обоих случаях тут используется лямбда, она же Closure == Замыкание. Только во втором случае она является анонимной ф-цией.
wiki
The term closure is often mistakenly used to mean anonymous function. This is probably because many programmers learn about both concepts at the same time


Автоматический же вывод типа (var, auto, etc) это отдельное, ортогональное понятие. Хотя конечно, краткости при использовании анонимных лямбд добавляет.

Как я и говорил, тема чуть сложнее среднестатистического быдлокодера =)
13 июн 18, 09:19    [21487352]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
Siemargl
Смешались вместе кони, лямбды =) Как я и говорил, тема чуть сложнее среднестатистического быдлокодера =)
Так зачем ты тогда такой сложной вещью для себя занимаешься?
Ты сам попутал похоже понятия абстрактных лямбда исчислений с конкретными лямбда-выражениями.

Siemargl
В обоих случаях тут используется лямбда, она же Замыкание. Только во втором случае она является анонимной ф-цией
Правильно сказать, что в обоих случаях присутствует замыкание. А вот анонимной ф-цией - ака анонимным делегатом (для C#) она будет в обоих случаях (а не во втором).
Лямбда же выражение в СиПошарпаных и теперь в Жабнутых понятиях — это альтернативный и более удобный способ в данном случае определения анонимной функции (или анонимного класса в случае с Жабой).
К слову сказать в С# это выражение может быть не только переведено в анонимную функцию, но и в дерево выражений. Но это уже отдельная тема по LINQ, поэтому и не будем здесь ею перегружать старчески-маразматические Дельфи-мозги.

Siemargl
Автоматический же вывод типа (var, auto, etc) это отдельное, ортогональное понятие. Хотя конечно, краткости при использовании анонимных лямбд добавляет.
Это понятие как раз и делает лямбда-выражения в СиШарп и Жабе имеющим особый смысл в плане удобства. Без него это не слишком сильно бы отличалось от синтаксиса анонимных функций, классов и ровно половина удобства пропала бы, а в случае с СиШарпом бы еще и с деревьями выражений была бы проблема.

Поэтому, нет никаких лямбда-выражений в Дельфях. Есть анонимные функции.
Хочешь их формально притянуть за уши к лямбде лишь по принципу замыкания?
13 июн 18, 10:37    [21487577]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5872
Leonid,

Не надо изобретать терминов. Они уже давно устоялись.

То что в С№ и в Д замыкания сделаны через делегаты, не делает их каким то отдельным классом функций -"выражений".

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

ЗЫ. Предлагаю отффтопик вынести в "Программирование".
13 июн 18, 11:35    [21487778]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
Siemargl
Leonid,

Не надо изобретать терминов. Они уже давно устоялись.

То что в С№ и в Д замыкания сделаны через делегаты, не делает их каким то отдельным классом функций -"выражений".
Ты точно уверен, что тебе не нужно подтянуть свои знания определений? ;)
Ты явно путаешься в анонимных функциях/делегатах и выражениях ( судя еще по предыдущему посту ).

Siemargl
Про Дельфи я как раз ничего не говорю - не нужна здесь такая функциональность, толком не к чему ее применять. Потому попрекать ее отсутствием - довольно бесполезно, как собаку 5й ногой.
А я как раз говорю и даже утверждаю полезность.
Дельфи итак ворует уже практически абсолютно все с СиШарп. Даже имена классов и методов. Своих идей чуть меньше чем 0 (ноль с перечеркнутой палочкой ;) )
Но только ворует иногда криво и не доводит до логического конца. Примеры уже приводил.
Например, скоро в 10.3 Nullable типы данных появятся. И это своровали.
Но вангую, что очередное кривое вживление имплантов старому деду - т.е. и лябда-выражения и автовывывод типа переменных не за горами.
13 июн 18, 12:08    [21487868]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Dimonka
Member

Откуда:
Сообщений: 1039
Leonid
А на Дельфях ( если бы там были лямбды ) вместо анонимного метода для функции Where ты бы тоже теоретически писал что-то типа:
query := orders.Where(o -> o.Manager = 'John');

Компилятор зная тип переменной o: TOrder сам бы вывел нужную анонимную функцию-предикат для ф-ции Where

На дельфях уже почти так и пишут:
OrderList := Manager.Find<TOrder>.Where(Linq['Manager'] = 'John').List;

Не лямбды конечно, но по синтаксису почти тоже самое.
13 июн 18, 12:13    [21487881]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Leonid
Member

Откуда: From nowhere
Сообщений: 684
ziv-2014
Leonid
пропущено...
Учись, Дельфи-дедушкО! :D

Не нравится, не используй. Что дерьмом то изливаться? Удовольствие доставляет?
Моя контора до сих пор поддерживает старый проект на Дельфях, а значит я как раз использую.
Новых на этом уже не пишу. Но все "гениально стыренные" и "ловко прикрученные" нововедения в Дельфях прекрасно знаю и с интересом тестирую.
13 июн 18, 12:17    [21487893]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Dimonka
Member

Откуда:
Сообщений: 1039
Leonid
А я как раз говорю и даже утверждаю полезность.
Дельфи итак ворует уже практически абсолютно все с СиШарп. Даже имена классов и методов. Своих идей чуть меньше чем 0 (ноль с перечеркнутой палочкой ;) )
Но только ворует иногда криво и не доводит до логического конца. Примеры уже приводил.
Например, скоро в 10.3 Nullable типы данных появятся. И это своровали.
Но вангую, что очередное кривое вживление имплантов старому деду - т.е. и лябда-выражения и автовывывод типа переменных не за горами.
Ну Сишарп вообще уникальный язык, появился из ниоткуда сразу идеальным и ни у кого ничего не своровал.
13 июн 18, 12:40    [21488016]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
Leonid
ничего нам этого не надь, нам бы провославный Delphi7 вернуть под Вынь10

В смысле - вернуть? Delphi5,6,7 отлично работают под последней сборкой Вынь10 (и всеми предыдущими). Скоро, кстати, Fluent Design поддерживать научатся
13 июн 18, 14:20    [21488438]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
SOFT FOR YOU
имитация динамических массивов и строк через память на стеке

Я дин. выделение памяти стараюсь вообще не использовать, если важна скорость. Не то, что "имитирую".
Недавно сервер написал на пару сотен клиентов. По потоку на клиента.
Так вот - в нём (в клиентских потоках) нет ни единого выделения памяти - всё на стеке (которого хватило 64k на поток). Т.ч. и "лок-фри менеджер памяти" не пригодился :)
13 июн 18, 17:18    [21489091]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9585
Leonid
но Дельфи за пределами бывшего Совка И Латинской Америки и почему-то Австралии вообще крайне редко где использовали, а теперь так и вообще позабыли.

Не надо свои заблуждения выдавать за истину. Все сильно иначе ...
13 июн 18, 17:19    [21489093]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
YuRock,

Это во-первых, потому, что логика простая
А во-вторых, такое количество потоков - тоже не есть гуд
13 июн 18, 17:26    [21489113]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator,

Скажешь тоже
Пользовательский уровень - это верх простоты и изящности
Ни у кого нет такой обертки над строками в памяти
Максимум, что ты обычно можешь вытянуть, в том же SAX, например, это указатель на символы и длину
13 июн 18, 17:30    [21489127]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3528
SOFT FOR YOU
Это во-первых, потому, что логика простая

Ну смотря с чем сравнивать. Аутентификация, и затем обмен в обе стороны пакетами репликации и их обработка.
SOFT FOR YOU
А во-вторых, такое количество потоков - тоже не есть гуд

Смотря для чего. Основное время их работы - передача данных. Т.е. ожидание этих данных, сохранение происходит очень быстро (insert в базу закаченного пакета).
А обработка - уже в другом месте - в пуле потоков по кол-ву процессоров.
Т.ч. для [в основном] ожидающих потоков - 100-200 потоков - фигня. У меня вот сейчас на 32бит Win10 после перезагрузки уже больше 1000 каких-то потоков таскменеджер показывает, и ничего.
13 июн 18, 18:39    [21489272]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53543
Блог
defecator
регистронезависимость - это очень крутая штука.
Без неё весь текст программы превращается в месиво

Когда-то мне тоже казалось, что регистронезависимость - это круто. Но постепенно я понял, что за четверть века работы так и не встретил ни одной ситуации, где бы она пригодилась, и единственное, чему она способствует - стилистическому разнобою, когда один называет переменную i, другой обращается к ней как к I, и это как-то работает. Я понимаю, что в своё время Вирт решил таким образом проблему платформозависимости, приравняв машины, где у символов были регистры, с теми, где их не было - но сейчас это уже неактуально, а в остальном - одни минусы.
13 июн 18, 18:52    [21489297]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
SOFT FOR YOU
defecator,

Скажешь тоже
Пользовательский уровень - это верх простоты и изящности
Ни у кого нет такой обертки над строками в памяти
Максимум, что ты обычно можешь вытянуть, в том же SAX, например, это указатель на символы и длину


я про тот лапшекод, который в исходниках.
ТАКОЕ поддерживать - это себя не уважать.
14 июн 18, 08:28    [21489966]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29045

13.06.2018 18:52, softwarer пишет:
> в своё время Вирт решил таким образом проблему платформозависимости, приравняв машины, где у символов были регистры, с теми, где их не было

а ведь лысеешь уже...
и такая хрень в голове!

Posted via ActualForum NNTP Server 1.5

14 июн 18, 13:24    [21490841]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВаСЁКПупкин
Guest
alekcvp,

У меня есть самописный конвертер
+
var 
 bflush : integer;
begin
  while true do
  begin
	if s.lookahead = 0 then 
	begin 
		fill_window(s);
		if s.lookahead = 0 then 
		begin
			if flush = Z_NO_FLUSH then
			   exit(need_more);
			break;
		end;
	end;
	
	s.match_length := 0;
	Tracevv((stderr,"%c", s.window[s.strstart]));
	_tr_tally_lit(s, s.window[s.strstart], bflush);
	dec(s.lookahead);
    inc(s.strstart);
	
	if bflush then
		FLUSH_BLOCK(s, 0);
  end;

  s.insert := 0;
  if flush = Z_FINISH then 
  begin
	FLUSH_BLOCK(s, 1);
	exit(finish_done);
  end;
  
  if s.last_lit then 
	FLUSH_BLOCK(s, 0);
  Result := block_done;
end;



А воот так выглядит фаст фибаначи на cи
+
int Fibonacci(int n) {
	unsigned long Result = 1;
	unsigned long cash = 0;
	unsigned long cash2;

	if(n < 1)
		return 0;

	for(int i = 1; i < n; i++) {
		cash2 = Result;
		Result += cash;
		cash = cash2;
	}
	return Result;
}



А так на дельфи через мой конвертер
+
function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;



Программка
[spoiler]
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;

var
  n: Integer;

begin
  try
    while True do
    begin
      Readln(n);
      Writeln('Result Fibonacci: ', Fibonacci(n));
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.

[/spoiler]
14 июн 18, 14:18    [21491012]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
ВаСЁКПупкин
alekcvp,

У меня есть самописный конвертер
+
var 
 bflush : integer;
begin
  while true do
  begin
	if s.lookahead = 0 then 
	begin 
		fill_window(s);
		if s.lookahead = 0 then 
		begin
			if flush = Z_NO_FLUSH then
			   exit(need_more);
			break;
		end;
	end;
	
	s.match_length := 0;
	Tracevv((stderr,"%c", s.window[s.strstart]));
	_tr_tally_lit(s, s.window[s.strstart], bflush);
	dec(s.lookahead);
    inc(s.strstart);
	
	if bflush then
		FLUSH_BLOCK(s, 0);
  end;

  s.insert := 0;
  if flush = Z_FINISH then 
  begin
	FLUSH_BLOCK(s, 1);
	exit(finish_done);
  end;
  
  if s.last_lit then 
	FLUSH_BLOCK(s, 0);
  Result := block_done;
end;




А воот так выглядит фаст фибаначи на cи
+
int Fibonacci(int n) {
	unsigned long Result = 1;
	unsigned long cash = 0;
	unsigned long cash2;

	if(n < 1)
		return 0;

	for(int i = 1; i < n; i++) {
		cash2 = Result;
		Result += cash;
		cash = cash2;
	}
	return Result;
}




А так на дельфи через мой конвертер
+
function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;




Программка
[spoiler]
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

function Fibonacci(n: Integer): Cardinal;
var
  cash, cash2: Cardinal;
  i: Integer;
begin
  Result := 1;
  cash := 0;

  if n < 1 then
    exit(0);

  i := 1;
  while i < n do
  begin
    cash2 := Result;
    inc(Result, cash);
    cash := cash2;
    inc(i);
  end;
end;

var
  n: Integer;

begin
  try
    while True do
    begin
      Readln(n);
      Writeln('Result Fibonacci: ', Fibonacci(n));
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.


[/spoiler]


на каком основании из этого:
int Fibonacci(int n)

получилось это:
function Fibonacci(n: Integer): Cardinal;

?

Сдаётся мне, что кто-то несколько трындит !
14 июн 18, 14:22    [21491028]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВаСЁКПупкин
Guest
defecator,

На основание
unsigned long Result = 1;


Я не мог положится на возврат из функции, потому что не один компилятор и сам на него не полагается - исходя только из возврата

+

http://imglink.ru/show-image.php?id=448b1ef95e30b9299b6ba11bfbaaefed
Картинка с другого сайта.
14 июн 18, 14:32    [21491064]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
так и знал, что ты рукам переписывал
14 июн 18, 14:33    [21491071]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator
SOFT FOR YOU
defecator,

Скажешь тоже
Пользовательский уровень - это верх простоты и изящности
Ни у кого нет такой обертки над строками в памяти
Максимум, что ты обычно можешь вытянуть, в том же SAX, например, это указатель на символы и длину


я про тот лапшекод, который в исходниках.
ТАКОЕ поддерживать - это себя не уважать.

Когда научишься писать быстрый код - он тоже будет лапшеобразным
14 июн 18, 14:39    [21491088]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
ВаСЁКПупкин
Guest
defecator,

Собираешь все return и смотришь тип переменной - которой будет собрана, тип переменной - переменная, которая хранится в базе, в базе ключ переменной - хранит информацию о типе переменной, и типе вложенности - самой переменной.

Исходя из этого, из всех return (Массив в базе) Можно просмотреть все возможные типы - тип будет один, и надо будет выбрать общий подходящий, под это попадает переменная - которая имеет постоянный возврат, а не символический - статический, который бы и преобразовался в конечном итоге в integer но как есть unsigned long в типе возврата, мы не может позволить создать утечку в данных - переполнения, по этому мы выбираем в пользу unsigned long нежели чем integer и преобразовываем на стеке вывода в Delphi нужный тип Cardinal


Вот так это и работает

Неужели нельзя знать основ ? Или реально, delphi отупляет... Да, C++ Сложный Дядя, но он построен так, что способен глотнуть ошибки программиста и преобразовать в правильный кол. А Delphi что - же ? И не видала такого наверное
14 июн 18, 14:39    [21491091]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
SOFT FOR YOU
defecator
пропущено...


я про тот лапшекод, который в исходниках.
ТАКОЕ поддерживать - это себя не уважать.

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


моя система видеонаблюдения перемалывает огромные потоки видео,
и в ней нет ни строчки лапшекода.
14 июн 18, 14:44    [21491108]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator,

Это потому, что ты используешь чужой лапшекод
А сам ничего оптимального написать не можешь
14 июн 18, 14:50    [21491134]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
SOFT FOR YOU
defecator,

Это потому, что ты используешь чужой лапшекод
А сам ничего оптимального написать не можешь


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

В системе нет вообще визуальных компонентов,
потому что нет никаких визуальных интерфейсов, кроме браузерного
14 июн 18, 14:58    [21491165]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
V.Borzov
Member

Откуда: Саратов
Сообщений: 227
Один чел на собеседовании у нас сказал, что ученые доказали не так давно, что С++ настолько сложен и всеобъемлющ, что вся его мощь женщине открыться, например, не может. Мозгов женщине не хватает. Только мужик может освоить всю его глубину. Чел этот, кстати, даже результатами своего собеседования не поинтересовался, сбежал, узнав, что мы тут на Delphi программируем. А вот шеф задумался крепко, сказал даже мне, что, может, стоило программу-то складского учета на С++ писать...
14 июн 18, 15:07    [21491185]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
SOFT FOR YOU
Member [заблокирован]

Откуда:
Сообщений: 2761
defecator
SOFT FOR YOU
defecator,

Это потому, что ты используешь чужой лапшекод
А сам ничего оптимального написать не можешь


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

В системе нет вообще визуальных компонентов,
потому что нет никаких визуальных интерфейсов, кроме браузерного

Ты видеокодеки самолично писал?
Ну-ну, втирай дальше )
14 июн 18, 16:50    [21491529]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
SOFT FOR YOU
defecator
пропущено...


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

В системе нет вообще визуальных компонентов,
потому что нет никаких визуальных интерфейсов, кроме браузерного

Ты видеокодеки самолично писал?
Ну-ну, втирай дальше )


видекодеки используются системные виндовые, кроме MJPEG, G.7xx - это всё самописное.
но видеокодеки - это 1% от кода системы
14 июн 18, 18:04    [21491783]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
alekcvp
Member

Откуда:
Сообщений: 1091
ВаСЁКПупкин,

+ А если не пытаться из Delphi сделать суррогатный си, то:
function Fibonacci(n: Integer): Cardinal;
var
  i: Integer;
  m1, m2: Cardinal;
begin
  m1 := 0;
  m2 := 1;
  Result := 0;
  for i := 1 to n do begin
    Inc(Result, m2);
    m2 := m1;
    m1 := Result;
  end;
end;
14 июн 18, 20:46    [21492218]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
_Vasilisk_
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

1 - странно костыль выдавать за преимущества
2 - фиговая штука - может конечно для питона и норм, всегда отключаю.
3 - зачем??? в паскале тип после имени объявляется
4 - чё-чё?
15 июн 18, 09:53    [21492843]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
Mikhail Tchervonenko
Всем доброго времени суток!

сегодня в очередной раз наткнулся тут на упоминание о omniPascal, кто то его уже пробовал? Какие впечатления?
Чем это лучше/хуже родной среды от delphi или lazarus и в чём смысл сего творения?

Спасибо.

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

Архитектурно выходит пшик с кучей дублируемого кода из компилятора. IDE для системных языков можно нормально сделать только с поддержкой компилятора, как например было сделано в BP 7.0.
15 июн 18, 10:06    [21492896]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 24176
kealon(Ruslan)
_Vasilisk_
Эмбаркадере есть чему поучиться

1. Автоматическое добавление import при упоминании класса в коде или при вставке фрагмента кода из буфера обмена
2. Автоматическое формирование отступов, в том числе при вставке фрагмента кода из буфера обмена
3. Подсказка имени объявляемой переменной на основании имени типа
4. Создание геттеров/сеттеров и инициализация поля класса в конструкторе просто по клику на это поле.

Это только то, что вспомнилось сходу.

1 - странно костыль выдавать за преимущества
2 - фиговая штука - может конечно для питона и норм, всегда отключаю.
3 - зачем??? в паскале тип после имени объявляется
4 - чё-чё?

Кроме делфей не пользовал другие иде?
В идее это настолько привычные фичи, что диву даюсь, насколько делфи отстает от норм по удобствам.
15 июн 18, 10:35    [21492960]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3663
wadman
Кроме делфей не пользовал другие иде?
В идее это настолько привычные фичи, что диву даюсь, насколько делфи отстает от норм по удобствам.

Делфи тупо не осилит всё это в реальном времени парсить и анализировать, чтобы подобные фичи заработали. Наверняка программеры эмбы такое пытались у себя делать, но вылезла куча ошибок, и они забили. Когда банальный поиск возможных uses по ctrl+shift+a вылетает в 80% случае -- о других фичах можно и не мечтать.
15 июн 18, 10:43    [21492995]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
wadman,

для плюсов пользовал студию, пелес (для си), эклипс, кдев
для явы - эклипс (пока самый работоспособный вариант)
для питона - PyCharm (та же идея, самое лучшее из всего что видел для питона)
для паскаля - BP7, VP, Delphi от 3-ки до XE10, Lazarus от 1.1


В моём рейтинге пока лидер по тормознутости и неудобству это студия
Идея хороша на скриптовых языках, на компилируемых такой подход буксует на более менее нормальных объёмах
Для плюсов пока лучше кдев не встречал, если нет надобности лезть в апи винды, то идеальный вариант, а с учётом того что я её щас спокойно запускаю на винде это явный фаворит.
по поводу дельфи - текущая 10-ка это сборище багов и говорить о каких-то новых функциях, пока текущие через пень колоду работают, смысла не имеет.
15 июн 18, 11:03    [21493084]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 2928
wadman
Кроме делфей не пользовал другие иде?

Использовал/зую. Первым делом ищю где вся эта факаная автоматизация отключается. Код херачить пулей я и так могу, а мыслительные процессы оно не ускоряет.
15 июн 18, 14:02    [21493767]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
defecator
Member

Откуда:
Сообщений: 38595
Kazantsev Alexey
wadman
Кроме делфей не пользовал другие иде?

Использовал/зую. Первым делом ищю где вся эта факаная автоматизация отключается. Код херачить пулей я и так могу, а мыслительные процессы оно не ускоряет.

+100500
тоже всегда выключаю всякие подстрочники, автовставки и прочую нечисть
15 июн 18, 14:15    [21493834]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 24176
Kazantsev Alexey
Код херачить пулей я и так могу

"Автомату не доверяю, механика моё", да.
15 июн 18, 14:58    [21494029]     Ответить | Цитировать Сообщить модератору
 Re: omniPascal - что за чудо?  [new]
чччД__
Guest
defecator
Kazantsev Alexey
пропущено...

Использовал/зую. Первым делом ищю где вся эта факаная автоматизация отключается. Код херачить пулей я и так могу, а мыслительные процессы оно не ускоряет.

+100500
тоже всегда выключаю всякие подстрочники, автовставки и прочую нечисть

Анало гич но.

Темплейты цикла фор, например, всегда бесполезны, дольше исправлять, чем сразу набрать, что нужно. И т.д., отвлекают только.
16 июн 18, 11:56    [21495899]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
Все форумы / Delphi Ответить