Ryz

El lenguaje para la JVM creado por OscarRyz

Día de Ryz, 2013

El año que acaba de concluir fue bastante lento para Ryz, la razón es que me pasaron muchas cosas.

- Cambié de trabajo para entrar a Knowtion y esto me absorbió la mayor parte de mi tiempo libre.
- La otra gran parte de mi tiempo libre me la pesé haciendo otras cosas que me hacían mucho, mucho, pero muucho muy feliz.

Estuvo bien, no hay queja. El objetivo de Ryz no es competir contra los otros lenguajes, ni siquiera contra Java mismo, no hay prisa.

En el 2012 lenguajes existentes y nuevos han ido consolidando algo que pretende hacer Ryz, simplificar el uso de Java. Java 8 incluirá closures finalmente, IDE's como Intellj IDEA 12 ya tienen soporte para ello. La comunidad (al menos en la que me encuentro) tiene ya bastante familiaridad con el uso de bloques y la programación funcional está empezando a consolidarse como paradigma al lado de la POO. Hay al menos un lenguaje con tipado estructurado que está siendo usado con éxito en producción actualmente. Todos hablan ya de Smalltalk y así por el estilo. Mucho e esto estaba en la base de Ryz, mucho solo en mi cabeza.

validar formularios

hola buenos dias, soy nuevo por aqui, quisiera que me ayudaran!

Tengo un sistema de inscripcion, pero quiero validar algunos campos como:

*fecha de nacimiento: que solo inserten datos con el formato (ddd/MMM/yyy) sino que salgan un mensaje de error diciendo que los datos son incoorectos.

edad:que soo inserten datos entneros y un maxlength de 3 caracteres

cedula:

El balance entre el uso de métodos como operadores.

Estaba escribiendo una respuesta al post de ezamudio Operadores en Ceylon pero como siempre me extendí más de la cuenta y mejor cree esta entrada separada.

El tema es la sobre carga de operadores en Ceylon.

Es interesante tratar de alcanzar el balance entre el uso de operadores y métodos en un lenguaje de programación.

Por un lado, si se permite que cualquier método se pueda utilizar como operador, se puede terminar creando código que solamente el autor del programa o la biblioteca entienda y eso cuando aún lo tiene fresco en la mente. Me parece que este es una de las críticas más fuertes hacía C++ y a Scala ( aunque Scala además permite una sintaxis diferente para la invocación de métodos que es sin usar punto )

Por otro lado si se prohibe del todo se tiene un lenguaje que es sumamente claro y fácil de entender por cualquiera pero que resulta tedioso porque el programador tiene que escribir toooodo el nombre del método y no simplemente un operador ( Java , Javascript y Go por ejemplo )

Feliz día de Ryz!!!

El año pasado anuncié que estaba trabajando en un lenguaje de programación llamado Ryz ( /reies/ ) y poco tiempo más tarde hice una pequeña presentación del mismo en el #HackerRoom para un "selectísimo" grupo de personas. Este post es una revisión del estado del lenguaje y siguientes pasos.

Historia

  • octubre 2010 El primer Hola Mundo de Ryz.
  • enero 2011 Anunció en Java México y creación del repositorio en http://code.google.com/p/ryz/
  • mayo del 2011 Presentación del lenguaje y una aplicación muy sencilla para sacar screenshots.
  • mayo del 2011 Se creó el repositorio en https://github.com/OscarRyz/Ryz/
  • octubre 2011 Se planeaba terminar la funcionalidad básica que le permitiera entrar en fase alpha, pero por motivos de trabajo ( en agosto del 2011 inicié un proyecto que me consumió hasta los fines de semana ) y ya no pude avanzar como quería

WebView en JavaFX

No lo pude evitar:

JavaFX2.0 finalmente introduce el laaargamente esperado componente JWebPane WebView, que es un port de WebKit para ser usado en Java ( via JavaFX2.0 )

De esta forma ya se podrá tener un componente de primer nivel ( entiendasé rápido y completo ) para mostrar HTML en aplicaciones Java.

En la prueba que hice se tarda bastante en iniciar y aparecer la ventana ( alrededor de 4 segundos ) pero le achaco esto a mi Windows. Sin embargo se ve ejemplo aparece el popup de "Siguenos en Twitter" que aparece en la pagina de JavaMexico que está hecho con JavaScript.

Aunque el código está escrito en Ryz todas las bibliotecas son claro de JavaFX ( tuve que hacer algo de contorsionismo para compilarlo hay que recordar que Ryz ahora está en pre-pre-pre-alpha ) y el siguiente código da una idea de como usarlo.

JavaFX WebView llamado desde Ryz

Main.ryz

#Ryz_language

