[Python]
От: nikda  
Дата: 19.01.07 13:06
Оценка: :))) :))) :))) :))
Разбирался с Trac, в результате столкнулся с Python — ом. Возник обычный вопрос. Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше? Есть куча похожих языков, зачем они? У них же практически одинаковые возможности. Может у Python-а есть какие-то решающие преимущества, что его надо быстрее учить?
Re: [Python]
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 19.01.07 13:14
Оценка: +4 -1 :)
nikda,

N>Разбирался с Trac, в результате столкнулся с Python — ом. Возник обычный вопрос. Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше? Есть куча похожих языков, зачем они? У них же практически одинаковые возможности. Может у Python-а есть какие-то решающие преимущества, что его надо быстрее учить?


Вопрос идеально подходит для виртуального форума по динамическим языкам.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: [Python]
От: Lloyd Россия  
Дата: 19.01.07 13:15
Оценка: +2
Здравствуйте, nikda, Вы писали:

N>Разбирался с Trac, в результате столкнулся с Python — ом. Возник обычный вопрос. Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше? Есть куча похожих языков, зачем они? У них же практически одинаковые возможности. Может у Python-а есть какие-то решающие преимущества, что его надо быстрее учить?


С++ — усилий для написания необходимо несравнимо больше.
C# — вопрос не корректен, хотя бы уже потому, что C# появился позже Python-а.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: [Python]
От: dmz Россия  
Дата: 19.01.07 13:18
Оценка: :))) :)))
N>Разбирался с Trac, в результате столкнулся с Python — ом. Возник обычный вопрос. Зачем нужен Python (или другой N>язык), если тотже С++/C# могут тоже самое, если не больше?

N>Есть куча похожих языков, зачем они?

И правда, все императивные похожи друг на друга как две капли, да и функциональные все на одно лицо. Хватило бы двух языков, наверное. Надо ввести суровые наказания для разработчиков новых языков, вплоть до пожизненного кодинга гуя на дотнете.

N>У них же практически одинаковые возможности.

Ну действительно — все они Тьюринг-полные.

Действительно, зачем Python в начале середине-девяностых, когда есть C# в начале двухтысячных?
Кстати, почему мы бы вам не написать Trac на С++, раз он может все тоже самое, что Python?
Я думаю, разницу почувствуете сполна.

N>Может у Python-а есть какие-то решающие преимущества, что его надо быстрее учить?

Ну если если есть пара свободных часов, почему бы не выучить.

См. Eric Raymond, Why Python?
Re[2]: [Python]
От: Андрей Хропов Россия  
Дата: 19.01.07 14:25
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>nikda,


N>>Разбирался с Trac, в результате столкнулся с Python — ом. Возник обычный вопрос. Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше? Есть куча похожих языков, зачем они? У них же практически одинаковые возможности. Может у Python-а есть какие-то решающие преимущества, что его надо быстрее учить?


LCR>Вопрос идеально подходит для виртуального форума по динамическим языкам.


Нет, поскольку он касается не только динамических языков, а Python vs С#/C++.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: [Python]
От: nikda  
Дата: 19.01.07 14:40
Оценка:
Здравствуйте, dmz, Вы писали:

Я правильно понял, что преимущества Python — в простоте? А чем он проще?

Избыточное цитирование удалено. Прошу избегать этого в дальнейших сообщениях.
Re[3]: [Python]
От: Lloyd Россия  
Дата: 19.01.07 14:46
Оценка: :))) :))) :)))
Здравствуйте, nikda, Вы писали:

dmz>>Ну если если есть пара свободных часов, почему бы не выучить.


dmz>>См. Eric Raymond, Why Python?


N>Я правильно понял, что преимущества Python — в простоте? А чем он проще?


Не удержался. Чем С++/C#.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: [Python]
От: dmz Россия  
Дата: 19.01.07 15:01
Оценка:
dmz>>См. Eric Raymond, Why Python?

N>Я правильно понял, что преимущества Python — в простоте? А чем он проще?


