LINUX.ORG.RU

Питон как средство обучения


0

0

Питон хорош как средство обучения, но не как средство создания промышленных приложений -- заявляет Ник Наглый (Nick Nagley) со страниц газеты Computer Weekly, отмечая при этом что новичков в python привлекает в основном простота и ясность языка, которым отдается предпочтение перед скоростью.

На скорость работы программ написанных на этом скриптовом языке также жалуется ведущий разработчик Google Ng Pheng Siong http://sandbox.rulemaker.net/ngps/195

>>> Подробности (шокирующей длины URL)

anonymous

Проверено: Demetrio ()

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

> find /usr/lib/python-* -name "*.so" | xargs rm -f

> и попробуй воспользоваться питоном...

Доктор, а вы на шкаф, на шкаф залезьте

> Удобочитаемы синтакс у питона только до тех пор, пока пишется что то крайне простое.

Некоторым, Алексей, вообще рекомендуется писать только несложное :-). Это, типа, не от языка программирования зависит ;-)

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

Я и пИсаю. :) Одно другому не мешает...

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

Про статью, в жабу.

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

Есть большая разница между tcl и python. В tcl я написал (c помощью ГУРУ) только один враппер к С либе и пару скриптов. А на питоне несколько больше. Так что потенциальная ущербность tcl мне мешает гораздо меньше :)

Кстати синтаксис tcl оказался очень простым и естественным в случае его использования в качестве скриптового расширения. Без скобок, запятых и отступов вызывать функции с аргументами гораздо проще и короче, чем в питоне.

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

>Доктор, а вы на шкаф, на шкаф залезьте

Это я к тому, во что превратится питон без врапперов в C либы...

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

2 AVL

Интересно что подразумевается под полноценной реализацией :)

Мне не понятно чем неполноценно GUI приложение основанное на wxpython (для GUI), использующее технологию activex (как средство интеграции приложений), zodb (для хранения данных), и комплект unit тестов?

anonymous
()
Ответ на: комментарий от AVL2

(Недоуменно): и их же, эти врапперы, кто-то пишет. Судя по вашему предыдущему высказыванию, делать это могут только мегаманьяки.

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

Если же моё впечатление ошибочно, ну, тогда мы можем поговорить по существу. В других тонах Где меня найти, думаю, вы знаете.

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

Subject: Re: C style conditional statements
Date: Среда 12 Май 2004 16:10
From: Larry Wall <larry@wall.org>
To: perl6-language@perl.org

On Wed, May 12, 2004 at 09:47:04AM +0100, Matthew Walton wrote:
: although it might perhaps be a little early to go for Python-like syntax.

s/early/late/

Python's syntax succeeds in combining the mistakes of Lisp and Fortran.
I do not contrue that as progress.

Larry

anonymous
()
Ответ на: комментарий от AVL2

Некоторое время назад я тоже с удовольствием писал на тикль. А дружок у меня вообще считалку для своей дипломной работы на нем делал. Только я точно помню что тикль - ни разу не серебряная пуля. Равно как и питон. Но, надеюсь, слова "универсальный язык" и "серебрянная пуля" в Вашем понимании - не одно и то же

Впрочем, за прошедшие с тех пор года (э-э-э, девять, что-ли? Хрен упомнит уже) он мог кардинально получшеть. Сомнительно, правда.

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

>y=0 for i in (1,2,3): y+=i print y >Как закончить отступ?

exec('y=0\nfor i in (1,2,3):\n\ty+=i\nprint y')

наслаждайся =)

anonymous
()
Ответ на: комментарий от AVL2

> Питон - язык с ограниченными возможностями.

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

Если возможности ограничены, то можно, наверное, привести пример задачи, которая решается на Перле с его неограниченными возможностями, но не решается на Питоне. Впрочем, я не богослов, мне трудно судить. Возможно, мое заявление слишком парадоксально, как и вопрос: "может ли Бог создать такой камень, который не сможет поднять". Возможно, эта истина непостижима...

