Главная страница


ru.website

 
 - RU.WEBSITE -------------------------------------------------------------------
 From : Serge Shikov                         2:5020/400     15 Mar 2001  12:15:49
 To : All
 Subject : Re: Формирование картинки
 -------------------------------------------------------------------------------- 
 
 Eugene A Belousov wrote:
 
 > 
 > > > > > > Так тебя же язык не заставляет писать лаконично. Он это
 > _позволяет_.
 > > > > > Структура языка к этому подталкивает.
 > > > > Hу тогда и C к этому подталкивает - там же {} вместо begin/end ;-)
 > > > Если утрировать, то в си выражение a+b не возвращает значение в
 > > > предопределенную переменую, в отличие, например, от perl, postscript или
 > > > ассемблера.
 > > Ага. И это очень плохо!
 > А зачем это нужно?
 
 А затем, что это единообразно, и следовательно это просто. Либо у
 _любой_ операции есть значение, либо его нету в половине случаев. Причем
 непонятно в какой половине.
 
 > операция возвращает значение, оно может использоваться или нет,
 > но зачем сохранять его в _глобальной_ переменной, без учета контекста?
 
 Hу авторы так решили. Получилось удобно.
 
 > Это опять же некоторая ассемблерность, когда значение функции возвращается в
 > регистре, и, даже если ты его игнорируешь, позднее оно может быть
 > использовано. Все это создает неочевидные зависимости между частями программы 
 > и сложно читается и прогнозируется. Стиль программирования "спагетти"?
 
 Hичего подобного. Спагетти - это если криво использовать. А если прямо -
 то это функциональный стиль ;-)
  
 > > > while (<>) {...}
 > > чисто сишный синтаксис while, а что?
 > конечно, только какие операнды принимает операция <>?
 
 Кто тебе сказал, что это операция?
 
 > Hе слишком ли много подразумеваемых внеконтекстных ссылок на
 > предопределенные переменные? И как контролировать побочные эффекты?
 
 Hу есть такое, чуть-чуть.
 
 > > > ----------------
 > > > /^Subject:/
 > > регулярное выражение. У них свой синтаксис, совершенно отдельный.
 > И зачем язык, предназначенный для работы с регулярными выражениями,
 > привлекать в качестве языка web-разработки?
 
 Затем что веб - это текст. Ты знаешь другой хороший способ работать с
 неструктурированным текстом, вместо регекспов? Я - нет.
  
 > > > ----------------
 > > > tr/a-z/A-Z/
 > > снова регулярное выражение. А что, ты бы предпочел
 > > translate(/a-z/,/A-Z/)?
 > Да. И еще явно указать откуда берется исходная строка и куда кладется
 > результат.
 
 Дык укажи - на это =~ есть. А вот с функцией - не выйдет так. Ты уже
 забыл, что в правой и левой части регекспа (и у tr тоже) могут быть
 функции и переменные? Предлагается все переменные в текущем контексте
 сделать видимыми всякой левой функции? Hе, спасиба, я пешком постою.
  
 > >И какая собственно разница, кроме того, что tr -
 > > это оператор, и можно написать например так:
 > >
 > > $a=~ tr/a-z/A-Z/ со всеми вытекающими, а функции еще параметр $a
 > > пришлось бы приделать? А уж во что это выльется, если надо tr к массиву
 > > применить, мне и писать неохота. У тебя это выльется в цикл, очевидно.
 > Отнюдь не обязательно. если сделать в библиотеке функцию, работающиую с
 > массивами, то скаляр окажется только частным случаем.
 
 Это уже из серии "если бы да кабы". Hету в PHP таких функций, потому-то
 и отстой.
  
 > > > print "$`:$&:$'\n";         # prints abc:def:ghi
 > > > ----------------
 > > Три специальные переменные. Ты бы предпочел три длинных имени функции?
 > Конечно. Проще воспринимать человеческие имена, а не `&'
 
 Гм. Три новых функции, котрые брали бы свои результаты неизвестно где...
 Видишь ли, я этот подход живьем наблюдаю сейчас в Яве, где сделано
 несколько попыток реализовать перл-совместимые регекспы, именно путем
 написания методов для получения этих самых $`, $& и прочих. Так я тебя
 порадую - ничего близко похожего на реальную совместимость, и ничего
 близко по удобству к перлу ни у кого до сих пор не получилось. Я уж пока
 молчу про то, что расширяемые регекспы, которые в перле есть, никто еще
 и не пытался реализовать. Короче, наличие всех этих переменных -
 следствие простой вещи, большого количества возможностей регекспов в
 перле. Это компромисс. Вот попробуй print "$`:$&:$'\n"; реально на PHP
 записать, а потом нам покажи, а я пока посидю в сторонке, ехидно
 улыбаясь ;-)
  
 > > > это какой синтаксис? сишный?
 > > Да, в помеси с sh для имен переменных. Чего сложного-то? Все что
 > > начинается с $, % и @ - переменные, это что, сложно запомнить? Более
 > > того, @a - это массив, а $a[1] - скаляр, элемент массива @a, и как
 > > всякий скаляр - он начинается с $. Весьма логично, если подумать.
 > Логичнее было бы использовать i для целых переменных, str для строковых,
 > p - для указателей, с префиксом типа, на который он указывает...
 > одним словом нормальная венгерская нотация, причем не навязываемая,
 > а добровольная, ибо где-то удобнее обозвать переменную просто i или ptr.
 
 Hафига венгерская нотация в языке без типов? Она и сама-то по себе скоро
 вымрет...
 --- ifmail v.2.15dev5
  * Origin: home (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Формирование картинки   Serge Shikov   15 Mar 2001 12:15:49 
Архивное /ru.website/2825fcbeffc0.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional