LINUX.ORG.RU

Python — не Java


0

0

Филип Эбу (Philipp Ebu) анализирует принципиальные отличия двух языков
програмимрования на примере GUI-приложения, написанного на wxPython
разработчиками, прежде работавшими в основном с Java.

"Просмотрев код, я обнаружил что они сделали множество вещей, которые
имеют смысл в Java, но абсолютно не подходят для Python. Не потому что
Python медленнее чем Java, а потому что существуют намного более простые
способы достижения тех же целей. К сожалению, эти ребята тяжело работали
чтобы написать намного более объемный код, чем можно было бы, который
к тому же работает значительно медленнее по сравнению с идеологически
верным подходом"

Вот несколько примеров некорректного переноса популярных идиом java:

- статическим методам соответствуют не методы класса, а функции класса
- эффектифным аналогом конструкции switch является хеш (dict), а не цепочка if/elif
- в python нет нужды прибегать к использованию XML, кроме как для внешнего взаимодействия
- за очень редким исключением, многократного повторения части кода с незначительными
вариациями можно легко избежать, без потерь производительности.

>>> Python Is Not Java

★★★

Проверено: Demetrio ()

>- статическим методам соответствуют не методы класса, а функции класса

Ты описАлся или сам не понял что сказал?

eRazor ★★★
()

>- статическим методам соответствуют не методы класса, а функции класса статическим методам соответствуют не методы класса, а функции модуля

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

статическим методам соответствуют не методы класса, а функции модуля

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

спасибо за поправку, конечно же тут имеются в виду функции модуля

> The idiomatic translation of a Java static method is usually a module-level function, not a classmethod or staticmethod.

Bsd-un ★★★
() автор топика

> - в python нет нужды прибегать к использованию XML, кроме как для > внешнего взаимодействия

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

Да-да-да! Это только в уроЦЦкой жаве всюду где надо и где не надо суют XML, ни одного диалога, ни одного SQL запроса не выполнить не споткнувшись об XML! Да что там, наверняка Collections.sort внутре себя все сначала в XML переводит а потом только сортирует!

И многократное повторение тоже -- это ведь только у жава разработчиков настолько хорошо работают клавиши Ctrl+C Ctrl+V, что им доставляет райское наслаждение клонировать код и в паре мест его менять. Чуть только разработчик меняет жабу на питон, так сразу и не узнать человека: классы, наследования там всякие туда-сюда..

Xop_AnonumycoB
()

Странный парень. Не очень много знает про Джаву, про XML и про современные достижения науки и техники вообще. Зато наверняка встречался с нехорошими Джава-программистами и они, по всей видимости, сильно его обижали. Ну да ладно, каждый кулик своего питона хвалит.

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

> Linux, Java, XML! Linux, Java, XML! Linux, Java, XML!

А знаеш что нарвится всем на свете? Зефир! Вот ни разу такого не было, чтобы когото встретил и спросил: "Э, давайка поедим зефира". А они чтобы ответили: "Нам не нравится зефир". Зефир очень вкусный. (с) Шрек в переводе Гоблина.

Предлагаю заместо "зефира" вставит свою любимую технологию и успокоится. Я вставляю Perl!!! Потомучто он не как Жаба. У него нет слоев. Он ничего не прячет в рукавах.




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

Гоблин, как и проститутка Экслер стали пидарасами. Там осел _явно_ говорит cake, то есть "пирог". Не, можно и в "Алисе в стране чудес" заменить ее на "Аню", как сделал... дай Бог памяти... хз, не помню, но в общем, это переводческая педерастия.

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

Ну и придумай лозунг со словом "perl". Спорим, что у тебя ничего не получится.

А "Linux, Java, XML" - лозуг громкий, красивый и понятный даже ребенку-менедеру. С его помошью можно властвовать над любыми тварями, побеждать непобедимые армии, обращаться в рыбу и птицу ... и т.д. ((c) - Bored of the Rings, русский перевод)

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

>> Гоблин, как и проститутка Экслер стали пидарасами.
>> Там осел _явно_ говорит cake, то есть "пирог"

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

You know what else everybody likes? Parfaits.

О пирогах речь идет до этого. До зефира.

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

Java --- медленно умирающий бейсик нашего времени
мне кажется что времена Java прошли быстро но очень громко :)

Python --- это язык, который будет играть огромную роль во всех сферах программинга, своего рода C++ нашего времени

вот тут сравнение:
http://www.livejournal.com/users/vadim_kataev

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

parfait n. 1 a rich iced pudding of whipped cream, eggs, etc. 2 layers of ice-cream, meringue, etc., served in a tall glass. Etymology: F parfait PERFECT adj.

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

>> Python --- это язык, который будет играть огромную роль во всех сферах программинга, своего рода C++ нашего времени

а позвольте поинтересоваться, когда он начнет это делать? а то я о многих языках такие же утверждения слышал (а на некоторых из них даже немножко писал), да только юная поросль о них наверное ни разу и не слышала (prolog, forth, ada, smalltalk). а какое будущее их апологеты рисовали - просто рай на земле :))

