LINUX.ORG.RU
да не хорош он, он просто проще всего.

я на нем тоже раньше писал, но со временем понял всю кривость монолитной архитектуры (когда для добавления драйвера БД надо целиком пересобирать интерпретатор) и пересел на perl. Чего и вам желаю :))

gr_buza ★★★★
()
Ответ на: комментарий от gr_buza
Perl - хорошо, только вот разве там открытие файла, получение чего-то из инета по HTTP и т. д. создают exceptions, если действие прошло неудачно? Приходится вручную после каждого действия писать or die, or next и т. д.
anonymous
()
Ответ на: комментарий от gr_buza
>для добавления драйвера БД надо целиком пересобирать интерпретатор

Неправда ваша. extension=mysql.so из php.ini не о чем не говорит?

SatanClaus ★★★
()
Ответ на: комментарий от anonymous
>А для чего нужен Zope?

Обьектная архитектура, отделение данных от кода, и полная управляемость безопасностью, плюс к этому "удобства перевода" например, включение TAL-METAL языка

SatanClaus ★★★
()
Ответ на: комментарий от Pi
Нет, поставить один вокруг всей программы. Если что-то прошло не так, выдать ошибку и прекратить работу или перейти на следующюю итерацию цикла.
anonymous
()
Ответ на: комментарий от gr_buza
>а что-то вроде CPAN shell в пхп есть Да, это удобная штука.
SatanClaus ★★★
()
Потому что пишут м&^%ки. Ничем не хорош. В fido7.ru.php недавно была интересная дискуссия на эту тему, можешь заглянуть.
Miguel ★★★★★
()
Ответ на: комментарий от Pi
>и кстати мы тут говорим не о чём: на месте die может быть обработчик ошибки ;)

Напиши эту же прогу на Perl:

#!/usr/bin/env python

try:
    func1
    func2
    func3
    func4
    func5
except:
    print "failed"

func6
anonymous
()
Ответ на: комментарий от anonymous
Скобочки забыл. :)

#!/usr/bin/env python

try: func1() func2() func3() func4() func5() except: print "failed"

func6()

anonymous
()
Ответ на: комментарий от Pi
>Вокруг каждого открытия файла, GET-запроса и т. д. ставить по одному try-catch?

Ну примерно так наверно и делают когда парсят атрибуты в XML:) Хотя может и есть выход попроще...

SatanClaus ★★★
()
Ответ на: комментарий от Miguel
> В fido7.ru.php недавно была интересная дискуссия на эту тему, можешь заглянуть.

Ламерский вопрос, а эта эха в NNTP read-only, или туда нефидошнегам писать можно?

shimon ★★★★★
()
Ответ на: комментарий от Miguel
Собаки лают, караван идет.

Если люди руководствуются доводами которые вам непонятны, это ещё не значит, что они м%даки.

r_asian ★☆☆
()
Ответ на: комментарий от anonymous
Или лучше покажи на Perl:

#!/usr/bin/env python

try:
    print func1(func2(func3()))
except:
    print "operation failed"

try:
    cleanup()
except:
    print "cleanup failed"
anonymous
()
Ответ на: комментарий от Legioner
Одна проблема: при неудачном заверешении func3 или func2, func1 отработает с неинициализированным значением, и operation failed не будет выведено.
anonymous
()
Ответ на: комментарий от Legioner
По-нормальному в Perl тебе придётся писать

eval {
    func1(func2(func3() or die()) or die());
};

что абсолютно нечитабельно.
anonymous
()
Ответ на: комментарий от anonymous
% cat test.cgi
#!/usr/bin/perl
use warnings;
use strict;

sub func1
{
    print("func1:$_[0]\n");
}
sub func2
{
    print("func2:$_[0]\n");
    return $_[0];
}
sub func3
{
    die("bye");
    return "wtf";
}

eval {
    func1(func2(func3()));
};
if ($@ ne '') {
    printf("Operation failed\n");
}
% ./test.cgi
Operation failed



Или я что то не так понял?
Legioner ★★★★★
()
Ответ на: комментарий от anonymous
Функции ессно стандартные, а не твои.
anonymous
()
Ответ на: комментарий от anonymous
зачем это мне так придётся писать? Если func1 кидает исключение, то не придётся. Если не кидает, то придётся, но это уже проблемы func1 а не perl-а. Или в python-е при возврате чего-то наподобие undef кидается исключение? Если сильно хочется исключений - напишите врапперы для библиотечных функций и используйте их.
Legioner ★★★★★
()
Ответ на: комментарий от Legioner
Ты не понял, что стандартные функции Perl типа (open и все остальные) die никогда не вызывают. И при обращении к несуществующему элементу массива ничего кроме предупреждения не будет. В Python exception генерирует любое некорректное действие.
anonymous
()
Ответ на: комментарий от Legioner
>Если сильно хочется исключений - напишите врапперы для библиотечных функций и используйте их.

