LINUX.ORG.RU

PHP исполнилось 20 лет

 


3

2

Именно в этот день, 8 июня 1995 года, Расмус Лердорф открыл исходный код PHP Tools общественности.

Созданное в 1994 году Расмусом Лердорфом, самое первое воплощение PHP было простым набором CGI-скриптов, написанных на языке программирования Си.

Первой версией PHP, напоминающей тот язык, каким мы знаем его сегодня, была версия 3.0. Примерно после девяти месяцев публичного тестирования, при объявлении официального выпуска PHP 3.0, он уже был установлен на более чем 70000 доменах по всему миру. На пике своего развития PHP 3.0 был установлен приблизительно на 10% веб-серверов в Интернете.

PHP 4.0, основанный на новом движке «Zend Engine», официально вышел в мае 2000 года. Кроме значительного улучшения производительности, PHP 4.0 получил ещё несколько ключевых нововведений, таких как поддержка намного большего числа веб-серверов, поддержка HTTP сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

В июле 2004 был выпущен PHP 5 с обновлённым движком «Zend Engine 2.0», новой объектной моделью и множеством других нововведений. Версия 5.3 порадовала пользователей пространствами имён, поздним статическим связыванием и замыканиями.

В 2009 году появилась группа совместимости фреймворков (PHP-FIG), которая начала благородную миссию по стандартизации совместимости PHP-проектов. Большинство PHP-библиотек и фреймворков начали адаптацию под рекомендации, предложенные или одобренные группой совместимости фреймворков (PSR).

В апреле 2011 началась работа над менеджером зависимостей Composer, который должен прийти на замену устаревшему PEAR.

Новая значительная версия PHP 5.4 была выпущена в марте 2012. С выпуском этой версии PHP получил заметные улучшения производительности, новые функции включают трейты, короткий синтаксис массивов, встроенный веб-сервер для тестирования и многое другое.

С приходом версии 5.5 в PHP появились генераторы и сопрограммы, ключевое слово finally, упрощенное API для хеширования паролей и множество других новых функций.

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

А в августе этого же года вышла стабильная значительная версия PHP 5.6. Новые функции включают скалярные выражения в константах, функции с переменным числом аргументов при помощи оператора ..., оператор возведения в степень **, импорт функций и констант при помощи ключевого слова use и многое другое.

Уже осенью этого года состоится выпуск PHP 7, который включит революционные для этого языка изменения.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от no-such-file

Питон подоспел как современная замена на уже пустую нишу умершего бейсика

Он реально похож на Бейсик. И отчасти может его заменить. Но нишу эту не занял. Ниша Бейсика сегодня по-прежнему пуста, ИМХО. То ли не востребована более, то ли ещё что-то...

Питон по сравнению с Бейсиком всё равно переусложнён. Требуется лишняя писанина с импортами и пространствами имён. Отсутствует стандартная простая графическая библиотека. Плавучка для него «не родная» (хотя в 3-й версии, как я понял, сделали в эту сторону реверанс).

KRoN73 ★★★★★
()
Ответ на: комментарий от EnterpriseMobility

А зачем оно нужно

Чтобы к бэкенду не прибиваться гвоздями.

KRoN73 ★★★★★
()
Ответ на: комментарий от Hertz

Кложура выстрелила.

В Top-50 на Tiobe не вошла. За пределами LOR'а с ней не сталкивался. Я такое к «выстрелила» не отношу :) Снова пример универсальной системы без своей ниши и потому — непопулярной.

KRoN73 ★★★★★
()
Ответ на: Web - это гавно! от FedyaPryanichkov

Говно твоя джанга с пистоном. Ничем не лучше ссаного PHP.

deadlock
()
Ответ на: комментарий от anonymous

А на каком языке так сделать нельзя?

На любом. Но на PHP это проще всего.

deadlock
()
Ответ на: комментарий от zevilz

от самого программиста зависит качество кода.

Это правда, но только отчасти. Язык имеет большое значение. Но петухи неустанно повторяют одно и тоже: «кривые руки, (не)правильный программист»

