LINUX.ORG.RU

Актуален ли PERL?


0

0

Хочу изучить PERL в качестве первого ЯП. Пока что привлекает только консоль. Собственно вопрос: актуален ли PERL в качестве первого изучаемого языка? А для Linux - разработчика? Спасибо. P.S. Хочется принести хоть небольшую пользу OpenSource :)

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

> для нормальных программ нужна статическая типизация.
с этим вопросом вернись в тред о динамических языках.
вообще-то, для "нормальных" программ достаточно нормальных программистов.

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

> К тому же, не так уж и плохо быть "лиспофанбоем".
> Гораздо лучше, чем питонофанбоем, к примеру.

"Чем лучше?"
"Чем питонофанбоем!"
....
нездорово это, нужно трезво оценивать задачу и выбирать наиболее подходяший инструмент.

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

> с этим вопросом вернись в тред о динамических языках.

я туда почти каждый день заглядываю.

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

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

все это мелочи.

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

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

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

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

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

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

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

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

Насчет уважения -- вполне возможно, увижу твои интересные посты и начну уважать.

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

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

> анонимус, ведь, очевидно, либо не читал тред, либо ничего из вашего обсуждения не понял.

скорее всего так -- но тогда *это* и надо было ему сказать "прочти тред с начала", нет?

> все эти ответы можно воспринимать как голосование

это глупо.

обрати внимание, в ответ я не стал голосовать.

> тем более, что я преподаватель,

тем более, что ты преподаватель, не стоит участвовавть в детских играх "голосование" и уподобляться бывшему анонимусу, а?

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

>нужно трезво оценивать задачу и выбирать наиболее подходяший инструмент.

А можно пример трезвой оценки вами задачи и выбора наиболее подходящего инструмента?

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

давай сыграем.
задача?
если речь идет о данном топике, т.е. задаче обучить человека программированию с нулю, причем он преимущественно будет опираться на опенсорсные инструменты и помогать в их развитии, то мое мнение можно прочесть тут ранее http://www.linux.org.ru/jump-message.jsp?msgid=3620499&cid=3624012
к аргументацци можно также добавить, что эти инструменты будут способствовать выработке хорошего стиля, как в коде, так и в голове. хорошо бы сюда еще прибавить понимания философии, методологии и хороших практик проэктирования под UNIX. оба языка очень практичны и пользуются большой популярностью в комьюнити, т.е. он сможет легче найти хороший код "на почитать", и сможет тут же применить свои знания в реальной помощи проэктам. Паскаль хуже Си топому что мало используется, Перл слабочитаемый, его ниша сейчас сильно ограничена. проблемы ПХП как-то неактуально уже перечислять. Руби не плох, но все еще существенно менее популярен во всех остальных средах, кроме веба. Тикль хорошо, да. Тоже не плохой вариант, но ИМО у Питона и синтаксис получше (внимание, речь об обучении), и библиотека богатая, и популярность выше. Лиспоподобные, как и чистая функциональщина (в первую очередь, Хаскель) - это, конечно, здорово, но мне кажется, их хорошо было бы включить в список третьим языком. Можно никогда не использовать Scheme, но идеи, вынесенные из опыта работы с этим языком можно успешно применять в том же Питоне. Ассемблер даст возможность еще лучше разобраться с железом, но я бы этим занялся еще позже, чем функциональной парадигмой, т.к. несмотря на то, что это очень здорово для понимания того, что все же происходит в системе в каждый момент времени, или почему некоторые операции эффективны, а некоторые нет, но практического прменения для него, именно как для инструмента программирования, сейчас мало. Java, C# и прочий дотнет - мое мнение: это расчитано на людей, которые хотят как можно быстрее выполнить свою работу с минимальными тело-(и мозго-)движениями. Они суперски подходят для софтовых компаний, т.к. не так проблемно заменить жабника, как хаскеллиста. А, ну и да, конечно же, отдельно от процесса обучения программированию вообще, просто необходимо научиться эффективно работать в шелле, что подразумевает отличное знания всего его богатого инструментария, в т.ч. sed, awk, perl(!), Makefiles, собственно шелл, и прочая... Но, опять таки, с ними лучше разбираться после с/питона. Кстати, остается открытым вопрос, в с чего же лучше начать, выбирая из Си и Питона. Очевидно, ответ тут зависит от конкретного человека, и его целей, так как кто-то больше ориентирован на результат, а кто-то хочет сначала разобраться "как это работает". Ни один из подходов мне не кажется проигрышным, при условии что человек не дурак ;)
Контраргументы?

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

