LINUX.ORG.RU

Часть 3. Программирование метаклассов в Python


0

0

В этой статье мы займем безжалостную позицию: мы считаем злоупотреблением метаклассами любое их использование для решения проблемы, которая может быть решена без использования собственных метаклассов. Одним из наиболее распространенных сценариев метапрограммирования является создание классов с динамически формируемыми атрибутами и методами. Вопреки популярному заблуждению, в таких ситуациях в большинстве случаев вам не требуется использовать собственные метаклассы. Эта статья предназначена для двух групп читателей: рядовых программистов, которым было бы полезно знать приемы метапрограммирования, но их останавливают крайне сложные понятия; и умных программистов, которые слишком умны и должны были бы знать больше. Проблема с последними состоит в том, что умным быть очень просто, а для того, чтобы научиться быть проще, требуется много времени.

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

Очередная бесполезная статья!

fdn
()

> Проблема с последними состоит в том, что умным быть очень просто, а для того, чтобы научиться быть проще, требуется много времени.

%) да господа литераторы!

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

>А вообще кто что скажет по поводу питона? чем оно примечательно?

Минимальный и читабильный код, богатые библиотеки, кроссплатформеность.

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

>А вообще кто что скажет по поводу питона? чем оно примечательно?
Python когда-то использовался в Google, на нем написаны web based code review/bug issue tracking системы в Google. Написаны плохо, до jira как до пикиная сами знаете каким способом)

Теперь Google пишет свои проектны на java.

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

> А вообще кто что скажет по поводу питона? чем оно примечательно?

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

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

> Написаны плохо, до jira как до пикиная сами знаете каким способом)

Работаешь в Гугле?

> Теперь Google пишет свои проектны на java.

ЕМНИП, они всегда говорили, что используют Си++, Яву и Питон.

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

Питон у них для внутренних проектов, как и в тындексе.

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

нормальный язык. не слушай всякий специалистов. наса не гнушается им пользоваться а это наверное что-то значит.

а вообще мне понравился тем, что я написал код и он завелся везде, даже на телефоне с симбианом. и при этом язык очень простой.

все это имхо конечно.

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

> А вообще кто что скажет по поводу питона? чем оно примечательно

Питон примечателеньно как язык программирования.

sv75 ★★★★★
()

Питон отличный язык. ООП это казнь эстетического начала в программировании. Вот и получаются такие статьи как эта. Прошу не делать никаких выводов по питону на основании материала изложенного выше.

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

> А вообще кто что скажет по поводу питона? чем оно примечательно?

Тем что я его везде использую: сетевые программы, базы данных, Web, XML, скрипты автоматизации, тесты, мелкие скрипты. Нравится как язык, богат библиотекам, нужная мне кроссплатформенность. Отлично тестируется, отладка без проблем. Практически на всех Linux-ах по умолчанию установлен, поддержка во многих программах. При необходимости принудительное компилирование, успользование ускорителей (к в YouTube, например). Python - мой фаворит даже при хорошем знании Java, .NET, PHP, VB и др.

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

> Тем что я его везде использую: сетевые программы, базы данных,

А генератора отчетов до сих пор нет.

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

> А вообще кто что скажет по поводу питона? чем оно примечательно?

Много уже сказали, но забыли упомянуть мультипарадигменность.

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

> А вообще кто что скажет по поводу питона? чем оно примечательно?

Я писал только скрипты не больше чем на несколько сотен строк. Стандартная библиотека правильная - типа большой коробки, где есть перделки, свистелки и костыли всех нужных форм и калибров. В общем приятно, быстро (в смысле писать быстро, работает не очень быстро) и удобно.

<flame> В отличие от самизнаетекого, который а) синтаксически омерзителен и б) по сути дела представляет собой безобразно разжиревший awk. </flame>

anonymous
()

Уважаемые господа из IBM EE/A! Совет Вам - продавайте вашу веб-сферу, самые тяжелые в мире ноутбуки и системные блоки от "Леново", а также майнфреймы весом с ЭНИАК. :) Про то, как и-бе-ме продавала свою систему с "метаклассами" - VAST - знают все. И до сих пор смеются. Равно как смеются над "полумухом", "талигджентом", "опендоком" и прочими проигравшими рынок поделиями, что хорошо излагается в известной книге Б.Тэйта. :))

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

> Python - мой фаворит даже при хорошем знании Java, .NET, PHP, VB и др.

