LINUX.ORG.RU

История изменений

Исправление gh0stwizard, (текущая версия) :

Отмечюсь. Работал с php и python, оба для меня «неродные» языки. Для вас вообще не имеет роли с чего начинать. Особенно не имеет роли изучать язык с фрейморков - вы ничего не поймете в том самом программировании. А тем более в короткие сроки. Поэтому правильный вопрос данного топика: какой инструмент выбрать в качестве «пробного» пера. Ответ - любой. Из вас ни через месяц, ни даже через год не выйдет ни профессионального пхп-шника, ни профессионального питониста. Для этого нужно потратить кучу времени, лет десять, а то 20 минимум. Поэтому камень в огород насчет пхп можно смело забыть. Вы до этого уровня, а именно разбора полета, когда эти минусы будут вредить вашему проекту - просто не достигнете когда даже запустите альфа-версию проекта. Может ли «сломать мозг» пхп ? Нет, Дейкстра говорил про Бейсик, например. Пхп это не бейсик. И чето никто не бунтуется против того же JS - где такие «особенности», которых вообще нет ни в каких других ЯП. Ну, где это видано, чтобы определить число в переменной или нет, надо зайдействовать 4 (sic!) разные проверки?

Насчет «get the bad facts about PHP»: главная проблема автора сего чуда в том, что он умудрился упомянуть Perl в контексте ООП. Епрст, в перле вообще нет никакого ООП, есть его подобие, но не более. Объекты в виде хэшей в пхп, так они в перле есть. Более того любой объект в перле это всего лишь тип + мета-инфа с именем класса, которые на самом деле описаны в одной структуре на си. Действия над таким «объектом» можно производить любые (в зависимости от первоначального типа): у хэшей можно перебирать ключи и значения, у массивов обращения по индексу, у скаляров - запись непосредственного значения через разыменовывания.

package My::Pkg;

sub new {
  my $class = shift;
  my $self = bless {}, $class;
  $self->{counter} = 0; # initial value
  $self;
}

sub set {
  if (@_ > 1) {
    $_[0]->{counter} = $_[1];
  } else {
    die "not enough arguments";
  }

  $_[0]; # return self by design
}

sub get {
  return $_[0]->{counter};
}

1;

package main;

$\ = "\n";

use Data::Dumper;

my $object = new My::Pkg;

# bad Perl OO-design

print "Before:";
print Dumper $object;

$object->{counter} = 'I am super hacker!';

for my $key (keys %$object) {
  delete $object->{$key}; # haha, perl like php!
}

print "After:";
print Dumper $object;

Из чего делаем вывод, что автор троль, который по сути вообще ничего не знает. Про перл, по крайне мере, точно. Более того его опусы про пхп вообще не стоит расценивать на веру.

Существует как масса плохого кода на пхп, так и масса на питоне. Ваш код будь он хоть на золотых плюсах написан будет плохим кодом в любом случае.

А если смотреть в будущее, то есть статистика: из 10 идей взлетает только 1. И ваши шансы точно такие же. Тем не менее, есть масса примеров, где и пхп и питон оказываются примером для подражания. И фреймворки нигде не спасали - везде надо хакать ЯП так, что у обычных людей мозгов на это не хватает. А чтобы такое «проворачивать» нужен труд и терпение :)

Исходная версия gh0stwizard, :

Отмечюсь. Работал с php и python, оба для меня «неродные» языки. Для вас вообще не имеет роли с чего начинать. Особенно не имеет роли изучать язык с фрейморков - вы ничего не поймете в том самом программировании. А тем более в короткие сроки. Поэтому правильный вопрос данного топика: какой инструмент выбрать в качестве «пробного» пера. Ответ - любой. Из вас ни через месяц, ни даже через год не выйдет ни профессионального пхп-шника, ни профессионального питониста. Для этого нужно потратить кучу времени, лет десять, а то 20 минимум. Поэтому камень в огород насчет пхп можно смело забыть. Вы до этого уровня, а именно разбора полета, когда эти минусы будут вредить вашему проекту - просто не достигнете когда даже запустите альфа-версию проекта. Может ли «сломать мозг» пхп ? Нет, Дейкстра говорил про Бейсик, например. Пхп это не бейсик. И чето никто не бунтуется против того же JS - где такие «особенности», которых вообще нет ни в каких других ЯП. Ну, где это видано, чтобы определить число в переменной или нет, надо зайдействовать 4 (sic!) разные проверки?

Насчет «get the bad facts about PHP»: главная проблема автора сего чуда в том, что он умудрился упомянуть Perl в контексте ООП. Епрст, в перле вообще нет никаго ООП, есть его подобие, но не более. Объекты в виде хэшей в пхп, так они в перле есть. Более того любой объект в перле это всего лишь тип + мета-инфа с именем класса, которые на самом деле описаны в одной структуре на си. Действия над таким «объектом» можно производить любые (в зависимости от первоначального типа): у хэшей можно перебирать ключи и значения, у массивов обращения по индексу, у скаляров - запись непосредственного значения через разыменовывания.

package My::Pkg;

sub new {
  my $class = shift;
  my $self = bless {}, $class;
  $self->{counter} = 0; # initial value
  $self;
}

sub set {
  if (@_ > 1) {
    $_[0]->{counter} = $_[1];
  } else {
    die "not enough arguments";
  }

  $_[0]; # return self by design
}

sub get {
  return $_[0]->{counter};
}

1;

package main;

$\ = "\n";

use Data::Dumper;

my $object = new My::Pkg;

# bad Perl OO-design

print "Before:";
print Dumper $object;

$object->{counter} = 'I am super hacker!';

for my $key (keys %$object) {
  delete $object->{$key}; # haha, perl like php!
}

print "After:";
print Dumper $object;

Из чего делаем вывод, что автор троль, который по сути вообще ничего не знает. Про перл, по крайне мере, точно.