|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Serge Chervjakov 2:5020/400 03 Sep 2004 18:37:21 To : Alexey Gradovtsev Subject : Вопросец -------------------------------------------------------------------------------- Fri Sep 03 2004 11:55, Alexey Gradovtsev wrote to Serge Chervjakov: AG> Ты не понял. STL (как пример) позволяет, не напрягаясь и не раздумывая, AG> свободно работать со списками, хэшами и пр. Hужна строка для быстрого AG> удобного манипулирования с данными? Пожалуйста: AG> string data; AG> if (data == "test") AG> data = "This is " + "a string"; Хм.. а сделай мне теперь что б быстро: $data=~s/aaa/bbb/g; (хотя бы просто замену, про регэксповую замену вообще молчу) - скока времени потратишь на поиск в stl соответствующей функции (или чего еще ты там искать будешь), а потом испробывание это в своем проекте? Уж про то скока мне потребовалось покопаться, что б нормально пронаследовать string, ПРОСТО добавив к нему одну функцию - replace - я уже писал в ru.cpp. И бесполезно говорить, что наследования делать не надо, а нада просто отдельную функцию - мне так неудобно и все... В перле, для того, что б пронаследовать HTML::TreeBuilder с целью добавления к нему своей небольшой функции по выбиранию картинок мне понадобилось минут 20 что б найти и прочитать инфу на тему наследования в перле (perldoc'а мне тогда почему-то не хватило - видимо надо было еще узнать, какие там грабли есть) и еще 10, что б добавить и опробовать эти функции (они уже были отлажены до этого не мной правда). В C++ я с этим 3 дня потратил - не меньше - наступая на различнейшие грабли (от нежелания наследоваться конструктора, до нежелания hash_map'а воспринимать мой новый класс). Hо я это таки сделал (ну тут можно было просто так - функцией обойтись обычной, но еще была цель - поподробнее о ООП в C++ узнать). Вот и вся разница... Если б грабли знал бы, то потратил бы не меньше часу, что б выяснить, какие из конструкторов нужну переопределять, какие можно оставить (т.е. часть из них добавить - посмотреть, не используются ли в проге другие какие)... AG> Hужен хэш? Пожалуйста: AG> hash_map<const char*, string> data; Хм.. а заполни ка мне его теперь вот так: %hash=(aa=>bb,cc=>dd) - именно в одну строку.. фик. Точно так же как - сделаешь что б: sub tt { return (1,2,3,4,5,6); } my @mas=tt(); а потом my %mas=tt(); Причем так, что б вернулись не только цифры, а куча всего еще.. я может по незнанию, но я такого не сделаю - повозиться придется... Или потом еще foreach my $elem(@mas) { } тоже придется как-то подменять - выяснять скока в массиве элементов и пускать фор. Или про хэш: my @mas=keys(%hash) - в C++ это какой-то изврат вообще полный с этим... У фор'а какая-то длиннючая предлиннючая строка получается, которую понять смогут очень немногие... И вот это все - это уже далеко не синтаксис.. хотя и похоже на синтаксис, но на самом деле - это продуманность хорошая.. Точно так же как и своеобразная поддержка ООП в перле.. Перл реально удобнее чем C++, хоть есть STL в C++, хоть нет.. Hо да - есть круг задач, которые приходится или удобнее решать с C++ (например для меня (но далеко не для всех) - небольшие программки к которым идет большое число обращений, пользующиеся уже почти готовым результатом - мне проще ее скомпилить, чем при каждой ее установке разбираться с mod_perl'ом на каждом новом серваке). Правда эт я все про CGI.. есть же еще и помимо этого... Hу вот ты говоришь - не заставлять же пользователей ставить интерпретатор перла... Hо спрашивается - а что собственно опера делает с жавой?? Что мешает поставлять перл вместе с программой?? Это раньше было проблематично - дискетки по 1,4 метра (я застал еще даже и 5-ти дюймовки по 800кило, но давно это было:) ).. а щаз - все ж на болванках по 700 метров - что мешает туда кинуть эти 2-3 метра перла??? Если оно удобнее конечно.. Хотя жаву я не видел, не могу знать что это за зверюга - может и что-нибудь тоже достаточно удобное.. --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/16679094f67d8.html, оценка из 5, голосов 10
|