LINUX.ORG.RU

Ты где взял мою фотку, демон!?

Zenom ★★★
()

ещё и на немецком

WerNA ★★★★★
()

А если он работает, то почему на мониторе не исходники, а какое-то изображение во весь экран?

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

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

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

Наверное по томуже почему есть функция len() которая тупо вызывает чтото вроде __lenght__() и совершенно нет модификаторов доступа, в общем не язык а загадка.

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

кстати про выбор Python vs Perl.

если бы имелись 2 версии горового проекта: одна заброшенная, но зрелая на Перле, другая еще не готовая, но более новая (и разработанная уже после версии на Перле) на Питоне.

Почему автор забросил Перл и "с нуля" начал переписывать на Питоне?
Повелся на рекламу или его Перл достал?
что бы выбрали дорабатывать? На Перле или Питоне?

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

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

>Думаю, дело не в питоне, а в авторе-голландце.

++ :)

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

>Почему автор забросил Перл и "с нуля" начал переписывать на Питоне?

Я в своё время не поленился живую и рабочую систему на PHP переписать, когда набенчил, что mysql_* функции последнего работают 9(!) раз быстрее, чем DBI первого :) Даже на то, что чисто числодробильнее Перл быстрее.

Ну а сейчас Перл, не побоюсь этого слова, итак помер.

Ждём, пока помрёт PHP, тогда перелезу на Python или Java :)

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

>почему join является методом строки а не массива?

Меня это до сих пор удивляет :) Мне пару раз объясняли, но я забыл уже :)

...

Хотя, вот, уже сам придумал - а если массив будет Null? Тогда str.join(Null) будет работать, а Null.join("") - нет :)

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

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

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

Ага, на null значт проверять ненадо, прям как в пыхе.

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

> почему join является методом строки а не массива?

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

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

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

> почему join является методом строки а не массива

Потому что list.join('-') будет работать только для списков, а '-'.join(something) работает для любого объекта, который поддерживает интерфейс итератора.

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

Ага, делаем в строке метод к последовательностям, к деревьям (отдельный же), к каждой структуре данных же. Буэээ, про наследование питонофаги не в курсе, да?

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

> про наследование питонофаги не в курсе, да?

В питоне duck typing. Не важно от кого отнаследовался объект, важно только, чтобы он поддерживал определенный набор функций (aka протокол, интерфейс).

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

> отдельную функцию в каком-нибудь модуле 

str.join('-', ['1', '2']) 

или 

from string import join
join(['1', '2'])
join(['1', '2'], '-')

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

> почему join является методом строки а не массива

а что тебя в этом смущает?

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

В Перле есть и даже обьекты.

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

за исключением случаев с регулярными выражениями

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

> что бы выбрали дорабатывать? На Перле или Питоне?

на Эрланге. а потом накурился бы и забил.

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

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

Понятно. Но это шаг от естественного языка к машине. То есть шаг назад :)

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

>агащаз ) ничо что он на 99% хостингов юзается вовсю? :)

Я же сказал - «ждём», а не «скоро дождёмся» :)

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

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

> хорошо спроектированная программа на Перле также хорошо читается, как и на ПХП.

И давно в функции аргументы стали явно указываться, а не выбираться из @_ ?

dccp
()

Половина немцев считают немецкий юмор худшим в Европе. Ещё треть — одним из худших.

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

это понятно, но не в этом дело.

просто я смотрел 2 версии одной и той же программы.

В перловой версии я разобрался в СТРУКТУРЕ и начал менять программу. Плюс пакетный менеджер более-менее вменяем (ActivePerl)

На Питоновскую версию я смотрел несколько раз - очень сложо разобраться - так и не осилил.

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

>На Питоновскую версию я смотрел несколько раз - очень сложо разобраться - так и не осилил.

Питон нагляднее Перла. Но зато и многословнее. Видно, тебе более компактные сущности важнее наглядности :)

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

>Но это шаг от естественного языка к машине. То есть шаг назад

Естетственные языки были до "машинных", и, собственно, машинные придумываются по причине неприемлемости естественных. То есть шаг таки *вперёд*.

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

> И не мне нужно про долю хостингов рассказывать, сегодня PHP - мой основной хлеб :)

собственно, и мой тоже.

isden ★★★★★
()

Господа программасты, а что, действительно никто из вас не смотрел фильмы "Monty Python"? Эта картинка как бы напрямую отсылает к "Monty Python's Flying Circus", что неудивительно, ибо в честь них язычок-то и назван.

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

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

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

>> Ждём, пока помрёт PHP

> агащаз ) ничо что он на 99% хостингов юзается вовсю? :)

Ну не мешает же аналогичный расклад на рынке ОС всем ждать вендокапца...

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

> это както запрещает наследовать функционал?

Наследуйте, никто не запрещает. Для этого случая даже специально Abstract Base Classes есть.

Но еще разок: питон - язык с duck typing. К ООП в питоне никто не принуждает, это не джава. Хотите писать без классов - пожалуйста, все будет работать.

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

>Пиши тогда сразу на asm

Нет, это слишком высокий уровень. Пусть пишет в машинных кодах и вводи программы переключателями :)

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

а давайте подойдем с другого конца и начнем юзать Uncommon Web

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

> неужто правда так, что the attributes are shared between instances ?

То, что атрибуты класса общие для всех его экземпляров - истинная правда, а что?

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

нене, пример там посмотри -

>>> class Foo:

... bar = []
... def __init__(self, x):
... self.bar.append(x)
...
>>> f = Foo(42)

>>> g = Foo(100)

>>> f.bar, g.bar

([42, 100], [42, 100])


это типа нормально? f и g - это же разные экземпляры класса?

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