LINUX.ORG.RU

интерпретируемые языки


0

0

Требуется консуьтация по сабж. Сам пишу на С и кроме программирования в bash с интерпретируемыми языками не сталкивался. Вот нужно изучить что-нить из perl, python, lisp, php ... ещё что-то... и т.д. для :
1. Замены тяжелому и тормознутому MatLab'у. Т.Е. нужны мат. вычисления (матрицы, ЦОС и т.д.), быстрого построения графиков... Эт может и не входить в сам язык, а цепляться как модули.
2. ВсЁтаки важна скорость исполнения - желательно наиболее быстрый.
3. Гибкое взаимодействие с ОС - процессы, потоки, IPC, ФС.....
4. Сетевого, WEB - программирования...
5. Быстрого клепания GUI - иногда нужно, а лезть в дебри не охото...)))

Понятно, что все это можно на С сделать...) Но для не критичных по скорости приложений - не лениво заморачиваться!

Что выбрать ???

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

> python, там как раз мощная либа для мат вычислений

Я вот тож на него смотрю. А как он по тормознутости(или наоборот) в сравнении с другими?

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

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

ero-sennin ★★
()

Вероятно, Python.

У него наиболее богатая библиотека (ну, еще Perl может с ним поспорить в этом вопросе) с более-менее прямыми биндингами ко многим системным вещам типа "процессы, IPC, ФС". С потоками у него свои собственные грабли :) С сетью всё OK --- от сокетов до WEB в любых проявлениях (CGI, mod-python, собственный сервер и т.п.). GUI --- в комплекте идет Tkinter, есть биндинги к куче популярных тулкитов типа GTK, QT, wxWindgets и пр.

Со скоростью --- требование странное, при условии интерпретируемости :) Python, вообще, считается относительно тормозным, но для вычислений есть спец. либы, писанные на C. Так что, если задачу сводить к ним, то будет довольно быстро.

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

> Со скоростью --- требование странное, при условии интерпретируемости

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

eraser
() автор топика

lisp - компилируемый.

Требования - ИМХО, противоречивые. Почему нужен ОДИН язык для матвычислений, сетевухи и гуйщины? И почему обязательно интерпретируемый?

Если убрать пункты 1 и 2 - можно попробовать тикль (tcl). Если позарез нужно, чтобы в одном языке было всё, и при этом приличная скорость - lisp. В режиме интертрепатора отлаживаем, для скорости - компилируем. Кстати, с лиспом и так очень не вредно познакомиться.

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

> Требования - ИМХО, противоречивые

Эт понятно ) Просто в среднем чтоб в удовлетворял всем требованиям... Где-то лучше, где-то хуже...

> Почему нужен ОДИН язык для матвычислений, сетевухи и гуйщины?

ИМХО, вполне естественное желание :) Чтоб голову лишним не забивать... Тем более, что приведенные пункты (кроме 1-го) требуются не так уж и часто и на каждый учит свой язык ? Геморно как-то :)

> lisp - компилируемый.

Вроде же и Python байт-компилируемый...

eraser
() автор топика

ИМХО питон. Хорошие либы, легкость подцепления своих либ(ctypes=) ). Вообщем хорошая вещь, даже просто как каркас

Motiv_studenta ★★
()
Ответ на: комментарий от ero-sennin

Так я вроде бы и написал - кроме пунктов 1 и 2. А чем не устраивают тиклевские массивы?

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

> > Почему нужен ОДИН язык для матвычислений, сетевухи и гуйщины?

> ИМХО, вполне естественное желание

Не-а, неестественное.

> на каждый учит свой язык ? Геморно как-то :)

Окупается простотой выражения своих мыслей.

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

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

> Если позарез нужно, чтобы в одном языке было всё, и при этом приличная скорость - lisp.

Вот на lisp тож смотрю... Как у него с математикой ? Гуями ? Сетью ? Как он с питоном в сравнении ???

eraser
() автор топика
Ответ на: комментарий от Miguel

> Я, например, знаю порядка двадцати и учу сейчас ещё два.

Эт конечно хорошо для общего развития :) Только надо ли...??? Я б тогда уж всё на С делал. По временным затратом тож самое было бы... GTK бы изучил, математику бы написал... Скорость бы была...) Смысл то в том, что при минимуме временных затрат - получить максимум возможностей...

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

Насчет графики GTK весьма рулит(с QT не сравниваю). Всю статичискую часть UI можно на GLADE писать/рисовать. Советую.

YesSSS ★★★
()

Python + Psyco будет работать быстрее Perl и PHP, но AFAIK придется работать в 32-битной среде. А вообще - питон лучше, чем Perl и PHP.

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

32-битная среда - для Psyco. Psyco увеличивает скорость работы в несколько раз. Только код вне функций работать вряд ли будет быстрее.

