Написал ряд сайтиков на Perl и PHP. PHP это какой-то кошмар, а не язык. ООП есть, но переменные-атрибуты работают непредсказуемо. Так разобраться и не удалось: потёр все три класса и переписал на функциональном языке. Но оказалось, что передать глобальную переменную в функцию это тоже проблема. Плюнул и переписал все 15 кб кода на Perl.
Perl куда удобнее. Но перлистов в России не найти днём с огнём, а PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на уродствах типа PHP, а на красивом и понятном Perl нет?
15.03.06 16:58: Перенесено модератором из 'Священные войны' — Kupaev
Слава Шевцов wrote: > Perl куда удобнее. Но перлистов в России не найти днём с огнём, а > PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на > уродствах типа PHP, а на красивом и понятном Perl нет?
На Java сайты писать надо...
Здравствуйте, Cyberax, Вы писали:
C>Слава Шевцов wrote: >> Perl куда удобнее. Но перлистов в России не найти днём с огнём, а >> PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на >> уродствах типа PHP, а на красивом и понятном Perl нет? C>На Java сайты писать надо...
Можно еще написать маленький шлюз на чем-нибудь. Например, на том же С++, а всю обработку делать хранимками в базе данных. Как-то раз пришлось принимать участие в подобном проекте...
Horror_Infinity wrote: >> > Perl куда удобнее. Но перлистов в России не найти днём с огнём, а >> > PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на >> > уродствах типа PHP, а на красивом и понятном Perl нет? > C>На Java сайты писать надо... > Можно еще написать маленький шлюз на чем-нибудь. Например, на том же > С++, а всю обработку делать хранимками в базе данных. Как-то раз > пришлось принимать участие в подобном проекте...
Ага, а еще можно писать CGI на ассемблере. По поддерживаемости будет
примерно одинаково.
Здравствуйте, Cyberax, Вы писали:
>> Perl куда удобнее. Но перлистов в России не найти днём с огнём, а >> PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на >> уродствах типа PHP, а на красивом и понятном Perl нет? C>На Java сайты писать надо...
Java для этого слишком многословен, как и С++. Кроме того, мне не очень нравится непредсказуемость с выделением Java памяти. Это не считая того, что Java-программисты самые высокооплачиваемые в России. А для больших и сложных гетерогенных сайтов Java может быть хорошим решением.
СШ>Написал ряд сайтиков на Perl и PHP. PHP это какой-то кошмар, а не язык. ООП есть, но переменные-атрибуты работают непредсказуемо. Так разобраться и не удалось: потёр все три класса и переписал на функциональном языке. Но оказалось, что передать глобальную переменную в функцию это тоже проблема. Плюнул и переписал все 15 кб кода на Perl.
А help не пробовали читать? Я писал на PHP, проблем не возникало. Единственное что — он на мой взгляд рассчитан на небольшие проекты типа "сделал-забыл".
...Ei incumbit probatio, qui dicit, non qui negat...
_>А help не пробовали читать? Я писал на PHP, проблем не возникало. Единственное что — он на мой взгляд рассчитан на небольшие проекты типа "сделал-забыл".
Да, и кстати большой плюс PHP — очень легко во всем разобраться
...Ei incumbit probatio, qui dicit, non qui negat...
Здравствуйте, Cyberax, Вы писали:
C>Серьезно, связка Hibernate+Spring+Tapestry/JSF в Java позволяет писать C>сайты так, что никакому RubyOnRails не снилось. В качестве одного из C>лучших примеров — можно посмотреть Confluence
Согласен. Но обычно есть несколько "но". Сайт сначала должен быть создан автором. И только потом, когда концепция реализована и основные вектора развития сайта заданы, он может передаваться на поддержку наёмным программистам. Увы, но иначе не получается. И здесь Java с Asp.Net значительно уступают Perl с PHP.
Почему с Java это реализовать труднее, чем c Perl? Во-первых, Java далеко не простой язык. Во-вторых, программисты слишком дорогие. В-третьих, скорость разработки значительно ниже Perl. Я бы брал для сложных проектов Asp.Net. И програмисты более дешёвые, и платформа очень хорошая, и скорость разработки намного выше, чем Java.
Здравствуйте, vitaly_spb, Вы писали:
СШ>>Написал ряд сайтиков на Perl и PHP. PHP это какой-то кошмар, а не язык. ООП есть, но переменные-атрибуты работают непредсказуемо. Так разобраться и не удалось: потёр все три класса и переписал на функциональном языке. Но оказалось, что передать глобальную переменную в функцию это тоже проблема. Плюнул и переписал все 15 кб кода на Perl.
_>А help не пробовали читать?
Есть класная книжка "Разработка Web-приложений с помощью PHP и MySQL".
_>Я писал на PHP, проблем не возникало. Единственное что — он на мой взгляд рассчитан на небольшие проекты типа "сделал-забыл".
Раньше — да. Сейчас там есть ООП, но какое-то жутко непривычное и странное (я С++-шник) Он позволяет делать достаточно гибкие и хорошо поддерживаемые сайты. Но врубиться в него трудно. С Perl намного легче шло изучение.
Слава Шевцов wrote: >> > Perl куда удобнее. Но перлистов в России не найти днём с огнём, а >> > PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на >> > уродствах типа PHP, а на красивом и понятном Perl нет? > C>На Java сайты писать надо... > Java для этого слишком многословен, как и С++.
А вы пишете программы для IOC (International Obfuscated Contest)? В той
же IDEA код будет писаться за счет умного autocomplete'а в разы быстрее,
чем на Перле.
> Кроме того, мне не очень нравится непредсказуемость с выделением Java памяти.
Ага, а вы попробуйте посоздавать циклические ссылки на объекты а Перле
А вообще, в серверах с памятью проблем обычно нет. Можно выделить
мегабайт 100 и не мучаться.
> Это не считая того, что Java-программисты самые высокооплачиваемые в России.
Сами же жалуетесь, что PHP — язык для школьников-вебмастеров.
> А для больших и сложных гетерогенных сайтов Java может быть хорошим > решением.
Просто Java-технологии неплохо масштабируются. Но простой сайт с их
помощью тоже писать будет проще.
Здравствуйте, vitaly_spb, Вы писали:
_>>А help не пробовали читать? Я писал на PHP, проблем не возникало. Единственное что — он на мой взгляд рассчитан на небольшие проекты типа "сделал-забыл".
_>Да, и кстати большой плюс PHP — очень легко во всем разобраться
Поможешь? Писал на PHP-классах такую штуку:
class ArchiveDatabase
{
var $m_db; // MySql базаvar $m_userid; // Номер сайта-каталогаvar $m_path; // Путь к файламvar $m_template; // Кешированный шаблонvar $m_templatename; // Наименование закешированного шаблонаfunction ArchiveDatabase($path, $userid)
{
$this->$m_db = mysql_connect("localhost", "что-то", "что-то");
if ($this->$m_db === false)
{
echo"Не могу соединиться с базой 'что-то'!<br>";
echo mysql_error();
exit;
}
mysql_select_db("что-то") or die(mysql_error());
$this->$m_path = $path;
$this->$m_userid = $userid;
}
function LoadTemplate($templatename)
{
if ($templatename != $this->$m_templatename)
{
$this->$m_template = file($this->$m_path."/template/ar_$templatename.html");
$this->$m_templatename = $templatename;
}
return $this->$m_template;
}
}
Так он мне во все переменные класса
var $m_db; // MySql базаvar $m_userid; // Номер сайта-каталогаvar $m_path; // Путь к файламvar $m_template; // Кешированный шаблонvar $m_templatename; // Наименование закешированного шаблона
загнал $userid. То есть при любом вызове $this->$m_template === $this->$m_userid. Вот тебе и ООП от PHP. Таких трюков в нём прилично.
Слава Шевцов wrote: > C>Серьезно, связка Hibernate+Spring+Tapestry/JSF в Java позволяет писать > C>сайты так, что никакому RubyOnRails не снилось. В качестве одного из > C>лучших примеров — можно посмотреть Confluence > Согласен. Но обычно есть несколько "но". Сайт сначала должен быть создан > автором. И только потом, когда концепция реализована и основные вектора > развития сайта заданы, он может передаваться на поддержку наёмным > программистам. Увы, но иначе не получается. И здесь Java с Asp.Net > значительно уступают Perl с PHP.
Нет. Java будет уступать только если сам автор не знает Java.
Стек Hibernate+Spring+Tapestry специально предназначен для создания
масштабируемых приложений. Есть все средства для этого, начиная с
компонентной модели web-страниц, и заканчивая инструментами для
автоматической миграции схемы БД при изменении объектной модели.
> Почему с Java это реализовать труднее, чем c Perl? Во-первых, Java > далеко не простой язык. Во-вторых, программисты слишком дорогие.
А вы думаете, что на простом (хотя Perl намного сложнее Java) языке
проще делать сложные вещи?
> В-третьих, скорость разработки значительно ниже Perl. Я бы брал для > сложных проектов Asp.Net. И програмисты более дешёвые, и платформа очень > хорошая, и скорость разработки намного выше, чем Java.
Tapestry — это и есть прямой аналог ASP.NET (похожая компонентная
идеология, но с более правильной архитектурой). Hibernate — это
инструмент для OR-mapping'а. Spring — это инструмент для связывания
всего этого вместе.
И скорость разработки на Java, кстати, получается быстрее чем в ASP.NET.
Так как Tapestry ориентирован не на VB6-developers.
Здравствуйте, Cyberax, Вы писали:
>>> > Perl куда удобнее. Но перлистов в России не найти днём с огнём, а >>> > PHP-шники втрое дешевле. Вот и мучайся, человечище. Почему люди пишут на >>> > уродствах типа PHP, а на красивом и понятном Perl нет? >> C>На Java сайты писать надо... >> Java для этого слишком многословен, как и С++. C>А вы пишете программы для IOC (International Obfuscated Contest)? В той C>же IDEA код будет писаться за счет умного autocomplete'а в разы быстрее, C>чем на Перле.
Я пишу программы для людей
>> Кроме того, мне не очень нравится непредсказуемость с выделением Java памяти. C>Ага, а вы попробуйте посоздавать циклические ссылки на объекты а Перле
Хорошо
C>А вообще, в серверах с памятью проблем обычно нет. Можно выделить C>мегабайт 100 и не мучаться.
Не всегда можно поставить выделенные сервер. Обычно есть либо стандартный хостинг, либо дешёвый надёжный VDS типа моего любимого FirstVDS. Сервер это уже $100 в месяц + администрирование.
>> Это не считая того, что Java-программисты самые высокооплачиваемые в России. C>Сами же жалуетесь, что PHP — язык для школьников-вебмастеров.
Почему жалуюсь? Радуюсь. Это же дешёвая рабочая сила. В отличие от Java-разработчиков.
>> А для больших и сложных гетерогенных сайтов Java может быть хорошим >> решением. C>Просто Java-технологии неплохо масштабируются. Но простой сайт с их C>помощью тоже писать будет проще.
Ничуть. Книги по Java пишут такие Гуру, что я когда-то дня три бился над простой вещью: как запустить написанную Java программу на выполнение. Все авторы считали это настолько очевидным, что никто и нигде этого не написал!
Здравствуйте, Cyberax, Вы писали:
C>И скорость разработки на Java, кстати, получается быстрее чем в ASP.NET. C>Так как Tapestry ориентирован не на VB6-developers.
Это почему? В Java объекты что ли обектно-ориентированней?
Здравствуйте, Слава Шевцов, Вы писали:
СШ>Здравствуйте, vitaly_spb, Вы писали:
_>>>А help не пробовали читать? Я писал на PHP, проблем не возникало. Единственное что — он на мой взгляд рассчитан на небольшие проекты типа "сделал-забыл".
_>>Да, и кстати большой плюс PHP — очень легко во всем разобраться
СШ>Поможешь? Писал на PHP-классах такую штуку:
СШ>
СШ>class ArchiveDatabase
СШ>{
[...]
СШ>
СШ>загнал $userid. То есть при любом вызове $this->$m_template === $this->$m_userid. Вот тебе и ООП от PHP. Таких трюков в нём прилично.
Никогда такого не встречал. Хотя программировал на php не мало. И еще я всегда писал что-то вроде
Здравствуйте, __MasteR__, Вы писали:
_>>>Да, и кстати большой плюс PHP — очень легко во всем разобраться
СШ>>Поможешь? Писал на PHP-классах такую штуку:
СШ>>
СШ>>class ArchiveDatabase
СШ>>{
__M>[...]
СШ>>
СШ>>загнал $userid. То есть при любом вызове $this->$m_template === $this->$m_userid. Вот тебе и ООП от PHP. Таких трюков в нём прилично.
__M>Никогда такого не встречал. Хотя программировал на php не мало.
Я про то и говорю: где-то напортачил, а где — фиг его поймёшь. Может на хостинге PHP не так скомпилирован, может версия не та, может $ не нужен, может операционка не нравится, может ещё что. Он же не ругается ни пол словом, только переменные перезаписывает.
__M>даже не знаю, можно ли так как у тебя...
Тоже не знаю. Транслятор компилит, при отладке не ругается. Но явно что-то не то. Кстати, опустить знак $ я бы просто не додумался. Спасибо ты подсказал.
Здравствуйте, Cyberax, Вы писали:
>> C>Серьезно, связка Hibernate+Spring+Tapestry/JSF в Java позволяет писать >> C>сайты так, что никакому RubyOnRails не снилось. В качестве одного из >> C>лучших примеров — можно посмотреть Confluence >> Согласен. Но обычно есть несколько "но". Сайт сначала должен быть создан >> автором. И только потом, когда концепция реализована и основные вектора >> развития сайта заданы, он может передаваться на поддержку наёмным >> программистам. Увы, но иначе не получается. И здесь Java с Asp.Net >> значительно уступают Perl с PHP. C>Нет. Java будет уступать только если сам автор не знает Java.
Попрошу уточнить: какой именно стаж нужен?
P.S. В приведённом примере автор никогда не знает Java. По определению. Обычно такой человек действует следующим образом: у него появилась идея и он решил её реализовать. Взял первый подходящий язык и написал код. Язык он изначально может не знать.
C>Стек Hibernate+Spring+Tapestry специально предназначен для создания C>масштабируемых приложений. Есть все средства для этого, начиная с C>компонентной модели web-страниц, и заканчивая инструментами для C>автоматической миграции схемы БД при изменении объектной модели.
Это всё здорово. Но это нужно знать и знать глубоко. Заодно иметь практический опыт обхождения узких мест и оптимизации. Например, я понял, что в Asp.Net нужны несколько человек — так разнятся знания для написания ядра сайта, связки с MS SQL и html-интерфейса. И лучше со стажем от 2-х лет, иначе они просто не смогут взглядом охватить архитектуру Asp.Net. Что мы имеем в случае Java?
>> Почему с Java это реализовать труднее, чем c Perl? Во-первых, Java >> далеко не простой язык. Во-вторых, программисты слишком дорогие. C>А вы думаете, что на простом (хотя Perl намного сложнее Java) языке C>проще делать сложные вещи?
На простом языке проще делать простые вещи и сложнее сложные. На сложном языке сложно делать простые вещи и проще сложные. На ассемблере сложно делать любые вещи.
C>Tapestry — это и есть прямой аналог ASP.NET (похожая компонентная C>идеология, но с более правильной архитектурой). Hibernate — это C>инструмент для OR-mapping'а. Spring — это инструмент для связывания C>всего этого вместе.
C>И скорость разработки на Java, кстати, получается быстрее чем в ASP.NET. C>Так как Tapestry ориентирован не на VB6-developers.
Спорить не буду: не сравнивал и обзоров по сравнению этих языков в глаза не видел.
Здравствуйте, Слава Шевцов, Вы писали:
СШ>Поможешь? Писал на PHP-классах такую штуку:
СШ>Так он мне во все переменные класса
СШ>
СШ>var $m_db; // MySql база
СШ>var $m_userid; // Номер сайта-каталога
СШ>var $m_path; // Путь к файлам
СШ>var $m_template; // Кешированный шаблон
СШ>var $m_templatename; // Наименование закешированного шаблона
СШ>
СШ>загнал $userid. То есть при любом вызове $this->$m_template === $this->$m_userid. Вот тебе и ООП от PHP. Таких трюков в нём прилично.
Хе-хе:
$a = 'cool';
$b = 'a';
print $$b; // :)
class dummy
{
var $var1;
var $var2;
function dummy()
{
$this->var1 = 'cool';
$this->var2 = 'var1';
print $this->$var2; // :)
}
}
Слава Шевцов wrote: > C>Нет. Java будет уступать только если сам автор не знает Java. > Попрошу уточнить: какой именно стаж нужен?
Не знаю, все от программиста зависит. Ну обычно хотя бы пол-года.
> P.S. В приведённом примере автор никогда не знает Java. По определению. > Обычно такой человек действует следующим образом: у него появилась идея > и он решил её реализовать. Взял первый подходящий язык и написал код. > Язык он изначально может не знать.
Ну так кто мешает так делать с Java?
> Это всё здорово. Но это нужно знать и знать глубоко. Заодно иметь > практический опыт обхождения узких мест и оптимизации. Например, я > понял, что в Asp.Net нужны несколько человек — так разнятся знания для > написания ядра сайта, связки с MS SQL и html-интерфейса. И лучше со > стажем от 2-х лет, иначе они просто не смогут взглядом охватить > архитектуру Asp.Net. Что мы имеем в случае Java?
Все зависит от конкретного программиста. Например, Hibernate я освоил за
несколько дней и с тех пор отвечаю по нему на вопросы коллег
Tapestry на начальном уровне (набросать страничку и т.п.) освоилась за
пару часов. Но у меня уже был опыт работы со Struts.
> C>А вы думаете, что на простом (хотя Perl намного сложнее Java) языке > C>проще делать сложные вещи? > На простом языке проще делать простые вещи и сложнее сложные. На сложном > языке сложно делать простые вещи и проще сложные. На ассемблере сложно > делать любые вещи.
Понимаете, на Perl'е вы будете писать что-то типа
print "<html><body>..."
То есть просто выводить текст страницы.
В Tapestry я буду собирать страницу из компонентов — примерно как это
делается в Delphi или других RADах, но с учетом особенностей WWW.
Догадываетесь как будет быстрее делать?
> C>И скорость разработки на Java, кстати, получается быстрее чем в ASP.NET. > C>Так как Tapestry ориентирован не на VB6-developers. > Спорить не буду: не сравнивал и обзоров по сравнению этих языков в глаза > не видел.
Прямых обзоров не видел (написать, что ли?). Есть
JSF vs ASP.NET http://www.codeguru.com/csharp/.net/net_general/toolsand3rdparty/article.php/c11139/
Tapestry vs JSF http://www.theserverside.com/articles/article.tss?l=JSFTapestry