deadlock
()
Ответ на: комментарий от KRoN73

Питон по сравнению с Бейсиком всё равно переусложнён

Это потому, что его адепты-школьники стали пытаться пихать его в продакшн. Получилось то, чем стал VisualBasic или Delphi - переусложнённым языком для хеловордов.

Ну и надо делать поправку на акселерацию: ООП и паттерны сейчас чуть ли не в начальной школе начинают изучать - влияние общей культуры, где компьютерами начинают «общаться», раньше чем соску сосать. Кроме того ниша бейсика, как языка-операционной системы теперь отсутствует - вместо этого как раз скриптинг.

no-such-file ★★★★★
()
Ответ на: комментарий от Kilte

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

Я и говорю — ничего особенного, разве что «finally» примечательно.

dexpl ★★★★★
()
Ответ на: комментарий от KRoN73

Требуется лишняя писанина с импортами и пространствами имён. Отсутствует стандартная простая графическая библиотека. Плавучка для него «не родная» (хотя в 3-й версии, как я понял, сделали в эту сторону реверанс).

Это всё фигня. Пистон кривой от А до Я. Дырявые скоупы; Statement based вкупе с однострочными лямбдами; Кривая стандартная библиотека, где все модули спроектированы по разному и имеют идеологически разные интерфейсы. И интерфейсы как правило говно: например, datetime, urllib, urllib2, urllib3, urllib666. Короче пистон говно ничем не лучше PHP, но пистонисты всегда норовят макнуть php'шников в говно, хотя сами в говне по гланды.

deadlock
()
Ответ на: комментарий от KRoN73

Ну, тогда пильни примерчик на активрекорд или доктОрине для запроса вида:

SELECT
        grp.project_id,
        grp.incoming_count,
        COUNT(cc.id) cards_count,
        grp.all_cards_count,
        NOW() curr_date,
        grp.ago_days,
        grp.low_date,
        grp.listen_factor
    FROM (
        SELECT
            COUNT(i.id) incoming_count,
            i.project_id,
            p.listen_factor,
            p.ago_days,
            (COUNT(i.id) * p.listen_factor) all_cards_count,
            (NOW() - INTERVAL p.ago_days DAY) low_date
        FROM incoming_table i
        INNER JOIN projects_table p
            ON p.id = i.project_id
        WHERE i.project_id IN(...)
            AND i.`date` >= (NOW() - INTERVAL p.ago_days DAY)
        GROUP BY i.project_id
    ) grp
    LEFT JOIN call_cards_table cc
        ON cc.project_id = grp.project_id
            AND cc.created_by >= grp.low_date
    GROUP BY grp.project_id
    ORDER BY (COUNT(cc.id) / grp.all_cards_count) ASC
    LIMIT 1
deep-purple ★★★★★
()
Ответ на: комментарий от no-such-file

Код получается многословный

И это хорошо для больших проектов с длительной поддержкой. Да, писать сложнее. Но потом читать проще. Среднестатистический программист пишет 8-10 строк кода за рабочий день. Можно напрячься и однажды ввести 5 символов вместо двух :)

А «короткословные» языки в результате и получаются write-only. Писать, действительно, удобно. Но потом поддерживать задолбаешься. Первый язык программирования, с которым я работал на живом компе, был Focal. Я тоже сперва пёрся, как круто по сравнению со знакомым к тому моменту в теории Бейсиком — каждый оператор задаётся одной буквой. «t» == «type» (print), «a» == «ask» (input), «s» = «set» (присваивание):

1.05 C **** Программа для решения квадратного уравнения вида ax^2 + bx + c = 0
1.10 T "Введите коэффициенты a, b, c для уравнения ax^2 + bx + c = 0" !
1.20 A "a = ", a ! "b = ", b ! "c = ", c
1.30 T ! "Решаем уравнение (", a, ")x2 + (", b, ")x + (", c, ") = 0" ! 
1.35 C **** Вычисляем дискриминант
1.40 S d = b^2 - 4*a*c
1.50 T ! "D = ", d !
...


