From: Max B. <be...@ma...> - 2003-10-10 07:13:15
|
Hello Peter, Friday, October 10, 2003, 1:23:52 AM, you wrote: PBS> Max Belugin wrote: >> Peter B. Shalimoff wrote: >> > Почему не Java? >> - Java строго типизированный (больше надежность, меньше реюза) PBS> Что значит "меньше реюза"? статическая типизация нее позволяет использовать a+b для любых объектов, на множестве которых определен + напиши на Java аналог функции map - у тебя не получится именно из за того, что Java - язык статически типизированный. или хотя бы аналог такой функции def sum(Xs): r=Xs[0] for x in Xs[1:]: r=r+x return r print sum([1,2,3]) print sum(['1','2','3']) print sum([[1,2],[2,3]]) print sum('1234') C:\0>python 1.py 6 123 [1, 2, 2, 3] 1234 >> - в java нет много языковых вкусностей, которые есть в Python PBS> Например? Только именно языковых, а не стандартной (или еще какой) PBS> библиотеки. Ничего, кроме параметров функции по умолчанию и closures PBS> (5.11 Lambdas), не нашел. - оператор for работает с коллекциями (будет в тигре, знаю) - все литералы, про которые я думаю как о коллекции является коллекцией (в том числе строка) - все эти коллекции доступны единообразно и существует множество "синтаксического сахара" для работы с коллекциями - функции - это объекты - строковые литералы могут быть как со специальными символами, так и без их учета (для Java я себе даже сделал скриптец в фаре, который удвояет бекслешы) а в питоне достаточно написать r'c:\Programs files\test' - особенно помагает с регулярными выражениями. >> - Python лаконичен. PBS> :))) Хороший аргумент. Примерно такого же рода, как и этот: мне нравится, кстати, отсутствие скобок (все равно я отступы так ставлю, зачем еще и скобки) >> - в java даже для того, чтобы написать hello, world надо заводить класс PBS> Можно подумать, чтобы завести класс, надо, как минимум, спасти мир. Это PBS> уже на религию смахивает, по-моему. спасать мир не надо, но для _скриптинга_ важно, чтобы простые, часто используемые вещи делались просто. Если каждый раз, когда надо просто прочитать текстовый файл, необходимо городить множество конструкций, это минус. >> напиши, например аналог программы: >> for a in ['alpha', 'beta', 'gamma']: >> print a PBS> Надеюсь, "подвох" не в количестве строк? :) именно в них. PBS> public class z PBS> { PBS> public static void main(String[] args) PBS> { PBS> Object[] a = {"alpha", "beta", "gamma"}; PBS> for (int i=0; i<a.length; i++) { PBS> System.out.println(a[i]); PBS> } PBS> } PBS> } теперь напиши аналог такого скрипта for line in file('1.py'): print '>>>'+line хочется ли тебе ради одноразового скрипта писать все эти Buffered readerы и т.д.? для скриптинга лаконичность важна. -- Best regards, Max mailto:be...@ma... http://belugin.newmail.ru ICQ:9406811 |