пока что все эти разговоры мне напоминают мои собственные с друзьями три-четыре года назад (- perl конечно круто, но как-то слишком приземленно, может соскочить на python-zope или еще куда? неплохая мысль, давай попробуем. спустя какое-то время - да ну ее нафиг, эту экзотику... проку никакого, кроме убытков)

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

зефир III ( род пастилы ) marsh(-)mallow

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

продолжу свою мысль

если посмотреть на развитие IT (от компов лучше не отходить, и так примеров полно) народ много раз пытались осчастливить разными способами. один из немногих подарков, пришедшихся ко двору - java (не будем вспоминать какие усилия для этого sun прикладывало на протяжении скольки лет). а все самые успешные появляются как сорняк, побочный продукт и добиваются успехов не благодаря, а вопреки (архетектура pc, perl, linux), только из-за того что людям реально нехватает чего-то. жалко конечно что обычно в силу своего не благородного происхождения кривы как моя жизнь. но лучше уж я буду пользоваться кривыми поделками, которые оказались в нужном месте в нужное время, чем ждать от высоколобых товарищей очередного сферического коня в вакууме

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

>и добиваются успехов не благодаря, а вопреки (архетектура pc, perl, linux)

И какие же задачи линух уже решил? Кроме того, что за компоновку и раздачу дистров RedHat и Mandrake рубят некисло бобосы?

anonymous
()

Мне понравилось вот это насчет зумля:

"If in doubt, explain your use case for XML to an experienced Python developer. Or, if you have a thick skin and don't mind being laughed at, try explaining to a Lisp programmer why your application needs XML!)"

Надо будет поинтересоваться у Луговского, что он думает об XML =)

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

> И какие же задачи линух уже решил?

Благодаря ему появился новый (доселе не существовавший и не могущий существовать) вид обезъяны - красноглазый бздун, отрицающий объективную реальность.

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

>> И какие же задачи линух уже решил? Кроме того, что за компоновку и раздачу дистров RedHat и Mandrake рубят некисло бобосы?

кое-какие уже решил. если вы достаточно тупы чтобы не замечать этого я могу подсказать. конкретно для меня - unix-like система на моих компах и серверах. для большого числа любителей - открытые для правки исходники рабочей системы. для массы контор среднего уровня - возможность заработать за счет создания прибавочной стоимости (адаптация например), для сверхкрупных игроков уровня IBM - возможность консолидировать (в переспективе) рынок unix-серверов и дополнительный способ уменьшить цену своих железяк за счет возможности раздавать программы бесплатно (было бы желание).

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

>конкретно для меня - unix-like система на моих компах и серверах.

Дешевле было бы для твоего работодателя поставить Windows-like систему и на компы и на сервера.

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

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

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

HellAngel ★★
()

Странное дело, вроде все хвалят Питона, а что толку то? Все равно Java все больше и больше распространяется - вон 1.5 уже вместе с Netbeans IDE можно скачивать, не говоря уже о IDEA.

Где его место? web - php/perl кросплатформенность+GUI - java быстродействие - С/С++

где его место? так для баловства..

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

> Где его место ?

1.В ComputerScience (исследования ИИ)
2.В интернете (Yahoo, Google используют в основном питона, ещё сиплюсу маленько)
3.В школах (сейчас его тока на матфаках начали преподовать но в штатах в некот школах проводят уже эксперименты - весьма удачно).

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

> 1.В ComputerScience (исследования ИИ)
а давай ты не будешь пиздить о том чего не знаешь? в CS юзают все подряд, и питон далеко там не главный

> 2.В интернете (Yahoo, Google используют в основном питона, ещё сиплюсу маленько)
"google uses python" -- популярная кричалка, но не более того. в инете используется все, от лиспа до хаскеля.

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

а правильный ответ такой: место питона -- программирование логики в любом
грамотно спроектированном приложении, авторы которого не боятся совмещать разные ЯП.
Это могут быть компьютерные игры, прикладные программы, какой угодно GUI.
И пользователю в большинстве случаев до пизды что там внутри -- питон или что-то еще.

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

> Не, можно и в "Алисе в стране чудес" заменить ее на "Аню", как сделал... дай Бог памяти... хз, не помню, но в общем, это переводческая педерастия.

Это был Набоков. Ай, Моська, знать ты сильна...

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

Все новые языки после 1995 года придуманы и развиваются исключительно из-за невежества их разработчиков. Зачем нужно что-то ещё, если есть TCL/Tk и C++?

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

> Зачем нужно что-то ещё, если есть TCL/Tk и C++?

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

ugly-ugly-fucker
()
Ответ на: комментарий от ugly-ugly-fucker

>> ну вот если тебе чего больше не нужно мог бы и умереть с чувством выполненного долга в 95 году. а другие продолжат двигаться к светлому будущему

Я не могу умереть. Я Хранитель Технологии. Когда другие поймут, что шли не туда, они вернутся назад и их должен будет кто-то встретить. :)

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

