The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Доступен язык программирования Python 3.3, opennews (??), 30-Сен-12, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


37. "Доступен язык программирования Python 3.3"  +/
Сообщение от Kamiram (?), 30-Сен-12, 18:43 
Для единобразия. всетаки print это функция(да. в 3 ветке совсем функцйия)
Ответить | Правка | Наверх | Cообщить модератору

53. "Доступен язык программирования Python 3.3"  +/
Сообщение от Аниме (?), 01-Окт-12, 00:27 
Причём здесь единообразие? принт для отладки, зачем скобки там где их может небыть? Ну есть же операторы. Я всегда думал что print в питоне это оператор. Вот третий питон мне всё испортил. Мне нравится питон за лаконичность, а эти все новшества только удлинняют код. Питон итак довольно мощный и совершенный, зачем его портить?
Ответить | Правка | Наверх | Cообщить модератору

60. "Доступен язык программирования Python 3.3"  +/
Сообщение от marks (?), 01-Окт-12, 09:30 
Наркоман чтоль? В 3+ print() - функцииияяяя. А ВСЕ функции пишутся со скобочкааамиии...
Ответить | Правка | Наверх | Cообщить модератору

107. "Доступен язык программирования Python 3.3"  +/
Сообщение от Аноним (-), 06-Окт-12, 18:57 
Странно что не метод, вообще странный дизайн языка получается.
Ответить | Правка | Наверх | Cообщить модератору

59. "Доступен язык программирования Python 3.3"  –1 +/
Сообщение от arisu (ok), 01-Окт-12, 08:23 
> Для единобразия.

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

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

63. "Доступен язык программирования Python 3.3"  +3 +/
Сообщение от gegMOPO4 (ok), 01-Окт-12, 10:35 
> какая неоднозначность возникает от парзинга вызова функции с одним
> аргументом без скобок?

  f-3

Вызов функции f с аргументом -3 или результат отнимания 3 от f?

  f*a

Вызов функции с аргументами, заданными списком/кортежом a или результат умножения f на a?

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

Ответить | Правка | Наверх | Cообщить модератору

66. "Доступен язык программирования Python 3.3"  –3 +/
Сообщение от arisu (ok), 01-Окт-12, 10:50 
ок, уточню, mea culpa. с вызовом функции, аргумент которой — литерал: строка, массив, что там ещё можно однозначно отличить? конструкция:

print "abc"

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

опять же, никто не мешает сделать какой-нибудь флаг strict, который отрубает подобный сахар.

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

Ответить | Правка | Наверх | Cообщить модератору

68. "Доступен язык программирования Python 3.3"  +1 +/
Сообщение от gegMOPO4 (ok), 01-Окт-12, 11:00 
Это всё называется не «упростить синтаксис», а значительно усложнить. Для такого языка, как Питон, на котором и простые скрипты пишутся, который и неспециалисты используют, — неприемлемо.
Ответить | Правка | Наверх | Cообщить модератору

69. "Доступен язык программирования Python 3.3"  –1 +/
Сообщение от arisu (ok), 01-Окт-12, 11:14 
с точки зрения парзера — усложнить. с точки зрения человека — упростить. как раз для неспециалистов.
Ответить | Правка | Наверх | Cообщить модератору

86. "Доступен язык программирования Python 3.3"  +/
Сообщение от gegMOPO4 (ok), 02-Окт-12, 00:43 
С точки зрения пользователя — усложнить. Больше частных правил и особых случаев. Попробуйте-ка объяснить новичку, почему print 5 и print "-5" работают, а print -5 — нет. Это будет *очень* недружественный и антигуманный язык.
Ответить | Правка | Наверх | Cообщить модератору

89. "Доступен язык программирования Python 3.3"  +/
Сообщение от arisu (ok), 02-Окт-12, 02:08 
(вздыхает) потому что. если запомнить *опциональное* правило «вызов функции, где первый аргумент — литерал, являющийся строкой или массивом, может писаться без скобок» — офигенно сложное правило. требует IQ>200 и эйдетической памяти.
Ответить | Правка | Наверх | Cообщить модератору