anonymous
()

Кстати... Как насчёт JavaScript aka ECMAScript? Stand-alone-интерпретаторы есть, хоть и немного. Матвычисления не пробовал, но, учитывая, что язык поддерживает функциональную парадигму - должно быть неплохо. Веб-программирование - шо клиент, шо сервер, и там и там можно. Гуй - простецкий можно и на ХТМЛ-е наклепать, а непростецкий так и так в дебри лезть. Минус - всё-таки, в основном, язык мыслится как предназначенный для веба, и некоторые интерпретаторы выдраны с мясом из браузеров, а потому фигово работают вне их. Посему с пунктом 3 - не уверен, насколько будет хорошо.

Miguel ★★★★★
()

Python, Perl или Ruby.

При всей моей любви к перлу - наверное, все же Python, у него матбиблиотека готовая есть, и интерфейс к Си(++) прямее сделан.

Perl зато лучше тем, что позволяет (не всегда, правда - если объемы данных не сильно большие)заменить собой весь зоопарк sh+sed+awk+sort, причем портабельно (Perl везде есть и везде одинаковый, а таскать за собой везде гнутый awk и bash - неправильно).

Лисп - штука хорошая, но плохо интегрируемая с юниксом, "вещь в себе" (ну, или в emacs-е ;).

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

> Вот на lisp тож смотрю...

У LISP много инкарнация, а у Common Lisp много реализаций, весьма разных, и не все они компилируемые.

> Как у него с математикой ?

Нормально. В компилируемых --- замечательно :)

> Гуями ?

Так себе. Есть MCCLIM, может есть биндинги прочих toolkit'ов. X-lib так точно привернули :)

> Сетью ?

На мой взгляд, хреново. В стандарте нет, реализаций много --- все кто в лес, кто по дрова.

> Как он с питоном в сравнении ???

Больше геморроя с переносом Win<->Unix в силу отсутствия нормальных реализаций, работающих и там, и там, и большого различия между разными реализациями.

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

А зачем в упомянутых задачах sh+sed+awk+sort???

> Лисп - штука хорошая, но плохо интегрируемая с юниксом

В каком смысле???

Miguel ★★★★★
()

Python. Это всё - о нем 8). 1 - это SciPy, numarray; 2 - psyco и то, что через SWIG можно дергать Си/Си++ код; 3 - всё в стандартной либе; 4 - стнадартная либа, mod_python, Django; 5 - PyGTK и Glade, PyQt.

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

Питон наверное в сумме лучше учитывая его простоту. Но Лисп можно компилить в нативный код и тогда будет очень быстро. Если задачи достаточно большие его плюсы могут перевесить.

> Лисп - штука хорошая, но плохо интегрируемая с юниксом, "вещь в себе" (ну, или в emacs-е ;).

С юниксом неплохо, а вот с виндами действительно тяжело.

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

> Щас меня закидают тухлыми помидорами, но: Java. Причем по всем пунктам;)

И скорость ???? ИМХО сомнительно...

eraser
() автор топика
Ответ на: комментарий от Miguel

> > Лисп - штука хорошая, но плохо интегрируемая с юниксом

> В каком смысле???

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

one-liners на лиспе в "юниксвейном" стиле - это что-то новое, хотя и на перле, и на питоне это работает.

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

> Щас меня закидают тухлыми помидорами, но: Java. Причем по всем пунктам;)

Она не интерпретируемая в смысле "написал-запустил", ее компилять нужно. Тогда уж проще на C++/Qt перейти, накладных расходов меньше.

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

Она-же компилируемая, хоть и в рантайме. Так что примерно одно и то-же с лиспом. Ну а perl/python/php сиииильно медленнее.

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

На прорисовке гуёв жаба прибавила к 6.0b2 аж в полтора - два раза скорость.

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

>Она не интерпретируемая в смысле "написал-запустил", ее компилять нужно. Тогда уж проще на C++/Qt перейти, накладных расходов меньше.

Человек просил в том числе и для веб, а тут плюсы - ну ни в какие ворота, если честно;) Ну и в принципе при наличии нормальной среды разработки с инкрементальным компилятором - разницы в процессе писания на джаве и любом интерпретируемом языке - никакой.

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

Ну так жаба вроде сложна... Уж лучще тогда действительно C++/Qt(GTK)... Вот питончик вроде ничего - простенький...

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

Дык one-liners для упомянутых задач тоже нафиг не упали. В обработке тяжёлой математики дёргать что-то из шелла... мдя. Могу себе представить.

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

>Ну так жаба вроде сложна...

Не сложна, считается, что жаба что-то вроде VB не от мелкомягких. Тем более не нужно сразу лезть в дебри. Тем более считается, что жаба проще плюсов. Там более когда залезешь в дебри, будешь уметь программировать по-толстому, а one-liners продолжить лабать на Groovy или жабе

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