El pasado viernes 27 se @OscarRyz ha presentado su engendro #Ryz que es un lenguaje alternativo para la JVM y es Orientado a Objetos con tipeo pseudoestatico o pseudodinamico (yo lo definiría así) porque permite definir ambos casos lo cual es un punto a favor porque hay para los que nos gustan los tipos estrictos y hay a quienes les gusta el tipeo libre

la forma de declarar una propiedad:

   + cosaA : String
   - cosaB : Object
   cosaC : Integer // ahorita en este momento tengo la duda si se podria "cosaC : int" o forzosamente debe ser objeto

Pero que es eso del +, - ?? pues resulta que el lenguaje se ha basado en UML para indicar los limitadores de acceso

Por cierto hablando un poco de la declaración de propiedades puedo mencionarles que una desventaja que presenta es que no es posible declarar varias propiedades de un jalón… si así sucediera estaría chido hacer algo así

   -{
   a, b, c, d, e
   } : String

Presentación de Ryz en el HackerRoomMx ( vie. 27 mayo 2011 8 p.m. )

Después de casi un mes de atraso derivado entre otras cosas que mi disco duro voló, por fin he decidido hacer una presentación del lenguaje de programación Ryz que llega al fin a su pre-pre-pre-Alpha release.

En esta presentación hablaré sobre las características del lenguaje y algunos aspectos sobre su origen, estado actual y siguientes pasos. Habrá claro algún ejemplo para que no sea todo teórico.

En esta presentación no hablaré sobre la implementación, en parte porque da pena y en parte porque no es la idea ( para no desilusionarse tan rápido ) Pero si no nos corren pues podemos quedarnos ahí un rato programando :)

Importante Esta es una versión pre-pre-pre-alpha y como tal tiene muchisimas "areas de oportunidad" :P, quedan advertidos.

La cita es el siguiente viernes 27 de mayo 2011 a las 8 p.m. en el mismísimo HackerRoom:

Rio Volga 80, Mezzanine 2-A
Col. Cuauhtemoc
Mexico, DF 06500

Atte:

Oscar Reyes de la Cruz
@OscarRyz
@ryz_language

Nano ejemplo de Javassist

Complementando esta entrada de Rodrigo y estas otras de Enrique, aquí va mi nano ejemplo para modificar una clase con javassist.

Me estaba preguntando si sería posible modificar el bytecode de una clase, pero además salvarlo para que ya no exista dependencia con la biblioteca durante la ejecución.

A menos que haya leído mal en los ejemplos de Rodrigo y Enrique, se modificaba la clase en Runtime, en este ejemplo se modificará en "build-time" que es como se llama cuando se modificar el .class

Primero vemos que hay en el directorio:

C:\Users\oreyes\langs\java\javassistdemo>dir

29/02/2009  23:55 p.m.                57 Code.java
03/07/2009  12:03 a.m.           614,203 javassist.jar
29/02/2009  23:53 p.m.               432 ModifyIt.java

AYUDA SOBRE COMO EMPEZAR UN COMPILADOR?

Hola a todos!!...estoy en un problema, me han encargado hacer un compilador en java, he leido como funciona un compilador y todo eso teoricamente, mas sin embargo no tengo idea de como empezar a programarlo, por el momento me han encargado:

***Crear un alfabeto(valido).
***Crear palabras reservadas(10).
***Crear una interfaz para poder trabajar.
***Crear dos reglas de sintaxis.
***Compilar

Espero y me puedan orientar un poco, de antemano se los agradezco!!

¡¡Feliz día de Reyes!!

¡¡Feliz día de Reyes!!

Desde que estaba en la universidad, siempre quise crear mi propio lenguaje de programación, pero siempre lo consideré algo mucho muy complejo y propio para Doctores en computación ( y no es que no lo sea, sigue siendo complejísimo, solo que ahora no lo considero como una tarea casi imposible ), y pues nunca le entré.

Recientemente ( 3 - 4 años ) con el florecimiento de tantísimos lenguajes de programación me la pasaba siempre pensando: "Por que no tiene esto?, por que no tiene aquello? y por que no tiene lo otro? y por que no? y por que no?" y de tantos por que noes, me dije a mi mismo: "Mi mismo, ¡¿por que no te dejas de quejar y lo haces tu mismo?!". ¿El resultado? Me di cuenta que no solo es difícil escribir un nuevo lenguaje de programación sino que ¡diseñarlo! es ya es de por sí una tarea muy compleja y cuesta mucho trabajo crear algo que sea a la vez original y "usable".

Aún así insistí.

El resultado es este lenguaje de programación que por no encontrar mejor nombre le puse Ryz - pronunciado Reyes :-" )

hola.Mundo {
  main( ) {
    out.println("Hola mundo Ryz!")
Distribuir contenido