Да Вы таки просто полиглот!:) Типа полиглот-теоретик.

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

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

> Ежели я буду вместо конкретного "жабабыдлокодинга" изучать кучу язычков, то меня просто попрут с работы.

А... так ты кроме Явы ничего не знаешь? "Это многое объясняет" (c).

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

>Python когда-то использовался в Google, на нем написаны web based 
cde review/bug issue tracking системы в Google.


http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm

<quote>

The Google build system is written in python.  All of Google's 
corporate code is checked into a repository and the dependency and 
building of this code is managed by python.  Greg mentioned that to 
create code.google.com took about 100 lines of python code.  But 
since it has so many dependencies, the build system generated a 3 
megabyte makefile for it!

Packaging.  Google has an internal packaging format like RPM.  These 
packages are created using python.

Binary Data Pusher.  This is the area where Alex Martelli is working, 
on optimizing pushing bits between thousands of servers

Production servers.  All monitoring, restarting and data collection 
functionality is done with python

Reporting.  Logs are analyzed and reports are generated using Python.

A few services including code.google.com and google groups.  Most 
other front ends are in C++ (google.com) and Java (gmail).  All web 
services are built on top of a highly optimizing http server wrapped 
with SWIG.


</quote>


"Python has been an important part of Google since the beginning, and 
remains so as the system grows and evolves. Today dozens of Google 
engineers use Python, and we're looking for more people with skills 
in this language." said Peter Norvig, director of search quality at 
Google, Inc.


>на нем написаны web based code review/bug issue tracking системы в Google. Написаны плохо, до jira как до пикиная сами знаете каким способом)


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


>Теперь Google пишет свои проектны на java.


нет. теперь гугл делает проекты и на жабА тоже. 

<quote>
Internally Google people use many technologies including PHP, C#, 
Ruby and Perl
</quote>

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

>Про то, как и-бе-ме продавала свою систему с "метаклассами" - VAST

VAST это smalltalk, а в любом smalltalk-е есть метаклассы, а не "метаклассы". и VAST к стати был весьма неплох, а smalltalk на порядок - нет - бесконечно лучше говоязыка под названием жабА, точно так же как первая OS/2 была на порядок лучше говно Win95.

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

>Да Вы таки просто полиглот!:) Типа полиглот-теоретик.

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

>Ежели я буду вместо конкретного "жабабыдлокодинга"

очевидно к быдлокодерам это не относится.

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

>>Ежели я буду вместо конкретного "жабабыдлокодинга" изучать кучу язычков, то меня просто попрут с работы. Компаниям нужна конкретная прибыль, а не понты всезнайства.

Ну шуруп кувалдой "вкрутить" еще куда ни шло. Но чтоб отверткой гвозди забивать - на такое только "программисты" способны.

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

> к стати был весьма неплох

Опа-на! А как же поддержка трэдов?

> первая OS/2 была на порядок лучше

Ню-ню! А как же с десериализацией очереди ввода-вывода и HPFS в котором можно было удалить своппер? Знатоки, однако на ЛОРе! :) Типа теоретики.

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

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

Ну, чего мне-таки повторять банальность "If you're so clever show me your money" (c) :)))))

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

> HPFS в котором можно было удалить своппер

В какой версии полуоси была такая фича? Второй раз за последнее время слышу о ней на ЛОР, н ни разу ей не пользовался в 3.0 и 4.0.

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

> Ну, чего мне-таки повторять банальность "If you're so clever show me your money" (c) :)))))

Хорошо что хоть в США с этой опошленной кальвинистской х%йней не все согласны, а то не видать нам бы тогда ни TCP/IP, ни Unix, ни FSF... :-/

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

> Ежели я буду вместо конкретного "жабабыдлокодинга" изучать кучу язычков, то меня просто попрут с работы.

Мое сочувствие еще раз. Кстати, еще не надоело быть негром, пусть и за 100тр? (полагаю, я порядок правильно угадал)

> Компаниям нужна конкретная прибыль, а не понты всезнайства.

Стать консультантом ^_^

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

> что хорошо излагается в известной книге Б.Тэйта. :))

А в какой именно? (Кстати, разве это не вы Тэйта не любили за Beyond Java?)

PS Ноутбуки Леново по весу нормальные.

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

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

import reportlab

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

> import reportlab

Тогда лучше ТеХ pyExcelerator. Генератор отчетов это что-то типа FASTREPORT.

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