Какой сценарный язык изучить не-разработчику для повседневных прикладных задач?
Прошу подсказать, в каком направлении смотреть.
Под повседневными прикладными задачами имею ввиду прежде всего операции над файлами, работу с текстом, вывод какой-то выборки для последующего использования в текстовом редакторе или таблице эксель.
Например:
- массовое переименование файлов по хитрым условиям на атрибуты и содержание, с предварительной проверкой предполагаемого результата выводом текста.
- обработка текста не на уровне автозамены и записанной последовательности действий, а на уровне переменных, циклов и условий.
Дальше хотелки растут - разбор офисных документов, почты, обработка json/xml/html как документов, http-запросы, запуск CLI приложений с возвратом вывода, чтение системных параметров и т.п.
На самом деле у меня уже есть инструмент для всего этого - RPA-студия, на работе я занимаюсь созданием сценариев роботизации (да, RPA это не только про OCR и клики в приложениях).
Проблема в чем: для решения мелкой одноразовой задачи я скорее всего не буду запускать студию, ждать пока она прогрузится и проверит лицензии, создавать проект, подтягивать зависимости - я скорее всего выполню ее вручную (пусть и мое "вручную" далеко не такое же, как "вручную" стереотипного бухгалтера). Да и хочется text-mode, со временем использование мышки все больше раздражает (впрочем, как и многоуровневые комбинации клавиш). И дома этой студии нет.
А вот если бы можно было по-быстрому открыть редактор, набросать скрипт и выполнить его - совсем другое дело.
В качестве эталона сценария использования я представляю знакомое мне написание SQL-запроса:
1. Написал запрос
2. Результат проанализировал / скопировал в редактор / экспортировал
3. Если нужно, данные изменил (в качестве аналогии переименования/перемещения файлов, изменения текста)
4. Запрос закрыл и забыл / сохранил в файле на будущее / создал на основе запроса процедуру как воспроизводимый компонент более сложного сценария
Т.е. основные условия:
1. Мгновенный запуск среды написания. А еще лучше, если это редактор, который и так у меня целый день не закрывается.
2. Отсутствие необходимости предварительной сборки проекта
3. Отсутствие необходимости компиляции готового сценария
4. Вывод в некую область результата, удобную для копирования и дальнейшего редактирования
Дополнительные условия:
1. Windows Server 2012R2
2. Корректная работа с кириллицей в разных кодировках.
3. Я ни в жизни не согласую покупку лицензии, поэтому - "честная" бесплатность решения для организаций.
Я не разработчик, за исключением написанных ночью под пиво и сразу забытых курсовых работ, ни одной программы в жизни не написал, и не хочу.
Но я вполне комфортно пользуюсь MSSQL, RegEx, вставками VB.NET в своих сценариях роботизации.
Да, пользоваться желаемым решением нужно учиться, я готов.
Очевидные предположения и их "но":
1. PowerShell
Сверх потребностей может дать больше инструментов для взаимодействия с системой для более редких задач.
Если можно на старенький сервачок поставить новые версии с .NET, то вообще здорово.
"Но": неудобен разбор и обработка вывода в консоли, некоторые модули требуют доменных разрешений.
2. VBA
Сверх потребностей предоставляет средства "нативного" редактирования офисных документов, что тоже полезно.
"Но": открыть эксель, чтобы открыть редактор макросов, хранить макросы в какой-то книге...
3. VSCode/Geany/Kate/Vim с плагинами интерпретаторов под что-то типа Python/LUA/JS
4. Emacs + elisp
Прикольно же!
"Но": Винда? Кириллица? Кодировки?
5. AutoIt, AutoHotKey
?
*. Буйная фантазия предлагает писать скрипт JS/PHP в панели разработчика Chrome с возвратом вывода на страницу
А не могли бы вы немного аргументировать, чтобы мне тоже стало это очевидным?
Сейчас у меня соображения следующие:
Все перечисленные мной варианты, за исключением, возможно, js и php, с поставленной задачей справятся.
Powershell, VBA и VBS круты тем, что они предустановлены в винде - при случае можно будет блеснуть навыками "в гостях". Но VBA и VBS учить с нуля уже смысла мало, как мне кажется, - на редкие подходящие задачи проще нагуглить решение и адаптировать, как я уже делал. А powershell - вполне себе вариант.
Autoit, autohotkey - узкоспециализированные решения, не уверен пока.
Python - хороший вариант "на вырост".
Вот ниже еще Ruby упомянули как альтернативу.
LUA - хз, упоминается прежде всего в контексте разработки игр и обработчиков для биржевых терминалов.
В принципе лучше autohotkey. Он как раз был создан для автоматизации рутинныз задач. На нём даже можно делать небольшие оконные приложения и компилировать в исполняемый файлы. +довольно много обучающих материалов, а язык учится легко.
grigorra, Вообще говоря, он есть для винды, но для неё делается по остаточному принципу. Бывает так, что скрипты, отлично работающие на Линуксе и Маке, имеют проблемы на винде. Нет RVM. Некоторые гемы имеют на винде ограничения (например, сервер приложений Puma). В общем, там можно в любой момент на те или иные грабли наступить. На 10-ке можете попробовать всё делать с использованием WSL, но я бы не стал зарекаться, что будет всё гладко.
grigorra, впрочем, при использовании для кружка "умелые руки" на грабли можете и не наступить (это как повезёт), и ограничения тоже не заметить просто.
Насколько я понял, это "почти RPA" low-code решение.
Интересная особенность - портабельность, но есть и более мощные альтернативы, в т.ч. opensource.
И я хотел все же скрипты.
Ну тут питон однозначно. Для сложных вещей можно попробовать ещё F#
Хз как в питоне с кодировками, но в дотнете можно читать файлы в нужной кодировке и сразу перегонять в utf
Редактор - вс код