CybOrc
()
Ответ на: комментарий от anonymous

>а насчет мало кто им пользуется - щас тут набежит толпа поклонников FC (с анакондой), Gentoo (portage).

Когда, говоря о популярности какого-то языка начинают перечислять решения на нём - это говорит о многом... :D Никому в здравом уме не придёт в голову перечислять проекты, например, на Си, Перле или Java :)

KRoN73 ★★★★★
()

еще один который паскаль-истинное средство для обучения поленился выучить.

ну чему питон может научить? умению выстраивать отступы с упорством маньяка-бирюлечника?

anonymous
()
Ответ на: комментарий от AVL2

> Я вот до сих пор непонял, как можно написать в одну строку

y=0 for i in (1,2,3): y+=i print y

Как закончить отступ? ---------кц

Какой отступ? Нахрен тут нужен отступ?

print reduce(lambda x,y: x+y, (1,2,3), 0)

Или вот так:

print sum( (1,2,3) )

А ещё непонятно, нахрена вообще писать однострочники.

anonymous
()
Ответ на: комментарий от CybOrc

да зайди на мясо или форж и удивись насколько мало апликух на питоне. и насколько меньше их качают. phpMyAdmin вообще в первой двадцатке уже сколько держится

anonymous
()
Ответ на: комментарий от KRoN73

> Когда, говоря о популярности какого-то языка начинают перечислять решения на нём - это говорит о многом... :D Никому в здравом уме не придёт в голову перечислять проекты, например, на Си, Перле или Java :)

Молодец, отличная женская логика.

"Питон не используется!" "Как не используется? Вот такие-то проекты." "А, проекты называешь? Значит, точно не используется!"

anonymous
()

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

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

а как же жить без

((struct foo* )buf + 2)->s[5]

anonymous
()
Ответ на: комментарий от CybOrc

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

anonymous
()
Ответ на: комментарий от CybOrc

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

anonymous
()
Ответ на: комментарий от hbee

>Мне кажется, это плохо, когда невидимые человеку символы синтаксически значимы.

То есть как невидимые?!! :() Темка развлекает по-настоящему! :)

>Может быть, изобретатель питона просто хотел в корне пресечь войны стилей?

Он хотел подтолкнуть в сторону отказа от написания "многострочных однострочников".

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

wx? на него без содрагания смотреть невозможно

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

Читать про язык whitespace

Мечта поэта.

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

> еще один который паскаль-истинное средство для обучения поленился выучить

За превознесение паскаля, как истинного средства программирования, надо проводить лоботомию.

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

>"может ли Бог создать такой камень, который не сможет поднять"

конечно может. Это камень, находящийся достаточно далеко от всех тяготеющих тел.

Более того, камень, находящийся в неустойчивом равновесии между Луной и Землей, может двигаться вниз и только вниз (причем как "вних к Земле", так и "вниз к Луне"), т.к. его потенциальная энергия имеет локальный максимум.

Камень на орбите не считается, т.к. его можно перевести на более высокую орбиту.

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

Pascal -> (основы) asm -> C -> ... is the right way.

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

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

> Конечно, с ростом объема сложность возрастает, но программисты в Питоне хотя бы отступы учатся делать нормальные.

Ух. А ничего, что я не учусь делать нормальные отступы? Я просто пишу, по возможности, структурный код :-). А отступы редактор расставляет :-).

Да, ценителям многокилобайтных однострочников. Линус давеча говорил, что код (в стиле "bsd", разумеется), вылезающий из-за отступов за правую границу экрана, с высокой долей вероятности будет отвергнут, т.к. он, скорее всего, должен быть упрощен. Без всякого питона. Ван Россум просто довел эту идею до логического завершения :-). Только вот ';' оставил зачем-то ;-)

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

Сейчас более-менее бегло ознакомился с этим:
Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач
Язык программирования Python

Не уяснил:
1) В питоне есть ссылки? Или нет как таковых переменных, содержащих данные и всё (любая, даже простая переменная) есть ссылка на эти данные?

