Re[2]: Почему так ругают PHP?.
От: frogkiller Россия  
Дата: 23.02.09 08:26
Оценка: -1
Здравствуйте, Аноним, Вы писали:

А>а вот


А>
А>std::string s;
А>s="%опа"+"есть"+"а"+"слова"+"нет";
А>


А>не работает.


Замечу, что работает более простой вариант:
std::string s;
s="%опа" " есть" " а" " слова" " нет";


Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re: Почему так ругают PHP?.
От: Аноним  
Дата: 20.05.09 02:51
Оценка: 1 (1) -1
Здравствуйте, neFormal, Вы писали:

F>Собственно, сабж..


Не разобрался как править статью в вики, так что:

class A
{
    function hello()
    {
        print 'Hello I\'m A.';
    }
    
    function Foo()
    {
        $this->hello();
    }
}

class B
{
    function hello()
    {
        print 'Hello I\'m B.';
    }
    
    function Foo()
    {
        return A::Foo();
    }
}

$b = new B();
$b->Foo(); // печатает Hello I'm B :)
Re[2]: Почему так ругают PHP?.
От: neFormal Россия  
Дата: 20.05.09 07:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не разобрался как править статью в вики, так что:


нужен аккаунт на rsdn, чтобы править..

А>
А>$b->Foo(); // печатает Hello I'm B :)
А>


я даже не знаю минус ли это..
после других скриптов меня это даже как то не удивляет..
...coding for chaos...
Re[5]: Почему так ругают PHP?.
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 22.05.09 08:35
Оценка:

Кто ни разу не нажигался на "if(x=1)" — поднимите руку


Поднимаю. Имел счастье в дестве пересечься с гуру, показавшим if( 1 == x ) (Если что — имею 13-летний опыт коммерческого программирования на C++)
Re[3]: Почему так ругают PHP?.
От: FR  
Дата: 22.05.09 10:16
Оценка: -1
Здравствуйте, neFormal, Вы писали:

F>я даже не знаю минус ли это..

F>после других скриптов меня это даже как то не удивляет..

В других super есть
Re[4]: Почему так ругают PHP?.
От: Аноним  
Дата: 23.05.09 04:17
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, neFormal, Вы писали:


F>>я даже не знаю минус ли это..

F>>после других скриптов меня это даже как то не удивляет..

FR>В других super есть


А причем здесь super? Классы между сообой вообще никак не связаны...
Re[5]: Почему так ругают PHP?.
От: FR  
Дата: 23.05.09 06:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А причем здесь super? Классы между сообой вообще никак не связаны...


У питона такое типизация не пропустит
class A:
    def hello(self):
        print 'Hello I\'m A.'
        
    def Foo(self):
        self.hello()
        
        
class B:
    def hello(self):
        print 'Hello I\'m B.'
        
    def Foo(self):
        A.Foo(self)

b = B()
b.Foo()



Traceback (most recent call last):
  File "hghghg.py", line 49, in <module>
    b.Foo()
  File "hghghg.py", line 46, in Foo
    A.Foo(self)
TypeError: unbound method Foo() must be called with A instance as first argument (got B instance instead)
Re[6]: Почему так ругают PHP?.
От: eugals Россия  
Дата: 23.05.09 08:55
Оценка:
Здравствуйте, FR, Вы писали:

FR>
FR>Traceback (most recent call last):
FR>  File "hghghg.py", line 49, in <module>
FR>    b.Foo()
FR>  File "hghghg.py", line 46, in Foo
FR>    A.Foo(self)
FR>TypeError: unbound method Foo() must be called with A instance as first argument (got B instance instead)
FR>


В 3.0 эти проверки убрали:
>>> class A:
        def foo(self):
            print("A")
        def call_foo(self):
            self.foo()
        
>>> class B:
        def foo(self):
            print("B")        
        
>>> A.call_foo(B())
B
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Re[7]: Почему так ругают PHP?.
От: Курилка Россия http://kirya.narod.ru/
Дата: 23.05.09 10:07
Оценка:
Здравствуйте, eugals, Вы писали:

E>В 3.0 эти проверки убрали:

[cut]

Из соображений скорости?
Re[8]: Почему так ругают PHP?.
От: eugals Россия  
Дата: 23.05.09 10:18
Оценка: 14 (2)
Здравствуйте, Курилка, Вы писали:

К>Из соображений скорости?

Гвидо пишет:

Let's get rid of unbound methods. When class C defines a method f, C.f
should just return the function object, not an unbound method that
behaves almost, but not quite, the same as that function object. The
extra type checking on the first argument that unbound methods are
supposed to provide is not useful in practice (I can't remember that
it ever caught a bug in my code) and sometimes you have to work around
it; it complicates function attribute access; and the overloading of
unbound and bound methods on the same object type is confusing. Also,
the type checking offered is wrong, because it checks for subclassing
rather than for duck typing.


В принципе, разумно. Мне лично эти проверки никогда ещё не помогли, а наоборот даже мешали пару раз, приходилось воркэраундить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Re[3]: Почему так ругают PHP?.
От: Кодёнок  
Дата: 25.05.09 08:12
Оценка: 1 (1)
Здравствуйте, neFormal, Вы писали:

RO>>и недостаток грамотного дизайна в самом языке.

F>вот, блин.. все так говорят.. иногда непонятно, кто это придумал первый, и почему за ним повторяют..
F>поскольку я в php не углублялся, то можно примеров?.

Дизайн — это вопрос наличия ума и/или вкуса. Одни видят тонкости, другие видят только сильные контрасты, третьи не видят существенной разницы между паскалем и C#. Если вкус есть, то и сам без примеров видишь, а если его нет, то не увидишь между примерами существенной разницы. Такая вот эзотерическая штука.
Re[3]: Почему так ругают PHP?.
От: skeptik_  
Дата: 02.06.09 23:49
Оценка:
Здравствуйте, dmz, Вы писали:

A>>за что тут ругали PHP. Почему? Честно говоря, хз. Есть в них преимущества, которые перевешивают упомянутые недостатки. И есть у других "красивых" языков отсутствие этих самых преимуществ. Ну, типа, речь окончена.


dmz>Вот рассказали бы о преимуществах, что ли. Очень интресно, есть ли в PHP хоть одно.

Самое главное — он вездесущ.
Re[5]: Почему так ругают PHP?.
От: Воронков Василий Россия  
Дата: 09.06.09 19:08
Оценка: 1 (1)
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, neFormal, Вы писали:



F>>можно примеров что было в перле сделано логично и правильно, а потом бездумно скопировано в php?.

DOO>Пожалуйста:
DOO>

DOO>Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.

DOO>На кой ляд?
DOO>В перле символ задает контекст — $ скалярный, @ — векторный, ну и псевдо-контекст хэша (%). А в PHP — зачем этот $?

Например, чтобы работало такое:

$var = "Hello, $username! Today is $date";
Re[6]: Почему так ругают PHP?.
От: Mr.Cat  
Дата: 09.06.09 20:45
Оценка:
Здравствуйте, Воронков Василий, Вы писали:
ВВ>
ВВ>$var = "Hello, $username! Today is $date";
ВВ>

Думаю, под вопросом полезность того доллара, который выделен.

Потому как то же самое на руби:
greeting = "Привет, #{username}"
Re[6]: Почему так ругают PHP?.
От: DOOM Россия  
Дата: 10.06.09 01:36
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Например, чтобы работало такое:


ВВ>
ВВ>$var = "Hello, $username! Today is $date";
ВВ>

В баше такое работает почему-то вот так:
var = "Hello, $username!"
И $ там можно по сути обозвать expand функцией, причем имеющей параметры (!).
Поэтому возможно написать что-то вроде:
for i in `ls`;
do
  mv $i ${i%.*}.newext;
done
Re[3]: Почему так ругают PHP?.
От: Bazzilic http://bazzilic.livejournal.com/
Дата: 14.06.09 22:56
Оценка:

std::string s,d;
d="%опа";
s=d+"есть";

работает, а

std::string s;
s="%опа"+"есть"+"а"+"слова"+"нет";

не работает


Но это совершенно логично с точки зрения языка C++, так что это никак не недостаток его.

std::string s;
s="%опа" " есть" " а" " слова" " нет";

работает


А вот почему это работает я не понимаю...
Re[4]: Почему так ругают PHP?.
От: Мишень-сан  
Дата: 01.07.09 12:04
Оценка:
Здравствуйте, Bazzilic, Вы писали:

B>

B>

B>std::string s;
B>s="%опа" " есть" " а" " слова" " нет";
B>

B>работает


B>А вот почему это работает я не понимаю...


Потому что С/С++ так обрабатывает строковые литералы. Поэтому можно писать с чистой совестью:
printf(
  "A very suitable\n"
  "formatting!\n"
  "Isn't it?"
);


Все три литерала С++ тупо склеит в один ещё при компиляции.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.