The OpenNET Project / Index page

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



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

Оглавление

OpenNews: Почему Ruby и Python не могут занять место стареющей Java, opennews (??), 09-Июн-08, (0) [смотреть все]

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


30. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от zyx (?), 09-Июн-08, 12:23 
>Про отступы в Python-е я плакал, аргументы просто класс...*LOL*

про отступы написано:
"зависит от настроек редактора, которые могут быть разными у разных программистов"
другими словами, если вдруг у одного из участников проекта табуляции выставлены не в 8 как у всех, а в 3, код на питоне превращается в кашу, и это еще не худший вариант - хуже, если такой человек напишет код и внесет в проект, а потом у другого это все "поплывет".

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

46. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Grigoriy Petukhovemail (?), 09-Июн-08, 12:42 
Если у разных участников табы настроены на разное количество пробелов, код на любом языке превратится в кашу ) Просто в python он к тому же не будет работать. Вообще имхо любой "нормальный" программист использует пробелы, а не табы. Любой "нормальный" редактор можно настроить так, чтобы от вставлял пробелы при нажатии на клавишу Tab. В PEP8 (рекомендации по оформлению python кода) рекомендуется не использовать tab'ы.
Если кто-то после первого предупреждения продолжает пихать в проект код с табами, то следует задуматься о его умственных способностях и, возможно, исключить из проекта.
Ответить | Правка | Наверх | Cообщить модератору

52. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от terr0ristemail (ok), 09-Июн-08, 13:01 
>Если у разных участников табы настроены на разное количество пробелов, код на
>любом языке превратится в кашу ) Просто в python он к
>тому же не будет работать. Вообще имхо любой "нормальный" программист использует
>пробелы, а не табы. Любой "нормальный" редактор можно настроить так, чтобы
>от вставлял пробелы при нажатии на клавишу Tab. В PEP8 (рекомендации
>по оформлению python кода) рекомендуется не использовать tab'ы.
>Если кто-то после первого предупреждения продолжает пихать в проект код с табами,
>то следует задуматься о его умственных способностях и, возможно, исключить из
>проекта.

Сложно не согласиться, и все же - хотелось бы услышать хоть один аргумент ЗА отступы.
Что они дают по сравнению с традиционными блоками?
Скорость набора - я думаю, всегда проще поставить пару брэйсов, чем 8 раз тыкать на пробел на каждой строчке =)

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

63. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от cadmi (?), 09-Июн-08, 13:38 
как будто кто-то на этот пробел 8 раз (на самом деле 4) тыкает...
они дают принудительную читабельность. иначе просто не напишешь. какбе перлистам неудобно друг перед другом пальцы гнуть :)
Ответить | Правка | Наверх | Cообщить модератору

103. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Grigoriy Petukhovemail (?), 09-Июн-08, 22:10 
* снижается количество ошибок т.к. вы не забыватаете закрывать скобочки
* ошибки проще отслеживать - помнится, когда я программировал на PHP и слыхом не слыхивал про python, я периодически забывал закрыть блок кода скобкой и потом долго выискивал в большом куске кода с кучей скобочек, место, куда надо было вставить ещё одну (впрочем большие куски кода, не выделенные в функции/методы - это не true в любом языке). В python же я очень редко натыкаюсь на ошибку неправильных отступов. Мне кажется, это может пугать только того, кто на python не программировал.
* 4 или 8 раз, знаете ли, никто не тыкает, одно нажатие клавиши Tab вставляет нужное кол-во символов. К тому же куча редакторов поддерживают автоматическую расстановку отступов. Я бы даже сказал, очень странно, если кто-то пользуется софтом, который этого не умеет.
* код выглядит красивее (ИМХО!). Наличие скобок в языке *не избавляет* вас от небходимости делать отступы на каждом следующем уровне вложенности кода (если, конечно, вас волнует его читаемость). В самом деле, вы в любом случае обособляете вложенные блоки отступами, зачем же нужны ещё  и скобочки?!
* как бы там ни было, мне доставляет удовольствие и читать и писать программы на python, чего нельзя сказать о PHP или C++. И, конечно, дело тут не только в скобочках %-)

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

165. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Michael Shigorinemail (ok), 10-Июн-08, 21:43 
> * снижается количество ошибок т.к. вы не забыватаете закрывать скобочки

Повышается от того, что ездит whitespace (между людьми/хостами/редакторами).

> * ошибки проще отслеживать - помнится, когда я программировал на PHP
>и слыхом не слыхивал про python, я периодически забывал закрыть блок
>кода скобкой

Кхм.

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

Если Вы не приобрели даже такую привычку -- мне уже страшно думать, как Вы будете портировать свой радостно настуканный код, скажем, на Python 2.6.  Тем более на py3k.

> * 4 или 8 раз, знаете ли, никто не тыкает

См. выше.

> * код выглядит красивее (ИМХО!).

Никогда не пробовали писать (и выкладывать) код красиво на любом языке, каким бы ни доводилось пользоваться? ;-)

>Наличие скобок в языке *не избавляет* вас от небходимости делать
>отступы на каждом следующем уровне вложенности кода
>(если, конечно, вас волнует его читаемость).

Необходимости?!  Сэр, Вы про однострочники что-нибудь в жизни слышали?  Это один из *типичных* особых случаев, которые человеку видней.  А не транслятору или Гвидо.

> * как бы там ни было, мне доставляет удовольствие и читать
>и писать программы на python, чего нельзя сказать о PHP или
>C++. И, конечно, дело тут не только в скобочках %-)

Это бывает.  Не переживайте, в своё время и это пройдёт.

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

192. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Volodymyr Lisivkaemail (?), 11-Июн-08, 20:55 
> * снижается количество ошибок т.к. вы не забыватаете закрывать скобочки

Их редактор ставит. И все ошибки со скобками сразу видны после применения автоформатирования.

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

Не делай больших блоков кода. Язык тебя к этому подталкивает.

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

wiki? Очень полезная тулза если код не на питоне. :-)

> * 4 или 8 раз, знаете ли, никто не тыкает, одно
>нажатие клавиши Tab вставляет нужное кол-во символов.

Зачем мне считать сколько символов надо вставить? Это работа автоформатировщика.

Я расставляю пробелы руками когда пишу на bash (нет автоформатировщика) и они меня уже достали (хотя я их ставлю на автомате).

> К тому же куча
>редакторов поддерживают автоматическую расстановку отступов.

Угу. Надо каждый раз то доставить пару пробелов то убрать пару пробелов. А остальное редактор делает сам.

> Я бы даже сказал, очень странно,
>если кто-то пользуется софтом, который этого не умеет.

Это вчерашний век.


> * код выглядит красивее (ИМХО!). Наличие скобок в языке *не избавляет*
>вас от небходимости делать отступы на каждом следующем уровне вложенности кода
>(если, конечно, вас волнует его читаемость). В самом деле, вы в
>любом случае обособляете вложенные блоки отступами, зачем же нужны ещё  
>и скобочки?!

1. Чтобы не расставлять отступы руками.
2. Чтобы можно было писать код на бумаге, в вебе, в PDF/PS, etc., где непечатные символы не учитываются. Как ты считаешь отступы от края листа?

> * как бы там ни было, мне доставляет удовольствие и читать
>и писать программы на python, чего нельзя сказать о PHP или
>C++. И, конечно, дело тут не только в скобочках %-)

Скобочки - зло. begin end - наше всё!

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

123. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от kostbebixemail (?), 10-Июн-08, 01:45 
Код на том же пхп часто кажется награможденным из-за того, что много скобочек. Текст исходников как бы "дышит".

Это как при оформлении книги (или верстки сайта) вы делаете, чтоб страничка дышала.

А во-вторых, код будет оформлен с отступами в любом случае и ничего ни у кого не поедет (если не в состоянии настроить свою ИДЕ - гнать таких в шею). В таком случае ставится вопрос: "а зачем нужны эти скобочки"? Ведь идеальным является чистый лист, и все что на него нанесется должно иметь объяснение, подходящее под задачу.

p.s.: пхп-код, возможно, не имел бы за собой славу быдлокода, если бы синтаксис языка заставлял оформлять код нормально и с отступами

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

125. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Olesemail (?), 10-Июн-08, 01:53 
Помню были программы типа крестики-нолики в одну строчку на си. А на питоне?
Ответить | Правка | Наверх | Cообщить модератору

129. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от kostbebixemail (?), 10-Июн-08, 09:54 
>Помню были программы типа крестики-нолики в одну строчку на си. А на
>питоне?

Плохо знаю питон, но уверен что можно сделать ф-цию выполнения кода, находящегося в строке, а там уж переносы делать при помощи \n" :P

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

147. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Аноним (-), 10-Июн-08, 14:57 
Про редактор с автоматическими отступами слышать доводилось? Добро пожаловать в 21 век.
Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

164. "python и табы"  +/
Сообщение от Michael Shigorinemail (ok), 10-Июн-08, 21:27 
> код на любом языке превратится в кашу

Отнюдь.  Для любого языка скорее всего существует indent(1) или в эквиваленте.

Для питона им работает кодер.

> Просто в python он к тому же не будет работать

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

В том-то и проблема.  Поймаете ли тестами?

> Вообще имхо любой "нормальный" программист использует пробелы, а не табы.

И ходит в синих джинсах и кроссовках сорок второго размера?

Григорий, сходите, что ли, почитайте пример мерки более других людей -- может, не захочется разработчиков на табы "имхать":

http://www.linux.kiev.ua/ru/docs/opus/decent-developer-howto/
http://www.inter-sections.net/2007/11/13/how-to-recognise-a-.../

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

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

PS: если есть полуготовый вариант (фреймворк/набор библиотек) -- разумеется, может быть проще, быстрее и надёжнее слепить на питоне или жабе.  Это -- плюс.  А whitespace sensitivity -- это минус чистой воды.  Вы б ещё brainf*ck применяли в работе, который сделал ещё один большой шаг в выбранном для p*thon направлении.

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

177. "python и табы"  +/
Сообщение от lizendiremail (ok), 10-Июн-08, 22:43 
>Отнюдь.  Для любого языка скорее всего существует indent(1) или в эквиваленте.

Рассмотрим код на любом языке.
if abc {
abc+=4
while foo(abc) {
abc += 1
}
}
Для него существует indent, тем не менее в данный момент вы наблюдаете кашу.


>Наивный... работать-то он может как раз продолжить, вот только не так, как
>задумано.
>
>В том-то и проблема.  Поймаете ли тестами?
>>> def foo():

... print 'test'
  File "<stdin>", line 2
    print 'test'
        ^
IndentationError: expected an indented block
Двустрочный код без индентации уже сломался. Надо сильно постараться, чтобы написать, что-то работающее на python не проставив индентациию.

>[оверквотинг удален]
>> Вообще имхо любой "нормальный" программист использует пробелы, а не табы.
>
>И ходит в синих джинсах и кроссовках сорок второго размера?
>
>Григорий, сходите, что ли, почитайте пример мерки более других людей -- может,
>не захочется разработчиков на табы "имхать":
>
>http://www.linux.kiev.ua/ru/docs/opus/decent-developer-howto/
>http://www.inter-sections.net/2007/11/13/how-to-recognise-a-.../
>

К сожалению, у меня нет времени читать вторую ссылку. В первой ссылке я не нашёл ничего про табы. И вообще смысл фразы
> может, не захочется разработчиков на табы "имхать"

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

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

К сожалению, я не понял, что вы сказали.

>PS: если есть полуготовый вариант (фреймворк/набор библиотек) -- разумеется, может быть проще, быстрее и надёжнее слепить на питоне или жабе.  Это --
>плюс.

К сожалению, я не понял, к чему вы обобщили python и java и вообще смысл фразы не понял.

> А whitespace sensitivity -- это минус чистой воды.  

Эту фразу трудно оспорить т.к. она не подкреплена аргументами, но ради поддержания фидо-стиля беседы я пишу тут хоть какие-то строчки :o)

>Вы б ещё brainf*ck применяли в работе, который сделал ещё один
>большой шаг в выбранном для p*thon направлении.

Эту фразу трудно прокомментировать т.к. она лишена смысла, но ради поддержания фидо-стиля беседы я пишу тут хоть какие-то строчки :o)

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