> скорее всего так -- но тогда *это* и надо было ему сказать "прочти тред с начала", нет?
наверное, да. этот ответ был дан впопыхах с временного компьютера, когда я в очередной раз чекал интересный для меня тред.

> обрати внимание, в ответ я не стал голосовать.

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

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

Я от вас ждал не этого, а:
У меня был проект, для решения данного проекта я выбрал такието инструменты, потомучто они....

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

При чём тут проекты? Тема то о выборе языка для обучения (точнее о годности Перла для этого дела). Применимость для тех или иных производственных задач тут не критерий. И флейм про однострочники совершенно не в тему был, кстати. Ну на то он и флейм.

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

> (TCL)Тоже не плохой вариант, но ИМО у Питона и синтаксис получше >(внимание, речь об обучении), и библиотека богатая, и популярность >выше.

"синтаксис получше" - А тут никак не согласен.
Вам сильно надо будет поднатужится чтоб создать на tcl программу равную по громоздкости как на питоне и аналогичную по функциям.
Где-то попадалось сравнение КПД программистов на разных языках
и там было(это все по памяти), что один программер на tcl эквивалентен ~4 сишным или 3 питоновым.

В идеале , если бы у tcl был хороший биндинг к gtk/qt (по эффективности и нативности подобный TK) - тогда об многих программных мутантах можно просто было бы забыть как о кошмарах сознания.:)))

"популярность выше" - ну ,"глупости от RMS" стоили tcl/tk популярки
и возможно, избавили этот язык от попсятины и переделкиных.

Хотя ,если говорить про популярность - VB,C#, etc тут вне конкуренции.:)) Все относительно.

По существу ,новых идей уже нет в современных языках и только рассматривается то обстоятельство КТО и КАК пропихивает СВОЕ (и часто не самое лучшее) на рынок программных решений и КТО за всем этим стоит (ака: А будет ли корм с этого ?:))).

-Ирония-
Напрашивается от всего треда такая шутка:
"Программирование слишком ответственное занятие чтобы его поручать людям считающими себя программистами" :)))

Завтра кто-то решит, что правельнее будет 2+3 чем 3+2
и создаст на этом новый язык c 5 отступами - через пару лет к нему припишут кучу дерьма в виде либ и издадут новые книги.
Появятся новоявленные "попы" от программирования на новейшем из новейших языков.
И будут жаркие споры форумах :
Что же таки правельнее - 2+3 или 3+2 ?

:)))

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

> "синтаксис получше" - А тут никак не согласен.

У Питона он не лучше, но привычнее. И больше годится для изучения алгоритмов. Вот открываем букварь от Кормена, Лейзерсона сотоварищи - псевдокод там ну очень похож на Питон. Гвидо ведь и разрабатывал его с большой оглядкой на обучение (если не сказать что в основном для обучения). Отсюда и отступы растут как мне кажется, которые в реальном коде только геморроя добавляют. Хотя даже для псевдокода преимущества отступов очень сомнительны.

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

> Отсюда и отступы растут как мне кажется, которые в реальном коде только геморроя добавляют.

Никогда не видел реального кода без отступов.

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

> Никогда не видел реального кода без отступов.

Правда? Повезло вам, однако :) Но я то говорил об отступах не как о средстве оформления, а как о семантически значимом элементе. Спорить об отступах неохота, честно говоря. Уже тыщу раз обмусолили эту тему. Каждый останется при своём мнении как обычно.

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

>При чём тут проекты? Тема то о выборе языка для обучения

Ну val-amart сказал что нужно трезво оценивать задачу и выбирать наиболее подходяший инструмент, а я попросил примера. А так да мой вопрос к теме не имеет ни какого отношония, просто интересно.

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

> "синтаксис получше" - А тут никак не согласен.
> Вам сильно надо будет поднатужится чтоб создать на tcl программу равную по громоздкости как на питоне и аналогичную по функциям.

