LINUX.ORG.RU
ФорумTalks

За что не любят Python?


3

3

Объясните, пожалуйста. Вроде, все при нем - скриптовый, однако есть возможность компиляции в бинарник, синтаксис невырвимозгий... За что его не любят?

Перемещено post-factum из development

★★

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

Мне не нравится то, что на нем клепают еще и десктопные приложения. Gajim, Terminator, еще что-то. Все тормозное, жручее УГ.

Как ни странно это жручее уг может дать фору ближайшим «не жручим» аналогам.

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

Увы, выбор сокращается.

Чего выбор сокращается?

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

Часто подумываю взять LLVM и написать чего-нить своё.

Не забудь потом новость о новом языке запилить...

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

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

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

Пиши код нормально и не будет никаких ошибок до рантайма.

То есть, у тебя в коде ошибок никогда не бывает, я тебя правильно понял?

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

Пиши код нормально и не будет никаких ошибок до рантайма.

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

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

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

Так то оно да, но кроме «ленивого Вани» больше никто ничего не написал из нормальных вышеперечисленных программ.

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

То есть, у тебя в коде ошибок никогда не бывает, я тебя правильно понял?

Бывают, но они очень быстро исправляются. И благодаря наглядности питона ошибки с типизацией как-то очень редко всплывают.

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

Бывают, но они очень быстро исправляются.

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

ПС. Я знаю о юнит-тестах. Но их писать - это тоже время. Зачем мне тратить время, чтоб писать код проверок, которые может транслятор и без меня сделать?

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

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

Уже понятно что еще мало у тебя опыта, так что не надо про «большие» софтины =)

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

В троллинге у тебя точно больше опыта чем у меня :)

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

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

Уже понятно что еще мало у тебя опыта

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

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

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

Только cpp-шники тратят на это много времени.

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

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

Только cpp-шники тратят на это много времени.

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

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

Очевидно, что строка

Фейл.

In [3]: c = httplib.HTTPConnection('linux.org.ru', 80)

In [7]: c.request('GET', '/')

In [8]: r = c.getresponse()

In [9]: r.status
Out[9]: 302

In [10]: type(r.status)
Out[10]: int
provaton ★★★★★
()
Ответ на: комментарий от Siado

О чем и речь... то, что кажется очевидным, не обязательно истинно.

tailgunner ★★★★★
()

За долбанутый синтаксис, за несовместимость, за динамическую типизацию, за тормознутость, за многословность

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

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

Не правда. К тому же не нужно забывать, что на крайний случай можно и на C «библиотеку» к питону написать ;)

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

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

Конечно, достоинства и недостатки у каждого подхода есть. Идеализировать питоновскую динамику не стоит.

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

Там все само по указателю передается.

In [1]: def foo(l):
   ...:     l.append('Hello, Eddy!')
   ...:     

In [2]: l = []

In [3]: foo(l)

In [4]: l
Out[4]: ['Hello, Eddy!']

In [5]: foo(l)

In [6]: l
Out[6]: ['Hello, Eddy!', 'Hello, Eddy!']
provaton ★★★★★
()
Ответ на: комментарий от Eddy_Em

ИМХО, было бы даже лучше копию передавать. Вон сверху анонимус жаловался на текучие абстракции. Но в условиях императивного языка такое нормально не реализуешь.

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

Никто не говорит, что статика отловит абсолютно все ошибки. Равно как никто и не утверждает, что динамика абсолютно всегда будет падать.

provaton ★★★★★
()

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

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

в чём может возникнуть тут ошибка? И почему у тебя нет возможности посмотреть тип средствами языка?

Ошибка в чем? Допустим я - Siado, и я хочу проверить, что реквест удался. Пишу, r.status == '200'. Получаю даже не рантаймовую ошибку (эксепшн), а просто неверный код. То есть, реквест отработал нормально, а код считает, что нет.

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

provaton ★★★★★
()
Последнее исправление: provaton (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.