187. "python и табы"  +/
Сообщение от Michael Shigorinemail (ok), 11-Июн-08, 01:31 
>>Отнюдь.  Для любого языка скорее всего существует indent(1) или в эквиваленте.
>Рассмотрим код на любом языке.

[...]
>Для него существует indent, тем не менее в данный момент вы наблюдаете
>кашу.

Ну так это и есть натуральная каша, а не (псевдо)код.  "Не делайте так".

Но и не предлагайте выбрать за меня из

if abc {
  abc+=4

и

if abc
{
  abc+=4

если Вы мне не коллега (даже если Вы автор языка).

>>Наивный... работать-то он может как раз продолжить, вот только не так, как
>>задумано.
>IndentationError: expected an indented block
>Двустрочный код без индентации уже сломался. Надо сильно постараться,
>чтобы написать, что-то работающее на python не проставив индентациию.

Я не про "не проставив" говорил, а про "уехала".  Проблема в том, что whitespace -- он white: в общем случае различить "на глаз" не выходит, где там куски табами, а где -- пробелами.  Мина замедленного действия, особенно с учётом того, что вовсе не весь код может вообще порождаться подконтрольными кодерами.

>>> Вообще имхо любой "нормальный" программист использует пробелы, а не табы.
>>Григорий, сходите, что ли, почитайте пример мерки более других людей -- может,
>>не захочется разработчиков на табы "имхать":
>>http://www.linux.kiev.ua/ru/docs/opus/decent-developer-howto/
>>http://www.inter-sections.net/2007/11/13/how-to-recognise-a-.../
>К сожалению, у меня нет времени читать вторую ссылку.

Главное из неё приведено в первой.  Найти время почитать -- всё-таки рекомендую, мож со временем полегчает заодно.

>В первой ссылке я не нашёл ничего про табы.

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

>И вообще смысл фразы
>> может, не захочется разработчиков на табы "имхать"
>не совсем понятен.

Ну, судить по левому критерию.

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

Бывают невменяемые кодеры/программисты/архитекторы, бывают невменяемые авторы языков.
В данном случае мой вот анализ проблемы привёл к выводу, что невменяем автор питона.

>К сожалению, я не понял, к чему вы обобщили python и java

К объёму уже наработанного/доступного реюзабельного кода.

>> А whitespace sensitivity -- это минус чистой воды.  
>Эту фразу трудно оспорить т.к. она не подкреплена аргументами

Это было обобщение под аргументами в том и других сообщениях в этой же теме; Вы вольны их видеть или игнорировать, но попрошу без таких утверждений.

[skip]

>>Вы б ещё brainf*ck применяли в работе, который сделал ещё один
>>большой шаг в выбранном для p*thon направлении.
>Эту фразу трудно прокомментировать т.к. она лишена смысла

Виноват, спать пора -- имел в виду whitespace (который использует символы пробела, табуляции, перевода строки), написал BF (который использует символы +-<>[]., в качестве команд).

Смысл был тот, что в питоне пробельные символы _наделены_ синтаксическим смыслом и я утверждаю, что это стояние на краю пусть не пропасти, но ямки.  А язык whitespace делает баальшой шаг вперёд и... оставляет в синтаксисе _только_ различные пробельные символы :)

См. тж. http://en.wikipedia.org/wiki/Esoteric_programming_language
(если делать нечего)

>но ради поддержания фидо-стиля беседы я пишу тут хоть какие-то строчки :o)

Оно того обычно не стоит :)  Разговоры бывают и бессмысленными.

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

191. "python и табы"  +/
Сообщение от lizendiremail (ok), 11-Июн-08, 11:31 
>Ну так это и есть натуральная каша, а не (псевдо)код.  "Не
>делайте так".
>

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

>Но и не предлагайте выбрать за меня из
>
>если Вы мне не коллега (даже если Вы автор языка).
>

Я и не предлагал. Кстати, в python вам выбирать не из чего, там только один вариант оформления блоков :o)
if condition:
    # do some things

