LINUX.ORG.RU

Самый лучший язык для скриптов: Tcl?

 , , , ,


7

5

Кратко: Я немного сравнивал разные языки и выбрал Tcl, при дальнейшем изучении не разочаровался.

А какие языки вы используете для задач средней сложности — тех что не требуют эпохальных тяжеловесных программ, но и не решаются тривиально пайпом из трёх-пяти команд в баше? Средняя сложность — это что-то порядка от 3-5 до 3-5 тысяч строк кода (смотря какой язык). Такие где разбиение программы на отдельные модули, хранимые в разных файлах ещё не требуется.

Длинно. Почему я выбрал Tcl.

Долгое время я писал на bash. Это неплохой язык, к тому же он достаточно выразительный, чтоб делать что угодно без вызова внешних программ и в таком случае производительность получается вполне на уровне.

Но у bash есть проблемы. Основная из которых — многие выражения (в частности пайпы) выполняются в субшелле, а из субшелла почти невозможно передать информацию в материнский иначе через stdout. Ещё одной проблемой является постоянная сериализация-десериализация объектов. Это уже не настолько важно, но всё-таки хотелось бы от этого по возможности избавиться.

То же самое касается других стандартных языков UNIX: dc, bc, sed, m4, awk, ... На последнем, впрочем, наверное, можно писать и нормальные программы, но синтаксис у него не очень красивый и возможностей не так уж много. Это хорошие языки, очень хорошие в своей области, но имеют ограниченную область применения.

Я уже знаю C и несколько других императивных языков, но если нужно что-то быстро посчитать или сделать, эти языки малопригодны — в том же C даже сравнить строки просто так нельзя, нужна специальная функция, кроме того нужно вручную рулить памятью. Pascal крайне беден в экспрессивном плане, а begin / end — это уродливо, так что лучше уж C. Basic уже мёртвый, да к тому же ещё более убог чем паскаль. C++ крайне сложен для изучения, а профита по сравнению с C почти никакого.

Таким образом, стало ясно, что мне нужно изучить какой-то другой язык. Так как язык требуется для того, чтоб быстро решить какую-то задачу, а не писать оптимизированное решение на века, стало ясно, что нужен один из динамических языков общего назначения: Perl, Python, PHP, Ruby, Tcl, Lua или какой-то другой.

Я выбрал Tcl.

1. PHP не подходит сразу, на нём только веб-странички хорошо писать, а всё остальное лучше в Perl (да и про страницы можно поспорить, если нужно чёткое разделение контента, стилей и логики).

1. На Perl, Python и Ruby множество сложных синтаксических конструкций, которые без поллитра не разберёшь, например (python):

_='_=%r;print _%%_';print _%_

2. Lua: простой язык, код на нём быстрый, изучить тоже можно довольно быстро. Но однако на каждый чих нужна либа. Даже работы с юникодом изкоробки нет (в смысле строку можно прочитать и вывести, но нельзя посчитать кол-во символ или заменить подстроку и тд).

3. Tcl: крайне простой синтаксис: 12 правил и man-ы по всем используемым командам достаточно для для понимания любого кода. При этом богатая стандартная библиотека, хорошая интеграция с Tk и кроссплатформенность.

То есть на Tcl можно решить любую задачу почти так же просто как на баше (да в крайнем случае даже пайпы есть), но при этом синтаксис гораздо более предсказуем.

Плюс на Tcl можно писать графические приложения так же легко как и консольные, например вот такой код в 10 строк — это уже целая работающая игра! Правда автор явно экономил строки, и читаемость кода из-за этого несколько страдает. Кроме того, Tcl поддерживает (особенно с 8.6) функциональное программирование и длинные числа изкоробки. Так что переход с bc, который только их и использует будет проще. Ещё мне очень нравится, что ключевых слов в этом языке нет. Вообще. Те же for / if и другие — это просто такие команды, которые берут условие и фрагмент и его исполняют. Можно запросто объявить процедуру for, которая будет использовать другой синтаксис итератора и далее использовать её, если так удобней. Язык динамически типизированный, как и другие скриптовые, но проблем из за этого не возникает. Если переменная используется внутри expr, то она интерпретируется как число. Если в команде string ... на месте строки — строка и тд. Никаких сомнительных x=«10»+10 Работа с переменными похожа на такую в bash, что тоже плюс: при присваивании переменной знак $ не ставится, а при извлечении из неё значения ставится:

