LINUX.ORG.RU

Python 3000


0

0

Гвидо Ван Россум (Guido van Rossum), создатель популярного языка программирования Python, опубликовал в своем блоге интересный отчет о следующей версии python 3.0 (которая получит название Python 3000 и выйдет в середине 2008 года). Он рассказывает о новых фичах языка, добавившихся библиотеках, изменениях в синтаксисе.

>>> Подробности

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

Отлично! Коммон лизб просто рулит во все стороны! Но в этом треде разговор про python

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

Да что там жесть... На Форте сто лет пишут:

: начальная_точка  ( -- )  0 to точка ;

: показать_точки  ( -- )
    указатели unless
        new-list
        зона list# 0 ?do
            0 over list+
        loop
        to указатели
    then

    начальная_точка
    зона list# 0 ?do
        показать_точку
        10 sleep
        следующая_точка
    loop
;

: убрать_точку  ( -- )
    указатели точка list@
    false unspawn
    10 sleep
    следующая_точка
;

: убрать_точки  ( -- )
    указатели unless exit then
    
    начальная_точка
    
    зона list# 0 ?do
        убрать_точку
    loop
;
    
true value цикл?

: цикл  ( -- )
    цикл? unless exit then
    показать_точки
    цикл? if "admin: tools: territory: цикл" задержка do-timer drop then
;

: start  ( -- )
    true to цикл?
    цикл
;

: stop  ( -- )
    false to цикл?
    убрать_точки
;

:)

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

Во-первых, нормальный программер не столько пишет, сколько думает :D

Во-вторых, переключение раскладки Caps'ом вообще не замечаешь... Просто пишешь на латинице, на кириллице, а моменты переключения даже не помнишь.

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

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

С capslock согласен :)

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

Я где-то читал, что Py3K будет уже совершенно другим (по синтаксису и вообще языком..), это так? или это будет просто продолжением/улучшением Python 2.x?

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

>" non-ASCII letters can be used in identifiers" Вот это жесть:)

Вроде бы Гвидо сопротивлялся этому до последнего, потому что это будет выглядеть убого. Но, видать, уломали )

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

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

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

>Нормальный программер нормально знает аглицкий

К сожалению, в открытых проектах нередко выбирать не из кого :)

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

>В ЛинуксФормате писали, что обатной совместимости не будет...

зато на 2.6 можно отрепетировать переезд

adarovsky ★★★★
()

а не получится как с rite? где-то он нынче..

dmiceman ★★★★★
()

Теперь-то руби точно капец.

anonymous
()

А в 3000-ном питоне уберут дебилизм, когда при объявлении метода нужно обязательно self в заголовке первым аргументом писать?

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

>Я где-то читал, что Py3K будет уже совершенно другим (по синтаксису и вообще языком..), это так?

Почти. Совсем переделывать синтаксис смылса не имеет. Во многом Python3k будет очень сильно похож на прежний, но некоторые вещи будут сделаны так, что старый py-код перестанет работать.

В свое оправдание Гвидо заявил, что в связи с выходом python3k никто не собирается сразу же бросать старую ветку.

(инфа по памяти из интервью Гвидо в LXF)

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

> А в 3000-ном питоне уберут дебилизм, когда при объявлении метода нужно обязательно self в заголовке первым аргументом писать?

Угу, уже было почти хотели убрать, но мудрый Гвидо изрёк: "Да ну нафиг, сразу набегут красноглазые рубисты, и хана языку". Решили оставить как было.

ero-sennin ★★
()
Ответ на: комментарий от krum

> " non-ASCII letters can be used in identifiers" Вот это жесть:) Всё. Я боюсь править китайский код. Там идентификаторы будут на китайском 8-)

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

> Решили оставить как было.

Клиника. Ведь можно было бы явный BAD убрать. Хотя, учитывая как люди долго привыкали к костылю. И теперь придется ходить без него...

Он вообще какие-то фишки новые добавил? Или только сломал совместимость со сторой версией?

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

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

достали они "якобы" развивать язык. Убогая внутреняя структура и библиотеки. Если бы не синтаксис python и наработки, давно бы уже пользовал ruby. Python - ...но полное!!! Не пользуйтесь им!!! Вот :)

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

> Клиника.

Это шутка была, смешная юмористическая шутка. Расслабься. :)

ero-sennin ★★
()
Ответ на: комментарий от Cris

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

x = 1 10.times { |x| } x # => 9

А в питоне серьезные люди посовещались и решили self оставить. Это фича. Люди работают, а вы в бирюльки играетесь.

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

> Убогая внутреняя структура и библиотеки.

Что такое "внутреняя структура", болезный?

А библиотеку в 3.0 переделывают.

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

>А в питоне серьезные люди посовещались и решили self оставить.

не решали его оставить ! А решили заменить на пустое имя переменной. Т.е. если хочешь обратиться к атрибуту attname, будет выглядеть:

.attname = "init_value"

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

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

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

> не решали его оставить ! А решили заменить на пустое имя переменной. Т.е. если хочешь обратиться к атрибуту attname, будет выглядеть: > .attname = "init_value"

неплохо вроде, мне нравится

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

> А в питоне серьезные люди посовещались и решили self оставить. Это фича.