Но хотя никаких «больших проектов» тогда не было, через какое-то время понял, что разбирать на нём программы более нескольких десяток строк — это песец. Писать — очень удобно (для того времени). Читать — фиг.

Второй раз на эти грабли наступил уже в эпоху именно Perl. Как я с него пёрся — не передать. А потом дорос до всяких CMS и т.п. И понял, что поддерживать их через какое-то время — это масса лишних ненужных усилий на парсинг и восприятие кода.

Сейчас — третья реинкарнация. JS. На клиенте безальтернативен, так что каждый день с ним ковыряюсь (впрочем, что значит «теперь» — я на JS пишу со второй половины 1990-х гг :D). Пока речь о десятке-другом вставки в HTML, всё ещё неплохо. Как только приходится разбирать большой кусок чужого кода — это ад...

В противоположность этому Python и PHP разбираются очень хорошо. Ruby чуть хуже, но тоже сносно (хотя я по личной неприязни его тоже часто к w/o отношу — но это уже моя заморочка :D). Java может быть отлично читаемой, но часто жизнь портят длиннющие цепные вызовы с get. Типа (примеры из реального проекта, в котором я работал):
LoginController.getInstance().setAccountAccessLevel(cal.getAccount(), cal.getLevel(), cal.getComments(), cal.getBanExpireTime());
// ...
if(partymember.getCurrentHp() < partymember.getMaxHp() && (target == null || target.getMaxHp() - target.getCurrentHp() < partymember.getMaxHp() - partymember.getCurrentHp()) && _owner.getRealDistance(partymember) <= skill.getCastRange())
// ...
int amount = L2Manor.getInstance().getCropBuyLeft(CastleManager.getInstance().getCastleAt(player).getCastleId(), itemId);


и т.п. Эти цепочик get.get.get, порой выбешивают :)

Forth на особом месте. Пока идёт чистая алгоритмическая логика — читается изумительно. Практически человеческий язык и самокомментирование. Но для этого нужно продумывать структуру («Thinking Forth»), хотя это и всегда полезно. Но как только начинается более-менее сложная арифметика — всё, сливай воду. Инверсная польская запись сама по себе хороша. Но она последовательная. Видно,как считать, но за ней не видно формулу. Приходится проводить обратное преобразование в уме для каждого фрагмента. Со сложной математикой это превращается в тыкву. И это ещё при том, что я вообще программирование начинал с калькуляторов и обратная запись для меня как родная :)

KRoN73 ★★★★★
()
Ответ на: комментарий от yanka

я так поняла сейчас начнется бурное переписывания многочисленными халтурщиками всего пэхэпэшного хлама.

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

Поэтому уже год-два, как переписывается буквально всё. При чём в мягкой форме. Не потому что язык поломали, а потому что такое переписывание востребовано. Это, ИМХО, во многом PHP сильно подстегнуло.

Но те кто пять десять лет назад убежал от пхп на нормальные(человечные) языки вряд ли вернется назад.

Да и плевать :) Какое нам дело до других? Главное, что сами используем.

KRoN73 ★★★★★
()
Ответ на: комментарий от weare

Ты забыл Borland Paskal и IDE Delphi

Я писал только про относительно новые языки. Которые «проталкивали» массу конкурентов. Когда Вирт писал Pascal, он его писал как раз потому что языки такого класса просто отсутствовали. Т.е. он создавал язык не просто (точнее, «не только») потому что ему так хотелось, а под конкретную и востребованную тогда задачу. На этом и выстрелил.

KRoN73 ★★★★★
()
Ответ на: комментарий от targitaj

Зачем для этого бумага?

Чтобы при необходимости вставить кусочек кода не перенабивать всё заново :) Я не видел монитор «Вектора», но в мониторе моего Радио-86РК можно было вводить машинный код только последовательно :)