set i 10 # i:=10
puts $i ;# будет выведено 10
incr i ;# i теперь 11
puts [expr [set i]+3] ;# set можно использовать вместо $i или ${i}\
так как при отсутствии третьего аргумента он просто возвращает значение.\
Ещё это один из немногих способов двойной подстановки.

4. Что-то другое. А что собственно? Пока только идёт в голову что-то лиспоподобное (например: clisp (scheme (или racket guile))), APL-подобное: J, K (есть свободная Kona), APL и тд или конкатенативное (dc-подобное): forth, factor...

Из 2, 3, 4 выбрал всё-таки Tcl, потому что синтаксис у него хоть и не стандартный для императивных языков, но похож на привычный шелловский и он есть в GNU/Linux изкоробки или в репозитории, так что не придётся заморачиваться ручной сборкой.

Уже начал изучать, почти всё нравится, кроме необходимости писать всё время expr и set, всё-таки такие частые операции можно было бы и сделать частью синтаксиса, хоть и немного в ущерб единообразию.

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

Учить его действительно легко, так как базовый синтаксис простой, а команды можно изучать по мере надобности, к тому же man к командам Tcl снабжен сносками на команды с похожим назначением, так что поняв, что команда — это не то, что надо, можно посмотреть все остальные и найти наиболее подходящую.

Таким образом, язык сочетает достоинства лиспа — гибкость, функциональщину и простоту базового синтаксиса и достоинства других скриптовых языков — более привычную инфиксную нотацию для арифметики и читаемый код.

★★★★★

Последнее исправление: Xenius (всего исправлений: 5)
Ответ на: комментарий от x3al

Этот код выглядит как C, компилится как C и ведёт себя как C → это C, а не Tcl.

Ептыть, а если этот код в синтаксисе лиспа переписать с сохранением семантики и скармливать в llvm в рантайме, то ты скажешь, что это что?

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

Не толще тебя, так что всё нормально.

anonymous
()
Ответ на: комментарий от it-nativa

Кто такие эти твои «служебные скрипты»? И почему они страдают он полноценных языков программирования?

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

То, что груду несопровождаемых говноскриптов в динамике с адской скоростью исполнения нельзя в здравом уме назвать приложением — это явная глупость?

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

Ну вот скажи, чем питон, перл и руби друг от друга отличаются кроме ключевых слов, некоторых операторов и синтаксиса?

ЛОЛШТО

metadeu5
()
Ответ на: Ах ты тостячок от silver-bullet-bfg

почему нельзя использовать вместо скриптового языка Racket?

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

То, что груду несопровождаемых говноскриптов в динамике с адской >скоростью исполнения нельзя в здравом уме назвать приложением — >это явная глупость?

Не торгуйся - да, это явная глупость.

На счет сопровождения.
Доходит до курьезов, когда прищавые идиоты выбрасывают из дистра
рабочий софт по причине, что он работает, а вот никто с ним не сношается непрестанно. Ну как такое возможно в линуксе ?))
Нет, это непорядок ...

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

Учи матчасть - в Python есть Cython, в Perl и Ruby тоже есть что-то
похожее.

Сам учи матчасть, ибо не переделывая тело всего скрипта и программы
можно критический фрагмент программы переложить плавно на Си в теле самого скрипта.
Эволюция и сопровождение.

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

Учи матчасть - в Python есть Cython, в Perl и Ruby тоже есть что-то похожее.

Сам учи матчасть

Я-то выучил.

ибо не переделывая тело всего скрипта и программы

Как в Cython.

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

Прикинь, всем пофиг на «замену динамической среды исполнения». Программа ускоряется за счет использования скомпилированного Си-кода. И в Tcl то же самое, только слова поэффектнее.

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