Ты __внимательно__ прочитал о чем я писал? Наверное нет. Потому что когда при __объявлении__(а не внутри тела метода) первый аргумент должен быть обязательно self, то это BAD. То что внутри метода нужно self ставить нормальная вещь.

А BAD руби который ты описал имеет место быть, хотя в 1.9 его уже исправят.

> Люди работают, а вы в бирюльки играетесь.

Хорошо, когда на любимом языке можешь играться, а не работать :)

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

> не решали его оставить ! А решили заменить на пустое имя переменной. Т.е. если хочешь обратиться к атрибуту attname, будет выглядеть:

.attname = "init_value"

Ссылочку бы на PEP или сообщение в мейл-листе?

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

>Что такое "внутреняя структура"<skip>

Когда узнаешь про Си API, тогда приходи. А то только своим здоровьем за бутылкой водляры занимаешься.

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

> Потому что когда при __объявлении__(а не внутри тела метода) первый аргумент должен быть обязательно self, то это BAD.

А почему? Explicit is better than implicit. Явно указваем, что у нас такая переменная передается, а не выскакивает как черт из табакерки. К тому же, это стирает разницу между методами и обычными функциями. По-моему это отлично.

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

>>" non-ASCII letters can be used in identifiers" Вот это жесть:)

>Вроде бы Гвидо сопротивлялся этому до последнего, потому что это будет выглядеть убого. Но, видать, уломали )

Ждем тонны быдло-пайтон-кода с азатскими иероглифами!

А через полгода пайтонфилы будут тут всех уверять, что это "жутко удобная фича!":)

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

А я давно говорил, что всех программеров надо заставить выучить эсперанто с ложбаном, а другие языки из исходников гнать ссаной метлой. :)

ero-sennin ★★
()
Ответ на: комментарий от anonymous

> Явно указваем, что у нас такая переменная передается, а не выскакивает как черт из табакерки.

Когда ты пишешь тело метода и тебе нужно обратиться к атрибуту объекта, ты же не вспоминаешь судорожно: "Блин, а как же называется этот самый указатель на объект. А (хлопок по лбу) --- вот же оно (смотришь в шапку метода) --- self!. Ты просто пишешь self. И он всюду должен быть self(по договоренности).

Собственно, AFAIK, только в Питон и Луа такая заморочка. И то в Луа сахарок добавили, чтобы не передавать явно указатель на объект.

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

есть один неявный баг в том, что есть аргумент self. Допустим ты пишешь юзер левел словарь, который может получать аргументы в виде keywords хеша. Т.е.:

class NoNameDict: . def __init__(self, **kw): . self._d = kw

допустим потом вызываешь следующую фигню: nnd = NoNameDict(self=1, other=2, myown=3)

что в итоге должно получиться ? Я реально не могу предсказать

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

> Собственно, AFAIK, только в Питон и Луа такая заморочка.

Да никакая это не заморочка. TextMate знаешь? И в виме снипеты тоже есть. ;) И в емаксе. Это для тех, кого напрягает. Меня не напрягает. Так что, это не претензия к языку, а так - брюзжание.

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

> class NoNameDict: . def __init__(self, **kw)

Есть такое дело, но можно назвать этот параметр не self, а self_, например. :) Хотя я не могу сказать, что это красивое решение.

ero-sennin ★★
()
Ответ на: комментарий от anonymous

> что в итоге должно получиться ? Я реально не могу предсказать

ЛОЛ. Ты наркоман штоле? Выдасть эксепшн что дважды передан аргумет селф. Что ты этим хотел сказать-то?

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

> А почему? Explicit is better than implicit. Явно указваем, что у нас > такая переменная передается, а не выскакивает как черт из табакерки. К > тому же, это стирает разницу между методами и обычными функциями. > По-моему это отлично.

Да, отлично. Отлично, что Брьен Страуструп до этого же не додумался.

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

> Есть такое дело, но можно назвать этот параметр не self, а self_, например. :) Хотя я не могу сказать, что это красивое решение.

Так в чем проблема? Еще нельзя сделать так: NoNameDict(for=10). И что теперь? Тут наоборт преимущество явного селфа, поскольку если нужен self, можно сделать так: def __init__(my_fucking_self314444343242, **kw) и self в качестве аргумента будет успешно приниматься ;)

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

> Отлично, что Брьен Страуструп до этого же не додумался.

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

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

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

> ЛОЛ. Ты наркоман штоле? Выдасть эксепшн что дважды передан аргумет селф. Что ты этим хотел сказать-то?

Тебе та какая разница ? Ищешь с кем бы ширнуться ? Не зря де ЛОЛ - уже видимо..

То что эксцепшен, спасибо что сказал. Я то этот код не фига не выполнял оказывается. Я про то (специально для танкистов), что self - становится в ряде случаев ключевым словом. При этом юзер классы имеют дополнительные ограничения, по сравнению с CPython классами (они такого ограничения не имеют).

anonymous
()

Я вместо "self" пишу "s" ибо так гораздо короче получается когда идет код с большим кол-во манипулаций с членами класса.

class test: def test(s, args): ...

Не вижу никаких проблем в этом коде.

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