Скриптовый язык для повседневных нужд

Модератор: Модераторы разделов

Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Скриптовый язык для повседневных нужд

Сообщение AestheteAnimus »

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

Пока думаю вот об этих (они больше всего на слуху):
- Python
- Ruby
- Tcl

Тех, кто их использует, хотел бы спросить, почему вы используете тот или иной, какие сильные стороны имеет каждый из них?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Скриптовый язык для повседневных нужд

Сообщение watashiwa_daredeska »

Использую Python. Очень богатая библиотека на 99.9% случаев жизни. Самые важные для меня аспекты:
  • работа с unicode -> удобная работа с текстами на языках, отличных от английского
  • работа с сетью и популярными протоколами (HTTP, SMTP, ...)
  • работа со многими популярными форматами файлов (csv, rfc2822, zip, tar, gz, ...)
  • удобно интегрирован в *nix (optparse, subprocess, ...)
  • несмотря на кривизну языка и тараканов в голове Гвидо, язык достаточно удобен. Недавно вышедший Python 3 должен подчистить исторически слежавшиеся кривости.
  • наличие в *nix-системе -- стандарт де факто, в Windows элементарно создается exe+dll, включающие в себя все необходимое для работы скрипта. Т.е. беспроблемный distribution.

Tcl в этом плане мне нравится меньше, а Ruby я не смотрел, т.к. в те времена, когда это имело для меня смысл, у Ruby было очень все плохо с Юникодом.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Скриптовый язык для повседневных нужд

Сообщение Portnov »

/me продолжает пиарить Python...
:)
Ruby отличается не принципиально, но распространён меньше, поэтому будет сложнее найти помощь. Хотя и преимущества у него, конечно, есть...

Тема уже обсуждалась: Shell или Python - с чего начать, ffa: ruby, java, c++, Первый язык.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2099

Re: Скриптовый язык для повседневных нужд

Сообщение chitatel »

А что уважаемые специалисты скажут относительно Perl и его возможностей/пригодности как скриптового языка для повседневных нужд?
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Скриптовый язык для повседневных нужд

Сообщение eddy »

А есть ли смысл для повседневных нужд уходить глубже bash'а? Мне, например, одного баша нормально хватает для всех "повседневных нужд". А что-нибудь специальное на С пишу...
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Скриптовый язык для повседневных нужд

Сообщение Portnov »

eddy
Это сильно зависит от повседневных нужд...

chitatel
Perl - классный язык для обработки текстов. При попытке использовать его не по назначению, чаще всего получается write-only code. Зато если надо из текстового файла (например, лога) вытянуть нужные данные в нужном формате, ну ещё может быть какую-нибудь статистику по этим данным посчитать - лучше перла ничего не придумали.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Скриптовый язык для повседневных нужд

Сообщение watashiwa_daredeska »

chitatel писал(а):
19.12.2008 13:54
А что уважаемые специалисты скажут относительно Perl и его возможностей/пригодности как скриптового языка для повседневных нужд?
Perl -- это продвинутые sed+awk в одном флаконе. Соответственно, этим и ограничивается сфера его применения. Сам язык при этом страшен. Чтобы его понять, надо обладать ГСМ, ибо логике он не поддается. К тому же, он умирает.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: Скриптовый язык для повседневных нужд

Сообщение vr13 »

Portnov писал(а):
19.12.2008 15:00
Perl - классный язык для обработки текстов. При попытке использовать его не по назначению, чаще всего получается write-only code. Зато если надо из текстового файла (например, лога) вытянуть нужные данные в нужном формате, ну ещё может быть какую-нибудь статистику по этим данным посчитать - лучше перла ничего не придумали.

про perl +1. полностью согласен, а формулировка в приведенной цитате - просто замечательная. дополнительные преимущества perl сегодня - это то, что его актуальная версия есть в любом коммерческом юниксе, если вас туда вдруг забросит судьба
Спасибо сказали:
Аватара пользователя
Женя Подсыпальников
Сообщения: 482

Re: Скриптовый язык для повседневных нужд

