Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№57622-01-2013 20:04:37

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 12.1
Веб-сайт

Re: Linux, Windows, Mac OS X - IX

ladserg пишет

Чего тут не логичного? В C так же надо проверять на значение -1, в питоне исключение не опишешь будет бяда, в PHP надо проверять на значение FALSE.Всё вроде логично, сначала проверил найдено ли вхождение, а потом уже действуешь в зависимости от результатов проверки, или не?

Выделить код

Код:

>>> s = "abcde"
>>> s[s.index('a')]
'a'
>>> s[s.index('z')]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: substring not found

Вопросы:
* что сделает похапе?
* это логично?


Ядрёная консоль делает меня сильней!

Отсутствует

 

№57722-01-2013 20:06:31

sentaus
Участник
 
Группа: Members
Зарегистрирован: 03-06-2005
Сообщений: 759
UA: Rekonq 2.0

Re: Linux, Windows, Mac OS X - IX

Только вот большинство кодеров на PHP об этом то ли не знают, то считают себя выше этого

Они и создают репутацию языку. Кстати, джава тормозит в основном примерно по этой же причине :)

Отсутствует

 

№57822-01-2013 22:12:13

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Chrome 24.0

Re: Linux, Windows, Mac OS X - IX

Lain_13 пишет

ladserg
Питон упадёт без проверки, С выйдет за рамки массива и скорее всего скрашится, а если даже нет, то ему можно творить что угодно - это низкоуровневый язык и там полно таких моментов. Одно управление памятью чего стоит. Пых будет работать будто так и наужно и не скрашится. Программа будет работать _неправильно_, а не прекратит выполнение с ошибкой, как это сделает Питон, и в результате ты о наличии ошибки можешь никогда не узнать.
Неужели непонятно в чём проблема?

Мне непонятно почему нет проверки на ошибки, или в современных школах уже так и учат: мол делайте так что бы программа падала, а на ошибки проверки не делайте?

У меня ни пых, ни C, ни питон не упадут и не продолжат работать так будто это надо, у меня будет стоять проверка и соответствующая реакция. Так понятнее? А так, да, если как krigstask результат сразу в индекс пихать, то тут хоть что может быть.

Кста, C тоже будет работать, будто все нормально, даже при -1.

Lain_13 пишет

Я там выше уже приводил другой пример из статьи аналогично идиотского поведения пыха:

Или может ты объяснишь почему "133" == "0133", но 133 != 0133 и "0x10" == "16"? Мало того, что придурошный пых конвертирует строки в числа, когда его об этом не просят, так ещё и делает это не всегда правильно, а как бог на душу положит!

Почему он конвертирует строку с шестнадцатиричным числом в шестнадцатиричное, а с весьмеричным в десятичное? В этом нет ни логики, ни предсказуемости, ни, даже, смысла как такового. Зачем он вообще конвертирует строку в число если сравнивает её со строкой?!

Дык это, как его, это самое, RTFM в общем:

Если строка распознается как числовое значение, результирующее значение и тип определяется так, как показано далее.

Если строка не содержит какой-либо из символов '.', 'e', или 'E', и значение числа помещается в пределы целых чисел (определенных PHP_INT_MAX), строка будет распознана как целое число (integer). Во всех остальных случаях она считается числом с плавающей точкой (float).

Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 0 (ноль). Верное числовое значение - это одна или более цифр (могущих содержать десятичную точку), по желанию предваренных знаком, с последующим необязательным показателем степени. Показатель степени - это 'e' или 'E' с последующими одной или более цифрами.

Ну и далее по тексту.

Как видите вопросы и непонятки возникают только от нежелания читать мануалы. Хотя кто то говорил, что ридми читают только ламеры, вы тоже так считаете? :)

Добавлено 22-01-2013 22:13:46

Keepun пишет

Только здесь не начинайте тему PHPvsALL... с меня 200 страниц этого бессмысленного срача достаточно.

Я могу за любой язык поговорить, после первого десятка они все на одно лицо :)

Отредактировано ladserg (22-01-2013 22:13:46)


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№57922-01-2013 23:25:49

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

ladserg
> У меня ни пых, ни C, ни питон не упадут и не продолжат работать так будто это надо
Ты сам господь бог, что всегда пишешь без ошибок? Не лги хоть самому себе, возможно ты ни разу не допустишь эту ошибку, но допустишь сотню других просто потому, что ты не господь бог (да и тому я б отправил пачку багрепортов). Самые разнообразные и идиотские ошибки допускает каждый. Даже самые профессиональные программисты не пишут безошибочный код, иначе б на все популярные программы не выходили постоянно фиксы безопасности.

> Дык это, как его, это самое, RTFM в общем
Ты понимаешь, что мануал объясняет как работает язык, но не объясняет почему он работает именно так и где в этом смысл? В этом просто нет смысла. Это идиотское поведение, даже если оно детально документировано. Ещё раз спрашиваю в чём, мать его, смысл преобразования текста в число при сравнении двух текстовых строк? Я не говорю о сравнении текста с числом — там тихому преобразованию объяснение найти можно, хоть это и идиотизм. Почему ноль отбрасывается и не опознаётся как восьмиричное число, но 0x опознаётся как шестнадцатиричное число? И не показывай мне ещё раз этот мануал. Он говорит что есть, он не отвечает на вопрос "почему".

Отредактировано Lain_13 (22-01-2013 23:31:22)

Отсутствует

 

№58022-01-2013 23:54:25

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Chrome 24.0

Re: Linux, Windows, Mac OS X - IX

Lain_13 пишет

ladserg
> У меня ни пых, ни C, ни питон не упадут и не продолжат работать так будто это надо
Ты сам господь бог, что всегда пишешь без ошибок? Не лги хоть самому себе, возможно ты ни разу не допустишь эту ошибку, но допустишь сотню других просто потому, что ты не господь бог (да и тому я б отправил пачку багрепортов). Самые разнообразные и идиотские ошибки допускает каждый. Даже самые профессиональные программисты не пишут безошибочный код, иначе б на все популярные программы не выходили постоянно фиксы безопасности.

Как бы не совсем в точку пост, конечно ошибки делаю, как и все, но и проверку диапазона и проверку результата поиска делать в том случае - как бы классика, просто привычное действие, поискал вхождение, проверил - а нашлось ли что.

Lain_13 пишет

> Дык это, как его, это самое, RTFM в общем
Ты понимаешь, что мануал объясняет как работает язык, но не объясняет почему он работает именно так и где в этом смысл? В этом просто нет смысла. Это идиотское поведение, даже если оно детально документировано. Ещё раз спрашиваю в чём, мать его, смысл преобразования текста в число при сравнении двух текстовых строк? Я не говорю о сравнении текста с числом — там тихому преобразованию объяснение найти можно, хоть это и идиотизм. Почему ноль отбрасывается и не опознаётся как восьмиричное число, но 0x опознаётся как шестнадцатиричное число? И не показывай мне ещё раз этот мануал. Он говорит что есть, он не отвечает на вопрос "почему".

Написано там всё, PHP (равно как и Perl, кстати), безтиповый язык, если переменную можно интерпретировать как число, то он интерпретирует. В перле так же. ведущий ноль в PHP не является признаком восьмеричного числа, и не знаю почему должно оно им считаться.

Я же говорю, если человек не умеет читать мануалы, то ему нет смысла суваться в программирование, ничего путного он, увы, не напишет.

П.С. сейчас слазил в мануал, уточнил, сами восмеричные числа оказывается в пыхе есть, но я все равно не вижу причин почему при преобразовании строки с ведущим нулем должна становиться восьмеричным числом. Особенно если учесть что лично я этого и не ожидаю.

Отредактировано ladserg (23-01-2013 00:01:47)


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№58123-01-2013 00:15:09

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

ladserg
> но и проверку диапазона
...и эту ошибку в тех же сях всё допускают и допускают… Но почему программа должна продолжать работать _неправильно_ если ошибка допущена? Да будь она хоть трижды классической. Собственно потому ошибка и проверка классические, что ошибку допускают чаще всего и практически всегда решением является добавление проверки.

> безтиповый язык
Ок, фиг с ним, раз это особенностью класса безтиповых языков. Я с этим классом стараюсь не иметь дела — мне уютнее в типизированных языках, но…

> В перле так же. ведущий ноль в PHP не является признаком восьмеричного числа, и не знаю почему должно оно им считаться.
Значит и перл допускает ту же идиотскую ошибку (если там есть восьмеричные числа). Почему он не должен считаться признаком восьмеричного числа? Почему он считается признаком восьмеричного числа если число записано именно как число, а не как строка, раз язык безтиповый? "0123" == 0123 должно быть TRUE, так? Это ведь одно и то же значение с точки зрения безтипового языка. Но, оказывается, нет! Ещё раз спрашиваю почему шестнадцатеричные числа опознаются как шестнадцатеричные, а восьмеричные — нет?

Ну вот представь, работал я с шестнадцатеричными числами в строках и теперь понадобилось работать с восьмеричными. Для меня ожидаемым поведением является преобразование текстового восьмеричного числа в числовое… а он этого не делает.
Или, например, я привык, что пых отбрасывает всё после первого числа и не считается с восьмеричным представлением, и у меня после числа идёт текст впритык, и мне пришло "0xabc", и я не ожидаю, что он опознает это не как 0. Заодно я буду очень рад увидеть "1e340" и не получить 1 в результате, но, наверное, тут я буду уже сам виноват. «Счастливой отладки», что называется, без зазубривания мануала не понять, с зазубриванием только привыкнуть, но всё равно не понять.

Отредактировано Lain_13 (23-01-2013 00:43:33)

Отсутствует

 

№58223-01-2013 01:18:04

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Chrome 24.0

Re: Linux, Windows, Mac OS X - IX

Lain_13 пишет

ladserg
> но и проверку диапазона
...и эту ошибку в тех же сях всё допускают и допускают… Но почему программа должна продолжать работать _неправильно_ если ошибка допущена? Да будь она хоть трижды классической. Собственно потому ошибка и проверка классические, что ошибку допускают чаще всего и практически всегда решением является добавление проверки.

Чего ты привязался к функции, которая, кста, не является частью языка, всего лишь часть библиотеки функций? Напиши свою, пусть она при отсутствии вхождения возвращает -1, тогда тебя пых пошлет подалее, т.к. отрицательных индексов пых тоже5 не любит:

