Информация об изменениях

Сообщение Re[20]: Питон - уродство от 17.06.2018 13:45

Изменено 18.06.2018 9:52 vdimas

Re[20]: Питон - уродство
Здравствуйте, novitk, Вы писали:

V>>Вот код без библиотек:

N>Хотя и не VBA, но зачтем.

Это VBS, т.е. чистый скрипт.

На VBA вместо CreateObject("Scripting.Dictionary") можно было просто написать new Dictionary().
Вот эти строки тоже были бы не нужны:
set stdin = WScript.stdin 
set stdout = WScript.stdout

Считай их аналогом твоего import, чтобы не обращаться к "статическим" объектам через полное указание имени содержащего их модуля.
Остальное вполне чисто, хотя это гребанный Бэйсик.

=============
VBA — это встраиваемый полноценный VB, за исключением той тонкости, что вместо компиляции в нейтив работает виртуальная машинка над p-кодом.
Сам язык при этом уже обладает строгой типизацией, может импортировать в себя модули (импортировать их scope, поэтому достаточно простого new), но при этом всё еще ведёт себя как скриптовый — т.е. можно подменять на лету код, прямо даже в той строчке, на которой поставил breakpoint. Ну и весь REPL доступен в immediate-окошке.

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

Собсно, в самой среде VB в момент отладки внутри среды тоже работает виртуальная машинка над p-кодом, т.е. работает VBA, а нейтивный бинарник порождается лишь во время компиляции релиза. И что характерно, что с COM-объектами этот нейтивный бинарник работает даже эффективнее, чем когда с COM-объектами работаешь через С++, бо если пользовать смарт-поинтеры в С++, то часто получаются лишние парные AddRef/Release, а VB-компилятор все эти вещи чудесно оптимизирует. Оптимизация матана и просто циклов и условных ветвлений находится на уровне VC 6.0, т.е. на тот момент на грани прогресса. )) Но и по состоянию на сегодня генерируемый нейтивный код работает в разы быстрее, чем на Питоне.

Собсно, вот для чего я даю подробности устаревшего на ~20 лет VB/VBA/VBS — не для того, чтобы хвалить сам язык, а чтобы банально показать, что еще хрен знает когда уже была техническая возможность создавать высокоэффективные скриптовые языки (или даже их совместимое семество), имеющие как строгую статическую типизацию, так и не строгую. Но, самое главное, имеющие практически неограниченные возможности по оптимизации релизного образа. Руководителем команды, разработавшей VBA был один небезызвестный блоггер, который позже создал еще несколько проектов, один из которых тоже весьма известен.

Кароч, чего ходить вокруг да около — технологически интерпретатор Питона и сам дизайн языка представляет из себя нубство во плоти, в сравнении даже с гребанным VB. ))
Понятно, что усилиями десятков тысяч людей экосфера Питона обросла полезными либами, но в базе там сидит дремучее невежество.
И слишком многого ты из этой технологии не выжмешь, хоть укакайся.
Это того же уровня нубство, что и JS.


N>Разве не достаточно для доказательства неуклюжести VBA?


Да как-то недостаточно.
У меня не было цели доказать преимущество VBS, бо это технология 93-96-го года и с тех пор мало что поменялось.
Просто обсуждение рядом какого-то левого кода на VBS было совсем уже за рамками добра и зла. ))
Мало ли где, когда и кто написал на каком языке говнокод?
Такого на любом языке в Сети овердохрена.
Re[20]: Питон - уродство
Здравствуйте, novitk, Вы писали:

V>>Вот код без библиотек:

N>Хотя и не VBA, но зачтем.

Это VBS, т.е. чистый скрипт.

На VBA вместо CreateObject("Scripting.Dictionary") можно было просто написать new Dictionary().
Вот эти строки тоже были бы не нужны:
set stdin = WScript.stdin 
set stdout = WScript.stdout

Считай их аналогом твоего import, чтобы не обращаться к "статическим" объектам через полное указание имени содержащего их модуля.
Остальное вполне чисто, хотя это гребанный Бэйсик.

=============
VBA — это встраиваемый полноценный VB, за исключением той тонкости, что вместо компиляции в нейтив работает виртуальная машинка над p-кодом.
Сам язык при этом уже обладает строгой типизацией, может импортировать в себя модули (импортировать их scope, поэтому достаточно простого new), но при этом всё еще ведёт себя как скриптовый — т.е. можно подменять на лету код, прямо даже в той строчке, на которой поставил breakpoint. Ну и весь REPL доступен в immediate-окошке.

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

Собсно, в самой среде VB в момент отладки внутри среды тоже работает виртуальная машинка над p-кодом, т.е. работает VBA, а нейтивный бинарник порождается лишь во время компиляции релиза. И что характерно, что с COM-объектами этот нейтивный бинарник работает даже эффективнее, чем когда с COM-объектами работаешь через С++, бо если пользовать смарт-поинтеры в С++, то часто получаются лишние парные AddRef/Release, а VB-компилятор все эти вещи чудесно оптимизирует. Оптимизация матана и просто циклов и условных ветвлений находится на уровне VC 6.0, т.е. на тот момент на грани прогресса. )) Но и по состоянию на сегодня генерируемый нейтивный код работает в разы быстрее, чем на Питоне.

Собсно, вот для чего я даю подробности устаревшего на ~20 лет VB/VBA/VBS — не для того, чтобы хвалить сам язык, а чтобы банально показать, что еще хрен знает когда уже была техническая возможность создавать высокоэффективные скриптовые языки (или даже их совместимое семейство), имеющие как строгую статическую типизацию, так и не строгую. Но, самое главное, имеющие практически неограниченные возможности по оптимизации релизного образа. Руководителем команды, разработавшей VBA был один небезызвестный блоггер, который позже создал еще несколько проектов, один из которых тоже весьма известен.

Кароч, чего ходить вокруг да около — технологически интерпретатор Питона и сам дизайн языка представляет из себя нубство во плоти, в сравнении даже с гребанным VB. ))
Понятно, что усилиями десятков тысяч людей экосфера Питона обросла полезными либами, но в базе там сидит дремучее невежество.
И слишком многого ты из этой технологии не выжмешь, хоть укакайся.
Это того же уровня нубство, что и JS.


N>Разве не достаточно для доказательства неуклюжести VBA?


Да как-то недостаточно.
У меня не было цели доказать преимущество VBS, бо это технология 93-96-го года и с тех пор мало что поменялось.
Просто обсуждение рядом какого-то левого кода на VBS было совсем уже за рамками добра и зла. ))
Мало ли где, когда и кто написал на каком языке говнокод?
Такого на любом языке в Сети овердохрена.