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

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

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

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

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

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

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

  • Это глупая идея? Почему? Вы думаете, что CoffeeScript глуп?
  • Как кто-то начинает создавать новый язык поверх другого? Я ничего не знаю об этом, но я хотел бы узнать. Когда начать?

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

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

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

Удачи!

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

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

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

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

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

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

Есть прецеденты для цивилизации плохих языков, поставив перед ними препроцессоры синтаксиса.

  • В первые дни Unix Fortran был популярен и был единственным портативным языком, потому что на большинстве машин не было компилятора C. Но у ванильного фортрана дня даже не было блока, структурированного if-then-else , просто тупой однозадачный if или if-goto . Таким образом, язык Ratfor был реализован как препроцессор для Fortran-66.
  • Я полагаю, что были препроцессоры Cobol (есть?) Cobol, которые предположительно имели дело с многословием и ограничениями ранних диалектов Кобола.
  • До сегодняшнего дня Unix-производные системы поставляются с макропроцессором m4.
  • Сегодня доступно несколько препроцессоров CSS, в первую очередь Sass и LESS .

Но…

  • Просто позвольте ему умереть, и чем скорее, тем лучше
  • Проблема не в синтаксисе.
  • Я не вижу много параллелизма JavaScript-PHP. JavaScript – отличный язык. Это похоже на PHP.
  • Я не уверен, почему вы говорите, что PHP – отличный язык. Это одно из худших. Каждая достойная функция – патч или перезагрузка в последней версии.
  • Как вы уже отметили, уже существует исправленная версия PHP: она называется Ruby и, как язык, почти идеальна. Существует еще одна исправленная версия под названием Python . Мир будет лучше в долгосрочной перспективе, если мы будем поддерживать лучшие системы.

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

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

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

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

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

Мысли?

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

SNOWSCRIPT

Код 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"; } } 

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

Об этом я уже много думал. В некоторых случаях PHP просто беспорядочен.

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

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

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

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

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

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

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

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

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

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

Очень интересная идея, и если она оживет, я думаю, что я не буду участвовать в 🙂

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

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

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

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

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