Выделить код

Код:

<?
// Включим вывод предупреждений и сообщений об ошибках
ini_set('display_errors',1);
ini_set("error_reporting", E_ALL);
error_reporting(E_ALL);

$d[]="a";
$d[]="b";

echo $d[-1];

Notice: Undefined offset: -1 in /var/www/a.php on line 10

И все дела, руки голова есть, чё еще надо? Вообще совать результат этой функции прямиком в индекс (на любом языке) это увы - признак... ну да ладно, вдруг тут дети или женщины. Программа должна делать то, для чего она создана, а не падать с паническими воплями или делать абы что.

А сдуру то и титановый шарик можно сломать голыми руками.

Кста, о сях, вы слышали об умных указателях?

Lain_13 пишет

> безтиповый язык
Ок, фиг с ним, раз это особенностью класса безтиповых языков. Я с этим классом стараюсь не иметь дела — мне уютнее в типизированных языках, но…

Тут как бы дело вкуса, я уютно себя чувствую более чем на восьми языках, которе мне приходилось использовать в своей работе.

Lain_13 пишет

> В перле так же. ведущий ноль в PHP не является признаком восьмеричного числа, и не знаю почему должно оно им считаться.
Значит и перл допускает ту же идиотскую ошибку (если там есть восьмеричные числа). Почему он не должен считаться признаком восьмеричного числа? Почему он считается признаком восьмеричного числа если число записано именно как число, а не как строка, раз язык безтиповый? "0123" == 0123 должно быть TRUE, так? Это ведь одно и то же значение с точки зрения безтипового языка. Но, оказывается, нет! Ещё раз спрашиваю почему шестнадцатеричные числа опознаются как шестнадцатеричные, а восьмеричные — нет?