Да и машкод 8080 — не такой прозрачный, как у PDP (БК-0010), в уме транслировать не удобно. Поэтому обычно на бумажке писалась программа на ассемблере, потом вручную проставлялись коды с резервированием места под адреса, потом вычислялись адреса и расставлялись по зарезервированным местам, а потом полученный код вводился в 16-ричном виде в память. Потом происходил запуск... Отладка была отдельной песней. Отладчиков нет, print-debug было не реализовать (вписать на бумажке в нужное место вывод, «перекомпилировать» на бумажке программу, ввести её заново байт за байтом...). Я удивляюсь, как я умудрялся писать работоспособные игры в таком режиме :D

А ещё дело осложнялось отсутствием магнитофона. И каждый раз после включения программы приходилось вводить заново :D

А ещё — страшный враг, холодильник! Когда он включался, комп зависал. Не спасали никакие батареи конденсаторов на блоке питания. Поэтому холодильник приходилось выключать. И горе было, если перед набивкой игрушки на килобайт-другой размером, холодильник по забывчивости не был выключен. 15-20 минут набивки кода и БАЦ! Висим... :D

KRoN73 ★★★★★
()
Ответ на: комментарий от no-such-file

Получилось то, чем стал VisualBasic или Delphi - переусложнённым языком для хеловордов.

Да, с ними такая же беда. VB тоже не подходит для задачи «умного программируемого калькулятора». Delphi с этой точки зрения не помню уже, я с ним почти не работал. Но уже Turbo Pascal для этой цели не подходил. Он был хорош для целей обучения строгому «большому» программированию, но ужасен для быстрого на коленке набрасывания какой-нибудь аппроксимации...

KRoN73 ★★★★★
()
Ответ на: комментарий от deadlock

Пистон кривой от А до Я

Всё далее перечисленное — это претензии уже из другой области. Не из задачи замены ниши Бейсика :)

KRoN73 ★★★★★
()
Ответ на: комментарий от deep-purple

Ну, тогда пильни примерчик

Ну и зачем всю логику тянуть в SQL? Т.е. да, в узких случаях это оправдано. В частном — ты себя уже насмерть привязал к конкретной БД. Да ещё нередко и к конкретной версии.

На работе с этим в Orcale жопа. Время от времени при обновлении что-то отваливается в много лет назад написанных процедурах. И уже нет программистов, которые могли бы разобрать тонны этого шлака :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Да, писать сложнее. Но потом читать проще

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

Эти цепочик get.get.get, порой выбешивают :)

После лиспа это не проблема, даже нравится такой fluid code :)

no-such-file ★★★★★
()
Ответ на: комментарий от KRoN73

Turbo Pascal для этой цели не подходил

Начинал с него году примерно в 1993-94 годах, потом узнал про Си и понял что Турбо Паскаль вообще ни для чего кроме обучения студентов не пригоден ))

mbivanyuk ★★★★★
()
Ответ на: комментарий от no-such-file

о нет, питон заставляет, отвлекаться на проверку - а всё ли правильно выравнено?

Это не очень большая проблема, если использовать нормальные IDE. Например emacs, где есть C-c <, C-c >. Но конечно s-expressions для долбёжки кода на прорядки более удобены, чем пистоновый позиционный синтаксис. Если конечно использовать такие вещи, как paredit.

deadlock
()
Ответ на: комментарий от deep-purple

8-10 строк кода за рабочий день

Это где такая расслабуха?

Практически в любом крупном проекте. Если поделить число строк проекта на срок работы над ним.

Т.е., понятно, что это средняя температура по больнице, не учитывающая простои в проекте, переписывание кода и т.п. Просто интегральная характеристика :)

...

Вообще, срач на LOR'е на эту тему всплывает очень часто. Навскидку (и далее по темам):

Сравнение Python и Ruby
Какая CMS лучше?
[ОПРОС] Сколько кода в день вы пишите?
Как вы пишете код?
Сколько времени у программиста уходит на освоение в сложном большом проекте? Сколько часов в день он реально кодит?

KRoN73 ★★★★★
()
Ответ на: комментарий от dexpl

