Este artículo proviene de un motor de traducción automática.

El programador políglota

Captura de lógica de negocios importante

Ted Neward

 

Ted NewardDado que este es el mes de abril, que la revista llegaron a la puerta (o buzón de correo o correo electrónico o... lo que sea) en algún lugar en o alrededor de 1 de abril y dijo fecha se refiere a menudo en los Estados Unidos y otras naciones occidentales como "Día de los inocentes", me pareció apropiado hacer una columna sobre las lenguas en que podremos capturar importante lógica empresarial. (Tenga en cuenta las capitales es cómo los empresarios siempre consulte cualquier novedad ridículo que quieren, por lo que sólo es apropiado que nos referimos a él con el mismo grado de veneración y respeto que se merece). Es importante tener en cuenta es de suma importancia que cuando capturamos dijeron lógica de negocio importante, lo hacemos con seriedad y sinceridad; Esto significa hacerlo en un idioma que puedan entender los dueños de negocios y clientes representantes (y sobre todo el Departamento de marketing).

Así, es con una conducta grave y sincera que les presento a una lengua importante en su caja de herramientas de programación. net: LOLCODE.

LOLCODE

Mientras que ha sido la opinión de los científicos y los dueños de perros por igual que gatos realmente no pueden comunicarse con sus dueños, los dueños de gatos han sabido durante años que se comunican bien — pregunten humanos co-residing de cualquier gato, cuyo gato acaba de informar lo que a pesar del hecho es 5, es hora de que el gato ser alimentado. (Para los no iniciados, dicha actividad generalmente implica fuertes maullidos, colillas de cabeza a la nariz, expresiones inocentes y ocasionalmente una flexión muy leve de una garra felina a una parte del cuerpo humano sensible).

Sin embargo, desde gatos descubrieron el ratón mecánico, una revolución silenciosa ha llevado a cabo a través de Internet: Gatos constantemente han mejorado su capacidad para comunicarse mediante la publicación de fotos de sí mismos con leyendas escritas en lo que muchos antropólogos e historiadores (los cuales son amantes de gatos — el perro amante antropólogos e historiadores después de haber sido "de carácter" a comentar sobre este) es el fundamental a bloques del lenguaje humano todos de acuerdo. Esta lengua fundamental se refiere a veces imperfecto por los seres humanos por el nombre "LOLspeak." (Ejemplos de él pueden encontrarse en su cuenta de Facebook y los feeds de Twitter, para no hacer como que estás no saben lo que me refiero a).

Afortunadamente, han tomado bien intencionados ingenieros gato propiedad familiares con la plataforma .NET para extender esta lengua en la plataforma .NET; dos tales esfuerzos fueron, de hecho, en su lugar, pero lamentablemente sólo uno ha sobrevivido hasta nuestros días. La primera fue una implementación basada en el Runtime de lenguaje dinámico (DLR) de Martin Maly y John Lam cuando DLR era nueva (2007), pero parece que han desaparecido. El segundo es un proyecto de en el mismo marco de tiempo, pero compilar el código en ensamblados .NET en lugar de interpretar la fuente directamente. Ese proyecto está alojado en bit.ly/AJeM y, de ser open source, es fácilmente accesible a través de la subversión mediante un solo "svn checkout http://lolcode-dot-net.googlecode.com/svn/trunk/" comando en la ventana de línea de comandos local. Una vez construido, podemos empezar a explorar esta lengua increíble y potente.

Para detalles completos sobre la lengua LOLCODE, revisa el sitio Web de LOLCODE en lolcode.com, y en particular retirar las especificaciones de lengua LOLCODE, todos los cuales son normas de asociación (ECPA) programadores gato europeo, en lolcode.com/specs/1.2. LOLCODE.NET implementa gran parte (si no todos) de LOLCODE 1.2, que es el último estándar LOLCODE.

HAI

Por supuesto, el primer programa que nadie nunca se escribe en cualquier idioma nuevo debe ser de esa versión de "Hello World", y nuestro buceo en LOLCODE será no es diferente:

HAI
  BTW Greet the people
  VISIBLE "Hello, world!"
KTHXBYE