И всё таки ридми читают только ламеры :( . Ну присмотрись ты внимательно: число в кавычках в данном случае - строка, и она вызовет функцию преобразования в целое, число без кавычек - это константа.  Это разные вещи. Если ооочень охота, ну напиши ты функцию, которая преобразовывает строку в число с учетом данного нуля.

Я же на это смотрю как математик, у которого ведущий ноль просто отбрасывается. Равно как и плюс.

Lain_13 пишет

Ну вот представь, работал я с шестнадцатеричными числами в строках и теперь понадобилось работать с восьмеричными.

Вот сложно представить, честно. Но предположу что вам оно действительно может понадобиться.

Lain_13 пишет

Для меня ожидаемым поведением является преобразование текстового восьмеричного числа в числовое… а он этого не делает.

И зря ожидаете, нет причин ему так себя вести, ни одной. Его таким просто сделали.

Вообще если вам действительно оно было надо вы бы просто использовали бы свои функции.

Lain_13 пишет

Или, например, я привык, что пых отбрасывает всё после первого числа и не считается с восьмеричным представлением, и у меня после числа идёт текст впритык, и мне пришло "0xabc", и я не ожидаю, что он опознает это не как 0. Заодно я буду очень рад увидеть "1e340" и не получить 1 в результате, но, наверное, тут я буду уже сам виноват. «Счастливой отладки», что называется, без зазубривания мануала не понять, с зазубриванием только привыкнуть, но всё равно не понять.

Так, стоп, отсутствие мозгов ничто не заменит, дуем в мануал, читаем и узнаем про приведение типов, тогда вместо вашего гадания на кофейной гуще вы будете писать нечто вида:

Выделить код

Код:

if((string)$a===(string)$a) {...};
if((integer)$a==(integer)$a) {...};

А не показывать лишний раз свое неумение работать с мануалами.

А если вам приходится зубрить... А зубрить не надо, надо понимать.


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№58323-01-2013 03:12:04

Dеnis
Участник
 
Группа: Members
Откуда: Новосибирск
Зарегистрирован: 04-01-2007
Сообщений: 305
UA: Opera 12.1

Re: Linux, Windows, Mac OS X - IX

Опять вы свое любимое программирование обсуждаете. Все же думаю большинство в этом ничего не понимает.

Отсутствует

 

№58423-01-2013 03:33:02

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

ladserg
> Чего ты привязался к функции, которая, кста, не является частью языка, всего лишь часть библиотеки функций?
Может ты ещё скажешь, что это не часть стандартной библиотеки, рекомендуемой к использованию?
Да, давай выкинем все стандартные библиотеке и поговорим о языке в чистом виде… только кому оно такое будет нужно?

> Программа должна делать то, для чего она создана, а не падать с паническими воплями или делать абы что.
И тем не менее эту ошибку допускают и когда программа делает абы что это гораздо хуже, чем когда она просто падает. Представляешь такой код в авторизации в банковской системе, например? Конечно его писали десять пьяных обезьян, но ситуация вполне реальна. И что лучше, чтоб код просто упал или сделал абы что вплоть до допуска злоумышленника к чужой карточке? Согласись, что делать абы что в такой ситуации значительно хуже, чем просто прекратить работу. Когда винда ловит ошибку при работе с памятью или при записи информации на винт она делает абы что или крашится? Она крашится, чтоб предотвратить дальнейшую порчу данных! Краш лучше, значительно лучше, чем абы что, чёрт подери. В идеале должно просто работать, но мы не в идеальном мире.

> число в кавычках в данном случае - строка, и она вызовет функцию преобразования в целое, число без кавычек - это константа
Так, стоп, мы имеем дело с типизированным языком или нет? С какой вдруг радости ему стало не пофиг текстовая это константа или числовая? Ну да, он будет преобразовывать текст в число, но с какой радости не так же, как он опознаёт числовые константы при парсинге кода? Почему при парсинге 0 в константе это признак восьмеричной системы, а в строке — просто ведущий ноль, который можно отбросить? Я догадываюсь для чего так сделано — пых действительно делали не для программистов изначально и естественно часто попадались числа с ведущими нулями и людям нужно было упростить задачу их сравнения, но это не делает такое поведение правильным. Это просто решение местечковой проблемы и создание проблем во всех остальных случаях.

> Я же на это смотрю как математик, у которого ведущий ноль просто отбрасывается. Равно как и плюс.
Вот только как программист при надобности использовать восьмеричное число ты этот ноль напишешь и он внезапно станет для тебя означать восьмеричную систему счисления, как минус перед числом — отрицательное число. С какой радости ты вообще смотришь на язык программирования не как программист, а как математик? Посмотри на него ещё как водопроводчик, например, или как биолог. Тоже точки зрения, почему нет? Ах да, его же делали не для программистов изначально… и, похоже, для не программирования.

> Вообще если вам действительно оно было надо вы бы просто использовали бы свои функции.
Но сначала я попробовал бы использовать то, что есть, и обломался бы. Потому что то, что есть, ведёт себя непредсказуемо.

> Так, стоп, отсутствие мозгов ничто не заменит, дуем в мануал, читаем и узнаем про приведение типов, тогда вместо вашего гадания на кофейной гуще вы будете писать нечто вида:
Естественно, сэр. Естественно. Потому лушче я сразу буду пользоваться типизированным языком, чем этим идиотизмом, который всё равно придётся рано или поздно типизировать, чтоб не на ступать на грабли. Правда сначала лучше подумаю как получать числа отдельно от текста, но…

Но я описал ситуацию студента, который кроме PHP вообще ни чем не пользовался, он будет полагаться на привычное ему поведение одних функций и будет удивляться, удивляться и ещё раз удивляться… пока не прочтёт чёртов мануал по каждой… и не плюнет и свалит на Руби, Питон, Плюсы, Перл или любой другой язык программирования, который не состоит из исключений чуть менее, чем целиком, а продолжит изучать это и плюнет уже значительно позже, когда наконец увидит его в целом. (Кстати, серьёзная беда комьюнити — профессионалы пыха в большинстве реально сваливают на другие языки.) Чёрт, даже именование функций не консистентное и порядок параметров у подобных функций не идентичный. Естественно можно сказать "а почему оно должно быть таким", но да, действительно, наверное сто разных случаев легче запомнить, чем понять общий принцип, которого у пыха очень долго не было и я не знаю появился ли он сейчас даже в пятой версии (и даже не хочу знать). В изучении любого языка (включая натуральные) нужно уловить общий принцип и только потом запоминать те несколько исключений, которые в этот принцип не укладываются, но тут куда ни плюнь — везде найдётся исключение! Знаешь, я лучше буду учить новые слова, а не все формы каждого слова персонально. Чёрт, это прям как китайский язык. Простой разговорный, и глубины ада на письме.

Впрочем, действительно, это тема про операционки, а мы тут о своём, о женском говорим, ставя всех в очень неловкое положение. Я даже согласен условно сдаться, всё равно я пых больше не увижу… надеюсь. Мы смотрим на одни и те же вещи слишком с разных позиций и, похоже, менять эти позиции не собираемся.

Отредактировано Lain_13 (23-01-2013 03:56:34)

Отсутствует

 

№58523-01-2013 08:16:50

Apple hater
Участник
 
Группа: Members
Зарегистрирован: 13-01-2013
Сообщений: 53
UA: Firefox 20.0

Re: Linux, Windows, Mac OS X - IX

И да,[windows] 9 не будет поддерживать [firefox] .:) Так что,прощайтесь пользователи windows с [firefox].:tongue2: Давайте ,товарищи [linux]ойды,провадим [windows]ятников обратно,на [ie].На форуме останутся только [linux]ойды,[macos]воды и [android]-юзеры.Сбылась моя мечта,спасибо Microsoft!Также в [windows] 9 останется только б-гомерзкое metro. Но есть и хорошие новости: [android] 5.0 будет еще и для PC ,и там Google хочет нахимичить интерфейс ,подобный интерфейсу [windows] 7 и ее предшественниц.Ждем [android] 5.0,на который домашние windows-пользователи будут бежать пачками.

Отредактировано Apple hater (23-01-2013 08:41:02)

Отсутствует

 

№58623-01-2013 08:24:27

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

Lain_13 пишет

ladsergДа, давай выкинем все стандартные библиотеке и поговорим о языке в чистом виде… только кому оно такое будет нужно?

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

Lain_13 пишет

> Программа должна делать то, для чего она создана, а не падать с паническими воплями или делать абы что.
И тем не менее эту ошибку допускают и когда программа делает абы что это гораздо хуже, чем когда она просто падает.
Представляешь такой код в авторизации в банковской системе, например? Конечно его писали десять пьяных обезьян, но ситуация вполне реальна. И что лучше, чтоб код просто упал или сделал абы что вплоть до допуска злоумышленника к чужой карточке? Согласись, что делать абы что в такой ситуации значительно хуже, чем просто прекратить работу. Когда винда ловит ошибку при работе с памятью или при записи информации на винт она делает абы что или крашится? Она крашится, чтоб предотвратить дальнейшую порчу данных! Краш лучше, значительно лучше, чем абы что, чёрт подери. В идеале должно просто работать, но мы не в идеальном мире.

Я там уже привел пример, когда пых крашится, плюсы, например, просто продолжили бы работать. Увы, от незнания совсем ничего не спасёт. А валить свои ошибки, да еще такие детские на язык, как то... моветон, мягко говоря.

Lain_13 пишет

> Я же на это смотрю как математик, у которого ведущий ноль просто отбрасывается. Равно как и плюс.
Вот только как программист при надобности использовать восьмеричное число ты этот ноль напишешь и он внезапно станет для тебя означать восьмеричную систему счисления, как минус перед числом — отрицательное число. С какой радости ты вообще смотришь на язык программирования не как программист, а как математик? Посмотри на него ещё как водопроводчик, например, или как биолог. Тоже точки зрения, почему нет? Ах да, его же делали не для программистов изначально… и, похоже, для не программирования.

Ммм, любой человек учившийся (действительно учившийся) в ВУЗе по IT направлению, а не нахватавшийся абы где, абы что  и абы как(то бишь дилетант), знает - что и информатика, и теория информации, и алгоритмизация, и математическая логика - всё часть математики. И нормальный программист, а не двоечник какой, - это в первую очередь математик, а уже потом всё остальное.

Хотя я в последнее время слышал про специальности вроде манаГер-программист, ну и слышал что дипломы и так продают...

Lain_13 пишет

Но сначала я попробовал бы использовать то, что есть, и обломался бы. Потому что то, что есть, ведёт себя непредсказуемо.

Конечно, не читая документацию то можно хоть что обложить. А то что банальной проверке на область допустимых значений учат в в пятом классе мы не слышали, не, ридми читают только ламеры.

Lain_13 пишет

Естественно, сэр. Естественно. Потому лушче я сразу буду пользоваться типизированным языком, чем этим идиотизмом, который всё равно придётся рано или поздно типизировать, чтоб не на ступать на грабли. Правда сначала лучше подумаю как получать числа отдельно от текста, но…

Лучше читайте документацию и пользуйтесь тем, в чем у вас больше всего опыта. Что касаемо пыха и чисел в строках, то там нет нужды голову морочить людям, т.к. есть модуль bcmath для работы с числами в виде строки любой точности, а ваша ситуация весьма нетривиальна.

Lain_13 пишет

Но я описал ситуацию студента, который кроме PHP вообще ни чем не пользовался, он будет полагаться на привычное ему поведение одних функций и будет удивляться, удивляться и ещё раз удивляться… пока не прочтёт чёртов мануал по каждой… и не плюнет и свалит на Руби, Питон, Плюсы, Перл или любой другой язык программирования, который не состоит из исключений чуть менее, чем целиком, а продолжит изучать это и плюнет уже значительно позже, когда наконец увидит его в целом.

Гнать таких студентов, а лучше расстреливать его учителей, без жалости, всем родом, что бы нацию не портили. Конечно если уже программирование с математикой никак не связывают, то не удивлюсь, что сейчас ни информатику, ни алгоритмизацию, ни теорию информацию, да вообще, ничего из базовых знаний таким "программерам" не преподают.

А можно узнать название ВУЗа, который готовит таких вот ущербных студентиков, которым вообще есть значение на чем писать, да еще не умеющих проводить инженерную работу (ну хотя бы чтение мануалов)?

Lain_13 пишет

(Кстати, серьёзная беда комьюнити — профессионалы пыха в большинстве реально сваливают на другие языки.) Чёрт, даже именование функций не консистентное и порядок параметров у подобных функций не идентичный. Естественно можно сказать "а почему оно должно быть таким", но да, действительно, наверное сто разных случаев легче запомнить, чем понять общий принцип, которого у пыха очень долго не было и я не знаю появился ли он сейчас даже в пятой версии (и даже не хочу знать). В изучении любого языка (включая натуральные) нужно уловить общий принцип и только потом запоминать те несколько исключений, которые в этот принцип не укладываются, но тут куда ни плюнь — везде найдётся исключение! Знаешь, я лучше буду учить новые слова, а не все формы каждого слова персонально. Чёрт, это прям как китайский язык. Простой разговорный, и глубины ада на письме.

Не знаю как на счёт современного комьюнити, но российские инженеры обычно славились своим качественными базовыми знаниями и умением работать с документацией, если и это сломали... то увы, нация значит умерла, интеллигенция окончательно угробит страну. :(


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№58723-01-2013 10:36:43

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 12.1
Веб-сайт

Re: Linux, Windows, Mac OS X - IX

ladserg пишет

if((string)$a===(string)$a) {...};
if((integer)$a==(integer)$a) {...};

Да одни эти строки уже вызывают тошноту. Ад какой-то.

Добавлено 23-01-2013 10:48:36

ladserg пишет

Мне непонятно почему нет проверки на ошибки, или в современных школах уже так и учат: мол делайте так что бы программа падала, а на ошибки проверки не делайте?

Не надо мешать в кучу ЯП и качество кода. ЯП — инструмент, он должен вести себя просто, понятно и предсказуемо. Да, за строки, приведённые мной, в реальной программе, надо бить по рукам. Но это же пример, ёлки-моталки. «Надо просто постоянно следить за типами, оборачивать всё в кучу boilerplate-кода и всё время сверяться с документацией, потому что нелогично и поведение, и названия функций, и всё, что угодно» — спасибо, мне такой инструмент ни к чему.

Отредактировано krigstask (23-01-2013 10:48:36)


Ядрёная консоль делает меня сильней!

Отсутствует

 

№58823-01-2013 14:05:41

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

krigstask пишет

Не надо мешать в кучу ЯП и качество кода. ЯП — инструмент, он должен вести себя просто, понятно и предсказуемо. Да, за строки, приведённые мной, в реальной программе, надо бить по рукам. Но это же пример, ёлки-моталки. «Надо просто постоянно следить за типами, оборачивать всё в кучу boilerplate-кода и всё время сверяться с документацией, потому что нелогично и поведение, и названия функций, и всё, что угодно» — спасибо, мне такой инструмент ни к чему.

Тоже мне непредсказуемость, придрались к одной функции и отказались читать мануал.

Никто же насильно не заставляет писать на пых, не можешь, не нужно. Есть много других языков. А лучше сменить профессию, на дворника например, там образования не надо. Да и с логикой всё просто, летом - метла, зимой - лопата.

Добавлено 23-01-2013 14:09:24

Apple hater пишет

[android] 5.0 будет еще и для PC ,

Он вроде бы и сейчас спокойно на PC ставится, по крайней мере народ у нас себе ставил детям.

Apple hater пишет

и там Google хочет нахимичить интерфейс ,подобный интерфейсу [windows] 7 и ее предшественниц.

Не думаю что все воспримут это с радостью, т.к. не всем нравится жалкое подобие кдешного интерфейса :-/

Apple hater пишет

Ждем [android] 5.0,на который домашние windows-пользователи будут бежать пачками.

Тут всё решат программы и игры, наверно в большей степени игры, т.к. домой люди чаще всего берут компьютеры поиграть (даже если они сначала мотивируют покупку компьютера иначе).

Отредактировано ladserg (23-01-2013 14:09:24)


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№58923-01-2013 14:31:09

Apple hater
Участник
 
Группа: Members
Зарегистрирован: 13-01-2013
Сообщений: 53
UA: Firefox 20.0

Re: Linux, Windows, Mac OS X - IX

ladserg пишет

Он вроде бы и сейчас спокойно на PC ставится, по крайней мере народ у нас себе ставил детям.

но интерфейс лагает и тормозит.

ladserg пишет

Не думаю что все воспримут это с радостью, т.к. не всем нравится жалкое подобие кдешного интерфейса :-/

Но это нравится 90% пользователей планеты,они держатся еще до сих пор за хр и 7 и ждут,куда уйти с кошмара ,именуемого metro.

ladserg пишет

Тут всё решат программы и игры, наверно в большей степени игры, т.к. домой люди чаще всего берут компьютеры поиграть (даже если они сначала мотивируют покупку компьютера иначе).

согласен.
Единственное,что мешает [windows] умереть-так это быдлокодеры,использующие Visual Studio,т.к на написание софта под SDK,GTK,QT  и др. инструментов ,кроме Visual Studio у них ума не хватает. У тех,кто  пользуется для разработки Visual Studio ума столько же,сколько у Дениса Попова из Нижнего Тагила.

Отредактировано Apple hater (23-01-2013 14:40:56)

Отсутствует

 

№59023-01-2013 14:36:38

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

Apple hater пишет

но интерфейс лагает и тормозит.

ммм,  у ребят вроде не лагал, но дров на видюху найти не смогли. Ставилось всё нэтбуки ASUS Eee.

П.С. Правда потом все равно снесли и поставили ubuntu, дров то для видюхи не нашли :-)

Отредактировано ladserg (23-01-2013 14:37:04)


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№59123-01-2013 15:06:08

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 12.1
Веб-сайт

Re: Linux, Windows, Mac OS X - IX

ladserg пишет

Тоже мне непредсказуемость, придрались к одной функции

К одной функции? Это пример, говорю же.

Выделить код

Код:

json_decode("null") === json_decode("{notnull")

Это тоже нормально?

отказались читать мануал

У меня складывается впечатление, что ты никогда не вёл долгосрочный проект с числом разработчиков больше трёх. Когда смотришь на кусок кода и пытаешься понять, почему он работает неверно, надо срочно читать все руководства по используемым функциям? Помнить их наизусть? Считать знаки «=», чтоб не пропустить `$index == FALSE` вместо `$index === FALSE`? Считать это удобным и логичным поведением, когда даже динамически типизированный Питон макнёт тебя носом в конкретную ошибку на конкретной строчке?

