Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

1 Декабрь 2020, 08:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Calc: Basic vs Python  (Прочитано 544 раз)
0 Пользователей и 1 Гость смотрят эту тему.
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Стартовое сообщение: 21 Ноябрь 2020, 19:58 »

Добрый вечер!
Подскажите, как лучше перейти на Python? Синтаксис языка я знаю. Кто использует? Как лучше организовать среду? Какие есть "за" и "против"?
Сейчас я использую Basic и Xray. Опыта маловато.
Из ссылок нашёл вот эту:
http://www.openoffice.org/udk/python/python-bridge.html

Но внимательно не смотрел и не разбирался. Предложите что-нибудь...
И есть ли в этом смысл? С VBA тоже приходится сталкиваться и поддерживать работающий код.
« Последнее редактирование: 21 Ноябрь 2020, 20:03 от eeigor » Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 314


« Ответ #1: 21 Ноябрь 2020, 21:22 »

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

Тот Python что внутри OpenOffice|LibreOffice - урезан, в него нужно скопировать удаленные pip setuptools sqlite3 из обычного "ставленного" python той же версии. pip ставится и скриптом get-pip, а дальше можно всё установить. Но также поставить свежаковый python отдельно, и иметь две "виртуальные" среды.  

Сам код на Python работает примерно в 3-4 раза быстрее, чем аналогичный код на Basic/VBA, разгоняясь в основном на строковых операциях, жонглированиях списками (lists/sets/dicts) и др. заоптимизированных вещах. Да и кодятся они очень легко. А, например, питоновский С-модуль sqlite3 работает в 10 раз быстрее, чем приложений Base и код на Basic c sqlite через JDBC/ODBC-драйверы. То есть если вам нужна популярная, но при этом самая быстрая "малопользовательская" БД - то это SQLite через пихтон.  

Если нужно еще быстрее - то ставим pandas+numpy и БД в RAM будет еще быстрее, примерно в 100 раз. Быстрее этого уже ничего нет.  

На сайте LO теперь больше инфы по Питону, и она свежее. Обязательно поставьте расширение APSO. Из хороших IDE - MS VS Code и Thonny.
« Последнее редактирование: 21 Ноябрь 2020, 21:26 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Ответ #2: 21 Ноябрь 2020, 22:10 »

Спасибо за ответ.
На forum.openoffice.org действительно ругают Basic и больше ратуют за Python (некто Villeroy, старожил из Германии)…
« Последнее редактирование: 22 Ноябрь 2020, 00:39 от eeigor » Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 314


« Ответ #3: 22 Ноябрь 2020, 14:59 »

Ругать можно не Basic, а API LO. Python, увы, всё равно обращается к API OpenOffice|LibreOffice (и работает, в общем-то, с его скоростью). А API этот сложный, в нем нет интроспекции и автодополнения кода, короче почти всех преимуществ быстрой разработки Python - в OLO не получить. Мы все тут обречены непрерывно изучать Basic и читать Питоньяка, пока пользуемся OpenOffice|LibreOffice.

Может когда-то случится чудо и кто-то напишет на python "обертку", которая реализует, скажем, очень приятную объектную модель MS Excel как в VBA, как это отчасти произошло с Base (Access2Base) или с опцией 50% совместимости с VBA в Calc. Скорость будет так себе, просто писать будет легче и желающих будет больше.

Но пока героев нет. Думаю нам пока нужно всеми силами двигать LO в массы, и в опр. момент среди вновь прибывших кто-то смелый или богатый решится сам или даст денег другим на такой допил.

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

Про ускорение работы с данными я уже писал. Питон также очень уместен для конвертации данных в разных форматах парсинга TXT-файлов и сайтов, для "прямой" правки DOC/DOCX/ODT/ODS без самих офисных приложений. За питоном стоят 270 тыс свободных библиотек на все случаи жизни, и половину того что хочется написать - можно уже просто "найти". 
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Ответ #4: 22 Ноябрь 2020, 15:00 »

economist, а где хранятся макросы (скрипты) на Python, написанные для данного файла, вместе с файлом или нет? При переносе файла ODS надо ли беспокоиться о переносе скриптов на Python? Если да, то это неудобно...
Записан
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Ответ #5: 22 Ноябрь 2020, 15:16 »

Мы все используем книгу А.Питоньяка, а что скажете о похожей книге от автора Bernard Marcelly, разработчика Xray? К сожалению, она на фр. языке, перевода на английский не нашёл...
"Programmation OpenOffice.org 3 Macros OOoBASIC et API" by Bernard Marcelly & Godard Laurent