Прикинь, всем пофиг на «замену динамической среды исполнения».

это была рекламная пауза для всех кому пофиг ))

Программа ускоряется за счет использования скомпилированного >Си-кода. И в Tcl то же самое, только слова поэффектнее.

не надо путать методы и походы со словами.

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

Ну вот скажи, чем питон, перл и руби друг от друга отличаются кроме ключевых слов, некоторых операторов и синтаксиса?

omg. нет слов. кроме того, напомню, что твоя претензия к этим языкам была

На Perl, Python и Ruby множество сложных синтаксических конструкций, которые без поллитра не разберёшь

какие именно синтаксические конструкции тебе показались сложными в Питоне? единственное, что я могу представить — форматирование строк, которое в Питоне выглядит (выглядело до тройки) корявее чем принято, и передача параметров списком и словарем. все остальное — максимально просто, понятно и прозрачно. в этом же основное преимущество Питона, на нем очень сложно писать непонятную муть.

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

Вах, ну так все просто, что на любой вид деятельности
народ ищет вспомогательные плюшки и вообще не может представить как что-то можно сделать на голом языке, ога ))

bedcasus
()
Ответ на: комментарий от val-amart

все остальное — максимально просто, понятно и прозрачно. в этом же основное преимущество Питона, на нем очень сложно писать непонятную муть.

  print ''.join('%(pre)s%(num)s %(bot)s on the wall, %(nul)s %(bot)s,\n%(tak)s\n' % (lambda c,b:
  {'pre':['','%s %s on the wall.\n\n' % (c,b)][abs(cmp(c,'Ninety-nine'))],
 'num':c, 'nul':c.lower(), 'bot':b,
 'tak':['Go to the store and buy some more... Ninety-nine %s.' % b,'Take one down, pass it around,'][abs(cmp(x,0))]
  })((lambda x,o: [(['Twenty','Thirty','Forty','Fifty',
  'Sixty','Seventy','Eighty','Ninety'][x/10-2]+'-'+o.lower()).replace('-no more',''), o][int(x<20)])(x, ['No more','One','Two',
  'Three','Four','Five','Six','Seven','Eight',
  'Nine','Ten','Eleven','Twelve','Thirteen','Fourteen',
  'Fifteen','Sixteen','Seventeen','Eighteen','Nineteen'][[x,x%10][int(x>=20)]]),'bottle%s of beer' % ['','s'][abs(cmp(x,1))])
  for x in xrange(99,-1,-1))
Xenius ★★★★★
() автор топика
Ответ на: комментарий от Xenius

А я что сказал? Я как раз в точности это и сказал: язык C в качестве скриптового не подходит. И где ты бред нашел в этой фразе?

Я нашел саму идею использования Си в качестве кандидатуры скриптового языка.

Покажи хоть одну серьёзную свободную программу, написанную на бейсике. Которой кто-то реально пользуется, у которой есть свои конференции. На Tcl вот сразу в голову приходят Eggdrop и Tkabber, к примеру — самый популярный IRC бот и один из самых популярных IM-клиентов.

Показатель «живости» языка является наличие большого количества ОS-софта? А мужики то не знают. Пойду сообщу.

Правда почему-то после того как я его преобразовал он уже не работает...

Без комментариев

Слишком просто. Мог бы вот этот предложить: http://psg.com/~joem/tcl/iotcc.html Хотя там тоже довольно простенько, обфускация слабовата.

Я код без обфускации приводил. Причем он соответствует нормальной практике языка.

Сначала напиши их мне на ассемблере (fasm в идеале).

Зачем? Я же не утверждаю, что на tcl смогу решить любую задачу.

Синтаксис перегрузить нельзя, зато

Нет у него синтаксиса. Как и лиспа.

А почему нет?

Потому, что это стрельба из гаубицы по мухам.

Ну хотя бы потому что там функции вызываются не через function args

И в чем тут проблема?

silver-bullet-bfg ★★
()
Ответ на: комментарий от Suntechnic

