with texto strip_tags remove limpiar from eliminar allow all php programming-languages language-design

php - texto - string strip_tags



¿Nuevo idioma encima de PHP? (11)

Cuanto más pienso en esto, más irrealista suena. La razón es simple: en realidad ya existen tales promotores del lenguaje. Dos de ellos (aunque no usan PHP como implementación, solo como objetivo de compilación) se pueden encontrar here . Pero simplemente nadie los usa.

Sí, si el compilador se escribió en PHP, probablemente más personas lo usarían. Pero realmente no veo la manera de hacerlo lo suficientemente popular como para valer la pena el trabajo.

Otro gran problema es que la mayoría de la gente está acostumbrada a su increíble IDE con código resaltado, código completo e inspección de código. Sin el apoyo de IDE, probablemente solo alguien lo use (y el soporte de IDE solo puede obtenerse si muchas personas lo usan ...)

¿Pensamientos?

Soy un desarrollador de PHP. Me gusta PHP! Es un lenguaje muy bueno si sabes cómo usarlo, pero sé que a veces permite un diseño muy malo .

Me recuerda a JavaScript que tiene buenas partes y malas partes. Un proyecto en particular, CoffeeScript, trata de enfocarse solo en las partes buenas, forzándote a escribir un buen código.

Estaba pensando si se podría hacer algo similar con PHP ... Una nueva sintaxis que se compilaría solo con un buen código PHP aprovechando todas las cosas nuevas y emocionantes que podemos obtener con PHP 5.3.

Entonces, adelantándome a algunas personas, preguntaré: ¿Por qué crear un nuevo idioma sobre PHP si puedes usar Ruby, Python u otra cosa?

  • PHP es fácil de implementar en cualquier lugar
  • El lenguaje en sí tiene muchas buenas características e ideas
  • Hay muchas buenas bibliotecas escritas en PHP
  • ...

Entonces, mis preguntas reales aquí son ...

  • ¿Es esto una idea estúpida? ¿Por qué sería? ¿Crees que CoffeeScript es estúpido?
  • ¿Cómo alguien comienza a crear un nuevo idioma encima de otro? No sé nada de esto, pero me gustaría aprender. ¿Donde empezar?

Escribir un transformador de sintaxis PHP probablemente sería un proyecto prolijo.

Sin embargo, no olvides que la biblioteca estándar de PHP es un gran desastre. Limpiar eso sería una tarea mucho más grande.


Está aquí ahora. Un github.com/runekaagaard/snowscript que es para PHP lo que CoffeeScript es para Javascript. (Es decir, impresionante.)

github.com/runekaagaard/snowscript

El código de Snowscript se ve así:

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

La salida PHP se ve así:

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

Todo lo que necesita ahora, es you .


Esto es algo que he pensado con frecuencia. PHP es complicado en algunos puntos.

En realidad, ya tengo un proyecto PrePHP enfoca en proporcionar funcionalidad de PHP 5.3 a PHP 5.2. Pero agrega algunas características de lenguaje menor, como func()[0] . No he desarrollado este proyecto por un tiempo y definitivamente no es "limpio", pero muestra que lo que quieres es posible y, de hecho, no tan complicado.

Si es serio al respecto, estoy dispuesto a colaborar con usted.


Estoy de acuerdo en que PHP definitivamente podría mejorar algo, ahora mismo permite demasiado engaño.

Algunas cosas que me gustaría ver

  • Escritura estática
  • Indentación requerida
  • El uso correcto de los objetos (el uso de arreglos como objetos es simplemente estúpido)

Por otra parte, tal vez debería simplemente dejar PHP y empezar a trabajar con Ruby o Python.


Heh, gran idea. Mis pensamientos, algunos contradictorios ...

Hay precedentes de civilización de los lenguajes erróneos al poner preprocesadores de sintaxis frente a ellos.

  • En los primeros días de Unix, Fortran era popular y el único lenguaje portátil porque la mayoría de las máquinas no tenían compilador de C. Pero el Fortran vainilla del día ni siquiera tenía un bloque estructurado if-then-else , solo un simple enunciado goofy if o un if-goto . Entonces, el lenguaje Ratfor se implementó como un preprocesador para Fortran-66.
  • Creo que hubo (¿hay?) Preprocesadores Cobol que presumiblemente trataron con la verbosidad y las limitaciones de los primeros dialectos de Cobol.
  • Hasta el día de hoy, los sistemas derivados de Unix se envían con un macroprocesador llamado m4.
  • Varios preprocesadores de CSS están disponibles hoy, más notablemente Sass y LESS .

Pero...

  • Solo déjalo morir, y cuanto antes mejor
  • El problema no está realmente en la sintaxis.
  • No veo mucho de un JavaScript-PHP paralelo. JavaScript es un gran lenguaje. Es algo así como lo opuesto a PHP.
  • No estoy seguro de por qué dices que PHP es un gran lenguaje. Es uno de los peores. Cada característica decente es un parche o repatch en una versión reciente.
  • Como notaste, ya hay una versión arreglada de PHP: se llama Ruby y, como lenguaje, es casi perfecta. Hay otra versión arreglada llamada Python . El mundo estaría mejor a largo plazo si apoyamos los mejores sistemas.


La idea definitivamente no es estúpida, especialmente si se ejecuta bien.

Me gusta el coffeescript mucho, pero tiene su enfoque tiene inconvenientes también. La depuración de un script de coffeescript aún requiere que lea el código JavaScript generado, que puede ser tedioso, ya que usted mismo no lo ha escrito.

Comprendí que Jeremy Ashkenas, el creador de coffeescript, comenzó a trabajar en coffeescript luego de leer "Crea tu propio y fantástico lenguaje de programación" por Marc-André Cournoyer .

¡Buena suerte!


La razón por la que CoffeScript es una buena idea es que si los desarrolladores quieren ejecutar código en un navegador de cliente, deben usar javascript; así que la única forma de programar en un idioma diferente es permitir que ese idioma sea convertible a javascript.

No estoy seguro de que lo mismo se aplique realmente a la programación del lado del servidor. Si tienes problemas con PHP y quieres usar un nuevo idioma, no hay una ventaja real de que ese lenguaje genere PHP.

Por otro lado, un lenguaje que era muy similar a PHP, pero solucionó algunos de los defectos sería una gran idea.


Puedo ver cómo escribir compiladores en JavaScript (porque la web se lo impone), pero esto suena como una pérdida de tiempo.

haXe ya hace esto, aunque no está específicamente dirigido a PHP (vinculado al artículo de Wikipedia en lugar de a su sitio web porque me temo que voy a ser explotado si visito el sitio real ...)

PHP es fácil de implementar en cualquier lugar

... al igual que sus vulnerabilidades.

Sé que a veces permite un diseño muy malo.

Eso es un poco subestimado, ni siquiera tiene un sistema de módulos, no tiene encapsulamiento y tiene toneladas de cosas tontas como la resolución dinámica de nombres .

PHP es lo suficientemente lento como es, ¿realmente quieres algo más lento?

Java es mucho más fácil de implementar de todos modos, y le permite bajar al nivel de bytecode si lo desea. Java también le da acceso a bibliotecas moderadamente sanas.


Si fuera PHP lo que algo como sass es para CSS, me interesaría. Pero, ¿qué querrías agregar exactamente? ¿O solo querrías eliminar lo malo?

¿Y qué considerarías ser el malo?