А это ничего, что у меня функций сто вызывается?

anonymous
()
Почему бОльшая часть страны ездит на ВАЗах? Чем они так хороши? Когда ответишь на этот вопрос, поймешь чем хорош PHP
anonymous
()
Ответ на: комментарий от anonymous
> А для чего нужен Zope?

Чтоб Django не учить, вестимо. Монстр ещё тот, ваша Зопа, вроде опенофиса.

anonymous
()
Ответ на: комментарий от anonymous
>Монстр ещё тот, ваша Зопа, вроде опенофиса.

Да уж, но ент крепостей которые не взяли бы большевики. Я вот яростно кончил от этой книжки slav0nic.xss.ru/books/python/ru_Zope3.pdf ну и сейчас в процессе от этой http://www.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/FrontPage/Zo...

SatanClaus ★★★
()
Ответ на: комментарий от SatanClaus
Всё-таки советую почитать и про Django, хота бы http://www.djangoproject.com/documentation/tutorial1/.

Цитата из Гвидо: "My personal favorite -- and I expect that that will remain a personal favorite for a long time -- is something named Django. ... I highly recommend it." Оригинал тут: http://twit.iad.cachefly.net/FLOSS-011.ogg

anonymous
()
Ответ на: комментарий от anonymous
>Всё-таки советую почитать и про Django

Обижаете;) Держу руку на пульсе. Весьма приятная вещь. Но от twisted может срывать репу гораздо быстрее:))). Всё красиво.

SatanClaus ★★★
()
Ответ на: комментарий от anonymous
>Почему бОльшая часть страны ездит на ВАЗах? Чем они так хороши? Когда ответишь на этот вопрос, поймешь чем хорош PHP

Вызывающе неверная информация!

В настоящее время, практически все пересаживаются на инномарки!

ManJak ★★★★★
()
Ответ на: комментарий от anonymous
>Почему бОльшая часть страны ездит на ВАЗах? Чем они так хороши?

Потому что денег нет. Причем тут пых-пых?

anonymous
()
а почему в perl (в отлитие от php) нельзя написать

if ( 1 )
  print 2;

а нужно обязательно

if ( 1 )
{
  print 2;
}
theserg ★★★
()
Ответ на: комментарий от anonymous
> Вокруг каждого открытия файла, GET-запроса и т. д. ставить по одному eval?

А теперь еще задай вопрос почему все так не любят PHPшников

anonymous
()
Ответ на: комментарий от anonymous
Почему не любят?
Если ПХПшница, то с удовольствием =)
А ПХПшники - пофиг просто.
Сам с ПХП баловался, ща просто нафиг не надо, т.к. нет таких задач.

Язык програмирования создается не для любви, а для решениия КОНКРЕТНЫХ задач.

Это, конечно мое ИМХО
ManJak ★★★★★
()
Ответ на: комментарий от ManJak
> Вызывающе неверная информация! > В настоящее время, практически все пересаживаются на инномарки!

Ах%еть, дайте две! А что за страна, если не секрет?

p.s. Кроме качеств "средства" всегда необходимо учитывать и качество инфраструктуры. Пых-пых, как и ВАЗы занимают свой ареал, чтож поделаешь, если он (ареал) такой необъятный.

r_asian ★☆☆
()
Ответ на: комментарий от ManJak
> Если ПХПшница, то с удовольствием =)

Сам тащюсь ....

> Язык програмирования создается не для любви, а для решениия КОНКРЕТНЫХ задач.

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

anonymous
()
Ответ на: комментарий от SatanClaus
> Но от twisted может срывать репу гораздо быстрее:))). Всё красиво.

Позволю себе ещё цитату из того же источника: "Django is... Is sort of... I would call it probably a second generation web framerowk in Python while the first generation would be things like Zope and Twisted". :)

anonymous
()
Ответ на: комментарий от theserg
>не хочу, хочу как привык и как всем понятно

if 1: print 2

Python

anonymous
()
Ответ на: комментарий от anonymous
>>Вокруг каждого открытия файла, GET-запроса и т. д. ставить по одному eval?

>А теперь еще задай вопрос почему все так не любят PHPшников

Потому что им как правило пофиг, открылся файл или нет, просто чешут дальше? :)

anonymous
()
Ответ на: комментарий от anonymous
>В Python exception генерирует любое некорректное действие.

Сначала конечно неприятно, но потом это экономит время при отладке.

SatanClaus ★★★
()
Ответ на: комментарий от SatanClaus
>Сначала конечно неприятно, но потом это экономит время при отладке.

Да ладно не приятно! Я только из за этого и перешёл с Perl на Python. :)

anonymous
()
Ответ на: комментарий от anonymous
Django это IMHO убийца PHP. Но идеи в ней нет. Вот в Zope есть.
SatanClaus ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.