Критики похапэ на том же хабре более чем достаточно. Писать на нём можно, но зачем? Чтоб доказать, что можешь? Лучше писать тогда на brainfuck, там хоть вызов более интеллектуален.
Что ещё помню: тысячи функций в глобальной области видимости, наследие тех времён, когда модули казались роскошью. Указание переменных через $, чтоб все помнили, что похапэ был и остался раздутым шаблонным языком.

ladserg пишет

А лучше сменить профессию, на дворника например, там образования не надо. Да и с логикой всё просто, летом - метла, зимой - лопата.

Конечно, если не умеешь подбирать инструмент под задачу.

Отредактировано krigstask (23-01-2013 15:07:20)


Ядрёная консоль делает меня сильней!

Отсутствует

 

№59223-01-2013 15:27:55

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

krigstask пишет

У меня складывается впечатление, что ты никогда не вёл долгосрочный проект с числом разработчиков больше трёх.

Если ты интересуешься программист ли я - то отвечу, нет не программист. Я инженер АСУП, которому нередко приходится в своих работах использовать различные языки программирования. При чём пых тут и не единственный, и даже не основной, хотя вещи на нем работают для нас важные.

Так же приходилось руководить небольшими группами программистов (до пяти) работающими над различными проектами (что впрочем не сильно то показатель, ребята были грамотные, вмешиваться приходилось редко).

Выделить код

Код:

json_decode("null") === json_decode("{notnull")

Не совсем понял по поводу этого куска, либо поясни что ты хотел этим куском добиться либо докажи что данный кусок не жосткий стеб под программиста двоечника. По крайней мере обе стороны равенства так и должны возвращать NULL.

П.С. Если с питоном всё удачнее, то лучше на питоне остаться.
П.П.С. Слова Паскаль и Дельфи в своё время - тоже был приговор.

Отредактировано ladserg (23-01-2013 15:30:52)


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№59323-01-2013 15:37:57

Apple hater
Участник
 
Группа: Members
Зарегистрирован: 13-01-2013
Сообщений: 53
UA: Firefox 20.0

Re: Linux, Windows, Mac OS X - IX

okkamas_knife пишет

тогда возникает логичный вопрос а где же такое же многообразие софта от небыдлокодеров?
вот я юзер у меня есть какаято задача, на винде я бац и нашёл программку которая её выполняет и мне глубоко наплевать быдлокод там внутри или всё круто и правильно - мне важен результат.
а с линуксом и небыдлокодерами что - а ничего нет такой программы.и не забывайте я юзер а не программист так что не надо предлагать  написать самому.
чтож небыдлокодеры не предлагают выбор  то?опять происки гетса? Вот ты лично ратуешь за свободный софт итд итп а что ты сделал лично кроме как трепать языком по форумам? покажи мне десяток расширений которые ты создал или поправил?
покажи программы для линукса которые ты написал? где они?
вот потому винда и будет жить потому что пусть он тупой быдлокодер но он пишет и выкладывает софт которым пользуются а от вас слышны только крики про происки гейтса и швабоду.
на форуме есть тема Заявки на создание расширений - берёшь и пишешь,но но тебе ж слабо,проще флудить в темах,так чем ты лучше  Дениса Попова из Нижнего Тагила?
зы вот в готовых кнопках полно моих кнопок с самым натуральным быдлокодом(т.к. я не программер и писал их для своих нужд),но они есть и ими пользуются а аналогов от спецов жабаскрипта и небыдлокодеров чота до сих пор не видать. мне лично и так сойдёт,хотя если ктото напишет лучше я буду использовать тот вариант,но ведь не пишут.

Типичный представитель ....,ругается,когда его любимую windows критикуют.просьба не обращать внимание.okkamas_knife, ПНХ(Пожалуйста,Не Хамите),для непонятливых модераторов.

Отредактировано Apple hater (23-01-2013 16:02:20)

Отсутствует

 

№59423-01-2013 15:41:38

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 12.1
Веб-сайт

Re: Linux, Windows, Mac OS X - IX

ladserg пишет

Если ты интересуешься программист ли я - то отвечу, нет не программист. Я инженер АСУП, которому нередко приходится в своих работах использовать различные языки программирования. При чём пых тут и не единственный, и даже не основной, хотя вещи на нем работают для нас важные.
Так же приходилось руководить небольшими группами программистов (до пяти) работающими над различными проектами (что впрочем не сильно то показатель, ребята были грамотные, вмешиваться приходилось редко).

Таки и вот.

ladserg пишет

Не совсем понял по поводу этого куска, либо поясни что ты хотел этим куском добиться либо докажи что данный кусок не жосткий стеб под программиста двоечника

При чём тут «программист-двоечник»?

По крайней мере обе стороны равенства так и должны возвращать NULL

В похапэ — да. А по логике? null — стандартный json-объект, который вполне может быть передан, скажем, по HTTP в ответ на какой-то запрос. А может прийти какой-нибудь другой ответ, побившийся или обрезанный по тысяче причин. json_decode для обоих случаев вернёт идентичный (даже не равный) ответ. Продолжать?

ladserg пишет

Если с питоном всё удачнее, то лучше на питоне остаться

Я примерно в этом духе и продолжаю. Есть, конечно, проблемы и у Python. Правда, они больше идеологического плана, и PHP их точно не решит, поэтому я расширяю кругозор в плане каких-нибудь Erlang и Go, например.

ladserg пишет