2) Записи хэшей не показались элегантными (чистыми). Перловые удобнее:
{ Value => 100, Param => 200 }
без всяких гребанных кавычек.

4) Как насчет анонимных функций в сложных типах данных:
$handler = {
INT => sub { ... }, -- обработчик целых чисел
FLOAT => sub { ... }, -- дробных
CHAR => sub { ... } -- строк
};

5) Как чуть чуть Перловику, уставшего от нагромождений $ чистый питоновский синтаксис симпатичен. Отступы вообще не считаю проблемой. Это дело редактора: долгой жизни Vim.

6) А вот отсутсвие объявлений переменных не порадовало
my $a, $b; -- рулят.

7) Есть какието операторы закавычивания qq { } ?

6) swith-case есть?

8) И чем все новые языки не радуют - своим отношением к elseif. Вот и тут снова-здорово.

В общем первые впечатления после Перла сугубо ПОЛОЖИТЕЛЬНЫЕ.

anonymous
()
Ответ на: комментарий от Sun-ch

Нет, ну что Вы! Всем известно, что по этому делу именно Вы самый большой специалист!

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

>То есть как невидимые?!! :() Темка развлекает по-настоящему! :)

Невозможно отличить TAB от последовательности пробелов. У Эрика Рэймонда об этом хорошо написано (хотя он сам, вопреки собственным правилам, любитель Питона :))

>Он хотел подтолкнуть в сторону отказа от написания "многострочных однострочников".

Вдохновлялся, видимо, Фортраном? Не всем нравится недостаток свободы.

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

>Невозможно отличить TAB от последовательности пробелов.

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

>Не всем нравится недостаток свободы.

Полная свобода - в отказе от трансляторов вообще. Не желаете? К тому же, как выше замечено, остался ";".

anonymous
()
Ответ на: комментарий от AlexM

Ну так а с чего все началось?

"Несмотря на то, что (Python) предназначен для интернет-сценариев, создания пользовательского интерфейса, ситемного и текстового программирования и обработки текстов, создания тестовых сценариев и интеграции приложений, он может быть использован для решения более общих задач"

Что же такого в питоне есть для интернет-сценариев? Может там изначально встроены какие то средства защиты, типа restricted python? нет. только лишь десяток либ, упрощающих стандартные ситуации.

Системное программирование оставим. это у человека просто крыша съехала.

"текстового программирования" - аналогично

"обработки текстов" это модуль re у нас такие мысли порождает?

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

"интеграции приложений" - это каким боком имея три типа данных (число, строка и список) можно что либо интегрировать? через os.system или popen2.* ?

Трезвее надо быть в оценках...

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

>число, строка и список)

словарь забыл!

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

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

О-хо-хо. Обучать нужно не программированию, а логическому мышлению и способностью структурно оформлять свои мысли. А стоимость каждой конкретной операции - это, в общем, не более, чем параметр при оптимизации конкретного алгоритма. Тем более, что параметры эти сильно изменяется с течением времени. А оптимизировать руками под процессор, я, как уже неоднократно говорил, "перестал мочь" где-то начиная с первого пентиума. Просто в башку не лезут все эти кэши, предвыборки и прочие радости. Хотя дружки из Софтлаба меня уверяли, что они еще в состоянии заметно более серьезные железки руками программировать, причем, делать это сильно лучше имеющихся на тех платформах C-компиляторов

P.S. Я бы понял еще, если бы в качестве "языка для обучения программированию" назывался какой-нибудь оберон или модула, всяко приличнее, чем голимый паскаль. Но, вообще, похоже, языки с уклоном в функциональность рулят. Хоть их и пропагандирует г-н Луговской :-)

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

> Что же такого в питоне есть для интернет-сценариев? Может там изначально встроены какие то средства защиты, типа restricted python? нет. только лишь десяток либ, упрощающих стандартные ситуации.

"Изначально средств защиты" нет нигде. Включая, увы и ах, самые модные и раскрученные _языки_. А вот в качестве навесков, фрэймворков и сторонних либ - запросто.