> Где-то попадалось сравнение КПД программистов на разных языках

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

> Хотя ,если говорить про популярность - VB,C#, etc тут вне конкуренции.:)) Все относительно.

в среде линуксоидов? ну-ну.

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

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

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

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

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

Дык, а за что его ещё ругать? :) Кстати, интересная аналогия с лиспом. Если у Лиспа вся сила в скобочках, то у Питона наоборот вся слабость - в отступах :)

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

> и там было(это все по памяти), что один программер на tcl эквивалентен ~4 сишным или 3 питоновым.

Обзор был сделан лично Остерхаутом, да?

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

>> которые в реальном коде только геморроя добавляют

>и в чем геморрой, интересно?

Ох... Начните вот с этого флейма:

http://www.linux.org.ru/view-message.jsp?msgid=1206475&page=1

А если лень много читать, то вот здесь анонимус сжато излагает, что же не так с отступами:

http://www.linux.org.ru/view-message.jsp?msgid=3374075&page=1

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

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

ок.
был проэкт, не скажу, что делал, нда. клиент-серверная архитектура, клиенты для множества платформ, интеграция с другими сопудствующими сервисами и товарами.
сервер - twisted (асинхронный сервер на питоне), обслуживает json, локальные запросы из других источников, взаимодействие с источниками данных, планировка заданий для длительного контролируемого выполнения и различная серверная обработка. Единственной реальной алтернативой имхо был бы самописный монстр на жабе, но мы отдали предпочтение твистеду, как более легковесному и расширяемому, а так же требующему меньше усилий. БД PostgreSQL - масштабируемая, мощьная, опенсорсная, транзакционная (процедуры на перле, питоне и PL/pgSQL - так случилось, разные девелоперы). lighttpd - фронтэнд для вебсервера, обслуживает статику и лоадбалансинг - выбрали за отличные возможности. orbited для comet соединений - наилучшая реализация, наиболее полные возможности в означеной технологии (кстати, тоже питон, так что просто интегрировалось в общую инфраструктуру). три разных вебинтерфейса: стандартный на xhtml/css/javascript (с ajax'ом), хтмл для мобильных устройств, flash с кучей графических спецэффектов, видео, аудио, игр (я ненавидел эту часть...).толстые клиенты под все основные платформы, на Qt/C++. Выбран за удобство разработки, отличную кроссплатформенность, полную документацию и присутствие всего необходимого. Прототипы делали на PyQt - это много быстрее, чем сразу на плюсах. Для смартов и обычных телефонов - J2ME (единственная доступная альтернатива - это написание родных клиентов под кучу платформ, что слишком трудозатратно, однако развитие Куте в этом плане очень радует, хотели бы под смарты тоже на ней сделать). Железка на ембеддед Линуксе сопственного фасона, с Питоном для административных задач и вебинтерфейса. На сервере, кстати, есть компоненты на Лиспе и Хаскелле (если интересно, на Лиспе там система регистрации, трекинга и маршрутизации запросов, ее работа динамически меняется командами от гипервизора (с питона), а Хаскель что-то считает, что-то обрабатывает, я не знаю, что именно и как). Ну и куча шелло-питона для завязки всего этого в единое целое. Ах, да, и Сишка там тоже есть, в основном в виде патчей на разные готовые сторонние компоненты.
К видишь, целая куча всего использовалась, и я считаю, что это правильно. Знание многих инструментов дает возможность выбрать наиболее подходящий для решения конкретной задачи. Иначе ты будешь забивать гвозди ножом и сверлить дыры пласкогупцами.
Я удовлетворил твое любопытство?

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

> Кстати, интересная аналогия с лиспом
Аналогия не случайная. Действительно, именно эти два языка, при всех их очевидных достоинствах, чаще всего подвергаются критике по такому незначительному поводу. Я кстати вообще считаю, что при всей ихней внешней несхожести, Лисп и Питон очень близки. Можешь глянуть вот это: http://www.norvig.com/python-lisp.html
Наблюдения известного гуру АИ Питера Норвига, правда, некоторые пункты 4.2, все же, он больше по Лиспу специализируется, так что простительно.

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

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

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

для ъ:

     PROC buffer( CHAN OF INT in, out, INT N)
       CHAN OF INT in.wait, out.wait :
       INT n : -- счётчик буферизованных значений
       [N]INT buff :
       SEQ
         n:=0
         PAR
           -- input
           INT i, any: -- i — указатель записи в буфер
           SEQ
             i:=0
             WHILE TRUE
               SEQ
                 WHILE n<(N-1)
                   SEQ
                     in ? buff[i]
                     n:=n+1
                     IF
                       n=1
                         out.wait ! any
                       TRUE
                         SKIP
                     i:=(i+1) MOD N
                 in.wait ? any
           -- output
           INT j, any: -- j — указатель чтения из буфера
           SEQ
             j:=0
             WHILE TRUE
               SEQ
                 out.wait ? any
                 WHILE n>0
                   SEQ
                     out ! buff[j]
                     n:=n-1
                     IF
                       n=(N-2)
                         in.wait ! any
                       TRUE
                         SKIP
                     j:=(j+1) MOD N
     :

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


ироничное замечание я воспринял как завуалированную просьбу :)))
и таки нашел этот обзор:
Informatik, Universitаt Karlsruhe
раздел:
Work time and productivity
http://page.mi.fu-berlin.de/~prechelt/Biblio/jccpprt_computer2000.pdf

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

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

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

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