Слова Паскаль и Дельфи в своё время - тоже был приговор

Не понял мысли.


Ядрёная консоль делает меня сильней!

Отсутствует

 

№59523-01-2013 16:11:33

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Chrome 24.0

Re: Linux, Windows, Mac OS X - IX

krigstask
Ты ещё комментарии к json_decode в документации посмотри - вот уж повод посмеяться. То у него ошибка парсинга при виде "\", то он UTF-8 с BOM в начале не понимает, то при виде ключа "" он превращает его в "_empty_" и если там есть другие пустые ключи или ключи с именем "_empty_", то он заменяет на них значение первого... Т.е. чтоб корректно обработать json тебе нужно сначала руками отловить в нём все косяки и привести его в тот единственный формат, от которого пыху не сносит крышу.

Впрочем, ты ведь сам допустил идентичную ошибку в обоих случаях:
json_decode("null") === json_decode("{notnull")
Должно быть
json_decode('null') === json_decode('{notnull') <- одиночная кавычка вместо двойной
Строка в двойных кавычках не является валидной json-строкой с точки зрения пыха.

Отредактировано Lain_13 (23-01-2013 16:20:09)

Отсутствует

 

№59623-01-2013 16:13:38

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

krigstask пишет

По крайней мере обе стороны равенства так и должны возвращать NULL

В похапэ — да. А по логике? null — стандартный json-объект, который вполне может быть передан, скажем, по HTTP в ответ на какой-то запрос. А может прийти какой-нибудь другой ответ, побившийся или обрезанный по тысяче причин. json_decode для обоих случаев вернёт идентичный (даже не равный) ответ. Продолжать?

Да, было бы не плохо, т.к. я не понял претензий. Функция ведёт себя не так как описана в документации?

krigstask пишет

Не понял мысли.

Забей, это уже древняя история.


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

№59723-01-2013 16:22:04

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 12.1
Веб-сайт

Re: Linux, Windows, Mac OS X - IX

Lain_13 пишет

krigstask
Впрочем, ты ведь сам допустил идентичную ошибку в обоих случаях:
json_decode("null") === json_decode("{notnull")
Должно быть
json_decode('null') === json_decode('{notnull') <- одиночная кавычка вместо двойной

Не понял про ошибку (в сортах похапэ не разбираюсь). То есть я неспорю, но прошу пояснения. Ему не всё равно, какие кавычки используются для литералов строки?


Ядрёная консоль делает меня сильней!

Отсутствует

 

№59823-01-2013 16:24:20

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Chrome 24.0

Re: Linux, Windows, Mac OS X - IX

krigstask
Да, ему не всё равно. В документации так и сказано. И вообще он строковые литералы ограниченные одинарной кавычкой и двойной слегка по-разному обрабатывает. Это ж похапэ, умом это не понять.

Отредактировано Lain_13 (23-01-2013 16:28:23)

Отсутствует

 

№59923-01-2013 16:26:31

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 12.1
Веб-сайт

Re: Linux, Windows, Mac OS X - IX

ladserg пишет

Да, было бы не плохо, т.к. я не понял претензий. Функция ведёт себя не так как описана в документации?

Именно так и ведёт, в этом-то и проблема.
Продолжаю: тебе пришёл от кого-то JSON, ты его как бы декодировал. Получил null. Как понять, тебе просто в ответ null прислали или он испортился при пересылке?

Lain_13
o-8E


Ядрёная консоль делает меня сильней!

Отсутствует

 

№60023-01-2013 16:40:41

ladserg
Обещал вернуться...
 
Группа: Members
Откуда: Russia
Зарегистрирован: 10-03-2005
Сообщений: 1977
UA: Firefox 18.0

Re: Linux, Windows, Mac OS X - IX

krigstask пишет
ladserg пишет

Да, было бы не плохо, т.к. я не понял претензий. Функция ведёт себя не так как описана в документации?

Именно так и ведёт, в этом-то и проблема.
Продолжаю: тебе пришёл от кого-то JSON, ты его как бы декодировал. Получил null. Как понять, тебе просто в ответ null прислали или он испортился при пересылке?

Признаться не силен в данном вопросе, но насколько я понял значение null возвращается в виде строки (могу и ошибиться, данные из беглого гугла) со значением 'null', не актуальнее ли сначала сравнить строку примерно так:

Выделить код

Код:

if (strtolower($request) === 'null') {
    тут обработка NULL ответа 
} elseisf (json_decode($request) === NULL) {
    ответ битый
} else {
    обработка ответа
}

или так не по православному? Предположу, что питон сгенерирует исключение и остановит программу, но PHP не питон. А как вообще должна действовать функция в твоем понимании?

Каков алгорит обработки такого случая на РАЯ, или на любом другом привычном тебе АЯ?

krigstask пишет

Lain_13
o-8E

Текст в двойных кавычках подвежен преобразованиям и подстановкам, в одинарных нет (как в перле). Впрочем в твоем случае это не имеет значения, там нечему преобразовываться и нечего подставлять.


Этот мир, не совершенный, состоит из всех из нас. Он прямое отражение наших чувств и наших глаз.
Этот мир не станет лучше и не станет он добрее, если сами мы добрее не станем.
(@ Игорь Тальков, Этот мир).

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]