Сообщение Женя Подсыпальников »

AestheteAnimus писал(а):
19.12.2008 02:38
Как не странно, наконец в полной мере осознал, что бессмыслено все и вся писать на компилируемых языках...


Изображение

О ! Зашибато, интересно, как оно с вином ? :D
Пойдём на рыбалку !
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2099

Re: Скриптовый язык для повседневных нужд

Сообщение chitatel »

watashiwa_daredeska писал(а):
19.12.2008 15:12
Чтобы его понять, надо обладать ГСМ, ибо логике он не поддается.

О! Меня это обнадёживает. Всегда подозревал, что единственный ЯП, который смогу выучить - язык, созданный лингвистом.

Женя Подсыпальников писал(а):
19.12.2008 15:45
О !

chitatel писал(а):
19.12.2008 15:53
О!

ООО!!!
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: Скриптовый язык для повседневных нужд

Сообщение AestheteAnimus »

2watashiwa_daredeska
2Portnov

Спасибо за комментарии. Немного уточню, у меня не стоит задач обработки текста. Например, сейчас нужно сделать небольшой скриптик для загрузки/чтения прошивки через COM порт, притом сделать это надо для того, чтобы разобраться, как вообще работает протокол загрузки. Естесственно, такие проходящие задачки хочется делать максимально быстро. Для тоакого рода задач скорее полезна возможность манипуляции с нестроковыми данными, нежели со строками. (Пока я и сам склоняюсь в сторону Змеюки ;) )
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Скриптовый язык для повседневных нужд

Сообщение Denjs »

Позвольте попиариться?
Осмелюсь указать на QtScript погруженный в специальную среду - QDroid. Да, Есть такая идея.

QtScript - введенный в QT 4.3 скриптовый ООП-язык. В некотором роде - суть братья с JavaScript (оба ECMA-Script языки созданные на базе ECMA-262).
Но в отличии от JavaScript поддерживает сигнал-слотовый механизм взаимоотношений между объектами и "предназначен" для "непосредственного общения" с программными классами С++ созданными в QT - а значит среда может быть легко расширена нужными типами объектов - создание класса для QDroid ничем не отличается от создания типового класса QT.


Но проекту всего месяц - в QDroid описано только 6 классов )
PS: слоган в топике ("Скриптовый язык для повседневных нужд") - спасибо за идею - это именно те слова, которые выражают моё мнение о создаваемой системе. Я его поиспользую с вашего позволения? ))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: Скриптовый язык для повседневных нужд

Сообщение AestheteAnimus »

Denjs писал(а):
19.12.2008 19:35
Осмелюсь указать на QtScript погруженный в специальную среду - QDroid. Да, Есть такая идея.

Хм... идея действительно интересная, даже очень. Обязательно надо будет посмотреть более внимательно...

Denjs писал(а):
19.12.2008 19:35
Я его поиспользую с вашего позволения? ))

Ну это всегда пожалуйста ;)
Спасибо сказали:
Аватара пользователя
Doka
Сообщения: 715
Статус: ASIC Design Engineer
ОС: RHEL4

Re: Скриптовый язык для повседневных нужд

Сообщение Doka »

AestheteAnimus писал(а):
19.12.2008 18:30
Немного уточню, у меня не стоит задач обработки текста. Например, сейчас нужно сделать небольшой скриптик для загрузки/чтения прошивки через COM порт, притом сделать это надо для того, чтобы разобраться, как вообще работает протокол загрузки. Естесственно, такие проходящие задачки хочется делать максимально быстро.

в том-то и дело, что "повседневные нужды" у всех разные..
сфера моей профессиональной деятельности тесно пересекается с Embedded: если бы не этот факт, я бы выбрал Python, а не TCL
ибо слишком много завязано на этот архаичный (подчас с неподьёмным синтаксисом) TCL:
начиная от гигантов ASIC софта и всех вендоров ПЛИС, заканчивая встроенным интерпретатором TCL в OpenOCD, SAMba, Specctra

Для тоакого рода задач скорее полезна возможность манипуляции с нестроковыми данными, нежели со строками. (Пока я и сам склоняюсь в сторону Змеюки ;) )

