Presentamos Nzym: un libro blanco sobre el lenguaje de programación que revolucionará el multimedia
Published on 12 Aug 2023
Introducción
Sintaxis de Nzym
Número myInteger = 10;
Los métodos se invocan en objetos mediante la notación de punto. Por ejemplo, para invocar el método Add en un objeto de tipo Number, debe escribir lo siguiente:
miEntero.Add = 6;// Si antes el valor de myInteger era igual a 10, ahora será 16
También es importante tener en cuenta que el punto y coma ( ; ) se utiliza para terminar todas las declaraciones y un comentario se crea utilizando dos barras diagonales (//) y, generalmente, un espacio después.
Tipos primitivos
- Número : almacenará números enteros, flotantes o una combinación de ambos
- Cadena : almacena caracteres y se puede utilizar para expresiones más complejas
- Booleano : un tipo binario que almacena verdadero o falso.
- Grupo : una matriz de objetos que se utiliza para crear y definir elementos más complejos.
- Enlace : un tipo único que puede ser nulo o que dirige a una función
Clases y métodos
Persona de clase;
Cadena nombre= Sin nombre;
Número de edad = 18;Método ShowName;
Nombre crudo;
Devolver;
Devolver;
Función GetPerson = String;
Persona randomPerson;randomPerson.name = Un extraño;PersonaAleatoria.MostrarNombre;
Devolver;
El código anterior crea una clase llamada Persona e instancia las propiedades de nombre y edad, configurándolas con variables predeterminadas. Además, en Persona hay un método que imprimirá el nombre de la clase Persona dada. La función GetPerson tiene un tipo de retorno de cadena y, en realidad, crea una nueva Persona e imprime su nombre en la pantalla según el método dado de la clase Persona.
Herencia
Clase SuperHero = Persona;
Superpoderes grupales = (Ojos láser, Súper fuerza, Vuelo);
Número potenciaactiva = 1;Método PowerInUse;
Superpoderes en bruto[activePower];
Devolver;
Devolver;
La clase SuperHero también tendrá acceso a todas las propiedades y métodos de la clase Persona.
Palabras de moda de Nzym
Nzym: Un lenguaje simple, orientado a objetos, interpretado, imperativo, multiplataforma, de alto rendimiento, multiproceso y dinámico.
Muchos sistemas de lenguajes de programación utilizan un conjunto de palabras clave estándar que los caracterizan, establecidas de acuerdo con sus paradigmas, disciplina de tipificación y los problemas que el lenguaje pretende resolver. Usamos estas palabras clave, a las que aquí nos referimos como palabras de moda, para describir Nzym y presentar el núcleo fundador de su estructura y ecosistema.
Sadomba-Mahari Computers (Private) Limited (o simplemente SM), la empresa detrás del desarrollo de Nzym, entró en la industria del desarrollo web en 2010, unos meses después de haberse registrado, y también incursionó en la creación de software especializado para la industria cinematográfica local en Zimbabue. Unos años más tarde, también comenzaron a desarrollar aplicaciones móviles dirigidas a teléfonos móviles de gama alta en las plataformas Android, Windows Phone e iOS. Las partes en cursiva y sangría que aparecen a continuación buscan brindar una descripción de los problemas que enfrenta SM y brindar ejemplos de las palabras clave de Nzym presentadas.
Simple
Tipo nameOfType = valor;nombreOfType.MethodOfType = valor2;Clase NombreDeClase = InheritFrom;Función NameOfFx = ReturnType;Nombre del método = ReturnType;
Al eliminar las características poco utilizadas, poco comprendidas y confusas de C++ y al eliminar los aspectos a veces confusos de la sintaxis de tipo C, que para muchos ha sido causa de mucho dolor y pena, nació un lenguaje más simple.
Al principio, SM empleaba solo a tres programadores a tiempo completo, dos de los cuales eran pasantes contratados en la universidad. El mayor desafío que se les presentó fue poder crear y replicar sitios web estáticos, hechos a medida para varios tipos de clientes, pero reduciendo el tiempo de producción. Obviamente, las hojas de estilo iban a ser diferentes de un proyecto a otro, pero había elementos que iban a existir en todos los proyectos, especialmente la navegación, los widgets de pie de página, la página de inicio, la página de contacto, una página acerca de nosotros y una página para destacar productos y mostrar portafolios. Era necesario que fuera posible una forma más sencilla de crear prototipos y producir...
Otro aspecto de la sencillez es la portabilidad visual. Uno de los objetivos de Nzym es permitir la creación de aplicaciones multimedia que puedan ejecutarse en cualquier plataforma y mantener su aspecto y atractivo visual. El uso de hojas de estilo en cascada y elementos de tecnología web para crear visualizaciones visuales estándar se convirtió en una característica clave para el desarrollo de Nzym. La forma en que se ve una pantalla en un navegador, en una aplicación móvil y en una aplicación de escritorio será la misma o, al menos, será uniforme en apariencia en todas las plataformas.
Orientado a objetos
Las funciones orientadas a objetos de Nzym son básicamente las de la mayoría de los lenguajes de tipo C que lo precedieron, pero con una sintaxis diferente y reglas mucho más relajadas. Los archivos de script de Nzym son los objetos clave de un proyecto de Nzym y, dentro de ellos, pueden contener clases que también se tratan como objetos.
Al trabajar en un sitio web, el equipo de SM sabía que siempre iban a tener que recrear elementos comunes como el formulario de contacto o un menú desplegable, pero con algunas modificaciones solicitadas por el cliente. Como se ocupaban principalmente de la creación de sitios web estáticos, parecía una buena idea si hubiera una manera en la que pudieran agrupar estos elementos comunes en archivos separados para importarlos fácilmente a un proyecto, cuando fueran necesarios, con modificaciones menores para el cliente. Por ejemplo, cambios de color, adición o eliminación de ciertos campos de un formulario o la inclusión de íconos en el menú.
Interpretado
El equipo de SM utilizaba Bootstrap o un código interno que existía en ese momento para recrear y generar distintos tipos de sitios web. Sin embargo, estos bloques de código tenían muchas desventajas, especialmente al visualizarse en distintos dispositivos y navegadores antiguos.
Un objetivo clave del proceso de interpretación de Nzym también ha sido crear productos que funcionen en cualquier dispositivo, en cualquier plataforma, manteniendo no solo la portabilidad visual, sino también la misma funcionalidad y rendimiento.
Imperativo
Una de las dificultades del trabajo del equipo de SM era tener que determinar dónde colocar los elementos que reutilizaban en cada proyecto. Un sitio web tenía un sistema de menú ubicado en la parte superior de la página, encima del encabezado, y otro tenía un menú debajo del encabezado. A veces, el menú se colocaba en el encabezado, entre otros elementos del encabezado, y a veces estaba separado. Saber dónde colocar el conjunto de código con los menús era una tarea que requería mucho cuidado y, si uno se alejaba por un tiempo de su proyecto, siempre era difícil retomarlo. Era igualmente desconcertante si alguien necesitaba hacerse cargo de un proyecto en curso de otra persona, no poder saber hacia dónde se dirigía el proyecto y qué se había hecho con solo un vistazo.
La programación imperativa para Nzym hace que el lenguaje sea fácil de aprender, ya que existe un flujo de control claro que se puede visualizar, lo que le da al usuario más poder para cambiar, modificar y optimizar el programa. Esto también genera más eficiencia en el sentido de que el programador puede decirle al programa informático exactamente qué hacer. En el aspecto procedimental, existe la ventaja de la modularidad, ya que un programa se puede dividir en procedimientos reutilizables más pequeños, y estos también pueden reutilizarse en otros programas. La depuración también es mucho más sencilla debido al paradigma imperativo.
Multiplataforma
Aunque el trabajo en los sitios web era el pan de cada día de SM, había otro gran proyecto del que SM pasó a formar parte y que implicaba trabajar en un paquete de software multimedia llamado AVisPar (el Paquete Visual Africano). AVisPar era un conjunto de programas y herramientas de software para crear visualizaciones 3D, películas, juegos, recursos de juegos y efectos visuales. Lo que iba a ser único en AVisPar era su capacidad de utilizar una tarjeta gráfica para producir renderizados 3D de alta calidad y guardarlos en el disco casi en tiempo real. AVisPar también fue desarrollado para funcionar, no sólo en los sistemas operativos de escritorio comerciales más comunes, sino también en algunas distribuciones de Linux.
Dado que Nzym puede generar sitios web con recursos web, incluidas páginas HTML con JavaScript y CSS, se puede decir que es multiplataforma. Sin embargo, cuando Nzym genera un archivo ctlyst, es posible ejecutar el archivo en cualquier plataforma que tenga una implementación de Nzym Console.
Rendimiento alto
La última implementación de Nzym y Nzym Console se creó con Rust y, a partir de entonces, ha heredado características adicionales de alto rendimiento del lenguaje, ya que el compilador de Rust pudo optimizar el código para lograr mayor velocidad. Además, la biblioteca estándar de Rust proporciona una serie de algoritmos y estructuras de datos eficientes que se utilizaron en la creación de la versión actual de Nzym. Para dar un breve resumen de lo que esto significa para los programas de Nzym:
- Seguridad de la memoria : el sistema de propiedad de Rust garantiza que la memoria siempre se administre correctamente, lo que puede evitar fugas de memoria y fallas. Esto puede generar mejoras significativas en el rendimiento, ya que Nzym no tiene que dedicar tiempo a administrar la memoria manualmente.
- Eficiencia : el compilador de Rust es muy bueno para optimizar el código para lograr velocidad. Esto significa que Nzym Console puede ejecutarse lo más rápido posible, incluso en tareas complejas.
Multiproceso
AVisPar fue un proyecto único en el que el equipo de SM pudo trabajar. Permitió mucha experimentación en términos de cómo crear las soluciones involucradas, pero hubo un gran problema al que se enfrentó el equipo y que tenía que ver con el manejo de eventos simultáneos. La base de código inicial de AVisPar se había escrito en C++ junto con algunas bibliotecas de otros motores de juegos 3D como Irrlicht, que se incluyeron. El motor de juegos 3D Irrlicht en particular tenía cierta funcionalidad de subprocesos múltiples que era fácil de usar y adaptar para ejecutar varios procesos en una sola máquina. Sin embargo, al ejecutar múltiples subprocesos en una red con varias CPU y unidades de procesamiento gráfico involucradas, los subprocesos se volvieron realmente difíciles y complicados de manejar.
C y C++ son tradicionalmente de un solo subproceso y el uso de algunas bibliotecas para lograr la creación de múltiples subprocesos da como resultado las mismas desventajas que enfrentan la mayoría de los programadores cuando usan Java u Objective C para crear aplicaciones multiproceso. Por lo general, los problemas surgen de la complejidad en términos de la necesidad de descubrir cómo interactúan los subprocesos, problemas de rendimiento debido a que el sistema operativo cambia entre subprocesos si el diseño no se realiza con cuidado y, en última instancia, un mayor uso de recursos. Nzym, por otro lado, hace uso del modelo async/await de Rust para código concurrente cuando se dibuja al crear un archivo ctlyst. Sin embargo, Nzym también tiene una alternativa en términos de uso de Web Workers, de la misma manera que lo hace JavaScript, en el sentido de que múltiples subprocesos se pueden convertir a JavaScript para proyectos de sitios web y luego beneficiarse del rendimiento mejorado, la capacidad de respuesta y la escalabilidad de los que se benefician las aplicaciones JavaScript con múltiples subprocesos.
Dinámica
Desde principios de 2011, y durante todo el año hasta finales de 2012, SM experimentó un aumento de clientes que requerían de sus servicios para desarrollar aplicaciones móviles para ellos. SM hizo uso de Java en la creación de aplicaciones para teléfonos inteligentes de la época que soportaban Java, incluidos los teléfonos Android que estaban ganando mucha participación de mercado en ese momento. El problema era que el código para estas plataformas, aunque escrito en el mismo lenguaje, no era ni podía ser el mismo. La presentación visual no era portable y la funcionalidad difería mucho, así como las bibliotecas utilizadas en el desarrollo.
Java fue alguna vez el lenguaje de referencia para desarrollar lenguajes móviles, pero en los últimos años ha perdido terreno frente a lenguajes más nuevos, como Kotlin y Swift. Los principales problemas con Java fueron y siguen siendo
- Rendimiento : Java no tiene el mismo rendimiento que algunos de los lenguajes más nuevos, lo que puede generar aplicaciones más lentas.
- Complejidad : Java es un lenguaje complejo, lo que puede dificultar su aprendizaje y uso.
- Fragmentación : existen muchas versiones diferentes de Java, lo que puede dificultar el desarrollo de aplicaciones que funcionen en todos los dispositivos.
Si bien Java sigue siendo popular para el desarrollo de aplicaciones móviles, debido a su ecosistema de bibliotecas y herramientas, el soporte de muchos proveedores y su madurez, los lenguajes más nuevos están ganando terreno. Con la iniciativa de Nzym de seguir el camino y hacer que sea más fácil, mejor y más rápido crear y trasladar aplicaciones a la mayor cantidad de dispositivos posible con una única base de código como objetivo, Nzym es, sin duda, un lenguaje a tener en cuenta en su avance hacia este objetivo.
Conclusión
Desarrollo actual
Desarrollo futuro
- Bibliotecas prediseñadas para una creación de aplicaciones más fácil y rápida
- Clases y objetos más potentes
- Un mejor depurador
- Un IDE simple pero más fácil de usar