Я перешёл на Linux, поэтому есть "затруднения" разного характера. Как говорил, синтаксис Python знаю, прибегаю к нему в разных случаях (он может почти всё), но есть проблемы, связанные с адаптацией в условиях новой ОС.
Ну, а двойной переход вызван предстоящим прекращением закупки лицензий на Windows/MS Office в связи появлением Реестра отечественного ПО и т. д. (это для госорганов). Одним из претендентов на замену офиса может стать "Мой офис" (https://myoffice.ru/), с поддержкой макроязыка Lua и отсутствием встроенной IDE, и он уже установлен на машины пользователей. Но я смотрю только в сторону LibreOffice, другие варианты не рассматриваю.


* Снимок экрана от 2020-11-22 15-20-18.png (151.96 Кб, 649x788 - просмотрено 2 раз.)
« Последнее редактирование: 22 Ноябрь 2020, 15:23 от eeigor » Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 314


« Ответ #6: 22 Ноябрь 2020, 15:39 »

где хранятся макросы (скрипты) на Python, написанные для данного файла, вместе с файлом или нет?
- все почти как с Basic-кодом, можно хранить отдельно и локально/по сети, можно внедрить и зашифровать py-код в ODT/ODS (см. APSO). Но править "внедренный" py-код в Basic IDE не получится, придется извлечь/исправить/внедрить еще раз.

Если вспомнить принципы модульного программирования в python - то всё терпимо: кидаем py-файл в \share\Scripts\python  - в котором есть импорты чего угодно и откуда угодно (хоть из Интернета). Все функции из py-файла в либре будут видны как макросы  или модули, а сам py-файл - как Библиотека.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Ответ #7: 22 Ноябрь 2020, 19:25 »

Мы все тут обречены непрерывно изучать Basic и читать Питоньяка...
И не будет лишним для перехода на Python: новая информация лучше накладывается на имеющуюся базу.

Переход с Basic на Python:
https://wiki.openoffice.org/wiki/Python/Transfer_from_Basic_to_Python
Записан
greenman
Форумчанин
***
Offline Offline

Сообщений: 251


« Ответ #8: 24 Ноябрь 2020, 09:02 »

Одним из претендентов на замену офиса может стать "Мой офис"

Скорее уж R7-Office (https://reestr.minsvyaz.ru/reestr/144820/)

(Это спец вариант "для реестра" более известного OnlyOffice; как у него с поддержкой VBA/Basic/Python -- не знаю, достоинство, по отзывам, хорошая совместимость с форматами от MSOffice.)

Update: JS у них, как и следовало ожидать.
« Последнее редактирование: 24 Ноябрь 2020, 10:55 от greenman » Записан
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Ответ #9: 24 Ноябрь 2020, 12:57 »

Всё едино: чем больше инноваций (разнообразия), тем «скуднее мысль». Их подход таков: 90% пользователей используют 10% возможностей пакета, а значит отсутствие «чего-то такого» не критично. И в 10% – макропрограммирование. Хотя JavaScript – хороший язык. Но Python чище; добавили бы тогда уже CoffeeScript.
« Последнее редактирование: 24 Ноябрь 2020, 13:11 от eeigor » Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 314


« Ответ #10: 27 Ноябрь 2020, 09:44 »

Нам есть с чем сравнить:

- Google Docs используют JS-подобный "обскобленный" язык, нет реального макрорекордера и на нем простые пользователи так и не научились ничего писать. С нуля старт очень труден. Без интернета - юзер беспомощен.

- MSO, CorelDraw, AutoCAD, платные WPS, SoftMaker итд - используют VBA - нет скобок, есть макрорекордер, - в результат родились миллионы макросописателей, огромное комьюнити и база кода на том же SO. С нуля - старт легок, ставишь 2 монитора, разносишь окна приложения и IDE и через полчаса "ты программист" (но пока еще без "ж" в середине). Мусор от рекордера начинаешь понимать и сносить через год. И да, можно учиться по книжкам и без интернета. VBA в Excel - это то что сделало Excel программой №1 в бизнесе с 1,5 млрд юзеров, создало понятие ПК и является эталоном во всех смыслах.

- LO - использует Basic/Python/JAVA/BeanShell, для Basic есть "однобокий" макрорекордер, хватающий только команды Dispatcher (т.е. 90% функцонала API можно узнать только в документации или у Питоньяка). Но и это уже здорово, потомоу что нахаляву, и потому что Writer лучше Word, а соединения данных из Base - лучше чем MSQuery32. В итоге - десятки тысяч макросописателей и почетное "второе место". Без интернета на работе - выучить LO Basic нельзя, но прихватывая вечера дома с интернетом - можно, просто вчетверо дольше. Большую помощь может тут дать энтузиаст-коллега рядом. Данный Форум - хороший пример скопления таких людей, по нему хорошо видно что нам сами часто нужна помощь, на пути API ты как в джунглях.

У новых "альтернатив" офисов (OnlyOffice итд) - пока просто "милое личико", но глубокую автоматизацию на них сделать аццки трудно. Пусть растут и приходят через 3-5 лет с чем-то еще боле удобным чем VBA, например с Python/Julia. За этом время LO, пожалуй, ничем не удивит, но он уже прошел все детские болезни и просто работает на "втором" месте.
  
« Последнее редактирование: 27 Ноябрь 2020, 09:45 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 197



« Ответ #11: 27 Ноябрь 2020, 16:30 »

Полностью согласен. Поэтому LO уже ни на что менять не буду. Но MSO тоже знаю хорошо, однако на моём ноуте его нет (Linux).
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!