в TCL любые данные - суть строки (, списки, массивы)..
но после некоторого привыкания это не мешает эффективно кодить
Never stop thinking..................................................................
Спасибо сказали:
tolobayko
Сообщения: 35
ОС: ALT Linux 4.0.2 Desktop

Re: Скриптовый язык для повседневных нужд

Сообщение tolobayko »

bash однозначно
Спасибо сказали:
ester
Сообщения: 45

Re: Скриптовый язык для повседневных нужд

Сообщение ester »

tolobayko писал(а):
02.01.2009 17:09
bash однозначно

Bash+sed/awk
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Скриптовый язык для повседневных нужд

Сообщение diesel »

ester писал(а):
02.01.2009 21:02
tolobayko писал(а):
02.01.2009 17:09
bash однозначно

Bash+sed/awk

... и это пройдет (:
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: Скриптовый язык для повседневных нужд

Сообщение AestheteAnimus »

Doka писал(а):
31.12.2008 14:42
если бы не этот факт, я бы выбрал Python, а не TCL
ибо слишком много завязано на этот архаичный (подчас с неподьёмным синтаксисом) TCL

Вот поэтому я допускаю, что его придется изучить. Тем не менее, мои задачи несколько в стороне перечисленных Вами, поэтому, все-таки пока остановился на Питоне.

tolobayko писал(а):
02.01.2009 17:09
bash однозначно

ester писал(а):
02.01.2009 21:02
Bash+sed/awk

Даже комментировать не стану сию узость мышления...
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Скриптовый язык для повседневных нужд

Сообщение rm_ »

На мой взгляд для шелл-скриптинга весьма удобен PHP. Попробуйте - понравится. :)
Если же Вы потянулись за помидорами или другими бросательными объектами - чтож, жаль, предубеждения - нехорошая штука. :)
Спасибо сказали:
Аватара пользователя
AestheteAnimus
Сообщения: 135
ОС: FreeBSD 8.0-RELEASE amd64

Re: Скриптовый язык для повседневных нужд

Сообщение AestheteAnimus »

rm_ писал(а):
03.01.2009 01:19
На мой взгляд для шелл-скриптинга весьма удобен PHP. Попробуйте - понравится. :)
Если же Вы потянулись за помидорами или другими бросательными объектами - чтож, жаль, предубеждения - нехорошая штука. :)

PHP? Ммм... нет, я не стал бы его использовать где-то за пределами веба...
Спасибо сказали:
tolobayko
Сообщения: 35
ОС: ALT Linux 4.0.2 Desktop

Re: Скриптовый язык для повседневных нужд

Сообщение tolobayko »

ester писал(а):
02.01.2009 21:02
tolobayko писал(а):
02.01.2009 17:09
bash однозначно

Bash+sed/awk


да, разумеется! а также grep, cut, sort, uniq и т.д. :)
Спасибо сказали:
tolobayko
Сообщения: 35
ОС: ALT Linux 4.0.2 Desktop

Re: Скриптовый язык для повседневных нужд

Сообщение tolobayko »

AestheteAnimus писал(а):
03.01.2009 01:34
rm_ писал(а):
03.01.2009 01:19
На мой взгляд для шелл-скриптинга весьма удобен PHP. Попробуйте - понравится. :)
Если же Вы потянулись за помидорами или другими бросательными объектами - чтож, жаль, предубеждения - нехорошая штука. :)

PHP? Ммм... нет, я не стал бы его использовать где-то за пределами веба...


это почему же?

для больших и сложных скриптов я использовал PHP (из-за ООП для более простой поддержки скрипта)
PHP в данном случае ничем не отличается от питона, руби и перла

меня всегда радует выражение лица знакомых-веб-разработчиков-на-пхп когда я им сообщаю, что на пхп можно писать обычные консольные утилиты :)
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Скриптовый язык для повседневных нужд

Сообщение SLEDopit »

