The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен язык программирования Python 3.3

30.09.2012 00:06

После 19 месяцев разработки представлен релиз языка программирования Python 3.3. Python 3.3 является первой стабильной веткой, выпущенной после истечения моратория на изменение синтаксиса языка, введённого вскоре после релиза Python 3.1 с целью предоставления возможности создателям альтернативных реализаций языка Python обеспечить в своих продуктах полную совместимость с классическим CPython 3.

Среди добавленных в Python 3.3 новшеств:

  • Поддержка виртуальных окружений, позволяющих использовать отдельные изолированные представления инсталляций Python, вынесенные в отдельные директории. Каждое виртуальное окружение содержит свой бинарный файл с интерпретатором Python (можно использовать разные версии Python) и свой набор пакетов. При этом все виртуальные окружения используют один общий набор стандартных библиотек Python. Для создания виртуальных окружений следует использовать модуль venv;
  • Поддержка синтаксиса "yield from выражение" для делегирования части операций одного генератора другому генератору. Указанное нововведение позволяет вынести из генератора часть кода, содержащую 'yield', и поместить её к другому генератору. Значения, возвращаемые сформированными подобным способом субгенераторами, становятся доступны делегирующему генератору;
  • Новые модули: "faulthandler" для диагностики крахов, "ipaddress" для манипулирования IP-адресами и "lzma" для сжатия данных методом LZMA/XZ;
  • Переработанная иерархия исключений для системных вызовов (os) и ввода/вывода (io);
  • Улучшение поддержки Unicode. Адаптивное представление Unicode-строк, позволяющее забыть о различиях между "wide" и "narrow". В объекты str добавлена поддержка универсального синтаксиса "u'" для явного указания unicode строк. Обеспечено более компактное хранение unicode-строк;
  • Переписанный на языке Си модуль "decimal" позволил до 80 раз увеличить производительность целочисленных операций;
  • Использование по умолчанию importlib в качестве системы импорта (__import__);
  • Поддержка отдельных пространств имён (Namespace) в пакетах, позволяющих разнести один Python пакет по нескольким директориям;
  • Поддержка атрибута __qualname__ для явной идентификации родительских классов и функций;
  • Возможность скрытия контекста исключений;
  • Реализация расширенных и независимых от платформы часов в модуле "time";
  • Обеспечение возможности совместного использования словарями идентичных ключей для хранения атрибутов объектов, что позволило существенно снизить потребление памяти для объектно-ориентированного кода;
  • Добавлен класс "collections.ChainMap" для связывания словарей в единое представление;
  • В модулях "os" и "signal" добавлены обвязки для дополнительных POSIX-функций, таких как "sendfile()";
  • По умолчанию включен режим рандомизации хэшей, нацеленный на решение проблемы с предсказуемыми коллизиями в реализации алгоритма хэширования для типов dict и set.


  1. Главная ссылка к новости (http://www.python.org/getit/re...)
  2. OpenNews: Расширение интерпретатора Python для JIT-компиляции фрагментов кода с помощью LLVM
  3. OpenNews: Релиз PyPy 1.9, реализации Python, написанной на языке Python
  4. OpenNews: Представлен pypy-stm, интерпретатор Python с поддержкой распараллеливания на многоядерных системах
  5. OpenNews: Инструментарий для разработки приложений на языке Python для платформы Android
  6. OpenNews: Релиз языка программирования Python 3.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/34971-python
Ключевые слова: python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (106) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:31, 30/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >является первой стабильной веткой, выпущенной после истечения моратория на изменение синтаксиса языка,

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

     
     
  • 2.2, Аноним (-), 00:53, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так правильно с 3.1 по 3.3 синтаксис не меняли, а в 3.3 вон сколько изменений, сейчас начнётся новый цикл, мораторий на эти изменения, только баг-фиксы.
     
  • 2.19, Аноним (-), 11:48, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет, тут логическая ошибка
     
     
  • 3.20, Аноним (-), 11:50, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, пожалуй всё правильно
     
  • 2.44, Аноним (-), 21:59, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    да
     

  • 1.5, Онаним (?), 02:14, 30/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня 2 вопроса:

    1. Таки как там с Unicode: лучше или хуже, чем в Java.
    2. Как там с параллелизацией: потоки, актёры и т.п...

    Слышал я, что вообще в Питоне с этими вещами было паршиво. Может в этой версии уже нет?

     
     
  • 2.7, Аноним5 (?), 03:19, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Вам надо посмотреть Go.

    1. В Go всё Unicode -- полностью. Даже синтаксис. Серьезно! Вы можете называть переменные, названия функций и т.д. на кириллице. Создатели Go, Роб Пайк и Кен Томпсон -- авторы UTF-8.

    2. Неотъемлемая часть языка. Посмотрите на goroutines.

     
     
  • 3.8, bugmenot (ok), 03:54, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Вы можете называть переменные, названия функций и т.д. на кириллице.

    Зачем?
    /me стонет

     
     
  • 4.10, ааноним (?), 05:57, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Как зачем? Думаю кодеры из 1С например будут только рады)))
     
     
  • 5.13, Anonymous1 (?), 09:09, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Как зачем? Думаю кодеры из 1С например будут только рады)))

    Подозреваю, что "кодеры из 1С" являются, в массе своей, однопрограммными или одноязычными, и никакие другие языки, кроме с трудом осиленного и изначально созданного для бухгалтеров диалекта 1С, их ничуть не интересуют. За примерами далеко ходить не нужно: подсистема обмена почтовыми сообзениями в 1С, FTP подсистема в 1С, ...
    Какая уж тут радость - скорее огорчение.

     
     
  • 6.16, Аноним (-), 10:29, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Подозреваю, что "кодеры из 1С" являются, в массе своей,

    однопрограммными или одноязычными
    Вы ошибаетесь.
    Что касается русскоязычных переменных, то это действительно на удивление очень удобно (для русскоязычных разработчиков). По сути текст программы - это просто текст на родном языке.
    конструкцию
    ЕстьПрава = Ложь;
    ...
    Если ЕстьПрава Тогда
      СделайТоТо();
    КонецЕсли;
    поймёт даже человек, который про язык 1с даже не слышал.

     
     
  • 7.17, Аноним (-), 10:38, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > прочитать сможет даже человек, который про язык 1с даже не слышал.

    Пофиксил.

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

     
     
  • 8.31, uuser (ok), 15:13, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Интересно, на каком языке пишет англоязычный Нормальный программист 8482 ну... текст свёрнут, показать
     
     
  • 9.32, Аноним (-), 16:38, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В английском слова почти не склоняются не спрягаются, так что программы на латин... текст свёрнут, показать
     
  • 7.22, mine (ok), 12:13, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Сразу видно человека, всю жизнь работающего в местечковой конторе и ничего кроме своего кода не видевшего.
    Потому что хватает один раз увидеть код на несколько сотен метров, снабжённый комментариями на хрен знает скольки языках, дабы отучиться от подобных мыслей.
     
     
  • 8.24, YetAnotherOnanym (?), 13:27, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Фу как неполиткорректно А как же мультикультурализм ... текст свёрнут, показать
     
     
  • 9.26, Аноноим (?), 14:10, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +9 +/
    У вас политкорректность головного мозга 171 Цветным не нравится книга 171 М... текст свёрнут, показать
     
     
  • 10.49, Аноним (-), 23:47, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Что общего у политкорректности и сжигания книг ... текст свёрнут, показать
     
     
  • 11.51, Аноним (-), 00:11, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Сначала все начинается с политкорректности, а заканчивается сжиганием книг ... текст свёрнут, показать
     
  • 11.96, Aquarius (ok), 09:10, 03/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    многие проявления политкорректности неполиткорректны... текст свёрнут, показать
     
  • 10.102, Аноним (-), 21:07, 04/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    только чувства мусульман неприкосновенны, все неверные должны уважать аллаха - ... текст свёрнут, показать
     
  • 9.105, PereresusNeVlezaetBuggy (ok), 01:32, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Английский - профессиональный язык айтишников, как латынь - врачей Смиритесь с ... текст свёрнут, показать
     
  • 5.71, demo (??), 11:39, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Красота какая!

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

    Ад программиста скоро будет выглядеть так -
    Имя функции и большинство идентификаторов - китайскими иероглифами, а потом смесь деванагари и кириллицы.

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

     
     
  • 6.72, YetAnotherOnanym (?), 11:48, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Мне как-то довелось копаться в PHP-коде где всё было на итальянском (HotelDruid, есличо). Ничего, продрался, хотя в словарь нырять каждую минуту, конечно же напрягает.
    Я это к тому, что возможность писать только латиницей сильно сужает число языков, но не сводит его к одному английскому. Надо ещё чтобы авторы понимали, что их код будет читать кто-то, говорящий на другом языке.
     
     
  • 7.103, Аноним (-), 21:09, 04/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > возможность писать только латиницей сильно сужает

    nikto, tem bolee, ne otmenyal translit

     
     
  • 8.104, arisu (ok), 23:44, 04/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    за транслит в названиях надо убивать, предварительно медленно оторвав калёными щ... текст свёрнут, показать
     
  • 6.87, gegMOPO4 (ok), 00:58, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Появится профессия программист-переводчик.
     
  • 4.11, grayich (ok), 08:07, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а почему бы и нет ? :)
     
  • 4.35, жабабыдлокодер (ok), 18:01, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Вы можете называть переменные, названия функций и т.д. на кириллице.
    >
    >Зачем?
    >/me стонет

    Мне приходилось иметь дело со XSD схемой, написанной русскими буквами. JAXB быстренько преобразовал их в классы Java (в жабе можно использовать в именах UTF-символы, включая кириллицу), после чего я не стонал, а ругался: все время переключать раскладки очень неудобно. Только автозаполнение в NetBeans немного выручало.

     
  • 4.97, Тарелькин (?), 17:02, 03/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Зачем?

    Я тоже так думал, пока кто-то не привел мне пример. Правда, не с кириллицей, а с математическими формулами с греческими буквами. В научной программе, вполне вероятно, будет понятнее, если написать φ = ∏(p[i] ^ (α[i] - 1) * (p[i] - 1)), чем phi = product(pow(p[i], a[i] - 1) * (p[i] - 1)). Особенно если это код в середине научной статьи, где употребляются те же самые буквы.

     
     
  • 5.98, arisu (ok), 22:33, 03/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    кто мешает сделать транслятор из такой записи в то, что понимает компилятор и не тащить вредные фичи в сам компилятор?
     
     
  • 6.99, Тарелькин (?), 06:01, 04/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >кто мешает сделать транслятор из такой записи в то, что понимает компилятор и не тащить вредные фичи в сам компилятор?

    Ну он уже есть, только встроен в компилятор, и не надо каждому писать свой велосипед.

    В большинстве случаев не надо - большинство не пользуется. А кто очень хочет воспользоваться не к месту, тот и латинскими буквами напишет "void narisovatIzobrazhenie()".

    Потом, популярные языки программирования (C++, Javascript, в какой-то мере Java) содержат колоссальное количество фич, позволяющих выстрелить себе в ногу (в C++ можно это сделать при сочинении Hello World). Почему бы не выкинуть "goto" из C и C++, если он нужен только очень редко?

     
     
  • 7.100, arisu (ok), 06:22, 04/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну он уже есть, только встроен в компилятор, и не надо каждому
    > писать свой велосипед.

    зачем «каждому»? один написал и выложил.

    > Почему бы не выкинуть «goto» из C и C++, если он нужен только очень редко?

    потому что «выкинуть» — не то же самое, что «добавить». хотя из цпп гото выкинуть вполне нужно бы.

     
     
  • 8.106, PereresusNeVlezaetBuggy (ok), 01:35, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, лучше изобрести тысячу обёрток для указателей и запомнить особенности и... текст свёрнут, показать
     
     
  • 9.112, arisu (ok), 21:55, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    и когда же в си 8212 да, там нет finally а зачем goto в c пользуйся меха... текст свёрнут, показать
     
     
  • 10.114, PereresusNeVlezaetBuggy (ok), 15:05, 07/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-первых, исключения совсем для другого хотя иногда области применения и могут... большой текст свёрнут, показать
     
     
  • 11.116, arisu (ok), 21:20, 07/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    вот с этого места поподробней а то начинает закрадываться подозрение, в котором... большой текст свёрнут, показать
     
     
  • 12.117, PereresusNeVlezaetBuggy (ok), 01:55, 09/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Что именно поподробней Страуструпа пересказывать как-то не хочется Исключени... большой текст свёрнут, показать
     
     
  • 13.118, arisu (ok), 03:17, 09/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    зачем нужны goto, окромя как а эмулировать finally, и б выбираться из очень г... большой текст свёрнут, показать
     
  • 7.101, Тарелькин (?), 06:24, 04/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да и потом, смотри, как можно увеличить наглядность названий во многих программах:

    Microsoft®InternetExplorer®DownloadURL := "http://windows.microsoft.com/ru-RU/internet-explorer/products/ie/home";

     
  • 7.111, Аноним (-), 19:11, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ой ну вот ненадо, на си пару раз себе в ногу стрельнешь и все Научился обращать... большой текст свёрнут, показать
     
  • 3.46, pro100master (ok), 22:19, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вам надо посмотреть Go.

    а напаркуа? В Go есть тысячи хороших библиотек? Может быть хотя бы 10 фреймворков? Голый язык с понтами и кучкой приближенных сектантов. До Python еще пилить и пилить, а до JM, как до Солнца улиткой.

     
  • 2.12, bav (ok), 08:15, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Слышал я, что вообще в Питоне с этими вещами было паршиво.

    Рабинович напел?


     
  • 2.14, anonymous (??), 09:10, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У меня 2 вопроса:
    > 1. Таки как там с Unicode: лучше или хуже, чем в Java.
    > 2. Как там с параллелизацией: потоки, актёры и т.п...
    > Слышал я, что вообще в Питоне с этими вещами было паршиво. Может
    > в этой версии уже нет?

    В Tcl с unicode все отлично, например. Потоки, мьютексы, пулы потоков, до версии 8.5 расширением, в 8.6 есть поддержка кооперативной многопоточности в ядре языка.

     
     
  • 3.18, Ещё тот Аноним (?), 11:00, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Зато в Tcl с синтаксисом очень паршиво.
     
     
  • 4.25, YetAnotherOnanym (?), 13:34, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато в Tcl с синтаксисом очень паршиво.

    На Паскаль не похож?

     
     
  • 5.39, Аноним (-), 19:37, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Забавные у вас представления о паршивости синтаксиса.
    Нет, в случае с Tcl проблемы гораздо глубже.
     
     
  • 6.47, anonymous (??), 22:41, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Забавные у вас представления о паршивости синтаксиса.
    > Нет, в случае с Tcl проблемы гораздо глубже.

    Хотел бы немного подискутировать на тему проблем, если Вы не против.

     
     
  • 7.56, arisu (ok), 08:11, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Хотел бы немного подискутировать на тему проблем, если Вы не против.

    ОноНеПохожеНаСи!!111111

     
  • 6.73, YetAnotherOnanym (?), 11:55, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне однажды пришлось писать на tcl, правда, совсем немного - нужен был скрипт на Expect, способный делать более сложные штуки, чем "дождаться login, послать логин, дождаться password, послать пароль", на всё ушло около часа, при том, что раньше с tcl не соприкасался. Никаких таких ужасных особенностей в синтаксисе tcl я тогда не усмотрел.

     
  • 3.29, gegMOPO4 (ok), 14:19, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Tcl поддерживает Unicode ограниченно — только Basic Multilingual Plane.
     
     
  • 4.57, arisu (ok), 08:12, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Tcl поддерживает Unicode ограниченно — только Basic Multilingual Plane.

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

     
     
  • 5.61, gegMOPO4 (ok), 10:20, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем вам уникод? ASCII хватит для всех.
     
     
  • 6.62, arisu (ok), 10:25, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Зачем вам уникод? ASCII хватит для всех.

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

     
     
  • 7.65, gegMOPO4 (ok), 10:47, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Правильно. Зачем в кириллице буквы, дублирующие латинские, — А, В, Е, К, М, Н, О, Р, С, Т, У, Х? Зачем Г, если есть G? Зачем переворачивать нормальные буквы — И, Я, Ь?
     
     
  • 8.67, arisu (ok), 10:52, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    не тупи ... текст свёрнут, показать
     
  • 2.21, Аноним (-), 11:58, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > 2. Как там с параллелизацией: потоки, актёры и т.п...

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

     
     
  • 3.40, Аноним (-), 19:38, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А где сейчас с параллелизацией хорошо? Неужели в джаве? А я всегда
    > думал что джава и параллельные вычисления это взаимно исключающие параграфы. Что-то
    > получше должно быть в ерланге и хаскелле, но опять же программировать
    > на них почти невозможно. Резолюция проста и неутешительна: параллельные вычисления это
    > миф

    А в это время суровые сишники продолжали писать распараллеленные числодробильные приложения.

     
  • 3.54, Аноним (-), 02:16, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Господа! Смертельный номер господа!

    Обычному домашнему хомячку подсунули каплю никотина:
    >Что-то получше должно быть в ерланге и хаскелле,

    Охщи ...
    >но опять же программировать на них почти невозможно. Резолюция проста и неутешительна: параллельные вычисления это миф

    Господа - приносим извинения за ошмётки несчастного смелого хомячка долетевшие да первых рядов ...

     
  • 3.58, arisu (ok), 08:13, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > в ерланге и хаскелле, но опять же программировать на них почти невозможно

    что, не похоже на похапэ? бывает.

     
  • 2.23, Ашибка (?), 12:28, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >У меня 2 вопроса:
    >1. Таки как там с Unicode: лучше или хуже, чем в Java.

    В 3 ветке лучше, во 2-ой хуже.

    >2. Как там с параллелизацией: потоки, актёры и т.п...

    Все хорошо.

    >Слышал я, что вообще в Питоне с этими вещами было паршиво. Может в этой версии уже нет?

    Вы не понимаете http://xkcd.ru/353/

     
     
  • 3.38, Sauron (??), 19:34, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На самом деле с параллелизацией там всё ужасно из за GIL, который банально не дает нескольким тредам одновременно исполняться.
    http://habrahabr.ru/post/84629/

    То есть для многопоточного программирования Питон по просту непригоден!

     
     
  • 4.42, Аноним (-), 19:41, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > На самом деле с параллелизацией там всё ужасно из за GIL, который
    > банально не дает нескольким тредам одновременно исполняться.
    > То есть для многопоточного программирования Питон по просту непригоден!

    И тем не менее с многопоточным программированием парсинг сайтов намного ускоряется. Для вычислений нужно использовать многопроцессорное программирование.

     
  • 4.43, Глаз Саурона (?), 20:01, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >На самом деле с параллелизацией там всё ужасно из за GIL, который банально не дает нескольким тредам одновременно исполняться.

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

     
  • 4.74, demo (??), 11:56, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > То есть для многопоточного программирования Питон по просту непригоден!

    Немного не так.
    GIL блокирует не потоки, а возможность параллельного исполнения кода в виртуальной машине python-а. Различие в том, что когда выполняется "тяжёлый" код в модуле написанном на C (ввод-вывод, базы данных, манипуляции матрицами и т.п.) GIL обычно снимается и потоки получают возможность исполняться параллельно.

    Программисты на java стараются всё затащить в java. Программисты на python время от времени находят ёмкие по времени куски и переписывают их на C.

     
     
  • 5.79, Бред (?), 16:48, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >GIL блокирует не потоки, а возможность параллельного исполнения кода в виртуальной машине python-а.

    Гениально! Масло не масленое, а масленое.

    > Различие в том, что когда выполняется "тяжёлый" код в модуле написанном на C (ввод-вывод, базы данных, манипуляции матрицами и т.п.) GIL обычно снимается и потоки получают возможность исполняться параллельно.

    Стандартная библиотека чуть менее чем полностью написана на Си.


    > Программисты на python время от времени находят ёмкие по времени куски и переписывают их на C.

    Раньше переписывали, сейчас есть Cython.

     
     
  • 6.81, demo (??), 18:13, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Конечно, гениально Если у Вас есть 100 потоков, выполняющих код типа x x 1,... большой текст свёрнут, показать
     
  • 2.27, gegMOPO4 (ok), 14:13, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    1. Unicode появился в Python 2.0, 12 лет назад. Поддержка его была местами лучше, местами хуже, чем в Java. С Python 3.0 стала очевидно не хуже (на Linux — лучше). С Python 3.3 — везде лучше. Прозрачно поддерживается Unicode 6.2, а Java даже Unicode 2.0 поддерживает со скрипом (и большинство разработчиков о том, как это делать, не знают).

    2. С параллелизацией всё хорошо, если применять подходящие инструменты для определённых задач, не хуже, чем в аналогичных языках общего назначения. Пакет multiprocessing появился в Python 2.6.

     
  • 2.52, Xasd (ok), 00:23, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Слышал я, что вообще в Питоне с этими вещами было паршиво. Может в этой версии уже нет?

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

    в Python-2.X многие стандартные функции возвращали байтовые последовательности вместо юникодных строк.. и поэтому в Python-2.X [перед тем как использовать результат стандартных функций] требовалось обязательно сначало вручную сделать нечто вроде:




    # при работе например с аргументами командной строки
    u_my_result = my_result.decode(locale.getdefaultlocale()[1] or 'utf8')


    # при работе с именами файлов файловой системы
    u_my_result = my_result.decode(sys.getfilesystemencoding() or 'utf8')


    # при работе с данными от файловых дескрипторов, например стандартный вход stdin
    u_my_result = my_result.decode(getattr(my_fd, 'encoding', None) or 'utf-8')


    # при получении/передаче данных по сети, и работе непосредственно с информацией (например загрузка содержимого файлов)
    u_my_result = my_result.decode('utf-8') # мы же не хотим кракозябров на другом компе с другой локалью :)

    # ...
    #
    # вобщем в зависимости от того что конкретно у нас такое есть -- my_result

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


    это было исправлено в Python-3.X -- в Python-3.X уже сразу на выходе многих стандартных функций теперь возвращается Юникодный результат (а не байтовая последовательность).

    ды и вобще в Python-3.X более чётко разграничили между собой -- байтовую последовательность и юникодную строку, и теперь их стало НЕ так просто спутать между собой в отличии от того как это было в Python-2.X.. :-)

     

  • 1.33, СлабыйЗаходНаХоливар (?), 16:58, 30/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    >Переписанный на языке Си модуль "decimal" позволил до 80 раз увеличить производительность целочисленных операций;

    А нельзя вот так вот весь Питон переписать на Си?  

     
     
  • 2.34, Аноним (-), 17:35, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
     
  • 2.70, dq0s4y71 (??), 11:25, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Дык он на Си и написан (по крайней мере у Гвидо), толку-то...
     
  • 2.80, Бред (?), 16:54, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А нельзя вот так вот весь Питон переписать на Си?

    уже сделали 1991 году, с тех пор он на Си и написан.

     

  • 1.36, Аноним (-), 18:08, 30/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    А зачем они в 3 питоне, для print обязали ставить скобки? Новоратами 3 питона я не пользуюсь, поэтому print со скобками в питоне это бред.
     
     
  • 2.37, Kamiram (?), 18:43, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Для единобразия. всетаки print это функция(да. в 3 ветке совсем функцйия)
     
     
  • 3.53, Аниме (?), 00:27, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Причём здесь единообразие? принт для отладки, зачем скобки там где их может небыть? Ну есть же операторы. Я всегда думал что print в питоне это оператор. Вот третий питон мне всё испортил. Мне нравится питон за лаконичность, а эти все новшества только удлинняют код. Питон итак довольно мощный и совершенный, зачем его портить?
     
     
  • 4.60, marks (?), 09:30, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Наркоман чтоль? В 3+ print() - функцииияяяя. А ВСЕ функции пишутся со скобочкааамиии...
     
     
  • 5.107, Аноним (-), 18:57, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Странно что не метод, вообще странный дизайн языка получается.
     
  • 3.59, arisu (ok), 08:23, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Для единобразия.

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

     
     
  • 4.63, gegMOPO4 (ok), 10:35, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > какая неоднозначность возникает от парзинга вызова функции с одним
    > аргументом без скобок?

      f-3

    Вызов функции f с аргументом -3 или результат отнимания 3 от f?

      f*a

    Вызов функции с аргументами, заданными списком/кортежом a или результат умножения f на a?

    А ещё вспомнить про функции без аргументов. И таких мелочей много, правила их разрешения создадут сложный и запутанный язык. Для Перла годится, для Питона — нет.

     
     
  • 5.66, arisu (ok), 10:50, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ок, уточню, mea culpa. с вызовом функции, аргумент которой — литерал: строка, массив, что там ещё можно однозначно отличить? конструкция:



    print "abc"



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

    опять же, никто не мешает сделать какой-нибудь флаг strict, который отрубает подобный сахар.

    в конце-концов, на гвидобейсике пишут в том числе и не особо сложные скрипты, где подобное упрощение синтаксиса более чем оправдано.

     
     
  • 6.68, gegMOPO4 (ok), 11:00, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это всё называется не «упростить синтаксис», а значительно усложнить. Для такого языка, как Питон, на котором и простые скрипты пишутся, который и неспециалисты используют, — неприемлемо.
     
     
  • 7.69, arisu (ok), 11:14, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    с точки зрения парзера — усложнить. с точки зрения человека — упростить. как раз для неспециалистов.
     
     
  • 8.86, gegMOPO4 (ok), 00:43, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    С точки зрения пользователя 8212 усложнить Больше частных правил и особых сл... текст свёрнут, показать
     
     
  • 9.89, arisu (ok), 02:08, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    вздыхает потому что если запомнить опциональное правило 171 вызов функции... текст свёрнут, показать
     
     
  • 10.90, gegMOPO4 (ok), 13:30, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Массивы отпадают f 2 8212 легальная конструкция, элемент с индексом 2 списк... текст свёрнут, показать
     
     
  • 11.92, arisu (ok), 20:29, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    поправить синтаксис, например инконсистентность, значит, в использовании квадра... текст свёрнут, показать
     
     
  • 12.93, gegMOPO4 (ok), 22:55, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Никакой инконсистентности сейчас нет Но вы можете форкнуть Питон или написать ... текст свёрнут, показать
     
     
  • 13.94, arisu (ok), 22:58, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    пожимает плечами я и так пользуюсь несколькими самодельными языками, зачем мне... текст свёрнут, показать
     
  • 9.108, Аноним (-), 19:01, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    упс а вруби все логично и print -1 -1 и print 5-1 4 ... текст свёрнут, показать
     
     
  • 10.113, gegMOPO4 (ok), 01:24, 07/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Руби 8212 другой язык, у него другой синтаксис и другая логика странные с то... текст свёрнут, показать
     
     
  • 11.115, Аноним (-), 17:05, 07/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну круто но логичным я бы это не назвал Делать ссылку оператором на функцию ... текст свёрнут, показать
     
  • 6.75, demo (??), 14:20, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ох,
    что-то мне кажется, что Вы предлагаете ядовитый сахар. Кроме простого правила нужно будет помнить ещё правила применения правила, правила отмены правила и варианты исключения из правил.

    Простое, дубовое правило (вызов функции - со скобочками!) упрощает жизнь как авторов парсера так и пользователей (особенно, если что-то идёт не так).

    Мне вот не нравится ликвидация оператора print. Да, у него было своеобразно реализовано "перенаправление" вывода в произвольный поток. Да, запрет перевода строки после вывода выглядел "вызывающе хакерски". Кроме того поддержка оператора print требовала четырёх инструкций вирт. машины (PRINT_ITEM, PRINT_ITEM_TO, PRINT_NEWLINE и PRINT_NEWLINE_TO). Возможно, что была причина избавиться от всего этого. А так при наличии sys.stdout.write() и функция print не очень-то нужна.

     
     
  • 7.76, arisu (ok), 14:33, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > что-то мне кажется, что Вы предлагаете ядовитый сахар. Кроме простого правила нужно
    > будет помнить ещё правила применения правила, правила отмены правила и варианты
    > исключения из правил.

    зачем? я же не предлагаю скобки аннигилировать. лень помнить — можно просто ставить скобки и не заморачиваться, дел-то.

     
  • 4.77, demo (??), 14:35, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ...какая неоднозначность возникает от парзинга вызова функции с одним
    > аргументом без скобок?

    вот "sin x" - это хорошо и понятно.
    а вот "sin 2*x" (тоже функция с одним аргументом без скобок) уже не хорошо и не понятно - это "(sin 2)*x" или "sin(2*x)"?

    Кроме того в случае python есть ещё одно усложнение - это мы знаем, что традиционный sin это всегда функция с одним аргументом. А компилятор python-а, бедняжечка, этого не знает.

     
     
  • 5.78, arisu (ok), 15:57, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    я же уточнил, какие литералы допускать.

    > Кроме того в случае python есть ещё одно усложнение — это мы
    > знаем, что традиционный sin это всегда функция с одним аргументом. А
    > компилятор python-а, бедняжечка, этого не знает.

    а какая парзеру разница? есть запятая на месте терма? следующий параметр. нет запятой? конец оператора.

     
  • 5.83, Аноним (-), 19:08, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> ...какая неоднозначность возникает от парзинга вызова функции с одним
    >> аргументом без скобок?
    > вот "sin x" - это хорошо и понятно.
    > а вот "sin 2*x" (тоже функция с одним аргументом без скобок) уже
    > не хорошо и не понятно - это "(sin 2)*x" или "sin(2*x)"?

    Если скобки строго заменять на пробелы, то "sin 2*x" эквивалентно "sin (2*x)", а вот "sin 2 *x" уже "(sin(2)*x)".
    Опять же, у Руби такое используется - и ничего, компилятор-бедняжечка не путается


     
     
  • 6.88, arisu (ok), 01:31, 02/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Если скобки строго заменять на пробелы, то «sin 2*x» эквивалентно «sin (2*x)»,
    > а вот «sin 2 *x» уже «(sin(2)*x)».

    в принципе, фраза «sin 2*x» человеком понимается достаточно однозначно, по-моему. а к тому, что пробелы — не просто разделители, а чуть ли не токены, питонистам не привыкать.

     
  • 4.95, angra (ok), 00:08, 03/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Свободно опускаемые скобки и куча других прелестей для опытных программистов - это perl. Питон он для другой ЦА, гибкость противоречит его философии, там шкурку с кошки можно снять строго одним образом.
     
     
  • 5.109, Аноним (-), 19:05, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Свободно опускаемые скобки и куча других прелестей для опытных программистов - это
    > perl. Питон он для другой ЦА, гибкость противоречит его философии, там
    > шкурку с кошки можно снять строго одним образом.

    Ну у этого есть один плюс. Поддерживать код проще. И один минус. Не всем это по душе.

     

  • 1.45, anonymous (??), 22:09, 30/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Поддержка виртуальных окружений

    Да здравствует version hell.

     
     
  • 2.50, bav (ok), 23:49, 30/09/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Да здравствует version hell

    Вы о чем, сударь? venv это хорошо и прекрасно.

     
     
  • 3.55, Аноним (-), 02:27, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Да здравствует version hell
    > Вы о чем, сударь? venv это хорошо и прекрасно.

    оно не втыкнуло о чём этот самый venv эбаут :)

     
  • 3.110, Аноним (-), 19:08, 06/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Да здравствует version hell
    > Вы о чем, сударь? venv это хорошо и прекрасно.

    ага придумали Bundler из мира ruby. И да это прекрасно, можно искренне поздравить питонистов, теперь и им будет удобно.

     
  • 2.82, Xasd (ok), 18:15, 01/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Поддержка виртуальных окружений
    > Да здравствует version hell.

    наверно Вы имели ввиду -- virtual-hell ! :-D

    но правда мне сложно представить что это может быть такое

    # p.s.: по крайней мере -- version-hell и virtual-env -- вещи вообще взаимоисключающие :)

     

  • 1.48, GoTLiuM (ok), 23:44, 30/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Изменения радуют:)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру