Форум сайта python.su
Забавная статья о Python и не только
http://www.artima.com/weblogs/viewpost.jsp?thread=214112
Офлайн
1) Да, народ боится Питона 3К, но -
Bruce Eckel- это самая веская причина рефакторинга/реорганизации ядра языка.
I know that true concurrency support – the ability to run pieces of a program on multiple processors – is hard in a dynamic language. Although they both have threads, neither Python nor Ruby is able to actually allocate those threads to multiple processors. The threading is just for code organization and to handle blocking operations. Ruby and Python are prevented from using multiple cores because they both suffer from the global interpreter lock problem.
But right now we are on the brink of a huge potential gain for dynamic languages, with the advent of multi-core systems. Here's the place where the performance impact of dynamic languages, so often used as an excuse to avoid them, could be erased. Multicores could be what brings dynamic languages into their heyday, and could relegate languages like Java and C++ as “what you use for writing small pieces of your application, only if you absolutely must.”
Bruce EckelВот именно. А сейчас Яйца неочевидны. Незнаю, может быть я один их терпеть не могу, но они должны стать лучше. И ведь надо привыкать - вон, Zope 3 вот-вот весь пересядет на яйца. За ним и другие последуют.
I'm hoping that this is just an issue of “waiting for maturity,” but we need to make support for Python Eggs and Easyinstall part of the python distribution. Easy installation and update of library components should not require effort or be a distraction.
Benjamin Peterson:lol: :lol: :lol:
Well, as Guido said in his preface to Python Programming (Lutz), he's not going to get everything right in Python 3000 so there's always Python 4000…
Luciano Romalho7) Еще по поводу IDE:
About self:
Unlike Ruby, Python does not want to be a “pure” OO language (whatever that means). Python is a multi-paradigm or paradigm-agnostic language, and that is something that many of us like about it. The explicit use of self makes the OO and the functional styles work well together.
Офлайн
Яйца для меня - это в первую голову зависимости между пакетами и хорошие средства их интроспекции. Самая большая проблема, кажется - отсутствие толковых описаний на самом PEAK.
GIL если и уберут, то нескоро. GvR жалуется, что навешивание блокировок тормозит выполнение на 10% (вроде как была такая экспериментальная ветка). Жаль, конечно. Мультиядерность сейчас набирает обороты.
По поводу self уже писал здесь.
DSL - просто.
>>> from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
>>> metadata = MetaData()
>>> users_table = Table('users', metadata,
… Column('id', Integer, primary_key=True),
… Column('name', String(40)),
… Column('fullname', String(100)),
… Column('password', String(15))
… )
>>> addresses = Table('addresses', metadata,
… Column('id', Integer, primary_key=True),
… Column('user_id', None, ForeignKey('users.id')),
… Column('email_address', String(50), nullable=False)
… )
>>> from sqlalchemy.sql import and_, or_, not_
>>> print and_(users.c.name.like('j%'), users.c.id==addresses.c.user_id,
… or_(addresses.c.email_address=='wendy@aol.com', addresses.c.email_address=='jack@yahoo.com'),
… not_(users.c.id>5))
users.name LIKE :users_name AND users.id = addresses.user_id AND
(addresses.email_address = :addresses_email_address OR addresses.email_address = :addresses_email_address_1)
AND users.id <= :users_id
или вот:
T.html[
T.body[
T.h1,
T.p],
T.p[
‘I have child too: ’,
T.a(id=“child”, href=url.here.child('childOfChild'))
],
]
]
Скорее всего вы видели такой код не раз, только не знали, что это - DSL.
Еще - статья
IDE. Хмм… Долгое время искал САМУЮ ЛУЧШУЮ IDE. Сейчас хватает хорошо настроенного текстового редактора.
Но - штука, безусловно, завлекательная. Особенно для новичков.
Отредактировано (Сен. 20, 2007 00:52:35)
Офлайн
Андрей Светлов, спасибо за разьяснение по поводу DSL.
Насчет IDE - я в первую очередь имею ввиду тот момент, что корпорации, вкладывающие деньги в раскошные IDE, потом не меньшие деньги вкладывают в раскрутку / рекламу соответствующих технологий. Что мы и наблюдаем на примере Java.
Офлайн
Я читал что интерпритатор стал медленее где то в два раза когда убрали GIL ( фак Py3k с ответом на вопрос о GIL), но не суть, если бы Гвидо убрал GIL, тем кому важна скорость могли бы пользоваться серией 2.x. Но похоже придеться ждать еще 8 лет, грустно блин.
Офлайн
DSL не ограничиваеться созданием мини-языков под конкретную задачу, с помощью него можно расширять синтаксис самого языка, пример:
t = &switch val ,
1: 'one',
2: 'two',
3: 'three',
:val > 3: 'too big num',
:val < 1: 'too small num'
Отредактировано (Сен. 21, 2007 04:31:05)
Офлайн
Cleric
External DSL куда менее интересны и к Py3k не имеют никакого отношения, как бы Питон ни развивался.
Офлайн
Андрей Светлов, возможно вы меня не правильно поняли, я не говорил о DSL в Py3k.
Насчет того что External DSL не интересны, посмотрите хотя бы на TCL.
Офлайн