> Я не могу умереть. Я Хранитель Технологии. Когда другие поймут, что шли не туда, они вернутся назад и их должен будет кто-то встретить. :)

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

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

Ну и что такого есть в питоне, чего нет в TCL/Tk? Например, нормальная поддержка многозадачности есть?

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

> Все новые языки после 1995 года придуманы и развиваются исключительно из-за невежества их разработчиков. Зачем нужно что-то ещё, если есть TCL/Tk и C++?

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

amm
()
Ответ на: комментарий от ugly-ugly-fucker

> тицеэльтикатлем давно занято место на свалке истории и на кладбище мертворожденных технологий

Что там делать языку, который скоро разменяет третий десяток, и при этом остается современным языком?

amm
()

Java, конечно, говно, а работа со строками в \J\a\v\a это вообще 3ю14здец, но хотя API для работы с базами унифицирован, а не куча примочек.

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

> Что там делать языку, который скоро разменяет третий десяток, и при этом остается современным языком?

дожидаться когда последние программисты на нем выйдут на пенсию

ugly-ugly-fucker
()
Ответ на: комментарий от HellAngel

>давайте вы не будете говорить что мне надо делать и тогда может быть не узнаете куда вам надо пойти с советами? ;))

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

Короче, цирк. Ты похож на каково-то грё6#утого Лёню да Винчи, который всем предлагал летать с помощью деревянных крыльев, типа легкие, удобные, можно с собой таскать. А все наплевали на него и летают на тяжеленных (тяжелее воздуха) железных грязных вонючих самолетах. Потому, что это _выгодно и удобно и быстро_. Так же все поставят себе Windows Server 2005 и на клиентов Longhorn с встроенной поддержкой XML везде-где-только-можно и наплюют на линухоидов, ковыряющихся непонятно зачем в командной строке, сочиняющих какие-то кривые S-выражения, да еще и вымогающих на эту деятельность бабки у работодателя.

Это все равно, что работодатель нанимал бы себе шоферов, чтобы «Волгу» водить, а они бы канючили «Дай лучше нам бабок, мы в гараже круче волги машинку соберем, когда-нибудь, лет через 5, зато в ней будет 16 дверей (ну и хy# с ним, что они не нужны директору) и гонять будет быстрее Порше. А когда ты нас уволишь, мы ее заберем с собой, потому что все равно никто другой не знает, как ее водить и куда ключ зажигания вставляется»

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

о да, великий анонимус!!! ты все знаешь!!! ты круче гор!!! :))))
для начала - я никому ничего не предлагаю. мне так удобно, а что и как работает на машинах нормального работодателя меньше всего еб^H^Hчешет - за тем деньги и платят. про свои машины - я имел ввиду домашнюю технику, так что расслабься
а крики "вот выйдет винникс на ядре лонгхона" мы слышим уже не первый год... 2003 сервер так плох что начали ждать 2005? :))
кстати, что принципиально нового появилось у win2k3 по сравнению с win2k? деньги за что плочены?

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

Сто раз говорил, что я думаю об этом дебилизме.

На фига было изобретать ещё раз S-выражения, да ещё в такой уродской форме?

К счастью, у нас есть SXML.

А по поводу темы: ничего удивительного. Раньше говорили, что программу на Фортране можно написать на любом языке. Теперь то же можно сказать и про Жабу. Появилось поколение недоумков, которые не способны мыслить ни в каких иных категориях, кроме примитивных Жабских...

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

Ухи оборвать за такую унификацию. Когда в одной версии жыдобыц-драйвера для поля INTEGER возвращается int, а в другой - java.math.BigDecimal (УРОДЫ!) - то это похлебень из под ногтей, а не унификация.

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

жаба это обычный бейсик нашего времени.
жаба сосёт у питона по всем параметрам

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

>2VM
>Java --- медленно умирающий бейсик нашего времени
>мне кажется что времена Java прошли быстро но очень громко :)

Совершенно не согласен.
Есть по-крайней мере две области применения где java сегодня объективно лучше:
-WEB development(про Zope не надо мне рассказывать я его в гробу видал)
- Клиент-серверные приложения
И в обоих этих областях java предлагает законченный wramework.

К сожалению python пока классический язык программирования-
GUI отдельно - DB interface-отдельно.
Для многих задач этого достаточно,
но самый большой рынок сегодня -это корпоративный кодинг и здесь
python продвигать можно как второй или embedded язык.





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

>На фига было изобретать ещё раз S-выражения, да ещё в такой уродской форме?

XML - потомок SGML шоб ты знал, к S-выражениям никакого отношения он не имеет!!!

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

> Раньше говорили, что программу на Фортране можно написать на любом языке

Эээ... мало ли, чего говорили

Числодробилки до сих пор на фортране наиболее удобно писать. И код на удивление быстрый получается.

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

> Ну и что такого есть в питоне, чего нет в TCL/Tk?

Например, полноценного ООП, first-class функций, и в целом вразумительного синтаксиса. Хотя вообще тикль неплох, но он местами слишком высокоуровневый и "скриптовый".

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

Нити есть. Чего тебе еще?

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