Ну вот этого я например два года ждал:

empty() supports arbitrary expressions
Class name resolution via ::class

А ещё генераторы, которые позволяют избавиться от тонны говнокода.

В конце-концов время 5.4 подходит к концу: http://php.net/supported-versions.php

Уже в сентябре эта версия перестанет поддерживаться. Пользователям RHEL остаётся только надеяться, что кто-то будет поддерживать её своими силами. Честно говоря понятия не имею, как там всё это происходит.

Kilte ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Например в питоне меня просто убивает эта их фишка с выравниванием.

Прекрасно понимаю, что у кого-то это может вызывать трудности, но для меня не было проблемой никогда. Я так стал писать лет 25 назад, как только появились версии Бейсика без нумерации строк :D Я даже сам где-то в 1990-м подумывал о написании языка, где бы логика программы задавалась структурой. Так что появление Питона я воспринял совершенно ествественным :)

Нужно постоянно за этим следить, отвлекаться от программирования.

Зачем? Даже mcedit делает всё сам в плане отступов :)

После лиспа это не проблема

Lisp — он сам по себе проблема :D Нет, не так — :))))))))))))))))

KRoN73 ★★★★★
()
Ответ на: комментарий от mbivanyuk

Начинал с него году примерно в 1993-94 годах, потом узнал про Си и понял что Турбо Паскаль вообще ни для чего кроме обучения студентов не пригоден ))

Я, наоборот, Паскаль узнал после Си и поэтому его вообще всерьёз не воспринимал :) Хотя иногда что-то писать приходилось.

KRoN73 ★★★★★
()
Ответ на: комментарий от deadlock

Это не очень большая проблема, если использовать нормальные IDE.

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

Например emacs, где есть C-c <, C-c >

Ну т.е. руками да? Через неделю работы начинает просто дико бесить.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Kilte

Пользователям RHEL остаётся только надеяться, что кто-то будет поддерживать её своими силами. Честно говоря понятия не имею, как там всё это происходит.

Вообще-то, пользователи RHEL за то и платят, чтобы этим «кто-то» был Red Hat.

dexpl ★★★★★
()
Ответ на: комментарий от no-such-file

Ну т.е. руками да? Через неделю работы начинает просто дико бесить.

Вообще да, ты абсолютно прав. Когда пастишь кусок пистона, совершенно непонятно в каком месте он должен быть выравнен, тогда как со скобочками всё однозначно - просто пастишь код и C-M-q и всё выравнивается с возможностью по результатам сразу понять если есть ошибка. Согласен, позиционный синтаксис - параша.

deadlock
()
Ответ на: комментарий от KRoN73

Даже mcedit делает всё сам в плане отступов

Когда просто пишешь, да. А когда редактируешь? Переставляешь куски туда-сюда, что-то вписываешь, что-то убираешь. Локально ещё ничего, а когда нужно сильно отрефакторить возникают проблемы.

Может, если по 10 строк в день писать, то нормально. А когда сроки горят, проект нужен вчера, а не хватает over9000 строк кода - проклянёшь это гениальное изобретение.

no-such-file ★★★★★
()
Ответ на: комментарий от KRoN73

Lisp — он сам по себе проблема

Проблема Lisp в том, что крайне мало качественных библиотек. В остальном Lisp почти идеален.

deadlock
()
Ответ на: комментарий от cherry-pick

Я удивляюсь, почему никто ещё вот эту ссылку не запостил.

Там все по англицки. Никто не понял что там написано.

Xintrea ★★★★★
()
Ответ на: комментарий от KRoN73

Стоит отметить язык программирования 1С Предприятие!

weare ★★
()
Ответ на: комментарий от Xintrea

посещать IT-ресурс
не знать английский

Хосспаде, да откуда вы такие беретесь то? Ну вот как можно жить в современном глобализированном мире, быть айтишником, и не знать английский? Стыдно должно быть, товарищи, стыдно, прям как гопники какие-то, чесслово.

cherry-pick
()
Ответ на: комментарий от pihter

Я вот еще не знаю твою позицию по черным дырам, они, вродь как, из ОТО следуют? Ты их признаешь?

они, вродь как, из ОТО следуют?

Неа, ОТО им не нужно, а откуда до них впервые додумались, чтобы в ТО их потом «найти», теперь не раскопаешь. Эйнштейн и эфиром тоже занимался:

"Резюмиpуя, можно сказать, что общая теоpия относительности наделяет пpостpанство физическими свойствами; таким обpазом, в этом смысле эфиp существует..." " Эйнштейн А. Эфиp и теоpия относительности: Речь, пpоизнесенная 5 мая " 1920 г. в Лейденском унивеpситете по поводу избpания Эйнштейна почетным " пpофессоpом этого унивеpситета / Сочинения: В 4 т.-М.: Hаука, 1965.- " Т. 4.-С. 689.
 "...мы не можем в теоpетической физике обойтись без эфиpа, т.е. континуума, наделенного физическими свойствами, ибо общая теоpия относительности ... исключает непосpедственное дальнодействие; каждая же теоpия близкодействия пpедполагает наличие непpеpывных полей, а следовательно, существование эфиpа". " Эйнштейн А. Об эфиpе: 1924 г. / Сочинения: В 4 т.-М.: Hаука, 1965.-Т. " 2.-С. 160.
 "...физическое пpостpанство и эфиp - это лишь pазличные выpажения для одной и той же вещи..." " Эйнштейн А. Пpоблема пpостpанства, эфиpа и поля в физике: 1930 г. / " Сочинения: В 4 т.-М.: Hаука, 1965.-Т. 2.-С. 279.
 "Слово эфиp изменяло свой смысл много pаз в пpоцессе pазвития науки. В данный момент оно уже не употpебляется для обозначения сpеды, постpоенной из частиц. Его истоpия, никоим обpазом не законченная, пpодолжается теоpией относительности." " Эйнштейн А., Инфельд Л. Эволюция физики: 1938 г. / Сочинения: В 4 " т.-М.: Hаука, 1965.-Т. 4.-С. 452.
 "Это жесткое четыpехмеpное пpостpанство специальной теоpии относительности есть до некотоpой степени аналог неподвижного тpехмеpного эфиpа Г.А.Лоpенца... ...Таким обpазом, Декаpт был не так далек от истины, когда полагал, что существование пустого пpостpанства должно быть исключено." " Эйнштейн А. Относительность и пpоблема пpостpанства: 1952 г. / " Сочи

Позиция по ЧД такая: если собрать в компактную кучу очень большую массу вещества, так чтобы нуклоны не разрушились от сжатия, то первая космическая скорость (скорость потока тёплого эфира поглощаемого холодным веществом, т.е. теплового движения) возрастёт. А возрастать она может и до >световой. Тут узкое место не в скорости света а в структуре нуклонов: можно ли их уплотнить настолько или нет, этого насколько известно никто точно не считал. А если первая космическая скорость у тела выше световой, то это значит что несущий свет эфир падает на ЧД с превышающей скорость распространения по нему света. В результате свет не может вылететь из ЧД поскольку ему не хватает скорости. Никаких горизонтов событий и прочей чуши там нет, это всё тупые абстракции над сложной механической структурой. Для наглядности представь модельку: по ленте транспортёра движущейся вправо со скоростью 5Х движется влево черепаха со скоростью 1Х, и как бы она ни пыхтела, её сносит вправо со скоростью 4Х, и до левого края транспортёра она не может добраться по вполне понятным причинам не требующим для объяснения ОТО с горизонтами событий.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

это значит что несущий свет эфир падает на ЧД с превышающей скорость распространения по нему света

Из этого следует что эфир постоянно падает в ЧД?

pihter ★★★★★
()
Ответ на: комментарий от no-such-file

Когда просто пишешь, да. А когда редактируешь? Переставляешь куски туда-сюда

Тут два момента.

1. Thinking Forth нас учит не строить огромные вложенные структурные конструкции. Когда куча if'ов и вложенных циклов. Поэтому значительная часть кода оказывается на одном уровне отступов. При перестановке кусков кода уровень меняется редко. Опять же, если нормально, декомпозированно писать с самого начала, то рефакторинг с перестановками требуется редко. А Чарьз Мур (или Лео Броуди?) вообще говорил, что в редакторе настоящего программиста не должно быть функции копирования блоков :)

2. Даже в mcedit есть инструменты блочной работы. А в более продвинутых IDE — тем более.

...

Собственно, я пишу структурно, с отступами на любом языке. В т.ч. на PHP. И я почти не сталкиваюсь с проблемой перестановки блоков. В том числе и на Python :)

А когда сроки горят, проект нужен вчера, а не хватает over9000 строк кода...

То ошибка была где-то много ранее. И виноват в этом не Питон. Ругать надо не язык, а причины, которые довели до такой ситуации. Чтобы избегать их в будущем :)

KRoN73 ★★★★★
()
Ответ на: комментарий от no-such-file

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

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

zevilz ★★★
()
Последнее исправление: zevilz (всего исправлений: 1)
Ответ на: комментарий от KRoN73

ГОСПОДЬ! Дай здоровья этому человеку! Прям мои мысли излагает.

anonymous
()
Ответ на: комментарий от no-such-file

В моём виме изменение уровня отступов для блока делается парой нажатий.

Даже в таком блокноте как gedit работает tab и shift+tab для выделенного текста. Чини редактор.

PolarFox ★★★★★
()
Ответ на: комментарий от pihter

Из этого следует что эфир постоянно падает в ЧД?

Ага, тёплый падает, потом охлаждается и при этом сильно уменьшается в объёме. Далее часть этого эфира тем или иным способом поглощается ЧД а часть выносится наружу в виде излучений или эпизодических компактных сгустков. Формы избавления от излишков охлаждённого эфира могут быть различными, например на Земле это геопатогенные излучения и хреновины типа метеоритов в некоторые местах вылетающие от поверхности в сторону космоса, о них писал и рассказывал Черняев - «камни падают в небо».

Napilnik ★★★★★
()
Ответ на: комментарий от KRoN73

Thinking Forth нас учит не строить огромные вложенные структурные конструкции. Когда куча if'ов и вложенных циклов. Поэтому значительная часть кода оказывается на одном уровне отступов.

Это очень хорошо, когда пишешь код с нуля и правильно. Но далеко не всегда получается писать правильно и далеко не всегда пишешь с нуля. В промышленной разработке есть ещё такое понятие как рефакторинг и далеко не всегда (почти никогда) промышленный код идеален.

deadlock
()
Ответ на: комментарий от KRoN73

А Чарьз Мур (или Лео Броуди?) вообще говорил, что в редакторе настоящего программиста не должно быть функции копирования блоков :)

Перфекционизм и демагогия от Чарльза Мура (или Лео Броуди?). Ничего не имеет общего с действительностью.

deadlock
()
Ответ на: комментарий от Napilnik

или эпизодических компактных сгустков

Булькает наружу?

например на Земле это геопатогенные излучения

пруфы

и хреновины типа метеоритов в некоторые местах вылетающие от поверхности в сторону космоса

ну бред же: почему никто их не регистрирует при сегодняшних технологиях?

pihter ★★★★★
()
Ответ на: комментарий от KRoN73

Даже в mcedit есть инструменты блочной работы. А в более продвинутых IDE — тем более.

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

deadlock
()
Ответ на: комментарий от anonymous

Это ты о пистоне что-ли? На пистоне только вырвиглазный код и пишется.

deadlock
()
Ответ на: комментарий от no-such-file

И вот после этого любители пхп обвиняют python в многословности? Вы адекватные?


foreach (xrange(1, 9, 2) as $number) {
    echo "$number ";
}

for i in range(1, 10, 2):print(i)

yanka ★★
()
Последнее исправление: yanka (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.