> Системное программирование оставим. это у человека просто крыша съехала.

Знаете, огульно обвинять в съехавшей крыше - как правило, означает не замечать подтекающей крыши у себя. Но это так, наблюдение в сторону. А вот что понимать под "системным программированием" - я не знаю. Это может быть и программирование ядра, тут, понятное дело, "С, С и ничего кроме C" [у нас]. А вот если писать всякие околоадминистраторские штуковины - написали же RH'овцы, ничего, в среднем нормально получилось. Это, в общем, тоже "системное программирование". И к такому программированию питон, в общем, подходит не сильно хуже perl'а и заметно лучше баша, стандартная библиотека достаточно неплохо накрывает базовую libc-функциональность. Кроме того, для питона есть расширения, которые позволяют в рантайме позвать любую сишную либу a-la Visual Basic с его декларациями Win32 API. Худо-бедно, но вообще никаких врапперов писать не надо.

> "текстового программирования" - аналогично

Это literal programming, что-ли?

> "интеграции приложений" - это каким боком имея три типа данных (число, строка и список) можно что либо интегрировать?

Хе-хе._Типов_ там - счетное множество. RTFM. Сколько из них можно назвать типами данных - это вопрос, но явно не три.

> через os.system или popen2.* ?

А еще через python-module-omniORB ;-) Сурпрайз?. Да и привязки к ASN.1 я видал, кажется. Дальше продолжать? ;-) Впрочем, у нас нынче веб-сервисы заруливают, там вообще один _базовый_ тип данных - байт-строка. И ничего, прикиньте, обходятся ;-)

В общем, я повторяю предложение: если охота бездумно раскидываться какашками, я пас, и более не пытаюсь Вам мешать это делать. Если же речь о том, чтобы сбавить тон и пытаться искать аргументы - ну, тогда можно и подискутировать. Только тогда нужно будет объясниться, в чем заключается кастрация питона в альт.

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

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

G_Luck
()
Ответ на: комментарий от Sun-ch

Типа, нас тут учат, что учить программированию нужно на паскале и C.

Ядро линукса - довольно непл^W... показательный пример кода на C размера, достаточного, чтобы использовать его в качестве демонстрации "проектов на C" :-)

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

Не уяснил:
1) В питоне есть ссылки? Или нет как таковых переменных, содержащих
данные и всё (любая, даже простая переменная) есть ссылка на эти
данные?

Любая переменная - это ссылка. Просто сознаётся впечатление
boxing/unboxing для immutable типов

2) Записи хэшей не показались элегантными (чистыми). Перловые
удобнее:
{ Value => 100, Param => 200 }
без всяких гребанных кавычек.

a = { Value: 100, Param: 200 }

IMHO, то же самое

4) Как насчет анонимных функций в сложных типах данных:
$handler = {

INT => sub { ... }, -- обработчик целых чисел
FLOAT => sub { ... }, -- дробных
CHAR => sub { ... } -- строк
};

Поможет lambda

5) Как чуть чуть Перловику, уставшего от нагромождений $ чистый
питоновский синтаксис симпатичен. Отступы вообще не считаю
проблемой. Это дело редактора: долгой жизни Vim.


:)

6) А вот отсутсвие объявлений переменных не порадовало
my $a, $b; -- рулят.

Сначала тоже было неудобно. Потом привык. Глянь в сторону PyChecker

7) Есть какието операторы закавычивания qq { } ?

Это что такое? Есть многострочные кавычки

a = """
abc
def
"""

6) swith-case есть?
Нет.
if
elif
elif
...

либо dict с лямбдами

8) И чем все новые языки не радуют - своим отношением к elseif. Вот и тут снова-здорово.

В общем первые впечатления после Перла сугубо ПОЛОЖИТЕЛЬНЫЕ.

:)

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

a = { Value: 100, Param: 200 }

сорри, тут, конечно, нагнал