> Наблюдения известного гуру АИ Питера Норвига, правда, некоторые пункты 4.2, все же, он больше по Лиспу специализируется, так что простительно.

Да, видел уже эту табличку. И вот что там нарисовано:

Python / Lisp
Macros for metaprogramming: Powerful macros / No macros
Statements and expressions: Everything is an expression / Distinguish statements from expressions

Всё остальное уже можно не смотреть. И кстати вместо Питона туда можно ещё несколько динамических языков подставить даже с большим успехом.

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

>> питоновские отступы - это отнюдь не самое ужасное изобретение в программизме

> Это изобретено (AFAIK) в OCCAM :)

Ну да, я подозревал, что не Гвидо первым до этого додумался.

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

> Statements and expressions: Everything is an expression / Distinguish statements from expressions

Единственная практическая претензия.

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

> сервер - twisted

Да, Twisted - эта единственная штука, ради которой я иногда использую Питон. Есть конечно POE, но с перлом уже неохота заморачиваться. Ещё есть tcl, где event loop и asynchronous io из коробки. Но тут у меня опыта ешё мало, да и Twisted просто удобнее кажется на первый взгляд.

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

Disclaimer: я не гуру лиспа.

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

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

> Macros for metaprogramming: Powerful macros / No macros

вот это существенно. но, по правде говоря, знающие люди говорят, что большинство (но не все) возможности макросов Лиспа можно реализовать и в Питоне. Есть доступ к фреймам и АСТ, есть eval и compile.

> Statements and expressions: Everything is an expression / Distinguish statements from expressions

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

мое итоговое мнение: мощьные макросы - это единственное серьезное преимущество Лиспа. В конце-концов, это киллер фича Лиспа. Однако, программировать в Лисповом стиле вполне можно и на Питоне.

> Всё остальное уже можно не смотреть.

а стоило бы посмотреть. и почитать внимательнее.

> И кстати вместо Питона туда можно ещё несколько динамических языков подставить даже с большим успехом.

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

также, очень хотелось бы услышать мнения господ mv и tailgunner.

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

> вы лиспер?

Нет. Более того, мне лисп совсем не нравится. Но зачем в нём столько скобочек и какую они играют роль я понимаю. А отступы в Питоне - это на мой взгляд искусственное ограничение в рамках философии "only one way to do it" и исторического предназначения Питона как языка для обучения. Мощи языку они не добавляют, даже наоборот. Хотя это можно трактовать и как преимущество, да.

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

не добавляют - согласен. а в чем заключается "наоборот"? единственное, что приходит на ум, так это невозможность использовать statement'ы в анонимных функциях, но их применение в питоне и без того ограничено, нельзя использовать больше одного expression'a.

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

> с нетерпением жду такую же сравнительную табличку с добавлением других динамических ЯП, обсудим.