Статью все же советую прочитать, Рэймонд хорошо пишет. Дело не только в простоте.
Врядли можно сказать, что Perl проще C++, однако разработка определенных вещей на
Perl займет меньше времени, чем их аналогов на C++

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

При этом, они не должны быть проще — см. функциональные языки и perl.

Достоинства Python в том, что он существует давно, под него есть очень много готового к
использованию кода — библиотеки, компоненты, биндинги, middleware и проч., и что он существенно
лучше подходит для написания сложных проектов в силу намного лучшей читабельности чем Perl, и
что он (пока?) более зрелый и производительный, чем Ruby.
Re[4]: [Python]
От: Зверёк Харьковский  
Дата: 19.01.07 15:12
Оценка: 2 (1) +1
Здравствуйте, dmz, Вы писали:

dmz>Достоинства Python в том, что он существует давно, под него есть очень много готового к

dmz>использованию кода — библиотеки, компоненты, биндинги, middleware и проч., и что он существенно
dmz>лучше подходит для написания сложных проектов в силу намного лучшей читабельности чем Perl, и
dmz>что он (пока?) более зрелый и производительный, чем Ruby.

Насколько я понимаю, это не единственное отличие. Второе — концептуальное: Ruby "думает" как Perl ("there is more than one way to do it"), а Python — наоборот. Эту информацию можно найти в Факах соотв. языков.

Избыточное цитирование удалено. Прошу избегать этого в дальнейших сообщениях.
FAQ — це мiй ай-кью!
Re: [Python]
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 19.01.07 15:49
Оценка: +1
Мой ответ — лаконичность. Т.е. объем осмысленного кода, который необходимо написать для решения определенной задачи.
Как показывают тесты,
Питон и Руби в среднем в два раза лаконичней, чем С++/С#.

Приведу простой пример, правда на Руби и Перле, т.к. с Питоном не знаком.
Программа, которая находит в текущем каталоге все JPG файлы, ищет в них дату и время съемки и переименовывает файл согласно этой дате и времени. Нужна для сортировки фоток, особенно снятых разными фотиками.
На Руби такая программа выглядит так:
Dir["*.jpg"].each {|j| open(j,"rb") {|f| f.read(512)} =~ /[\d+:\s]{19}/ and File.rename(j, $&.gsub(/:| /,'_')+'.jpg')}


А на Перле вот так:
for(<*.jpg>) { open F, $_; binmode F; read F, $s, 512; close F; $s=~/[\d+:\s]{19}/ and (($s=$&)=~s/:|\s/_/g) and rename $_, $s.'.jpg'}


Думаю, на Питоне тоже нечто похожее.
А теперь напишите ее на С++/С# и сравните объем кода.
Re[2]: [Python]
От: dmz Россия  
Дата: 19.01.07 17:30
Оценка: +1
DM>А на Перле вот так:
DM>
DM>for(<*.jpg>) { open F, $_; binmode F; read F, $s, 512; close F; $s=~/[\d+:\s]{19}/ and (($s=$&)=~s/:|\s/_/g) and rename $_, $s.'.jpg'}
DM>


DM>Думаю, на Питоне тоже нечто похожее.

DM>А теперь напишите ее на С++/С# и сравните объем кода.

На питоне как-то так:
[shutil.move(x,re.sub(':','-', re.search(r'([\d+:\s]{19})', file(x).read(512)).group(1)+'.jpeg')) for x in os.listdir('.') if re.search( r'.jpe?g$',x,re.IGNORECASE)]


только вот регекспа [\d+:\s]{19} я что-то не осилил — не встречается его в моих джипегах. То есть где-то он может и есть, а где-то его может и нет — то есть некорректно, плюс я поправил маску файла — в юниксах оно может быть в разном регистре, плюс есть jpeg a есть jpg.

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

# где-то в профайле:
from re import search as s
from re import sub as sub
from re import IGNORECASE as IC
from shutil import move as mv
from os import listdir as ls


...
[mv(x,sub(':','-', s(r'([\d+:\s]{19})', file(x).read(512)).group(1)+'.jpeg')) for x in ls('.') if s( r'.jpe?g$',x,IC)]