a = { 'Value': 100, 'Param': 200 },

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

>>> a = 3
>>> b = 4
>>> f = { a: 40, b: 'fff' }
>>> f
{3: 40, 4: 'fff'}

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

> 1) В питоне есть ссылки? Или нет как таковых переменных, содержащих данные и всё (любая, даже простая переменная) есть ссылка на эти данные? 

Think of Java. Причем, с точностью до особенностей каждого из базовых типов.

int, long, float, bool, вероятно, NoneType - "элементарные типы", переменные хранят значения этих типов "непосредственно".

str, вероятно, tuple - "сложный тип", к тому же immutable (ну, как и String в яве). Переменные (неявно) хранят ссылку на массив данных, но за счет неизменяемости этого массива, все выглядит как будто они хранят непосредственное значение.

list - "сложный mutable тип". Переменные хранят ссылки на собственно данные. Будьте внимательны. Возможны ситуации типа:

>>> a = [1, 2, 3]
>>> b = a
>>> print b
[1, 2, 3]
>>> a.append(4)
>>> print b
[1, 2, 3, 4]

в языках типа perl и C эта ситуация разрулена более наглядно. Есть еще weakref'ы, но это, скорее, имеет отношение к разборкам с gc, нежели к типизации.

> 2) Записи хэшей не показались элегантными (чистыми). Перловые удобнее:
{ Value => 100, Param => 200 }
без всяких гребанных кавычек.

Хе-хе, попробуйте в перле поставить туда вычисляемое значение в качестве ключа - вы поймете, что не все так здорово ;-). К тому же можно сделать так:

def my_hash(**kw):
.    return kw

и потом звать его так:

h = my_hash(a = 1, b = 2, c = "some string")

> 4) Как насчет анонимных функций в сложных типах данных:
$handler = {
INT => sub { ... }, -- обработчик целых чисел
FLOAT => sub { ... }, -- дробных
CHAR => sub { ... } -- строк
}; 

Хех. Наши функциональные друзья оборжут такой паттерн-матчин', лучше и не высовываться ;-). А так, вообще, есть лямбды и "вложенные функции".

6) А вот отсутсвие объявлений переменных не порадовало
my $a, $b; -- рулят. 

Ну, есть механизмы контроля за "объявленностью" переменных. Более синтаксически сложные, но тем не менее :-). Читать про locals() и, вероятно, решения, основанные на метаклассах и/или декораторах.

> swith-case есть? 

Ну, в C'шном понимании - нет.

> 7) Есть какието операторы закавычивания qq { } ? 

s1 = 'a\'b"c'
s2 = "a\"b'c"
s3 = """a"b'c"""

строки с тройными кавычками могут быть с переносами:

s4 = """\
a
b
c
"""

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

> Think of Java. Причем, с точностью до особенностей каждого из базовых типов.

Пожалуй, объяснение с boxing/unboxing более правильное. Хотя, вероятно, и менее удобное для запоминания :-)

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

"Изначально средств защиты" нет нигде. Включая, увы и ах, самые модные и раскрученные _языки_. А вот в качестве навесков, фрэймворков и сторонних либ - запросто.

Изначально в некоторых языках есть объявление переменных. Это не средство защиты ивне, но это в том числе средство защиты программиста от самого себя.

Изначально можно было бы ввести public и private функции и переменные в интерфейсах, модулях и объектах, как это сделали в том же restricted python. Тогда можно было бы говорить о какой то ориентации применения языка. А без этого получаем второй PHP...

А сторонние либы... ну так и говорите конкретно про сторонние либы, фремворки и прочее. zope, так zope. его ведь можно было бы и на php написать...

>Это может быть и программирование ядра, тут, понятное дело, "С, С и ничего кроме C" [у нас].

Ну стало быть не так уж сильно у меня крыша подтекает...

>А вот если писать всякие околоадминистраторские штуковины - написали же RH'овцы, ничего, в среднем нормально получилось.

К сожалению хуже, чем требуется и даже чем могли бы. В них отсутствует единый фреймворк, либы и хелперы. Просто набор биндингов в kudzu etc и набор скриптов, дергающих эти биндинги. Слабо для такой конторы, как редхат...

> Это, в общем, тоже "системное программирование".

Системное программирование возможно только там где опора идет только на системные средства. питон (интерперетатор) и тем более его опциональные модули к таковым не относится. Вот когда питон будет как перл, в basesystem - тогда можно будет доставать шашку и махать ею в свое удовольствие.

насчет замены баша питоном тоже сомнения. Недавно наткнулся на гадость. rpm -ta tarbol.gz работает из баша, а вот os.system("rpm -ta tarbol.gz") или popen2.popen2("pm -ta tarbol.gz") выдает ошибку. В чем дело, так и не понял. cvs co работает, tar -czf... тоже, а вот rpm -ta почемуто нет. Можно ли доверять такому системному средству? ORB, это не сюрприз, как и soap. еще бы его все понимали...

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

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

>> a = { 'Value': 100, 'Param': 200 },

Вот. Зачем односложные ключи (думаю именно такие ключи искпользуются максимально часто) здесь взяты в кавычки? Где чистота синтаксиса?

>> Есть какието операторы закавычивания qq { } ?
Это чтобы неэбаться в строках, где присутсвуют кавычки:
$c=db_select( qq{ SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY HH24:MI:SS') "CDate" FROM TTable WHERE A=:1 AND B=:2 }, [$a, $b] );
print $c->{CDate};

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

>>> a = { 'Value': 100, 'Param': 200 },

> Вот. Зачем односложные ключи (думаю именно такие ключи искпользуются максимально часто) здесь взяты в кавычки? Где чистота синтаксиса?

А чем это не чистота синтаксиса? Это не каша из не пойми чего - то ли функции, то ли переменные, то ли ключи. Ключи в кавычках - это та самая "защита от себя". Кстати, я что-то не очень понимаю, где может пригодиться такой хеш. Тяжелое наследие извращенной Перловой объектной ориентации?

> Это чтобы неэбаться в строках, где присутсвуют кавычки:

backslash, как делают все нормальные люди, теперь недоступен?

CybOrc
()
Ответ на: комментарий от anonymous

>> a = { 'Value': 100, 'Param': 200 }, >Вот. Зачем односложные ключи (думаю именно такие ключи искпользуются максимально часто) здесь взяты в кавычки? Где чистота синтаксиса? Потому что перед переменными не ставится $. Поэтому, и в примере это есть, если сказать a = { Value: 100, Param: 200 }, то в качестве ключей будут значения переменных Value и Param. Чистота синтаксиса как-раз присутствует :) Лексема "строка" всегда строка, и от контекста применения это, слава богу, не зависит

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

>> Есть какието операторы закавычивания qq { } ?
Это чтобы неэбаться в строках, где присутсвуют кавычки:
$c=db_select( qq{ SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY HH24:MI:SS') "CDate" FROM TTable WHERE A=:1 AND B=:2 }, [$a, $b] );
print $c->{CDate};

это сработает и в """..."""
>>> a = """SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY HH24:MI:SS') "CDate" FROM TTable WHERE A=:1 AND B=:2"""
>>> a
'SELECT TO_CHAR(SYSDATE, \'DD-MM-YYYY HH24:MI:SS\') "CDate" FROM TTable WHERE A=:1 AND B=:2'
>>>

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

> Системное программирование возможно только там где опора идет только на системные средства. питон (интерперетатор) и тем более его опциональные модули к таковым не относится. Вот когда питон будет как перл, в basesystem - тогда можно будет доставать шашку и махать ею в свое удовольствие.

Питон есть в basesystem в gentoo :) А, если где-то нет, что мешает установить и использовать? Опять религия? Если дистрибьютор ставит Perl в basesystem, то использовать надо только Perl? И кто после этого секта? :D

Жалко, не могу проверить сейчас ситуацию с rpm только...

CybOrc
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.