90. "Доступен язык программирования Python 3.3"  +/
Сообщение от gegMOPO4 (ok), 02-Окт-12, 13:30 
Массивы отпадают. f[2] — легальная конструкция, элемент с индексом 2 списка/кортежа f. Что остаётся?
Ответить | Правка | Наверх | Cообщить модератору

92. "Доступен язык программирования Python 3.3"  +/
Сообщение от arisu (ok), 02-Окт-12, 20:29 
> Массивы отпадают. f[2] — легальная конструкция, элемент с индексом 2 списка/кортежа
> f. Что остаётся?

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

интересно было бы посмотреть на всё это, если бы гнидаванроссум ВНИЗАПНА! решил бы чуть сменить синтаксис и сделать бесскобочные вызовы. питонисты тогда бы бегали и кричали: «хорошо, хорошо-то как! питон стал ещё проще и удобней!» а пока в питоне чего-то нет — оно завсегда плохое, сложное и не нужно.

Ответить | Правка | Наверх | Cообщить модератору

93. "Доступен язык программирования Python 3.3"  +/
Сообщение от gegMOPO4 (ok), 02-Окт-12, 22:55 
Никакой инконсистентности сейчас нет.

Но вы можете форкнуть Питон (или написать с нуля) и добавить туда чего ваша душа пожелает. Хотя, конечно, ничего не делать и завистливо хаять сделанное (и хорошо сделанное!) другими некоторым нравиться больше.

Ответить | Правка | Наверх | Cообщить модератору

94. "Доступен язык программирования Python 3.3"  +/
Сообщение от arisu (ok), 02-Окт-12, 22:58 
(пожимает плечами) я и так пользуюсь несколькими самодельными языками, зачем мне форкать неудачную недореплику whitespace?

p.s. и да, в некоторых из них есть «бесскобочный» синтаксис. после введения юзеры систем были довольны: скрипты писать стало проще.

Ответить | Правка | Наверх | Cообщить модератору

108. "Доступен язык программирования Python 3.3"  +/
Сообщение от Аноним (-), 06-Окт-12, 19:01 
упс а вруби все логично и print -1 => -1 и print 5-1 => 4
Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

113. "Доступен язык программирования Python 3.3"  +/
Сообщение от gegMOPO4 (ok), 07-Окт-12, 01:24 
Руби — другой язык, у него другой синтаксис и другая логика (странные с точки многих других языков). Например, там можно сделать:

  print = 42
  print print -1

Но нельзя (что было бы естественно в Питоне):

  p = print
  p -1

Вот поэтому в Питоне не так, как в Руби.

Ответить | Правка | Наверх | Cообщить модератору

115. "Доступен язык программирования Python 3.3"  +/
Сообщение от Аноним (-), 07-Окт-12, 17:05 
Ну круто но логичным я бы это не назвал. Делать ссылку оператором = на функцию.

alias :p :print
p -1

разве так не лаконичней, а у вас в питоне непонятно толи print переменная толи функция

Ответить | Правка | Наверх | Cообщить модератору

75. "Доступен язык программирования Python 3.3"  +2 +/
Сообщение от demo (??), 01-Окт-12, 14:20 
Ох,
что-то мне кажется, что Вы предлагаете ядовитый сахар. Кроме простого правила нужно будет помнить ещё правила применения правила, правила отмены правила и варианты исключения из правил.

Простое, дубовое правило (вызов функции - со скобочками!) упрощает жизнь как авторов парсера так и пользователей (особенно, если что-то идёт не так).