>[оверквотинг удален]
>>IndentationError: expected an indented block
>>Двустрочный код без индентации уже сломался. Надо сильно постараться,
>>чтобы написать, что-то работающее на python не проставив индентациию.
>
>Я не про "не проставив" говорил, а про "уехала".  Проблема в
>том, что whitespace -- он white: в общем случае различить "на
>глаз" не выходит, где там куски табами, а где -- пробелами.
> Мина замедленного действия, особенно с учётом того, что вовсе не
>весь код может вообще порождаться подконтрольными кодерами.
>

Да,это недостаток python'a. Можно и миной назвать. Было бы круто вообще *запретить* использовать tab'ы в python :o) Любой нормальный программист (на python) будет использовать пробелы, а не табы. Если бы я был манагером проектов, я бы просто не пропускал код, написанный с табами. Если бы я был программером, которому предлагают работать с python кодом, напичканным табами, я бы отказался. В любом случае я мирюсь с этим недостатком, потому что лично мне он вреда пока не принёс. А вот сколько вреда мне принесла кривая архитектура, неоднозначный синтаксис, баги PHP (в котором есть скобочки!!) я говорить задолбаюсь.

>Правильно -- потому что они не имеют ни малейшего(!) отношения к оценке
>нормальности программиста, насколько мне вообще известно.
>

Ладно, тогда сужаю свою утверждение до "любой нормальный программист на python" :o)


>Бывают невменяемые кодеры/программисты/архитекторы, бывают невменяемые авторы языков.
>В данном случае мой вот анализ проблемы привёл к выводу, что невменяем
>автор питона.
>

Гвидо имел смелость отступить от канонов и придумать что-то оригинальное, что понравилось и что стали использовать. Надо иметь смелость для таких шагов. Раньше вообще за такое на костёр без вопросов. Земля вертится? На костёр! Язык без скобочек?? На костёр! :o)

>>К сожалению, я не понял, к чему вы обобщили python и java
>
>К объёму уже наработанного/доступного реюзабельного кода.

Гм, а в каких случаях тогда не проще и не быстрее использовать python? )

>
>>> А whitespace sensitivity -- это минус чистой воды.  
>>Эту фразу трудно оспорить т.к. она не подкреплена аргументами
>
>Это было обобщение под аргументами в том и других сообщениях в этой
>же теме; Вы вольны их видеть или игнорировать, но попрошу без
>таких утверждений.
>

Ну тогда такое утверждение: whitespace sensitivity - это не минус чистой воды :o)


>Смысл был тот, что в питоне пробельные символы _наделены_ синтаксическим смыслом и
>я утверждаю, что это стояние на краю пусть не пропасти, но
>ямки.  А язык whitespace делает баальшой шаг вперёд и... оставляет
>в синтаксисе _только_ различные пробельные символы :)
>

Состояние стояния на краю ямки можно найти в любом языке. Я сомневаюсь, что в C++, PHP, Java - этих состояний меньше :o)


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

58. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Alexey (??), 09-Июн-08, 13:26 
Это утверждение неверно! Подумайте сами почему.
Ну или проверьте на практике.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

62. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от cadmi (?), 09-Июн-08, 13:36 
>если вдруг у одного из участников проекта табуляции выставлены не в 8 как у всех, а в 3

людям, которые не читают документацию, лучше прододжать писать на своем любимом похапе.
http://www.python.org/dev/peps/pep-0008/

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

166. "как если бы разницы было"  +/
Сообщение от Michael Shigorinemail (ok), 10-Июн-08, 21:45 
Людям, которые не видят дальше своего носа, лучше продоДжать писать на пистоне... возможно, сходив на ту же j2ee хотя бы за методологией и паттернами.

(я-то не пишу на php, а вот исправлять доводится на всём, что горит)

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

106. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Анонимуз (?), 09-Июн-08, 23:19 
>если вдруг у одного из участников проекта табуляции выставлены не в 8 как у всех, а в 3, код на питоне превращается в кашу, и это еще не худший вариант - хуже, если такой человек напишет код и внесет в проект, а потом у другого это все "поплывет".

Никто никуда не поплывет. У него при открывании файла и при сохранении будет сдвиг на 3. У других при открывании того же файла будет сдвиг 8. Вот если табуляции атоматом заменяются пробелами, тогде да, полный превед.

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

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

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




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

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