tolobayko писал(а):
03.01.2009 02:10
да, разумеется! а также grep, cat, sort, uniq и т.д. :)
sed & awk, в отличии от приведенных вами команд, считаются скриптовыми языками.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Скриптовый язык для повседневных нужд

Сообщение Voice »

В PHP прехреново реализованы регулярные выражения, а без них ни туда и ни сюда.
Так что рекомендовать его не стоит.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Скриптовый язык для повседневных нужд

Сообщение diesel »

SLEDopit писал(а):
03.01.2009 02:21
tolobayko писал(а):
03.01.2009 02:10
да, разумеется! а также grep, cat, sort, uniq и т.д. :)
sed & awk, в отличии от приведенных вами команд, считаются скриптовыми языками.

только awk:

Код: Выделить всё

    sed - stream editor for filtering and transforming text
    awk - pattern-directed scanning and processing language
Спасибо сказали:
ester
Сообщения: 45

Re: Скриптовый язык для повседневных нужд

Сообщение ester »

ester писал(а):
02.01.2009 21:02
tolobayko писал(а):
02.01.2009 17:09
bash однозначно

Bash+sed/awk
уточняю: xml gawk
Спасибо сказали:
Аватара пользователя
SantaClausRpm
Сообщения: 58

Re: Скриптовый язык для повседневных нужд

Сообщение SantaClausRpm »

bash, perl (+ либы с cpan.org)
In FOSS we trust
Спасибо сказали:
tolobayko
Сообщения: 35
ОС: ALT Linux 4.0.2 Desktop

Re: Скриптовый язык для повседневных нужд

Сообщение tolobayko »

SLEDopit писал(а):
03.01.2009 02:21
tolobayko писал(а):
03.01.2009 02:10
да, разумеется! а также grep, cat, sort, uniq и т.д. :)
sed & awk, в отличии от приведенных вами команд, считаются скриптовыми языками.


во-первых, я не описался: именно cut (man cut)
во-вторых, при чем тут скриптовые языки?) я лишь перечислил стандартные утилиты GNU, которые являются неотъемлемой частью программирования на баше. то что некоторые из этих утилит являются скриптовыми языками никак не значит что я их перечислял именно по этому критерию ;)

а вобще это я с иронией написал, ибо товарищ ester написал "Bash+sed/awk" -- это все равно что написать что то типа: "PHP + explode()/Array Functions" ))
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Скриптовый язык для повседневных нужд

Сообщение rm_ »

PHP в данном случае ничем не отличается от питона, руби и перла

Неверно, он - лучше :)
Чего только (для шелл-скриптинга) стоит возможность:

Код: Выделить всё

<?php
$result = `/usr/bin/something --blah-blah --verbosity 9`;
?>

В переменной $result имеем полный вывод выполнившейся команды, с которым можно делать всё что угодно. В Перле точно так же, кстати говоря. А вот в Питоне для этого требуется подключение какого-то там внешнего дополнительного модуля, вызов одной (надо точно помнить которой) из функций exec*, похожих друг на друга, но с разными наборами параметров и разными типами возвращаемых значений, и т.д и т.п.

В PHP прехреново реализованы регулярные выражения, а без них ни туда и ни сюда.

Ничего плохого в их реализации не замечал, перлово-совместимые (PCRE) реализованы нормально (см. preg_*).
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Скриптовый язык для повседневных нужд

Сообщение diesel »

tolobayko писал(а):
03.01.2009 20:39
во-первых, я не описался: именно cut (man cut)

... при наличии awk - сомнительной полезности утилита. в качестве доказательства обратного просьба не показывать что cut, возможно, работает быстрее.

tolobayko писал(а):
03.01.2009 20:39
во-вторых, при чем тут скриптовые языки?)

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

tolobayko писал(а):
03.01.2009 20:39
а вобще это я с иронией написал, ибо товарищ ester написал "Bash+sed/awk" -- это все равно что написать что то типа: "PHP + explode()/Array Functions" ))

не одно и то же :) каждая из перечисленных утилит может использоваться самостоятельно, в уравнении с PHP отделить одно от другого нельзя :)
Спасибо сказали: