LINUX.ORG.RU
ФорумTalks

Сравнение скриптовых языков

 , , , ,


2

4

Какие есть особенности, преимущества и недостатки у Perl, Python, Ruby, Tcl, Lua?

Пробовал гуглить, находил такое сравнение, но тут нет Tcl, и идёт сравнение мелких деталей синтаксиса.

Какие есть нормальные сравнения этих языков? Какой язык стали бы изучать вы и почему?

Если вы какие-то из них уже хорошо знаете, то чем каждый из них вам нравится или не нравится и почему?

★★★★★

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

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

GUI можно и на ассемблере писать, но зачем?

Ради определенных плюшек. На перле просто весь GUI надо вбивать руками, что считается тру. Однако этот не тот случай. Когда надо быстро наваять графический интерфейс на перле хочется поскорее писать бэкенд код, а этого не получается сразу, т.к. надо вкуривать как писать формы и раставлять «кнопочки». Еще раз в Prima это делается гораздо быстрее, чем в wxPerl. Но последний все же более мощный и картинка везде нативная.

Может ещё от языка и оформления зависит?

Нет. От ЯП точно не зависит. По крайне мере я когда смотрю свой старый код - почти все понимаю. Да, с годами опыт прибавляется и местами смотришь на свой код как на гкод :) Это нормально. Другое дело, что если перл не изучаешь по полной программе и не развиваешься в нем, а также пишешь нечасто, то возможно такое как у автора сей статьи ощущение может возникнуть. Просто потому, что у тебя идет «корреляция» с другими ЯП, где все отличается :)

И, да, на перле всетаки можно писать по-разному. Можно писать гкод, но если брать примеры с хороших модулей на cpan (стиль, приемы и т.п.), то он будет читабелен всегда. Если же писать всегда разными способами, то не найдя своего стиля код всегда будет выглядеть для тебя по-новому. Походу, это и было проблемой автора статьи.

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

Perl — говно
Python — говно
Ruby — говно
Tcl — говно
Lua — лютое говно

fixed for greater good

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

кстати, Tk тоже входит в базовую поставку Python, так что простые GUI на нем писать как минимум не труднее.

в Дебиане ставится отдельным пакетом python-tk

das_tier ★★★★★
()

Если гугла мало, то только сравнивать самому.

aristocraft
()

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

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

Угу, например WSGI:) Зато как заиграло благодаря эффективному метапрограммированию;)

special-k ★★★
()
Ответ на: комментарий от CYB3R

Думаю корректнее было спросить:

«Как ты узнал что я пользуюсь vim?„Не?

Я Нострадамус!:)

Просто на lua не очень то много где конфиги делают, а если его кто-то ещё и хвалит то почти определённо это вимер :) с малым процентом вероятности обратного относительно онтопика.

Dron ★★★★★
()

На что же вы на Ruby так, вся хипстота на JS-е.

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

Забей, у него ООП Головного Мозга. В CL ООП как бы в стандарте, но «поддержка компилятора» заключается только в оптимизациях, так что могла быть и библиотекой. Это не принципиально. И ООП далеко не всегда нужен, даже если не один пишешь. Тоже скорее от специфики проекта зависит, в т.ч. и сложности.

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

Зачем? Слишком много скобок, мне некомфортно с этим работать. А Common Lisp уже изучал, но дальше хелловордов и факториалов дело не пошло.

В Scheme скобок не больше, чем в CL. :D Большинству, кто пытается начать работать с лиспами некомфортно от того, что язык читается по-другому. Я обнаружил, что чем меньше у человека опыта с языками со сложным синтаксисом, тем лучше воспринимаются лиспы и Tcl.

А в Tcl в сравнении с лиспом меньшее количество скобок при похожем синтаксисе обусловлено тем, что в Tcl больше принят императивный стиль, что неудивительно для скриптового языка, а в CL и Схемке - декларативный. Например, with-open-file вместо open+close, let вместо set и т.д.

Мне сказали что проще и быстрее всего простенькие GUI делать на Tcl/Tk, что даёт +1 Tcl

Для гуёв кроме Tcl/Tk тоже ничего посоветовать не могу. Он уже давно не выглядит как говно, может отрисовываться через GTK или Qt, поддерживает темы.

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

У меня vim и awesome. Обожаю их. Не люблю только эти begin-end конструкции, больше нравится lua-cb (curly brackets).

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

Все зависит от размеров. Код за 500 строчек реально сложно читать и понимать. При этом, если очень захотеть, то все понимаешь/вспоминаешь.

И почему я в любом нормальном rails-проекте всё нормально читаю и понимаю при объемах на порядок больших?

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

И почему я в любом нормальном rails-проекте всё нормально читаю и понимаю

Не знаю. Дай пример.

при объемах на порядок больших?

5 тыс. строк? Все понимаешь? Ну в перле такой код тоже можно писать. Только читать и понимать != поддерживать.

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

В целом согласен.

Добавлю лишь, что GUI на tk очень легко пишется и просто используется. Если не нужно красивостей, а необходим именно функционал, причём быстро, perl+tk - отличный выбор. Во всяком случае для меня, так как тратить время на изучение других языков мне лень, а perl я уже немного знаю.

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

