Представлен (http://permalink.gmane.org/gmane.comp.python.announce/11911) корректирующий выпуск Python 2.7.10 (https://www.python.org/downloads/release/python-2710/), в который внесены только накопившиеся за полгода исправления ошибок. Python 2.7.10 является последним плановым выпуском в ветке 2.7, в дальнейшем новые версии будут формироваться по мере необходимости. Поддержка ветки Python 2.7 будет осуществляться (http://www.opennet.me/opennews/art.shtml?num=39565) до 2020 года.
URL: http://permalink.gmane.org/gmane.comp.python.announce/11911
Новость: http://www.opennet.me/opennews/art.shtml?num=42293
хм, в сусе 13.2 до сих пор 2.7.8
В devel:languages:python — 2.7.9, думаю и 2.7.10 соберут скоро.
Точно, пока что 2.7.9
The only interesting change since the release candidate is a fix for a regression in cookie parsing.а где остальные ошибки? народ требует ошибок!
а вообще, скоро python-у 2.7 наступит стабилизец. и пока одни играют в "быстрее! выше! сильнее! python 3.5 3.6 и далее со всеми остановками", python 2.7 будет стабильнее некуда и надёжнее некуда, без единой новой фичи :)
python 2.7 - мегстабильный и мегапредсказуемый, на нём ещё твои внуки писать будут. и, кто не хочет, тот никуда не переходит.python 3.5 - всё новенькое, весёленькое, постоянно что-то добавляется. кто хочет, использует его. кто никуда не спешит - использует проверенное средство.
Ржу над питонистами, с их историей перехода 2.7 -> 3к. Это надо было лажануть с переходом. В ruby давно перешли и выкинули 1.8.7. Руби мир двигается, двигаеться и node.js, а питон топчется на месте.
в руби, вместе с выходом новой версией была оптимизирована производительность в питоне нет.
Ну а в целом сравни количество и масштаб библиотек на тот момент с руби и станет понятно потому как питон мир не ограничивается одним веб. А сейчас о руби вообще уже более года ничего не слышал.
> Ржу над питонистами, с их историей перехода 2.7 -> 3кну ржи и дальше:)..
переход у питонистов уже закончился [у кого-то несколько лет назад; а у когото не так давно, но всё же.. а кто-то и не собирался переходить :)]
Не совсем так. Есть некие группы упоротых фанатиков, которые и знать не хотят никакого Python 3, используют PIL вместо Pillow и мажут сладкий хлеб на все продукты, но есть и люди, которых достало писать шебанг в каждом файле и плясать вокруг Unicode <-> ANSI, и таких много.
> и плясать вокруг Unicode <-> ANSIхотите пример того, как не надо вокруг этого плясать? возьмите Go. а в Python 3 с этим чуть-чуть лучше, чем в 2, но в целом плохо, неудобно и костыльно.
> достало писать шебанг в каждом файле
вау! переход на третий питон избавил вас от этого?
>> достало писать шебанг в каждом файле
> вау! переход на третий питон избавил вас от этого?он про
# -*- coding: utf-8 -*-
наверное :)
хм. а зачем оно ему в каждом файле?у меня под рукой несколько больших проектов на питоне 2, в нескольких файлах это реально нужно, во всех остальных -- нет.
>Ржу над питонистами, с их историей перехода 2.7 -> 3к.Ну ... ржи. Некоторым вон палец покажешь и вс1 ...
>В ruby давно перешли и выкинули ...
И этим всё сказано. Рябе - всё!(С)Изя
Ближе к дну только пехепе :-\
Так что ржи, следующий этап - истерики и депресняк.
Чем оно лучше руби?
Да кому ваш руби перся кроме хипстеров с рельсами, больше нечего на руби и не делают. Язык одного фреймворка.
Все хипсторы убежали на ноду и го. На рубях остались только слоупоки и одноклеточные.
"Смешались в кучу кони, люди,
И залпы тысячи орудий
Слились в протяжный вой…"
Всё в кучу перемешали и интерпретируемые и компилируемые языки ... Как люди вообще могут эти не пересекаемые прямые сравнивать? ...
> Да кому ваш руби перся кроме хипстеров с рельсами, больше нечего на
> руби и не делают. Язык одного фреймворка.Почти так, за исключением всего, что связано с тестированием, развертыванием приложений и администрированием линуксов.
Ой насмешил, и что вы там тестируете на руби?
> развертыванием приложений и администрированием линуксов.Это вы про капистрано, шеф и папет? Ansible ворвался на этот рынок и раскидал всех трех, а до него был фабрик.
Cucumber, SikuliX, Selenium/Capibara, God,...
Cucumber вы на нем тестируете что то коме проектов на руби.
Selenium работает и с другими языкми, да и на ноде есть куда удобней средства. mochajs
Capibara смотри на ноду. PhantomJS как пример хотя он и не для этого.
Так что пора просыпаться от анабиоза, на других языках уже давно есть инструментарий куда удобней и быстрее.
> Cucumber вы на нем тестируете что то коме проектов на руби.Например desktop apps на Qt. На нём пишутся скрипты под SikuliX
> Selenium работает и с другими языкми, да и на ноде есть куда
> удобней средства. mochajsCapibara гораздо удобнее по синтаксису
> смотри на ноду. PhantomJS как пример хотя он и не для
> этого.PhantomJS всего лишь браузер без GUI, который прекрасно управляется через Capibara или тем же самым Cucumber над Selenium.
> Так что пора просыпаться от анабиоза, на других языках уже давно есть
> инструментарий куда удобней и быстрее.Удобнее - в смысле писать больше?
> Capibara гораздо удобнее по синтаксисуРасскажите это фронтендеру который в глаза ваш руби не видел.
> Удобнее - в смысле писать больше?В смысле писать та том же языке что и программируете, и работают быстрее, но вы конечно можете подождать полчаса пока все тесты пройдут.
Добавляя дополнительный ЯП в проект вы рискуете устроить вавилонскую башню.
Ещё с начала обсуждения ждём в качестве пруфа ссылку на тестирование производительности решений на Руби и на других языках.
> Ещё с начала обсуждения ждём в качестве пруфа ссылку на тестирование производительности
> решений на Руби и на других языках.Уже была в этом году здесь же на опеннете. Ищите.
>> Capibara гораздо удобнее по синтаксису
> Расскажите это фронтендеру который в глаза ваш руби не видел.Могу тоже самое написать в отношении фронтендера на Qt/C++. И что? Задача тесты писать у тестировщика. А он Ruby видел.
> В смысле писать та том же языке что и программируете, и работают
> быстрее, но вы конечно можете подождать полчаса пока все тесты пройдут.
> Добавляя дополнительный ЯП в проект вы рискуете устроить вавилонскую башню.Ок. См. выше.
> Задача тесты писать у тестировщикаСпасибо хоть юнит тесты разрешили разработчику писать.
>> Задача тесты писать у тестировщика
> Спасибо хоть юнит тесты разрешили разработчику писать.когда пишут юнит-тесты вообще вопрос выбора языка не стоит. На чём основной продукт написан, на том и пишут. А интеграционные вполне можно написать на Cucumber.
Ты плохо набросил, куда удобней использовать для тестирования питон что большинство и делает.
>> Да кому ваш руби перся кроме хипстеров с рельсами, больше нечего на
>> руби и не делают. Язык одного фреймворка.
> Почти так, за исключением всего, что связано с тестированием, развертыванием приложений
> и администрированием линуксов.уже есть salt на питоне:
http://saltstack.com/community/
http://saltstack.com/он гораздо лучше за puppet и во многом лучше за chef.
Кроме солта, в первую очередь, на Python принято припоминать Ansible.> уже есть salt на питоне:
> http://saltstack.com/community/
> http://saltstack.com/
> он гораздо лучше за puppet и во многом лучше за chef.
> Кроме солта, в первую очередь, на Python принято припоминать Ansible.Ansible во многом хуже по сравнению с Salt`ом:
http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet.../
>> Да кому ваш руби перся кроме хипстеров с рельсами, больше нечего на
>> руби и не делают. Язык одного фреймворка.
>
>Почти так, за исключением всего, что связано с тестированием, развертыванием приложений и >администрированием линуксов.Хочу напомнить, что Ruby используется как внутренний скиптовый язык в SketchUp'е и для него я альтернативы не знаю, он там как Python в Blender'е.
И может еще где как встроенный язык используется.
> Да кому ваш руби перся кроме хипстеров с рельсами, больше нечего на руби и не делают. Язык одного фреймворка.Как раз на руби делают отличные puppet и chef. А рельсы..., ну пусть и рельсы будут, может и они кому-то понадобятся.
> Как раз на руби делают отличные puppet и chef.После того как появился отличный saltstack на питоне -
puppet уже нельзя назвать отличным, он теперь просто удовлетворительный,
а chef теперь - просто хороший. потому что и тот и другой - хуже, чем saltstack.
Ничем. Синтаксис недоразвитый, юникод нормально не поддерижвает, по производительности отстаёт.
> Ничем. Синтаксис недоразвитый, юникод нормально не поддерижвает, по производительности
> отстаёт.Согласен у руби синтаксис очень сильно недоразвит, бесит везде ставить end
> Согласен у руби синтаксис очень сильно недоразвит, бесит везде ставить endтолько если не освоил функциональный стиль и однострочные операции
>> Согласен у руби синтаксис очень сильно недоразвит, бесит везде ставить end
> только если не освоил функциональный стиль и однострочные операцииНу великий мастер функционального стиля может всю программу в одну строчку забубенить, правда эта программа обычно Hello World
>>> Согласен у руби синтаксис очень сильно недоразвит, бесит везде ставить end
>> только если не освоил функциональный стиль и однострочные операции
> Ну великий мастер функционального стиля может всю программу в одну строчку забубенить,
> правда эта программа обычно Hello Worldоднострочники - это же круто :)
open('file2.txt').write('\n'.join([(i,x) for (i,x) in enumerate(open('file.txt').read()) if x.startswith(':') or i % 5 == 2]))
их можно наращивать бесконечно :)
Да, круто. Жаль только, что нечитаемо.
эт потому что вы писатель...
Точнее, .read().splitlines() для полного буферизования или .readlines() для инлайнаОднострочник не для читаемого. однострочник для понтов "кто длиннее". PEP8, насколько я помню, требует ограничивать строку 79 символами :)
> Точнее, .read().splitlines() для полного буферизования или .readlines() для инлайна
> Однострочник не для читаемого. однострочник для понтов "кто длиннее". PEP8, насколько я
> помню, требует ограничивать строку 79 символами :)Технически pep8 ничего не ограничивает. Там есть пункт, в котором перечислены условия, при которых можно без зазрения совести игнорировать эти рекомендации.
Другое дело, что по-хорошему указанный выше однострочник никак не может занимать менее двух строк, потому что файлы надо закрывать:
with open('file.txt') as input_file, open('file2.txt') as output_file:
output_file.write('\n'.join([(i,x) for (i,x) in enumerate(input_file.read()) if x.startswith(':') or i % 5 == 2]))Кроме того, join принимает любой iterable, так что формировать список вовсе не обязательно, обойдемся генератором:
with open('file.txt') as input_file, open('file2.txt') as output_file:
output_file.write('\n'.join((i,x) for (i,x) in enumerate(input_file.read()) if x.startswith(':') or i % 5 == 2))Запихать все в один write нет смысла, потому что если я не ошибаюсь, до закрытия файла ничего не запишется на диск, если явно не вызвать output_file.flush() и os.fsync(). Поэтому вполне можно теперь уже две строчки раздробить еще, получив не сильно отличающийся по функционалу, но заметно более читаемый кусок кода:
with open('file.txt') as input_file, open('file2.txt') as output_file:
for (i, x) in enumerate(input_file.read():
if x.startswith(':') or i % 5 == 2):
output_file.write('%s\n' % ((i, n),))В качестве бонуса мы получили символ конца строки в последней строке.
Согласен по поводу понтов. Этот конкретный понтовый однострочник можно уложить в 79 символов даже не напрягаясь.
Всем.
смотрим https://www.python.org/dev/peps/pep-0475/
os.fchdir() - это у них функция
socket.socket() - это у них метод
чето я не догоняю, а зачем так? Почему не сделать все функциями или все сделать методами.
Прочитай два раза текст по ссылке, и возращайся сюда :)os - это модуль, в котором есть функции,
socket - это тоже модуль,
socket.socket - это класс socket в модуле socket
socket.socket() - это конструктор объекта socket в модуле socket. Так вызывать конструктор не имеет смысла, просто по тексту нужно было обозначить создание экземпляра класса.
а socket.socket().accept() - это метод объекта.По поводу всё-функциями/всё-методами:
в python метод - это такая функция. см. https://docs.python.org/2/tutorial/classes.html
да епт, только до 2.7.9 обновился неделю назад ради поддержки tls1.2, а тут опять опдейт.
так, кто нибудь может сказать есть ли в python2 или python3 встроенный аналог JavaScript Data-binding Object.observe EcmaScript6 или тех же Beans из JavaEE6 (дата-проперти ивент биндинг) или хорошая сторонняя библиотека?
Насколько я знаю, нет. Самое близкое - обмазать сеттеры и геттеры у пропертей декораторами. (inb4 сразу стало все понятно)
>>inb4это что такое?
>>> inb4
> это что такое?
типа так -
http://kivy.org/docs/api-kivy.properties.html#observe-proper... ?
Да, так. За киви спасибо.
В самом интерпретаторе было бы не плохо иметь, хорошо оптимизированный ивент-диспетчер.
Подскажите, чем в 3-м питоне с мускулем работают?
> Подскажите, чем в 3-м питоне с мускулем работают?наверное, тем же, чем и во второй - ОРМ-ой какой-нибудь :)
Менеджер пакетов убунты перестанет тормозить и зависать? Если нет - язык не годен для уровня выше школьных лаб
В бубунте будет тормозить и зависать на любом языке. Место тут проклятое(С) :)
2.7.11 запланирован на декабрь 2015 вообще-то http://legacy.python.org/dev/peps/pep-0373/#release-schedule