Мне вот не нравится ликвидация оператора print. Да, у него было своеобразно реализовано "перенаправление" вывода в произвольный поток. Да, запрет перевода строки после вывода выглядел "вызывающе хакерски". Кроме того поддержка оператора print требовала четырёх инструкций вирт. машины (PRINT_ITEM, PRINT_ITEM_TO, PRINT_NEWLINE и PRINT_NEWLINE_TO). Возможно, что была причина избавиться от всего этого. А так при наличии sys.stdout.write() и функция print не очень-то нужна.

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

76. "Доступен язык программирования Python 3.3"  +/
Сообщение от arisu (ok), 01-Окт-12, 14:33 
> что-то мне кажется, что Вы предлагаете ядовитый сахар. Кроме простого правила нужно
> будет помнить ещё правила применения правила, правила отмены правила и варианты
> исключения из правил.

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

Ответить | Правка | Наверх | Cообщить модератору

77. "Доступен язык программирования Python 3.3"  +1 +/
Сообщение от demo (??), 01-Окт-12, 14:35 
> ...какая неоднозначность возникает от парзинга вызова функции с одним
> аргументом без скобок?

вот "sin x" - это хорошо и понятно.
а вот "sin 2*x" (тоже функция с одним аргументом без скобок) уже не хорошо и не понятно - это "(sin 2)*x" или "sin(2*x)"?

Кроме того в случае python есть ещё одно усложнение - это мы знаем, что традиционный sin это всегда функция с одним аргументом. А компилятор python-а, бедняжечка, этого не знает.

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

78. "Доступен язык программирования Python 3.3"  –2 +/
Сообщение от arisu (ok), 01-Окт-12, 15:57 
я же уточнил, какие литералы допускать.

> Кроме того в случае python есть ещё одно усложнение — это мы
> знаем, что традиционный sin это всегда функция с одним аргументом. А
> компилятор python-а, бедняжечка, этого не знает.

а какая парзеру разница? есть запятая на месте терма? следующий параметр. нет запятой? конец оператора.

Ответить | Правка | Наверх | Cообщить модератору

83. "Доступен язык программирования Python 3.3"  +/
Сообщение от Аноним (-), 01-Окт-12, 19:08 
>> ...какая неоднозначность возникает от парзинга вызова функции с одним
>> аргументом без скобок?
> вот "sin x" - это хорошо и понятно.
> а вот "sin 2*x" (тоже функция с одним аргументом без скобок) уже
> не хорошо и не понятно - это "(sin 2)*x" или "sin(2*x)"?

Если скобки строго заменять на пробелы, то "sin 2*x" эквивалентно "sin (2*x)", а вот "sin 2 *x" уже "(sin(2)*x)".
Опять же, у Руби такое используется - и ничего, компилятор-бедняжечка не путается


Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

88. "Доступен язык программирования Python 3.3"  +/
Сообщение от arisu (ok), 02-Окт-12, 01:31 
> Если скобки строго заменять на пробелы, то «sin 2*x» эквивалентно «sin (2*x)»,
> а вот «sin 2 *x» уже «(sin(2)*x)».

в принципе, фраза «sin 2*x» человеком понимается достаточно однозначно, по-моему. а к тому, что пробелы — не просто разделители, а чуть ли не токены, питонистам не привыкать.

Ответить | Правка | Наверх | Cообщить модератору

95. "Доступен язык программирования Python 3.3"  +1 +/
Сообщение от angra (ok), 03-Окт-12, 00:08 
Свободно опускаемые скобки и куча других прелестей для опытных программистов - это perl. Питон он для другой ЦА, гибкость противоречит его философии, там шкурку с кошки можно снять строго одним образом.
Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

109. "Доступен язык программирования Python 3.3"  +/
Сообщение от Аноним (-), 06-Окт-12, 19:05 
> Свободно опускаемые скобки и куча других прелестей для опытных программистов - это
> perl. Питон он для другой ЦА, гибкость противоречит его философии, там
> шкурку с кошки можно снять строго одним образом.

Ну у этого есть один плюс. Поддерживать код проще. И один минус. Не всем это по душе.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру