Новый язык поверх PHP?


Я разработчик PHP. Мне нравится PHP! Это действительно хороший язык, если вы знаете, как им пользоваться, но я знаю, что иногда он допускает очень плохой дизайн.

Это напоминает мне JavaScript, в котором есть хорошие и плохие части. Один конкретный проект, CoffeeScript, пытается сосредоточиться только на хороших частях, заставляя вас писать хороший код.

Я подумал, что если бы что-то подобное можно было сделать с PHP... Новый синтаксис, который был бы скомпилирован только для хорошего PHP-кода с учетом всех новые и захватывающие вещи, которые мы можем получить с PHP 5.3.

Итак, опережая некоторых людей, я спрошу: Зачем создавать новый язык поверх PHP, если вы можете просто использовать Ruby или Python или что-то еще?

  • PHP легко развертывается в любом месте
  • Сам язык обладает множеством хороших функций и идей
  • Существует множество хороших библиотек, написанных на PHP
  • ...

Итак, мои настоящие вопросы здесь...

  • Неужели это глупо идея? С чего бы это? Вы думаете, что CoffeeScript глупый?
  • Как кто-то начинает создавать новый язык поверх другого? Я ничего об этом не знаю, но хотел бы узнать. С чего начать?
Author: Jonas, 2011-01-15

11 answers

Идея определенно не глупая, особенно если она хорошо выполнена.

Мне очень нравится coffeescript, но у его подхода есть и недостатки. Отладка сценария coffeescript по-прежнему требует, чтобы вы прочитали сгенерированный код Javascript, что может быть утомительным, поскольку вы на самом деле не написали его самостоятельно.

Я понял, что Джереми Ашкенас, создатель coffeescript, начал работать над coffeescript после прочтения "Создайте свое собственное потрясающее программирование язык" Марка-Андре Курнуайе.

Удачи!

 13
Author: polarblau, 2011-01-15 15:17:16

Причина, по которой CoffeScript является хорошей идеей, заключается в том, что если разработчики хотят запускать код в клиентском браузере, они должны использовать javascript; поэтому единственный способ программировать на другом языке - разрешить преобразование этого языка в javascript.

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

С другой стороны, a язык, который был очень похож на PHP, но исправил некоторые недостатки, был бы отличной идеей.

 9
Author: Andy Skirrow, 2011-01-15 15:21:25

Хех, отличная идея. Мои мысли, несколько противоречивые...

Существуют прецеденты цивилизования плохих языков путем размещения перед ними синтаксических препроцессоров.

  • В первые дни Unix Fortran был популярен и, пожалуй, единственным переносимым языком, потому что на большинстве машин не было компилятора языка Си. Но в ванильном фортране того времени даже не было структурированного блока , если-то-еще, просто глупое одно утверждение , если или , если-гото. Итак, Ратфор язык был реализован в качестве препроцессора для Fortran-66.
  • Я полагаю, что были (есть?) Препроцессоры Cobol, которые, по-видимому, имели дело с многословием и ограничениями ранних диалектов Cobol.
  • По сей день системы, производные от Unix, поставляются с макропроцессором под названием m4.
  • Сегодня доступно несколько препроцессоров CSS, в первую очередь Дерзость и МЕНЬШЕ.

Но...

  • Просто дайте ему умереть, и чем скорее, тем лучше
  • Проблема на самом деле не в синтаксисе.
  • Я не вижу большой параллели между JavaScript и PHP. JavaScript - отличный язык. Это своего рода противоположность PHP.
  • Я не совсем понимаю, почему вы говорите, что PHP - отличный язык. Это одно из худших. Каждая достойная функция - это исправление или обновление в последней версии.
  • Как вы заметили, существует уже исправлена версия PHP: она называется Рубин и, как язык, он почти совершенен. Существует еще одна исправленная версия, называемая Питон. В долгосрочной перспективе мир стал бы лучше, если бы мы поддерживали лучшие системы.
 3
Author: DigitalRoss, 2011-01-16 23:40:17

Сейчас он здесь. новый язык, который для PHP то же самое, что CoffeeScript для Javascript. (То есть, потрясающе.)

СНЕЖНЫЙ СКРИП

Код Snowscript выглядит следующим образом:


fn how_big_is_it(number)
    if number < 100
        <- "small"
    else
        <- "big"

Вывод PHP выглядит следующим образом:


function how_big_is_it($number) {
    if ($number < 100) {
        return "small";
    } else {
        return "big";
    }
}

Все, что ему сейчас нужно, это ты.

 3
Author: Prof. Falken, 2013-09-30 13:01:30

Если бы это было для PHP то, что что-то вроде sass для CSS, мне было бы интересно. Но что именно вы хотели бы добавить? Или вы просто хотели бы отсеять плохое?

А что бы вы сочли плохим?

 2
Author: sevenseacat, 2011-01-15 15:13:46

Написание преобразователя синтаксиса PHP, вероятно, было бы аккуратным проектом.

Однако не забывайте, что стандартная библиотека PHP - это огромный беспорядок. Очистка этого была бы гораздо более сложной задачей.

 2
Author: Felix Geisendörfer, 2011-01-15 15:30:46

Чем больше я думаю об этом, тем более нереалистично это звучит. Причина проста: на самом деле там являются такие языковые процессоры уже есть. Два из них (хотя и не используют PHP в качестве реализации, только в качестве цели компиляции) можно найти здесь . Но ими просто никто не пользуется.

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

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

Мысли?

 2
Author: NikiC, 2011-01-20 15:36:45

Я вижу, как пишутся компиляторы на JavaScript (потому что Веб навязывает нам это), но это звучит как пустая трата времени.

Haxe уже делает это, хотя он специально не ориентирован на PHP (связан со статьей в Википедии вместо их веб-сайта, потому что я боюсь, что меня будут использовать, если я посещу реальный сайт...)

PHP легко развертывается в любом месте

...как и его уязвимости.

Я знаю, что это позволяет очень плохо иногда дизайн.

Это немного преуменьшение, у него даже нет модульной системы, нет инкапсуляции и есть масса глупостей, таких как динамическое разрешение имен.

PHP и так достаточно медленный, вы действительно хотите что-то на порядок медленнее?

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

 2

Это то, о чем я уже часто думал. PHP просто запутан в некоторых моментах.

На самом деле, у меня уже есть проект PREPHP, посвященный предоставлению функций PHP 5.3 для PHP 5.2. Но он добавляет некоторые незначительные языковые функции, такие как func()[0]. Я не разрабатывал этот проект в течение некоторого времени, и он определенно не "чистый", но он показывает, что то, что вы хотите, возможно и на самом деле даже не так сложно.

Если вы серьезно относитесь к этому, я совершенно готов сотрудничать с вами.

 1
Author: NikiC, 2011-01-15 15:39:02

Очень интересная идея, и если она воплотится в жизнь, я думаю, что не хочу участвовать в:)

Для начала Вы можете проверить и прочитать эту позицию http://www.amazon.com/Masterminds-Programming-Conversations-Creators-Languages/dp/0596515170 (я читаю это сейчас). Это дает понять, насколько действительно сложно поддерживать собственный язык.

 0
Author: sbczk, 2011-01-15 15:15:03

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

Некоторые вещи, которые я хотел бы увидеть

  • Статическая типизация
  • Требуемый отступ
  • Правильное использование объектов (использование массивов в качестве объектов просто глупо)

Опять же, может быть, мне стоит просто отказаться от PHP и начать работать с Ruby или Python.

 0
Author: Naatan, 2011-01-15 15:18:31