Cada programa LOLCODE comienza con el tradicional saludo, "HAI" y se termina con el cierre tradicional, "KTHXBYE." Como con todas las palabras clave en LOLCODE, éstos distinguen mayúsculas y minúsculas y deben escribirse en mayúsculas. "VISIBLE" es, como podría ser deducida, el comando para escribir en la secuencia de salida estándar, y "BTW" es el comentario de una línea. (Comentarios multilíneas abren con "OBTW" y terminan con "TLDR.")

Usando el compilador de "lolc" construido desde el árbol de fuentes LOLCODE.NET nos da un ensamblado de .NET tradicional, bautizado con el archivo de origen (en el estilo tradicional de compiladores. net), así que si se almacena el código anterior en "hello.lol", entonces "hello.exe" contiene el lenguaje intermedio (IL).

I TIENE HILO

LOLCODE reconoce que hay sólo cuatro tipos en el mundo: cadenas (hilado), números (inscriba numero), valores booleanos (TROOF) y matrices (BUKKIT), sino porque los gatos nunca comprometen a nada hasta el último momento posible, una declaración de variable en LOLCODE (utilizando la sintaxis "Me HAS A") es sin tipo hasta que se le asigna el valor. Más importante, porque un gato nunca se celebraría ante una decisión incluso una vez que la decisión está tomada, variables en LOLCODE se fexiblemente escriben, lo que significa que una variable puede contener cualquier valor, cambiar su tipo según sea necesario para reflejar el nuevo valor:

I HAS A COOLVAR ITZ THREE
LOL COOLVAR R 3

La primera línea de código declara una variable denominada "COOLVAR" y le asigna el valor de cadena (hilado) tres. La segunda línea de código establece esa misma variable con el valor 3, de tipo INSCRIBA NUMERO. Cualquier variable sin inicializar contiene el valor null, "NOOB".

Como palabras clave, las variables son case-sensitive y pueden utilizar mayúsculas, aunque LOLCODE idiomático sugiere todas las capitales para mayor claridad. Como C#, nombres de variables deben comenzar con una letra, pero luego pueden consistir en letras, números o caracteres de subrayado.

Lectura desde la consola es hecho usando el "GIMMEH" comando, por lo que parece un segundo programa para saludar al usuario, preguntarle su nombre e imprimirlo a él como el siguiente:

HAI
  I HAS A NAME ITZ "Ted"
  VISIBLE "d00d type in ur name"
  GIMMEH NAME
  VISIBLE "d00d ur name is " NAME
KTHXBYE

Mientras que el l33tspeak en la consola no es una parte necesaria de la lengua, se considera idiomáticamente correcta y buena forma.

Control de flujo

If/then construcciones se crean colocando "O RLY?" después de una expresión, usando "YA RLY" para definir la rama de la verdad de la expresión y 'NO WAI' para la rama falsa de la expresión y "OCI" para indicar el final de la if/then construir totalmente. Múltiples sentencias pueden ser separados por comas en una sola línea si es estéticamente agradable. Si hay más de dos ramas posibles (idiomas de otros, menos respetuosos del felino llaman un "else if"), entonces esto se da por "MEBBE" bloques definidos entre los bloques "YA RLY" y "NO WAI". Operaciones de comparación aparecen completamente en la especificación 1.2 LOLCODE, pero el "SAEM" (igualdad) y los operadores de "DIFFRINT" (desigualdad) suelen ser las más comúnmente usadas comparaciones, como es el caso de lenguajes de programación más modernos. Para operaciones booleanas, "ambos de <x> UN <y> "darnos lógica- y,"ya sea de <x> [Un] <y> "darnos lógica-o y"ganado de <x> [Un] <y> "darnos XOR lógica.

Lazos son significados utilizando la palabra clave "IM en YR <label>" comenzar la construcción de bucle y terminar con la construcción de "IM OUTTA YR <label>"; sin una condición de terminación en el inicio de la construcción de bucle, dada por un "TIL" o expresión "WILE", el bucle se ejecutará infinitamente hasta que termina en una expresión de "desaparecer", que devuelve el control inmediatamente después de la palabra clave "IM OUTTA YR".

Poner todo esto junto, por ejemplo, usted tiene el siguiente programa:

HAI
  I HAS A NAME ITZ ""
  IM IN YR LOOP
    VISIBLE "Gimmeh ur name or 'gtfo' to GTFO"
    GIMMEH NAME
    SAEM NAME AN "gtfo", O RLY?
      YA RLY, VISIBLE "L8r!", GTFO
      NO WAI, VISIBLE "Yo " NAME
    OIC
  IM OUTTA YR LOOP
KTHXBYE

Observe que el bucle "LOOP" es un bucle infinito, con la condición de no terminación, utilizando "desaparece" en la rama "YA RLY" de la "SAEM... Condicional O RLY?"para terminar el programa en caso de que el usuario escribe en"desaparece"como entrada.

¿CÓMO DUZ ME...

Buenas prácticas de programación exige que el código ser segregados en unidades fácilmente consumibles y LOLCODE sería el lenguaje listo para el negocio serio que es sin capacidad similar. Utilizando el "cómo DUZ me" y "Si quieres decir tan" pares de palabra clave, usted puede definir funciones que pueden invocarse para llevar a cabo las operaciones:

HAI
  HOW DUZ I GREET
    I HAS A NAME ITZ "Ted"
    VISIBLE "d00d type in ur name"
    GIMMEH NAME
    VISIBLE "d00d ur name is " NAME
  IF U SAY SO
  GREET
KTHXBYE

Esto definirá una sola función, "Saludo", que se utiliza desde el programa principal para saludar al usuario y devolver su nombre. Parámetros a la función se dan por pares de nombre "YR".

¿I CAN GET BIBLIOTECA?

Por supuesto, no es la verdadera ventaja de LOLCODE por escrito las partes aburridas y tediosas del programa (un gato real nunca ceder a aburrido y tedioso, por supuesto); en cambio, ventaja verdadera de LOLCODE radica en captar la lógica de negocio importante y exponerlo a través de un servicio Web o Windows Presentation Foundation (WPF) GUI o algo. Por esta razón, el compilador LOLCODE también admite el omnipresente "/ objetivo: Biblioteca" opción para producir un conjunto estándar de biblioteca .NET — todavía hacerlo, sin embargo, produce un ".exe"-sufijada Asamblea, un método principal presente en el programa, aunque la principal simplemente no hace nada. Esto es realmente muy en consonancia con otras lenguas modernas que asumen que la parte superior del archivo es el punto de entrada al programa en su conjunto; LOLCODE es simplemente tomar el paso adicional de ofrecer siempre una cañería, porque uno (aunque vacía) está siempre presente.

Si compila como una biblioteca o un archivo ejecutable, LOLCODE siempre envuelve el código generado en una clase llamada "Programa". No hay ninguna funcionalidad de espacio de nombres — no felino que se precie jamás aceptaría un apellido, tampoco.

Pronto a ser una mejor práctica de misión crítica

Mientras que LOLCODE es potente, desafortunadamente su aceptación no todavía ha llegado un punto donde muchos analistas de negocios y representantes de comprenden los beneficios de expresar la lógica de negocios en él. Afortunadamente, ser open source, extensiones a la lengua son fáciles, y este lenguaje se espera convertirse en un estándar de la industria de misión crítica mejores prácticas para el 2014. Para obtener mejores resultados, arquitectos animamos a demostrar el poder de LOLCODE en sesiones prácticas de codificación, preferiblemente en una reunión con ejecutivos de alto nivel sin previo aviso ni avance aviso. ¡Feliz codificación!

Ted Neward totalmente está haciendo toda esta arriba, excepto las partes de la lengua LOLCODE — todo eso es absolutamente cierto. Él ha escrito más de 100 artículos y es autor o coautor de una docena de libros, incluyendo "profesional F # 2.0" (Wrox, 2010), pero ninguna como una broma como es este artículo. Es un F # MVP y habla en conferencias alrededor del mundo. Él ha sido asesorado por su abogado no para publicar en cualquier medio de llegar a él, para evitar enojado Letras de arquitectos que siguieron a esa última parte del Consejo, pero los lectores desde hace mucho tiempo de esta columna ya sabrá cómo llegar a él.

Gracias a los siguientes expertos técnicos en la familia de Neward para revisar este artículo: Scooter, sombra, princesa y Señor. Pelusa pelusa