>Ну так жаба вроде сложна... Уж лучще тогда действительно C++/Qt(GTK)... Вот питончик вроде ничего - простенький...

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

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

А если выстроить в порядке увеличения тормозов java, lisp, python, perl (самый тормоз последним :)))

И ещё: а почему многие так жабу ругают?? И ИМХО, сайты с использованием жаба скриптов - тормоза (чисто визуально)...

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

Тормоза зависят от реализации, а более всего - от тестирующего.

Далее, что ты понимаешь под "сайты с использованием жаба скриптов"? Слово "скрипт" наводит на мысль, что ты имеешь в виду JavaScript, а не жабу. Но тогда непонятно утверждение про тормоза (ибо сейчас практически ВСЕ сколько-нибудь крупные сайты используют JavaScript, и не тормозят). Если ты говоришь о Java-апплетах, то они тормозят, если у тебя хреновый коннект. Что же до серверной жабы, то о том, используется она или нет, ты, зачастую, просто не знаешь.

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

Смотрим сюда http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all и выстраиваем: java, lisp, python, perl. Самый тормоз последний

>И ещё: а почему многие так жабу ругают??

Потому что ниасилили.

>И ИМХО, сайты с использованием жаба скриптов - тормоза (чисто визуально)...

Потому что как правило javascriptы нужны для интерактивности, соответственно частенько в процессе отображения страницы подгружают что-то с сервера, потом javascriptы часто ставят для отображения счетчиков типа такого http://top.list.ru/jump?from=71642 который внизу этой страницы, соответственно пока броузер не достучится до этого счетчика, страница тормозит. Если ссылок на счетчики на странице много, то и страничка долго открывается. Java здесь вообще не при делах

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

Тааак лисп и питон ковыряю уже... А что надо поставить чтоб с жабой поклубица - ну там интерпретатор, комрилятор .... ??? У меня - Gentoo.

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

Tcl как интерпретатор + своя сишная либа для вычислений которая будет расширять Tcl + VTK для графики. получается термоядерная смесь сходи на vtk.org www.kitware.com вопросы уйдут сами собой.

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

Присоединяюсь к диферамбам в отношении Java. Скорость выполнения на J2SE 6.0 (ещё бете!) очень высокая. Ну а возможности просто великолепные по всем перечисленным автором пунктам.

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

> Tcl как интерпретатор

Всё-таки, зачем Tcl? Если хочется чего-то лиспообразного, то CL, иначе - Питон, а этот уродец годится разве что детей пугать мотивоподобными виджетами. :) Да и пользоваться VTK из Tcl - тот ещё геморрой, т. к. нормального ООП в Tcl не предусмотрено. (Да и сам этот VTK страшненький, если честно-то). Короче, либо Лисп, либо Питон, либо можно подождать, пока выйдет Fortress. =)

ero-sennin ★★
()
Ответ на: комментарий от jek_

Посмотрел жабу, сложилось первое (может обманчивое?) впечатление, что это какой-то кастрированный C++. Чем жаба облегчит разработку гуёв, сетевых приложений и пр. по сравнению с C++ ??? Только наличием большого числа готовых либ, классовб, большей высокоуровневостью ? Почему для создания окошка с кнопкой лучше??? проще??? использовать жабу нежели C++/GTK ? C/Motif ? Учитывая потерю в производительности... Туплю наверно :)) Разъясните плз...

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

На счёт лиспа - понравился... Вот тока с практическим применением (наличие либ, модулей) не понятно... Например, как на lisp'e реализовать следующее (питон):

from pylab import *
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plot(t,s)

Можно примерчик или ткните носом, где есть примеры применения lisp'a в графике, гуях, сетях и т.д.

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

>Учитывая потерю в производительности...

Где тебе нужна производительность? Отрисовать окошко с кнопкой? Сам ведь пишешь, нужен "интерпретируемый язык", значит на Производительноть с большой буквы тебе плевать. Нужен интерпретатор "написал-посмотрел", бери Groovy.

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

Да используй свои GTK/Motif. Пока будешь с ними ковыряться, другие уже Lisp и OCaml успеют выучить. Нет в жабе ничего хорошего, НЕ-ТУ. И дураки все, кто ее использует. ДУ-РА-КИ.

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

> Производительноть с большой буквы тебе плевать.

Да. Но хотелось бы самого скоростного из тормозов...

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

Нет. Я просто спрашивал...:)

> Нет в жабе ничего хорошего, НЕ-ТУ.

Ну почему же? C++ подобныая, с большим кол-вом готовых либ, скоростнее питонов и перлов - ИМХО не так уж и плохо...

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