Согласен...перегрузки всего и вся мне не зватает в других языках. Поэтому уже долго не могу переползти для прикладного гуя с Tcl/Tk на Python/Qt...

silver-bullet-bfg ★★
()
Ответ на: комментарий от Xenius

Ну вот скажи, чем питон, перл и руби друг от друга отличаются кроме ключевых слов, некоторых операторов и синтаксиса?

Ого...да ты совсем не знаешь python, ruby и perl...

silver-bullet-bfg ★★
()
Ответ на: комментарий от bedcasus

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

Мне уже приходилось разгребать эти горы говноскриптов на Tcl и править говноскриты на Jython из IBM WebГовноSphere (правил, кстати, баг, который в нормальном языке компилятор бы не пропустил, а в Петоне — вот вам — жрите).

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

Ок. Расскажу пацанам. Они не знают. Пусть выбрасывают свой АВАР и Кобол. Нафиг финансовый сектор. Аналитики с ЛОРа считают эти языки мертвыми.

silver-bullet-bfg ★★
()
Ответ на: комментарий от harm

Факт остается фактом. Программисты на коболе до сих пор востребованы. В рейтинге языков от TIOBE он находится выше bash, Ada, Scheme, Fortran, Haskell, Erlang, Scala, Tcl. А «мертвый» Basic на 7-ом месте.

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Программисты на коболе до сих пор востребованы.

Всё познаётся в сравнении.

В рейтинге языков от TIOBE

Рейтинги такие рейтинги.

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

Всё познаётся в сравнении.

Ну давай, приведи примеры. Только не языки исключительно OpenSource разработчиков, а годные инструменты на которых пишутся тонны как открытого, так и закрытого софта. Что, кроме C++, Java и CL на ум ничего не приходит? Да и то - C++ маргинален и годен только с кучей обвесок, Java == Oracle, CL - только платыне реализации можно использовать. Закрытые. А CL ты не считаешь мертвым?))))

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Ну так все три - ватное месиво из соплей без типов. Немудрено, что человеку непонятно, чем они отличаются, кроме как синтаксисом.

anonymous
()
Ответ на: комментарий от silver-bullet-bfg

Ну давай, приведи примеры.

Примеры популярных языков? Посмотри на чём написаны установленные у тебя в системе программы, например.

не языки исключительно OpenSource разработчиков

Откуда такой критерий?

Что, кроме C++, Java и CL на ум ничего не приходит?

Ещё tcl, perl, python, ruby и пых, а также bash, awk и sed.

C++ маргинален

:-)

А CL ты не считаешь мертвым?

Нет. CL я считаю малопопулярным.

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

Примеры популярных языков? Посмотри на чём написаны установленные у тебя в системе программы, например.'

Так ты мне приведи примеры программ на живых языках. Уровня ынтерпрайза только. А не плееры/блокнотики/клоны_гном_командера. Ок?

Откуда такой критерий?

Потому, что язык поддерживаемый только OpenSource быстро загнется или будет бесполезным. Для примера - тот же Rebol3.

:-)

А...ты из тех крестовиков, которые как и хаскелисты дрочат на язык? Тогда понятно, вопросов не имею.

Нет. CL я считаю малопопулярным.

В какой именно области? Указывай, плз. Erlang популярный в определенной предметной области язык. Как и Tcl. Как и bash. И т.п. CL в своей области достаточно популярный инструмент.

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Так ты мне приведи примеры программ на живых языках.

http://pastebin.ca/2443364

Уровня ынтерпрайза только.

Ещё одно странное ограничение.

Потому, что язык поддерживаемый только OpenSource быстро загнется или будет бесполезным. Для примера - тот же python.

fxd

А...ты из тех крестовиков, которые как и хаскелисты дрочат на язык?

Оставьте свои сексуальные фантазии при себе.

какой именно области?

CL --- язык общего назначения. Вот и сравнивать его нужно с другими языками общего назначения в целом.

CL в своей области достаточно популярный инструмент.

