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 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.