LINUX.ORG.RU

Порекламируйте Python

 , ,


0

2

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

Желательно побольше технических доводов.

Всем спасибо.

//Интересует положение вещей относительно вменяемых IDE, отладки и юнит-тестирования (особенно).

Прочитай околотехнические тексты, заповеди, философию, стихи о python'е. В книгах с верблюдом, очень лампово выходит, прямо, как в семью принимают.

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

В отличие от Питона, где всегда один путь, и под него нужно подстраиваться.

yaspol
()

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

yaspol дело говорит. Просто попробуй Perl, после него будешь писать на пистоне с удовольствием.

derlafff ★★★★★
()

Что-то вроде этого?

Спросите питониста, чем хорош питон, и он вам процитирует ихнюю философию программирования, называемую «The Zen of Python», а в частности: Простое лучше, чем сложное. Сложное лучше, чем запутанное. Плоское лучше, чем вложенное. Читаемость имеет значение. Если реализацию сложно объяснить — идея плоха.

Именно по этому питонисты очень гордятся генераторами.

Например, для того, чтобы двумерный массив array = [­[1, 2], [3, 4], [5,]] превратить в одномерный, питонисты пользуются вот таким простым кодом: element for subarray in array for element in subarray

Не правда ли просто, не сложно, не запутанно, читаемо и легкообъясняемо?

А вот несчастные рубисты мучаются с: array.inject :+ или array.flatten

А бедные хаскелисты вообще надрываются: concat array

aristocraft
()

Вменяемых ide практически нет, eclipse уныл, а emacs придется настраивать. Нормальных средств для рефакторинга нет (и не предвидется). Python3 - УГ без новшеств со слабыми перспективами. Нельзя как в руби писать в столбик методы, начиная каждый с новой строки и точки (без оборачивания в скобки всего выражения), лямбды неполноценны, хвостовой рекурсии нет, макросов нет, list comprehension порой многословен как и итерация в стиле for xxx in yyy. Все начинает тормозить уже на тривиальной обработке строк в небольшом количестве. GIL. Куча веб-фреймворков и все говно. twisted говно. для мобилок на нем не попишешь. gui только в отдельном потоке (иногда не в одном) нужно делать. STM только в PyPy и то сторонним патчем. Ленивых типов нет. Отступы.

А вообще, неплохой язык.

alienclaster ★★★
()

И классика:

Завтра ищешь в интернете книжку Dive into python. [censored] если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, [censored], вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. [censored] хиккующих [censored] / просто неудачников типа рейфага или сисярп/джава-[censored], которые [censored] по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.

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

питонисты пользуются вот таким простым кодом: element for subarray in array for element in subarray

никто не мешает развернуть этот код и засунуть в функцию inject() или flatten()

более того, любой начинающий питонист без проблем разберет эту строку, неоднозначностей в ней нету абсолютно никаких

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

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

ой лол. веб-говнокодеры, кыш из треда.

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

Просто попробуй Perl, после него будешь писать на пистоне с удовольствием.

Пробовал, не получается %)

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

А бедные хаскелисты вообще надрываются: concat array

А внутри этот concat как устроен? Минуточку, там foldr. Чтож, тогда сделаем в питоне так же: reduce(lambda x, y: x+y, data).

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

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

Ты хочешь сказать что ты не ставишь в своем коде отступы?

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

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

Что это за вой слабака? Даже я, не зная питона вообще, понимаю, что это идиотское сравнение. Кто это написал?

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

Python3 - УГ без новшеств со слабыми перспективами

Я так полагаю что этот вывод был сделан после вдумчивого прочтения http://docs.python.org/3/whatsnew/index.html ?

со слабыми перспективами

Это всё субъективно. Я вот считаю что время python3 уже пришло.

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

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

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

Можно пример в студию?

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

Я так полагаю что этот вывод был сделан после вдумчивого прочтения

Да, 2.7 большинство фишек есть. Я не спорю - Python3 более вылизан и красив, но этого слишком мало, чтобы назвать прогрессом.

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

Пример чего? Тут вроде все очевидно.

Пример этой самой кодогенерации. Я не втыкаю о чём идёт речь и у меня несколько предположений что это может быть.

2.7 большинство фишек есть

В 2.7 фичи бэкпортировали из третьей ветки чтобы облегчить миграцию.

этого слишком мало, чтобы назвать прогрессом.

Я не понимаю этой фразы. Если ты про то что стоило ли менять мажорную версию то тут как минимум «3.x» индикатор того что сломали обратную совместимость. Да и вообще там много чего внутри сделали. Не все нововведения так просто видны программисту.

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

Не, я просто намекаю, что в питоне и в не вебанутом коде такие столбики редко встретишь

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

alienclaster ★★★
()

А мне нравятся отступы. Других преимуществ в сравнении с Ruby не вижу. Даже не знаю, что бы я делал, если бы vim вместо меня end'ы не расставлял.

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

есть много вложенных структур и методы применяются к данным «паровозиком»

я практически уверен, что не встречу такого в python.

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

если есть много вложенных структур и методы применяются к данным «паровозиком»

Ты под паравозиком подразумеваешь «some data».replace().split()[:666].pop(...)?

У питона есть проблема в том что в целом он не expression-oriented. Для своих классов я периодически делаю так чтобы возможен был chaining, но это не всегда возможно.

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

А как же писать однострочники?

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

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

Однострочники выглядят изящнее, чем «обычный» код.

я серьёзно

YES WE CODE

Серьезные программисты такие серьезные.

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