В ту табличку вместо Питона можно даже Perl5 подставить, принципиально ничего не изменится. А вот Perl6 уже будет дальше Питона, потому что в нём есть макросы и мультиметоды как минимум. Туда же и Ruby, в котором есть (пока ещё) continuations и полноценные лямбды. Lua и JavaScript тоже в эту таблицу вполне вписываются на место в Питона.

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

охх. ну ты и ленивый. ладно.
Мультиметоды есть и в Питоне: gnosis.magic.multimethods
А что есть в Перл6 как максимум?
Continuations и coroutines(!) есть в Stackless.
Полноценные лямбды, это сильно, но не смертельно.
JavaScript и Lua это здорово, но я не видел ни одного standalone приложение на них (неискал, но и не натыкался. есть примеры?).

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

> А что есть в Перл6 как максимум?

http://en.wikipedia.org/wiki/Perl_6

Вообще это пиписькомерство довольно нелепо :) Ну назовите killer feature Питона. Что его выделяет среди подобных динамических языков? Распространённость и наличие библиотек оставим за скобками. Интересует именно язык как таковой. Да, делать подробный сравнительный анализ мне лень, правда.

> Continuations и coroutines(!) есть в Stackless.

Кстати, tcl 8.6 тоже stackless с поддержкой coroutines. И вообще tcl намного ближе к лиспу, чем питон, если уж на то пошло :)

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

> В ту табличку вместо Питона можно даже Perl5 подставить, принципиально ничего не изменится.

Для таблички - да, но Python просто логичнее и читабельнее.

> Perl6 уже будет дальше Питона, потому что в нём есть макросы и мультиметоды как минимум. Туда же и Ruby, в котором есть (пока ещё) continuations и полноценные лямбды

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

Хорошо бы иметь expression-orientedness, pattern matching и еще много чего (что есть в других языках) - но по балансу простоты и мощности Питон заруливает всё.

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

> tcl намного ближе к лиспу, чем питон, если уж на то пошло :)

"Tcl is Lisp on drugs" (c)

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

> единственное, что приходит на ум, так это невозможность использовать statement'ы в анонимных функциях

Ну этого мало что ли? Вы сейчас скажите, что полноценные анонимные функции не нужны, потому что в Питоне есть вложенные функции. Я же считаю - нужны, и довольно часто. Ну нет причин для передачи колбэка из трёх строчек городить целую функцию, придумывать ей имя и главное отрывать её визуально от места вызова. Хотя ясно, что при питоновском синтаксисе такая передача по месту будет выглядеть весьма запутана.

Опять же проблема с однострочниками. Это разве не ограничение функциональности языка? Ещё REPL - ipython зверски неудобен. Хотя это уже мелочи конечно.

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

> Это просто какая-то гонка вооружений. Питон никак и ни разу не претендует на роль самого продвинутого и навороченного языка

Согласен. Гонка вооружений неуместна.

> Но реальная сила Питона в том, что он обеспечивает отличный баланс простоты и мощности - высокоуровневый язык с обширными библиотеками.

И тут согласен. Считаю Питон в целом очень хорошим языком. Но по какой то непонятной прихоти он мне не нравится.

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

> Я же считаю - нужны, и довольно часто.
я тоже.

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

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

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

>Представляю написание геттеров/сеттеров руками...
man groovy

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

>Где-то попадалось сравнение КПД программистов на разных языках
и там было(это все по памяти), что один программер на tcl эквивалентен ~4 сишным или 3 питоновым.

У меня такие сравнения вызывают стойкую аналогию с лохотроном типа тв-шоп. Закажи это сейчас и ты получишь незаменимый инструмент который избавит тебя от покупки ножа, вилки, ножовки, лопаты и все это за каких-то 5 рублей.

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

>что большинство (но не все) возможности макросов Лиспа можно реализовать и в Питоне. Есть доступ к фреймам и АСТ, есть eval и compile.

Нет, большинство возможностей - как раз нельзя. Макросы это доступ к AST во время компиляции. Кодогенерация, синтаксические абстракции, инлайн функции, вычисления времени компиляции - всего этого реализовать нельзя.
Eval на строках это совершенно никудышный аргумент против макросов.
А то ведь, знаете ли, и из Си можно писать текстовые файлы, и на них gcc натравливать.

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