|
|
От того, что перл - мощный до безумия, крутой и удобный язык - менее кривым
он не становится.
И не надо писать мне письма, доказывая обратное :-)
Вот, мне говорят, что "язык развивается тысячами профессионалов по всему
миру вот уже лет 5 и всё в нём довольно строго и правильно - это никак
не кривизна, а несколько другой подход к синтаксу, позволяющий писать
намного более лаконичные и красивые ( да, да ) программы".
Я рад за язык, а еще больше - рад за язык "бейсик", "развиваемый" профессионалами
фирмы "микрософт" много лет, и на данный момент ставший фактически стандартным
(и уже "системным", то есть, входящим "в комплект") языком для платформы windows,
и, в связи с возможностью прозрачно обращаться к сотням как системных, так и
"внешних" active-x объектов, обладающий нехилой мощью.
При этом синтаксис бейсика строже и понятнее перла. Про семантику я и не говорю.
Ну и чего, после этого я должен гордо считать некривизну бейсика
доказанной? А разве нет - ведь он такой развитый, такой весь из себя мощный
и адванснутый - значит, кривым он быть не может! Для перла ведь мне так и доказывают -
раз мощный и развивался тысячами профессионалов - значит, не кривой.
Я не буду говорить про "do_something if condition", которое выполняется
справа налево (это что, локализация мозгов для арабских стран?). И не буду говорить
про
"sub func { ( $a, $b, $c ) = @_; }", очевидным (для любителей перла, но не для
тех, кто до этого писал на сях, паскалях или тех же бейсиках с джавами) образом
заменяющий строчки "sub func(a,b,c) {}" в нормальных языках. Где ещё
(в каком еще языке) внутри окавыченного выражения разворачиваются переменные??
Почему строковое сложение - это "точка"? Ааа, не отвечайте. Ответьте вот на что.
В большинстве языков я могу написать как-то так:
fp=open("file"); // открываем
read(fp,str); //читаем
write(fp,str); //пишем
close(fp); // закрываем
Или, скажем:
open fp, "file"
input fp, str
print fp, str
close fp
Или:
open(fp,"file")
str=read(fp)
print(fp,str)
close(fp)
Везде: open - функция (оператор, сисколл, библиотечный вызов), связывающий дескриптор файла
с собственно файлом ("открывающий" файл); input/read/get - функция (оператор и т. д.)
чтения из файла (по предъявленному дескриптору); print/write - вывод; close -
"закрытие".
В перле есть open().
В перле есть print.
В перле есть close().
Как называется оператор (функция, сисколл, либколл), осуществляющий
чтение? Про "галочки" не надо - это не "вызов подпрограммы" а какая-то
хакерская поделка вроде "++" и "--" в Си.
Либо уж пусть изначально отказываются от "операторного" синтаксиса и переходят
полностью на тарабарщину из галочек и палочек, либо пусть тянут "совместимость
со старыми программистами" до логического конца: хотя бы в пределах одной
группы действий обеспечивают возможность писать единообразный код.
А когда часть программы я могу
написать (и пишу) "классическими" методами, а в некоторых
местах меня заставляют учить хакерский диалект - это как-то непоследовательно...
"Если бы ты учил его больше, ты бы вник ( вероятно ) во всю красоту синтакса,
позволяющего творить что угодно в зависимости от опыта и знаний,
там где в более строгих языках вариантов просто не существует".
"Это хорошо, что вы такой зеленый и плоский - вы лежите на газоне, и вас не видно".
Я рад, конечно, что перл предоставляет кучу вариантов сделать то, что я хочу.
Жаль только, что в некоторых местах он не предоставляет простых и очевидных вариантов,
и заставляет выбирать из десятка "хакерских".
И еще раз. Перл - удобный (когда привыкнешь). Перл - мощный.
Но кривой от рождения.
| |
| |