LINUX.ORG.RU

Хочу холивар PyCharm vs PyDev(eclipse)

 , , ,


0

1

Сижу сравниваю эти две IDE. По итогам сравнения выбранная IDE будет установлена в компьютерные классы.

Стоимость лицензий бесплатна в обоих случаях:

Eclipse/PyDev, PyCharm community - опенсурс;

PyCharm professional - бесплатная для учебных учреждений.

Остается решить вопрос функциональности:

Сразу бросается в глаза, что в PyDev из коробки автодополнение идет в комплекте с всплывающей документацией по классам/функциям, в том числе и собсвтенным, в PyCharm такого не обнаружено.

А вот открыть существующий проект (сразу всю директорию) гораздо интуитивнее и логичнее в PyCharm, нежели в Eclipse.

Внешний вид страшен у обоих, но в PyCharm по приятнее

Какие знаете слабые/сильные стороны у этих продуктов?

★★★★★

Последнее исправление: Siado (всего исправлений: 1)
Ответ на: комментарий от lazyklimm

про лямбды всё-таки посерьёзнее претензия

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

Делаем ограниченное NIH с упоротым синтаксисом (бугага!!11)

Это у Python упоротый синтаксис? O_o

Делаем ограниченное NIH с упоротым синтаксисом (бугага!!11), говорим, что если каких-то возможностей(которые уже существуют в других языках) там нет - не нужно, а через 10-20-30 лет начинаем потихоньку эти возможности тащить.

Но в результате имеем единственный опенсорсный продукт, который можно назвать платформой - очевидно, что ограниченные ресурсы были потрачены разумно (сравни с всеми Лиспами). И кстати, какие такие продвинутые возможности из других языков Python не позаимствовал в 1992?

Так что Гвидо сделал правильно если и не всё, то очень многое. Собственно, единственный серьезный косяк в проектировании языка, который ему можно предъявить - то, что Python statement-oriented вместо expression-oriented.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Это у Python упоротый синтаксис? O_o

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

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

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

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

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

Т.е. если программист не знает, когда в его коде должно закончится тело цикла/функции/etc, то Python не для него? Или есть еще проблемы?

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

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

Да на python вообще кодить не смертельно, более того, при прочих равных из прочих мейнстримных языков (допустим, первая пятерка или даже десятка на tiobe) я выберу скорее всего именно его. Но пичальки это не отменяет.

Это у Python упоротый синтаксис? O_o

Ну, отступы, кстати, довольно сильно напрягают. У объектов какие-то методы через точку(попробуй, кстати, запили композицию таких, да), какие-то функционально - единообразие? Не, не слышали. В целом - хз, я последний раз что-то на нём делал 2.5 года назад, уже подзабылось (но неприятный осадок остался, лол).

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

вот какой-нибудь JVM - это платформа

сравни с всеми Лиспами

увы, увы

И кстати, какие такие продвинутые возможности из других языков Python не позаимствовал в 1992?

Я не настолько прошарен в истории тех давно минувших дней, так что позволю себе процитировать википедию

Python reached version 1.0 in January 1994. The major new features included in this release were the functional programming tools lambda, map, filter and reduce. Van Rossum stated that «Python acquired lambda, reduce(), filter() and map(), courtesy of a Lisp hacker who missed them and submitted working patches»

ну и по всему остальному там тоже видно...

Так что Гвидо сделал правильно если и не всё, то очень многое.

Ну, как минимум он сделал язык, на котором смогли и захотели писать массы (РасмусЛердорф.жпг) и удачно его пропиарил/спозиционировал.

В любом случае, я категорически не понимаю его популярности.

Собственно, единственный серьезный косяк в проектировании языка, который ему можно предъявить - то, что Python statement-oriented вместо expression-oriented.

это вот, да

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

Т.е. если программист не знает,

Лол, почему не знает? Я просто не хочу думать над отступом каждой строчки. И если при написании оно ещё как-то несложно, то при любом более-менее серьёзном рефакторинге - пичаль-бида. В другом языке я ставлю курсор за закрывающую скобку или просто выделяю текст, даю команду на выравнивание - и у меня красивый, работающий код.

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

Я просто не хочу думать над отступом каждой строчки.

А я не хочу засирать код лишними скобками, или, еще хуже, begin...end'ами. И каких-то проблем с отступами у меня почему-то ни разу не было.

