LINUX.ORG.RU

Посоветуйте язык программирования


0

1

Имеется множество скриптов на bash (в основном - обработка текста, а также поиск и другие операции с файлами; многие операции обернуты в zenity). Захотелось обеспечить работу и на винде. Пока вижу 3 возможности:
1) Подкручивать костыли в виде эмулятора bash. Вероятно, самый простой путь, но не знаю, как это будет все работать.
2) Найти какой-нибудь транслятор из bash в другой кроссплатформенный скриптовый ЯП. Пока ничего не нашел.
3) Полностью переписать на новом ЯП. Самый временно-ресурсозатратный вариант, но, может быть, освою что-нибудь новое и интересное :)

Предложите что-нибудь. Если это новый ЯП, то нужен со следующими характеристиками:
- кроссплатформенный
- «сам в себе» (минимальное использование стандартных внешних утилит вроде ls, find, grep)
- желательно (но необязательно) достаточно легко читаемый и простой в изучении (имею навыки в bash, в С и С-подобных не разбираюсь, но при необходимости разберусь)

Пока что смотрю ruby. Интересно было также взглянуть на Powershell, но он только на .NET.

Deleted

Последнее исправление: Deleted (всего исправлений: 2)

perl, потому что умеет работать с текстом как никто другой, кроссплатформенный, простая работа с файлами и потоками ввода/вывода, используется там, где нужно что-то сложнее связки awk+grep+sed....

/reallyendofthread

TOXA ★★
()
Ответ на: комментарий от feofan

Не особо, многое быстро устаревает. В основном он для встраивания в Си. Предложил его только потому, что он очень простой(на уровне Bacis ~300 стр. текста)

frozenix ★★★
()
Ответ на: комментарий от frozenix

Предложил его только потому, что он очень простой(на уровне Bacis ~300 стр. текста)

Я надеюсь, в основном место заняло описание встроенных функций?

Deleted
()
Ответ на: комментарий от Deleted

20-186 p. Язык

186-234 p. Стандартная библиотека

234-312 p. C Api

frozenix ★★★
()
Ответ на: комментарий от anonymous

это хорошо. но без батареек это просто очень быстрый скриптовый язык

feofan ★★★★★
()
Ответ на: комментарий от Deleted

Ruby нет в дистрибутивах по-дефолту. Большинство пакетных менеджеров частично написаны на python => в системе есть python.

xpahos ★★★★★
()
Ответ на: комментарий от frozenix

Под список требований подходит почти любой ЯП.

Не совсем это так. Как замена башу без внешних утилит мало что будет удобно. Питон же в этом направлении вооружен до зубов, ещё и миллион либ имеет.

И да, я за lua

Lua скорее аналог js, ему больше подходит как ЯП для расширения приложений использоваться...

erfea ★★★★★
()

Мне вот интересно, какие ответов ты ожидал увидеть?

deterok ★★★★★
()
Ответ на: комментарий от TOXA

Хотя и не знаю совсем perl но могу сказать что python не хуже с текстом работает. Когда начал изучать был приятно удивлен этим.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от anonymous_sapiens

vbscript? оно с линуксом не совместимо. И вообще говно мамонта.

XoFfiCEr ★★☆☆
()

Те, кто предлагают перл не знают про костыли для винды во многих новых модулях. Более того, под mingw не все собирается, а ppm настолько маленький, что весь ништяк в винде пройдет мимо тебя. Бери питон и не мучайся.

gh0stwizard ★★★★★
()

В python нужно будет импортировать модуль который работает с регулярками.

import re

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от xpahos

Пакетный менеджер убьётся от установки руби? Не думаю :} Уж доставить софт для себя ТС, я думаю, сумеет.

Deleted
()

Python3, отличная замена растолстевшим Bash-скриптам.

Dendy ★★★★★
()

- кроссплатформенный
- «сам в себе» (минимальное использование стандартных внешних утилит вроде ls, find, grep)
- желательно (но необязательно) достаточно легко читаемый и простой в изучении (имею навыки в bash, в С и С-подобных не разбираюсь, но при необходимости разберусь)

Python и только он.

border-radius
()

Кстати, на счет регулярок - в принципе есть везде, но особо выделю Perl, Ruby, Python.

renya ★★★★★
()

Разверни на венде msys и юзай свои башскрипты дальше на здоровье.

yoghurt ★★★★★
()

python & perl.

Deleted
()

1) Подкручивать костыли в виде эмулятора bash. Вероятно, самый простой путь, но не знаю, как это будет все работать.

это _самый_ сложный путь. Сам по себе bash можно взять готовый, проблема в том, что bash используется не как ЯП, а как _связка_ для всяких ls & sed.

Проще всё на пайтоне писать.

drBatty ★★
()
Ответ на: комментарий от anonymous

Лучше, наверное, tcl, он больше похож на bash.

тебе ТСа не жалко?

drBatty ★★
()
Ответ на: комментарий от drBatty

Заодно расскажи (с примерами) как переписать скрипт bash на CL.

В лиспе же есть вызов system?

По сабжу - питон;-)

AIv ★★★★★
()
Ответ на: комментарий от Deleted

powershell

чтобы потом человек страдал «как получить PWD», как передать нативному приложению аргументы в качестве переменных.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 1)
Ответ на: комментарий от dmitryalexeeff

Портировать на msys+bash и не париться...

+1. Недостающие утилиты вполне возможно скомпилировать. Zenity под виндой должен работать. Если уж совсем будет туго то cygwin, но лучше в топку его.

AlexVR ★★★★★
()

Спасибо всем ответившим! Похоже, в голосовании побеждает python, поэтому буду пробовать как msys+bash, так и python.

Deleted
()
Ответ на: комментарий от sleepflint

А что ls и sed под оффтопик так-таки и совсем нет?

они есть, но

  • 1. устанешь все искать и все собирать(та же sed идёт отдельно, и её надо специально собирать под оффтоп. При этом оно получается жирным и неповоротливым - разгадка простая, если в GNU/Linux gnu-sed юзает всё из glibc и прочего gnu, то в венде приходится все велосипеды тащить с собой. В итоге имеем Over9000 утилит, _каждая_ из которых тащит _свой_ велосипед)
  • 2. все параметры тоже gnu-специфичные, даже слеши не в ту сторону, и файлы открываются совсем по другому (в gnu все файлы двоичные, но вот в Win бывают ещё и текстовые. Т.к. bash'скрипты почти всегда работают с текстовыми файлами, то в венде получается не тот режим. Есть и ещё множество мелочей, вроде той, что практически все файлы в венде некорректные с т.з. gnu - файл у нас всегда оканчивается переводом строки, а вот в венде так не принято)
drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.