А язык племени мумба-юмба в своей области (5 квадратных километров) куда популярнее английского.

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

http://pastebin.ca/2443364

Что? Не можешь подобрать коммерческую программу на живом языке?

Ещё одно странное ограничение.

А декстопный счет можно писать хоть на чем. У него требования менее жесткие.

Потому, что язык поддерживаемый только OpenSource быстро загнется или будет бесполезным. Для примера - тот же python. fxd

Хочешь сказать, что python только OpenSource поддерживается? Да ты упорот.

Оставьте свои сексуальные фантазии при себе.

Правда глаза колит?

CL --- язык общего назначения. Вот и сравнивать его нужно с другими языками общего назначения в целом.

Так tcl тоже язык общего назначения. И что? Все равно у языков есть своя ниша для которой они и разрабатывались изначально.

А язык племени мумба-юмба в своей области (5 квадратных километров) куда популярнее английского.

Это лишь доказывает, что говоря на английском в племени мумба-юмба ты с большим трудом достигнешь результата, чем использую язык мумба-юмба. Если есть язык, который считается языком общего назначения - это не значит, что на нем нужно писать все, что угодно. Это значит на нем МОЖНО написать все, что угодно. ASM язык общего назначения, но писать на нем сегодня, скажем ERP-систему - просто адЪ, содомия и предел идиотизма. Каждой задаче лучше всего подходит свой инструмент. Забудь о серебрянной пули

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Потому, что язык поддерживаемый только OpenSource быстро загнется или будет бесполезным. Для примера - тот же Rebol3.

А когда Rebol3 стал OpenSource?

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

Вообще уже давненько. Посмотри на git'e выложены все исходники. Года 2 или 3 уже как

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Что?

Примеры программ на живых языках, как ты просил.

коммерческую программу

Что считать коммерческой программой?

А декстопный счет можно писать хоть на чем

Но, вот, на коболе почему-то не пишут. Странно, правда?

python только OpenSource поддерживается?

Что значит «только OpenSource поддерживается»?

Правда глаза колит?

Нет, ты просто наглухо не угадал в своих прогнозах.

tcl тоже язык общего назначения.

Он тоже малопопулярный.

Это лишь доказывает

Это ничего не доказывает. Это просто иллюстрирует место кобола в современном мире.

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

Ну вот скажи, чем питон, перл и руби друг от друга отличаются кроме ключевых слов

Время стартапа на моей машине:
python-2.7.4 — 12..13мс
perl-5.14.2 — 2.1мс
ruby-1.9.3p194 — 14-15мс

Для скриптов во всяких пайпах в цикле обработки может быть весьма критично.

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

Примеры программ на живых языках, как ты просил.

Я просил не opensource, поясняю третий раз для особо одаренных.

Что считать коммерческой программой?

Давай не будем строить из тебя идиота? Коммерческая программа = продукт, которая стоит определенное количество убитых енотов за использование.

Но, вот, на коболе почему-то не пишут. Странно, правда?

Нет. Давай тогда удивимся, что на Clojure не написано софта декстоптного. Ну или на Erlang. Про 1,5 программы лучше не заикайся. Гуглить лень - 1,5 программы для декстопа есть наверняка и на коболе. Clojure, Erlang, Cobol - языки общего назначения, но изначально заточенные не под декстоп, предметная область применения у них другая.

Что значит «только OpenSource поддерживается»?

Обосрался и решил уточнять термины, чтобы доказать, что не обосрался? Логично)

Нет, ты просто наглухо не угадал в своих прогнозах.

Я не прогнозирую, только предполагаю и делаю выводы по твоему поведению.

Он тоже малопопулярный.

А мужики то не знают...пойду передам.

Это ничего не доказывает. Это просто иллюстрирует место кобола в современном мире.

Доказывает убогость твоего мышления

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Я просил не opensource

Будьте добры обосновать это ограничение.

Коммерческая программа = продукт, которая стоит определенное количество убитых енотов за использование.

atlassian jira --- первое, что пришло в голову. Ты счастлив?

Давай тогда удивимся, что на Clojure не написано софта декстоптного.