templarrr ★★★★★
()
Последнее исправление: templarrr (всего исправлений: 1)
Ответ на: комментарий от lazyklimm

В другом языке я ставлю курсор за закрывающую скобку или просто выделяю текст, даю команду на выравнивание - и у меня красивый, работающий код.

А в питоне красивый, работающий код по умолчанию, даже нажимать никуда не надо.

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

У объектов какие-то методы через точку(попробуй, кстати, запили композицию таких, да)

А можно подробнее - какую композицию не запилишь?

вот какой-нибудь JVM - это платформа

Конечно. А из всего Ъ-опенсорсного Python - ближе всего.

ну и по всему остальному там тоже видно...

Там видно одно - ресурсов не хватало. А легко используемой системы опциональной статической типизации и сейчас нет.

В любом случае, я категорически не понимаю его популярности.

Людям нужна платформа - язык, библиотеки, CPAN^WPyPI и всё это стабильное. Perl мог стать такой платформой, но Ларри захотел Perl6.

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

А можно подробнее - какую композицию не запилишь

композицию любых методов без явного указания аргументов

ну т.е. что-то вроде compose(foo, bar) не получится, например

Там видно одно - ресурсов не хватало

Людям нужна платформа - язык, библиотеки, CPAN^WPyPI и всё это стабильное.

Эээм, ну т.е. писать под платформу людей хватает, а развивать платформу - нет.

(тут кстати, опять же, в голову приходят лиспы)

Perl мог стать такой платформой, но Ларри захотел Perl6.

лучше уж Python

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

композицию любых методов без явного указания аргументов
ну т.е. что-то вроде compose(foo, bar) не получится, например

Я, наверное, что-то не так понимаю, но:

class A:
   def __init__(self): self.zz = "zz"
   def foo(self): print self.zz, 1
   def bar(self): print self.zz, 2

def compose(l):
   def do_it_on(o):
     for fn in l:
       fn(o)
   return do_it_on

composed = compose([A.foo, A.bar])
a = A()
composed(a)
1
2

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

Я бы на месте Гвидо сделал что-либо, отличное от четырёх пробелов в отступе, синтаксической ошибкой.

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

Там должно быть:

zz 1
zz 2

Неправильно скопипастил :/

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

вот гляди, у нас есть две функции:

foo(obj, argv)

bar(fooresult) # можно было бы добавить еще аргументов, но, насколько я знаю, в Py с частичным применением тоже не самая радужная ситуация

# в таком случае композиция функций могла бы делаться чем-то типа:

compose(foo, bar)

# результатом бы имели готовую функцию типа (Obj, argv) ->Barresult, с которой можем делать всё, что угодно.

А теперь у нас есть:

Obj1.foo(argv), который возвращает Fooresult, у которого, в свою очередь, есть метод Fooresult.bar().

Как мне _просто_(и без оборачивания в lambda x,y: x.foo(y)) получить результат аналогичный предыдущему?

lazyklimm ★★★★★
()

Саблайм + кучка аппов для питона.

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

Как мне _просто_(и без оборачивания в lambda x,y: x.foo(y)) получить результат аналогичный предыдущему?

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

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

вообще-то

obj.foo(argv).bar(fooresult)

но нет, потому что на момент формирования композиции у тебя значений аргументов нетути

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

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

да я-то напишу, не вопрос, другое дело, что вместо compose(foo, bar) мне приходится пилить кучу писанины.

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

А что еще нужно?

вариант с правой ассоциативностью, например

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

Расскажи о своем опыте обучения студентов c IDE и без IDE.

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

Я просто не хочу думать над отступом каждой строчки

Это норма. Много дурачков об это думать не хотят.

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

по каменту подумал, что это анон развлекается, ан нет.

Оке, перенесите мне кусок кода из файла в файл и сделайте отступы автоматом, мусьё Д'Артаньян.

lazyklimm ★★★★★
()

В класс поставь лучше ipython и пускай его в режиме notebook. Идеально для обучения я считаю.

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

Expression-oriented - подразумевается функции как объекты?

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

перенесите мне кусок кода из файла в файл и сделайте отступы автоматом

Ты не знаешь, зачем нужно ctrl+c, ctrl+v? Или что ты вообще сказать-то хотел?

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

лал, уровень индентации и контекст могут быть совершенно иными

Это потому что ты долбоеб

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