Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 5, 2009 13:56:17

Gradient
От:
Зарегистрирован: 2009-06-03
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Куда катится питон?

Может, уже где обсуждалось, я ж не читатель :-)
Сразу скажу, что вообще питон мне всё-таки нравится, но некоторые вещи кажутся мне очень странными.

Область видимости переменных. Почему просто было не сделать “снизу вверх”, как в “обычных” языках? Частая глобальная переменная - в каждой функции пиши global. Или передавай её как параметер. Зачем эти сложности на пустом месте?

Почему бы не сделать вложенных функций? Я не имею в виду lambda, я имею в виду функции строк на 10 с нормальной логикой, несколькими return, и доступом к переменным вышележащей функции.

Зачем при написании метода класса всегда указывать self? Понятно, что “объектная ориентированность реализована так”, но код-то зачем этим забивать? В “других языках” интерпретатор с таким отлично справляется без пихания self на каждый чих.

Почему bytes неизменяем? Что мешало сделать работающим что-то вроде b = 0x10?

В третьей версии серьёзно меняли синтаксис… Одно из главнейших отличий (не главное, конечно, но пожалуй, именно это больше всего ударило по питоновким проектам), что print - теперь функция. Проделана огромная работа, многое было переписано заново…
А этих очевидных вещей не добавили. Почему?! Был бы вообще лучший язык на свете, а тут во многом остаётся ощущение некоторой недоделанности и временности. Хоть Гвидо и “заморозил изменения синтаксиса”, думаю, меняться язык будет. Уж очень нестабильное состояние его сейчас (3.1).

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



Офлайн

#2 Ноя. 5, 2009 14:17:00

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

Куда катится питон?

В каждом языке есть свои плюсы и минусы. Например - РНР. Простой(и плюс и минус), поддерживает много баз данных(+), есть куяча примеров и реализаций(+). Минуса - простой(ох и много гавнокода на нём написано!), нет(это мое ИМХО) нормальной ИДЕ под него, непонятные и запутанные инклуды.

Офлайн

#3 Ноя. 5, 2009 14:38:58

Gradient
От:
Зарегистрирован: 2009-06-03
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Куда катится питон?

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



Офлайн

#4 Ноя. 5, 2009 14:50:28

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Куда катится питон?

Из всего вышеперечисленного только self поддерживаю. Остальное - на любителя.



Офлайн

#5 Ноя. 5, 2009 14:54:10

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Куда катится питон?

Lexander
Из всего вышеперечисленного только self поддерживаю.
И от куда вы предлагаете его брать? Из воздуха?
Не надо магии.



Офлайн

#6 Ноя. 5, 2009 14:56:41

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Куда катится питон?

то, что вам кажется недоделанностью, другим видится логичными вещами.
есть bytearray - mutable bytes.
что за вложенные функции? )



Офлайн

#7 Ноя. 5, 2009 16:55:40

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Куда катится питон?

Область видимости переменных. Почему просто было не сделать “снизу вверх”, как в “обычных” языках? Частая глобальная переменная - в каждой функции пиши global. Или передавай её как параметер. Зачем эти сложности на пустом месте?
1. Использование глобальных переменных - частый симптом плохого дизайна. Требуется редко.
2. Потому что Namespaces are one honking great idea – let's do more of those!

Почему бы не сделать вложенных функций? Я не имею в виду lambda, я имею в виду функции строк на 10 с нормальной логикой, несколькими return, и доступом к переменным вышележащей функции.
Вы мне не поверите.
Приведу код из Python ESSENTIAL REFERENCE Fourth Edition

def countdown(start):
n = start
def display():
print('T-minus %d' % n)
def decrement():
n -= 1 # Fails in Python 2
while n > 0:
display()
decrement()
In Python 2, you can work around this by placing values you want to change in a list or
dictionary. In Python 3, you can declare n as nonlocal as follows:
def countdown(start):
n = start
def display():
print('T-minus %d' % n)
def decrement():
nonlocal n # Bind to outer n (Python 3 only)
n -= 1
while n > 0:
display()
decrement()
The nonlocal declaration does not bind a name to local variables defined inside arbi-
trary functions further down on the current call-stack (that is, dynamic scope). So, if
you’re coming to Python from Perl, nonlocal is not the same as declaring a Perl local
variable.
Ещё раз - функция должна оперировать только теми переменными, которые ей дали явно. Тогда количество side-effects меньше.

Зачем при написании метода класса всегда указывать self? Понятно, что “объектная ориентированность реализована так”, но код-то зачем этим забивать? В “других языках” интерпретатор с таким отлично справляется без пихания self на каждый чих.
Дабы отличать обычные методы от методов класса и статических методов. А так же для того, что бы отличать локальные переменные от атрибутов класса.
И это ещё не все причины.
Почему bytes неизменяем? Что мешало сделать работающим что-то вроде b = 0x10?
Я, наверное, что-то упустил, но в питоне нет встроенного типа bytes.
В третьей версии серьёзно меняли синтаксис… Одно из главнейших отличий (не главное, конечно, но пожалуй, именно это больше всего ударило по питоновким проектам), что print - теперь функция. Проделана огромная работа, многое было переписано заново…
Начиная с версии 2.5, кажется, можно было использовать print как функцию. Но я вас обрадую - это не главное изменнение.
Да и вывод в консоль нужен был не везде.
Да и использовать 3-ку не обязательно, вполне можно использовать 2.6. Пока что.
А этих очевидных вещей не добавили. Почему?! Был бы вообще лучший язык на свете, а тт во многом остаётся ощущение некоторой недоделанности и временности.
Потому что эти вещи даже близко не очевидны. Потому что python - не PHP. Потому что вы не разбираясь принялись выносить суждения.
Такие вопросы и утверждения - троллинг чистой воды.
Хоть Гвидо и “заморозил изменения синтаксиса”, думаю, меняться язык будет. Уж очень нестабильное состояние его сейчас (3.1).
Да, он будет меняться. И это замечательно.
Это “стабильное-нестабильное” мне напоминает нытьё некоторых новых линуксоидов на дебиан и удунту. Для одних он “стар, ибо в стаб. ветке одно старьё” другие ноют что “нестабильно” используя нестабильную ветку.
А чего вы хотели? Хотите стабильного - берите старую но стабильную. Хотите новизны - берите последнее, но тогда, по крайней мере на время, забудьте о “стабильности”.

Офлайн

#8 Ноя. 5, 2009 17:24:08

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Куда катится питон?

вспоминается анекдот “”“чукча не читатель , чукча писатель”“”

Отредактировано (Ноя. 5, 2009 17:25:00)

Офлайн

#9 Ноя. 5, 2009 19:39:18

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Куда катится питон?

ZZZ
И от куда вы предлагаете его брать? Из воздуха?
Не надо магии.
Зачем магия. Есть перечень свойств и методов класса, оттуда их брать. Речь идет о том, чтобы сократить запись обращения к ним внутри класса. Вот именно в этом я и поддерживаю автора. Но только в этом :)



Офлайн

#10 Ноя. 5, 2009 19:52:16

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Куда катится питон?

Lexander
Зачем магия. Есть перечень свойств и методов класса, оттуда их брать. Речь идет о том, чтобы сократить запись обращения к ним внутри класса.
Читаем внимательно:

Ferroman
Дабы отличать обычные методы от методов класса и статических методов. А так же для того, что бы отличать локальные переменные от атрибутов класса.
И это ещё не все причины.
P.S.
Спросите Гвидо =)



Отредактировано (Ноя. 5, 2009 19:56:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version