На молодом малопопулярном языке мало софта? Как удивительно.

изначально заточенные не под декстоп

что значит «заточен на десктоп»?

1,5 программы для декстопа есть наверняка и на коболе.

% aptitude search cobol
p   open-cobol - COBOL compiler                                                                             
p   open-cobol:i386 - COBOL compiler          

Обосрался и решил уточнять термины, чтобы доказать, что не обосрался?

Ответ в стиле «ололо, я тебя затролел».

Я не прогнозирую, только предполагаю и делаю выводы по твоему поведению.

Хреново у тебя получается.

А мужики то не знают

Теперь знают.

Доказывает убогость твоего мышления

Титаны духа в треде.

harm
()
Ответ на: комментарий от silver-bullet-bfg

CL - только платыне реализации можно использовать.

Что за CL? Common Lisp? Так бы и писал.

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

Для скриптов во всяких пайпах в цикле обработки может быть весьма критично.

А как насчёт Tcl и Lua?

Втыкать в пайп скрипт, да ещё внутри цикла — это не очень хорошая идея, по-моему так. Лучше воткнуть цикл в сам скрипт. А если цикл небольшой — то без разницы должно быть.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от silver-bullet-bfg

Коммерческая программа = продукт, которая стоит определенное количество убитых енотов за использование.

Ну вот RedHat Enterprise Linux например подойдёт? А дальше возвращайся к пункту со списком пакетов.

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

Будьте добры обосновать это ограничение.

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

atlassian jira --- первое, что пришло в голову. Ты счастлив?

Я просил не С++/Java/C#.

На молодом малопопулярном языке мало софта? Как удивительно.

Очень,по твоей логике. В нем ведь все либы для Java пашут.

1,5 программы для декстопа есть наверняка и на коболе.

Надо же - для коммерческого продукта нет открытых продуктов в линупсе. Ты бы еще АВАР искал

Ответ в стиле «ололо, я тебя затролел».

Констатирую факт

Хреново у тебя получается.

Да нет, вроде пока в точку.

Теперь знают.

Ага, сидим, ржем.

Титаны духа в треде.

При чем тут разум и дух?

silver-bullet-bfg ★★
()
Ответ на: комментарий от Xenius

А как насчёт Tcl и Lua?

lua смотрится отлично. 1.5 мс.

В tclsh не знаю, как его запустить с кодом в командной строки, чтобы чисто стартап оценивать.

Лучше воткнуть цикл в сам скрипт

Только это уже не unix-style и требует правки скрипта :)

KRoN73 ★★★★★
()
Ответ на: комментарий от silver-bullet-bfg

я говорю про коммерческие продукты готовые к промышленному использованию.

А почему ты не говоришь про открытые продукты, готовые к промышленному использованию?

Я просил не С++/Java/C#.

Ок. Тогда otrs itsm. Это на перле.

В нем ведь все либы для Java пашут.

Этого мало. Нужны ещё и программисты.

для коммерческого продукта нет открытых продуктов в линупсе.

компилятор есть. Софта нету. И не будет.

Констатирую факт

Интересные у тебя в голове факты.

Да нет, вроде пока в точку.

Бгг.

Ага, сидим, ржем.

Причём оба.

harm
()
Ответ на: комментарий от KRoN73
$ time for i in {1..1000}; do tclsh - <<< exit; done

real    0m14.166s
user    0m9.807s
sys     0m4.024s
$ time for i in {1..1000}; do perl - <<< exit; done

real    0m9.148s
user    0m4.873s
sys     0m3.722s
$ time for i in {1..1000}; do python - <<< exit; done

real    0m22.685s
user    0m15.485s
sys     0m6.293s
$ time for i in {1..1000}; do lua - <<< exit; done
lua: stdin:2: '=' expected near '<eof>'
lua: stdin:2: '=' expected near '<eof>'
...
$ time for i in {1..1000}; do ruby - <<< exit; done

real    0m29.266s
user    0m21.215s
sys     0m7.310s
Xenius ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.