shell-script ★★★★★
()
Ответ на: комментарий от Xenius

Может ещё от языка и оформления зависит?

Как обычно зависит от программиста, имхо.

Буквально на днях надо было разобраться и поправить код djabberd для своих нужд. Чтобы вникнуть ушло около часа, чтобы сделать правки ещё столько же. Это при том, что я до этого вообще ни разу не видел этот проект. Если считать по строкам, то там сильно больше 500 в сумме. Другое дело, что там всё как полагается разбросано по модулям.

shell-script ★★★★★
()
Ответ на: комментарий от gh0stwizard

Не знаю. Дай пример.

https://github.com/gitlabhq/gitlabhq канонический пример

https://github.com/gistflow/gistflow еще понятнее

Да тот же редмайн/чили и то имеют понятные исходники (правда, огромное количество хуков серьезно снижает читаемость)

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

Как Perl-программист, поглядывающий в сторону Ruby (ну а куда еще развиваться?), интересуюсь синтаксисом. Зачем так много вопросительных знаков в коде? Выглядят как костыль. Вот пример:

return events unless params.present?

Вот весь исходник: https://github.com/gitlabhq/gitlabhq/blob/master/lib/event_filter.rb

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

Чето не нашел я файлов, где 5 тыс. строк. Если что, то я говорил о трудности поддержки именно проекта в один файл за 500 строк. Если разбить его на части, то читается идеально. И такие проблемы в любом яп. Напиши на руби в один файл 5 тыс. строк и посмотришь как народ будет морщить нос и называть гкодом :)

И руби уже сложно назвать кроссплатформой. После выхода 2.0 wxRuby рипнулся. Многие гемы под винду уже никто не поддерживает. В отличие от перла и tcl/tk.

Почему я так сказал? Да потому что в 2000 году только-только появился перл 5 с поддержкой ООП и прочими прелестями. И держать файлы по 5 тыс строк было якобы нормой...

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)

сравнение мелких деталей синтаксиса

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

Perl: «executable line noise», т.ч. подходит для несложной обработки plaintext-файлов в одноразовых или совсем тривиальных задачах и игры в гольф.

Python: гипертрофированная читабельность для новичков; потому сильно ограничивающий синтаксис, неплохо заточенный под типичные простые задачи - но попытки заточить его под свою(буде такое понадобится) получаются за счёт изрядного уродства под капотом, или не получаются вовсе.

Tcl: наоборот - одинаково плохо подходит для большего круга задач; очень приятен, если для твоей уже придумали правильную либу (python-ские аналоги expect-а и tk выглядят жалко), и не мешает делать свою; но верно и обратное - простая работа с простыми объектами хуже питонской.

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

lua: совсем другая ниша с более существенными критериями. afair tcl на ней тоже игрок, остальные - нет.

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

Это такая фича руби, восклицательные и вопросительные знаки :) По соглашению методы с восклицательным знаком на конце являются «forced» версией одноименных методов без него, а методы с вопросительным знаком возвращают boolean.

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

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

Вроде для руби модно использовать shoes.

Да, я где-то видел от лоровца секурную реализацию мессенджера на руби, в которой весь код был в одном файле. Это быдлокод(на мой взгляд), и дело тут не в ЯП.

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

Я не модератор потому, что если буду, то будет тотальная чистка по 4.3, 5.1, 5.2 и 5.5, будет много воя, а оно мне надо этот геморрой? :}

Походу, я единственный, в чьей предвыборной программе нет ни чисток, ни расстрелов, лишь один сплошной либерализм и борьба за права анонимуса :3

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

Единственное, что мне возможно было желание удалить — спам. Но я его не вижу. Все остальные сообщения/темы на лоре меня устраивают.

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

Лучше бы вот так…

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

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

Главным образом пунктом «больше прослоек хороших и разных». В линуксе и так слишком много тулкитов, а тут ещё враппер над GTK.

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

В линуксе и так слишком много тулкитов, а тут ещё враппер над GTK.

Не надо ляля. wx под виндой дергает winapi, под mac os скорей тоже натив и только под линуксом дергает gtk.

gh0stwizard ★★★★★
()

Какие есть особенности, преимущества и недостатки у Perl, Python, Ruby, Tcl, Lua?

perl лучше всех - недостатков нет, идеальный язык. главное на нем не писать всякий гуй. а по прямому назначению, т.е. работа с большими (да и мелкими тоже) объемами текста, лучше него я ничего не встречал. это все о perl5 ессно, с 6м я пока не знаком вообще.

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

руби и tcl я слишком плохо знаю, чтобы объективно оценить.

lua - быстрый, удобен для встраивания в сишные программы. но синтаксис на любителя.

Какой язык стали бы изучать вы и почему?

как раз вот хочу tcl[/tk] изучать. чтобы всякую гуйню для перловых скриптов делать. пока что нравится все что о нем слышал.

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

В линуксе и так слишком много тулкитов, а тут ещё враппер над GTK.

wxX11 отменили?

Xenius ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.