но в принципе, python стремится к несколько большей verboсity чем perl, зато его конструкции невозможно забыть.
питоновые приведения типов и выяснение, когда что передается по ссылке, а когда по значению, а так же всякие $&, $_, $:, $* и прочее забываешь постоянно, даже когда часто работаешь с ним. Блин, как вспомню все эти *@{$qq->{bebe}}
и гиморы со ссылками и значениями, и разницы между {q}{q} и {q}->{q}
Re: [Python]
От: Mikhail Polykovsky Россия http://glader.ru
Дата: 19.01.07 17:53
Оценка:
N> Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше? Есть куча похожих языков, зачем они? У них же практически одинаковые возможности. Может у Python-а есть какие-то решающие преимущества, что его надо быстрее учить?

А зачем учить С, если есть asm? У них же практически одинаковые возможности. :D
Re[3]: [Python]
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 20.01.07 12:14
Оценка:
dmz>только вот регекспа [\d+:\s]{19} я что-то не осилил — не встречается его в моих джипегах. То есть где-то он может и есть, а где-то его может и нет — то есть некорректно,

Как минимум фотоаппараты Nikon и Canon пишут в файл дату вида "2006:08:13 15:59:18", ее-то и ищет программа.
Если не находит, то файл не переименовывает (это уже заложено в приведенных исходниках).
Re[2]: [Python]
От: TNikolay Россия http://softvoile.com/
Дата: 21.01.07 17:56
Оценка:
Здравствуйте, Mikhail Polykovsky, Вы писали:

Вопрос к знатокам питона, для чего он предназначен\заточен можно ли на нем написать например PIM или почтовый клиент?
Просто до недавнего времени думал что это вообще язык для веба типа пхп
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Блог шароварщика ::Микроблог про wxWidgets
Re[3]: [Python]
От: DrDred Россия  
Дата: 21.01.07 18:18
Оценка:
Здравствуйте, TNikolay, Вы писали:

TN>Вопрос к знатокам питона, для чего он предназначен\заточен можно ли на нем написать например PIM или почтовый клиент?

TN>Просто до недавнего времени думал что это вообще язык для веба типа пхп
Ну как пример PIM'a
... << RSDN@Home 1.2.0 alpha rev. 672>>
--
WBR, Alexander
Re[3]: [Python]
От: dmz Россия  
Дата: 21.01.07 18:41
Оценка:
TN>Вопрос к знатокам питона, для чего он предназначен\заточен
динамический интерпретируемый язык общего назначения. пишите что хотите.

TN>можно ли на нем написать например PIM или почтовый клиент?

можно: wxPython, PyQt, PyGTK.
Re[4]: [Python]
От: TNikolay Россия http://softvoile.com/
Дата: 21.01.07 19:13
Оценка:
Здравствуйте, dmz, Вы писали:


TN>>Вопрос к знатокам питона, для чего он предназначен\заточен

dmz>динамический интерпретируемый язык общего назначения. пишите что хотите.
а как со скоростью выполенния? ака джвава?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Блог шароварщика ::Микроблог про wxWidgets
Re: [Python]
От: fmiracle  
Дата: 21.01.07 19:17
Оценка: +3
Здравствуйте, nikda, Вы писали:

N>Возник обычный вопрос. Зачем нужен Python (или другой язык), если тотже С++/C# могут тоже самое, если не больше? Есть куча похожих языков, зачем они? У них же практически одинаковые возможности.


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

З.Ы.
А электрочайника, который бы меня абсолютно полностью устроил я все равно так и не нашел..
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: [Python]
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 21.01.07 19:26
Оценка:
TN>а как со скоростью выполенния? ака джвава?

В несколько раз медленнее джавы. Ссылка на тесты выше.
Re[2]: [Python]
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 22.01.07 07:26
Оценка: :))) :))) :)))
Здравствуйте, fmiracle, Вы писали:

F>А электрочайника, который бы меня абсолютно полностью устроил я все равно так и не нашел..


Что, ни в одном не было Java?
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.