программистское, PHP
Jun. 23rd, 2009 10:58 pm(Эта запись будет интересна разве что веб-программистам)
В новую версию PHP ввели оператор goto.
"Я вот никак не пойму: тебе что, мало того, что ты - негр?"
В новую версию PHP ввели оператор goto.
"Я вот никак не пойму: тебе что, мало того, что ты - негр?"
no subject
Date: 2009-06-23 08:08 pm (UTC)no subject
Date: 2009-06-23 08:10 pm (UTC)(no subject)
From:Хмм
Date: 2009-06-23 08:12 pm (UTC)Re: Хмм
Date: 2009-06-23 09:21 pm (UTC)goto /var/www/site/admin.php 303
Re: Хмм
From:Re: Хмм
From:Re: Хмм
From:Re: Хмм
Date: 2009-06-24 04:52 am (UTC)во всяком случае, так это мотивировали те, кто его запросил
no subject
Date: 2009-06-23 08:18 pm (UTC)no subject
Date: 2009-06-23 08:27 pm (UTC)Оператор для Настоящих Программистов (ТМ).
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-06-23 08:23 pm (UTC)Если в бочку говна добавить ложку говна, что изменится ?
no subject
Date: 2009-06-23 11:01 pm (UTC)no subject
Date: 2009-06-23 08:31 pm (UTC)no subject
Date: 2009-06-23 08:34 pm (UTC)(no subject)
From:(no subject)
From:У попа была...
From:(no subject)
From: (Anonymous) - Date: 2009-06-23 08:54 pm (UTC) - Expandno subject
Date: 2009-06-23 08:33 pm (UTC)no subject
Date: 2009-06-23 08:40 pm (UTC)no subject
Date: 2009-06-23 10:14 pm (UTC)no subject
Date: 2009-06-23 08:50 pm (UTC)no subject
Date: 2009-06-25 05:32 am (UTC)no subject
Date: 2009-06-23 09:24 pm (UTC)no subject
Date: 2009-06-23 09:49 pm (UTC)no subject
Date: 2009-06-23 09:50 pm (UTC)no subject
Date: 2009-06-23 11:03 pm (UTC)no subject
Date: 2009-06-23 10:14 pm (UTC)no subject
Date: 2009-06-23 10:38 pm (UTC)no subject
Date: 2009-06-23 11:10 pm (UTC)(no subject)
From:no subject
Date: 2009-06-24 12:37 am (UTC)no subject
Date: 2009-06-24 03:57 am (UTC)(c) 2004
no subject
Date: 2009-06-24 06:30 am (UTC)(no subject)
From: (Anonymous) - Date: 2009-06-24 11:05 am (UTC) - Expandno subject
Date: 2009-06-24 06:28 am (UTC)Лучший способ при этом не проблевать - использовать какой-нибудь компилятор нормальный язык в пхп.
А бекенду компилятора в целевой платформе goto полезен.
no subject
Date: 2009-06-24 06:46 am (UTC)Никогда не используй goto (цы) :-)
no subject
Date: 2009-06-24 06:58 am (UTC)no subject
Date: 2009-06-24 07:06 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2009-06-24 07:06 am (UTC)(float)(string)(float)"1.5" != 1.5
прекратил пользоваться пхп совсем ибо это ни в какие ворота не лезет
no subject
Date: 2009-06-24 07:14 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-06-24 07:27 am (UTC)no subject
Date: 2009-06-24 09:00 am (UTC)no subject
Date: 2009-06-24 11:32 am (UTC)Вряд ли Дейкстре нравилось, что идею подняли чуть ли не на знамена инквизиции.
Хотя как знать.
goto is considered helpful. In my book.
Date: 2009-06-26 05:28 pm (UTC)Лозунгом движения стала фраза "Goto is considered harmful".
"Structural programming" с операторами ветвлений и процедурами, было успешно внедрено, а GOTO стал главным программистским табу: практически каждый автор каждого курса программирования вспоминал о нем ровно один раз, давая пример, страшно после него извиняясь и посыпая голову всеми скопившимися запасами пепла, и объясняя что "все это можно реализовать без goto". Религия оказалась удивительно жизнестойкой - я читал статьи 95-2000 годов где "изучалось" какими структурами (логически неочевидными и дико громоздкими) можно заменить такие-то использования goto.
Еще лучше идолопоклонничество показывают отклики под этой заметкой: только двое оказались при своем мнении, остальные выступили как стадо леммингов.
Интересно, что кроме экстремиста-Дийкстры были и умеренные. Donald Knuth написал в ответ статью "программирование с оператором goto", где дотошно разбирал разные примеры его применения и оценивал сравнительную эффективность идиом, с или без goto.
ЕЩЕ БОЛЕЕ ИНТЕРЕСНО, ЧТО история с GOTO, который надо считать вредным, получила отклик к 1980м. Приняв как и все новую парадигму, Structural Programming, Дональд Кнут остался внутренне недоволен такой процедурой программирования, и выдумал свой способ, который он подавал как отдельную противостоящую парадигму, "Literate Programming".
Можно использовать встроенные процедуры поскольку это эффективно, но процентов 90 делений программы на куски делается человеком чтобы не запутаться, и машине они не были бы нужны (так, "оптимизирование" включает в себя разворачивание циклов или подпрограмм).
Literate Programming позволяет с помощью системы макро на естественном человеческом языке (вроде того, как объясняют идеи с помощью псевдокода) не потеряться, следить за мыслью на нескольких уровнях абстракции, и генерировать потом output из человечески понятного в машинный.
ВТОРОЕ ИНТЕРЕСНОЕ ЗАМЕЧАНИЕ заключается в том, что в истошности борьбы с GOTO революционеры СТруктурного Программирования не заметили, что структурирование, очень внятное, равносильное делению, скажем, на подпрограммы, можно делать именно с оператором GOTO. При этом (что признали даже они сами) он выполняется БЫСТРЕЕ (as there is less overhead), по крайней мере в C.
GCC extension, вычисляемые метки, позволяет вводить элемент программирования более высокого уровня.
Я, помню играл с этим в PErl'е чтобы попробовать идею - и да, получается гибко и удобно, и этими приемами можно даже делать объекты с encapsulation, которую обеспечивают простые фигурные скобки, в противовес громоздким кошмарам Ларри и неуклюжести of the default scheme.
Люди, понимающие подобное, пользуются goto вполне свободно. Например университетская разработка языка логического программирования с типами, Mercury, использует в implementation именно вычисляемые метки GOTO, которые им предоставляет GCC.
So in my book, GOTO is considered helpful. And 30-year-old religious sects and their sectarian taboos can go to hell.
Amen.
Re: goto is considered helpful. In my book.
Date: 2009-11-02 09:01 pm (UTC)