Sistemas & Desarrollo

encontrados: 37, tiempo total: 0.041 segundos rss2
9 meneos
478 clics
Peculiaridades de TypeScript: cómo sus inconsistencias hacen que el lenguaje sea más complejo [ENG]

Peculiaridades de TypeScript: cómo sus inconsistencias hacen que el lenguaje sea más complejo [ENG]

TypeScript tiene un gran número de casos especiales y sorpresas en el compilador que dejan a los ingenieros rascándose la cabeza desconcertados. Mientras que estos comportamientos de forma individual no son muy perjudiciales, como un todo pueden hacer que sea más difícil para nuevos ingenieros formar un modelo mental en torno a este lenguaje. Aquí están tres de mis peculiaridades favoritas de TypeScript que hacen que los nuevos ingenieros se frustren continuamente.
4 meneos
31 clics

Colección de algoritmos implementados en Rust [ENG]

En este repositorio de GitHub se muestra la implementación de diversos algoritmos en el lenguaje de programación Rust con propósitos educacionales. Entre estos algoritmos destacan algoritmos de ordenación como bubble, heap, insertion o merge; algoritmos de gestión de estructuras de datos, como heap, linked list o B-Tree; y algoritmos de gestión de cadenas de caracteres, como el algoritmo Knuth Morris Pratt.
2 meneos
9 clics

Cincuenta años de Pascal y Delphi está en la cima [ENG]

Son 50 años del lenguaje Pascal y Delphi es su heredero, lo que empodera a los desarrolladores de Pascal en los complejos escenarios actuales, a pesar de ser ignorado por el inventor del lenguaje Pascal. Niklaus Wirth publicó el artículo "El lenguaje de programación Pascal" en marzo de 1971, lo que significa que han pasado exactamente 50 años este mes desde que se lanzó oficialmente el lenguaje de programación Pascal. Los célebres informáticos celebraron el aniversario escribiendo un muy interesante artículo de punto de vista para Comunicaciones de la ACM (marzo de 2021, Vol. 64 No. 3, Páginas 39-41) y titulado 50 Años de Pascal.
15 meneos
308 clics
Guía completa de LLVM para creadores de lenguajes de programación [ENG]

Guía completa de LLVM para creadores de lenguajes de programación [ENG]  

Esta es una parte de una serie de publicaciones donde se crea una lenguaje de programación que soporta concurrencia y orientación a objetos llamado Bolt. En esta parte concretamente se habla de usar LLVM como backend de dicho lenguaje de programación para crear el código ejecutable a partir del lenguaje intermedio (IR) de LLVM proveniente del análisis sintáctico y semántico de fases previas.
13 2 0 K 43
13 2 0 K 43
2 meneos
55 clics

Epigramas en programación [ENG]

1. Lo que para una persona es una constante, para otra es una variable; 2. Las funciones retrasan la unión de datos, la estructuras de datos la aceleran. Moraleja: estructura los datos lo más tarde posible durante el proceso de programación; 3. El azúcar sintáctico es el cáncer del punto y coma (semicolon en inglés); 4. Cada programa es parte de otro programa, y raramente encajan; 5. Si un programa manipula una gran cantidad de datos, este lo hace en un número pequeño de formas; 6. […].
3 meneos
46 clics

Cello, biblioteca para llevar la programación de alto nivel a C [ENG]

Cello es una biblioteca que lleva la programación de alto nivel a C. Actuando como un moderno y potente sistema de ejecución, Cello hace muchas cosas fáciles que antes eran poco prácticas o difíciles de manejar en C, como: estructuras de datos genéricos; funciones polimórficas; interfaces/clases de tipos; constructores/destructores; recolección de basura opcional; excepciones; y reflexión. Además, Cello funciona a la perfección junto al estándar de C obteniendo el resto de beneficios, como un gran rendimiento.
222 meneos
3543 clics
El monumental impacto del lenguaje de programación C [ENG]

El monumental impacto del lenguaje de programación C [ENG]

C es un lenguaje tan fundamental que muchos de nosotros olvidamos cuánto ha cambiado. Técnicamente un lenguaje de alto nivel en el sentido de que requiere que un compilador para que el código sea ejecutable, aunque es lo más parecido al lenguaje ensamblador que a la gente le gusta tener en estos días (fuera de entornos especializados de poca memoria). También se considera que es el lenguaje que hizo posible casi todos los lenguajes que vinieron después.
107 115 0 K 61
107 115 0 K 61
3 meneos
87 clics

Ahorrando dinero cambiando de PHP a D [ENG]

2night nació en 2000 como una revista en línea centrada en la vida nocturna y restaurantes en Italia. Con los años, nos hemos convertido en una agencia de marketing experimental en toda regla. Empezamos a usar D en 2night en 2012 cuando desarrollamos un servicio web utilizado por nuestras aplicaciones de Android e iOS. Ha funcionado bien desde entonces, pero fue solo un pequeño experimento. En 2019, después de muchos otros experimentos, decidimos dar el gran paso: cambiamos el sitio web completo de PHP a D.
3 meneos
21 clics

bic: intérprete de C y explorador de API [ENG]  

bic es un proyecto que permite a los desarrolladores explorar y probar API usando un bucle de lectura, evaluación e impresión (REPL, Read, Eval and Print Loop en inglés) similar al que tiene Python o al propio BASH.
3 meneos
71 clics

Cómo escribí un compilador de C que se compila a sí mismo en 40 días [ENG]

He escrito un compilador de C que se compila a sí mismo al que llamé 8cc. Y lo he escrito en 40 días. Esta entrada es un registro de todos los pasos que he dado para escribir el compilador. El código fuente y su historial están disponibles en GitHub.
2 meneos
45 clics

D como reemplazo de C [ENG]

Mi historia es como muchas historias de programadores de sistemas: usaba C para la mayoría de mis programas, pero un día me di cuenta de que la mayoría de mi código en C reimplementaba cosas de C++: arrays dinámicos, mejores cadenas, clases polimórficas, etc. Así que intenté usar C++; y me gustó en un primer momento. Pero cuanto más aprendía peor se hacía mi código. Asumámoslo: C puede ser difícil de usar, pero tiene una “elegancia” que nunca se ve en C++, por lo que muchos programadores de C++ vuelven a C. Pero en mi caso descubrí D.
3 meneos
50 clics

Rust no es un buen reemplazo para C [ENG]

Tengo un dicho que resume mi opinión sobre Rust en comparación con Go: Go es el resultado de que los programadores de C diseñen un nuevo lenguaje de programación, y Rust es el resultado de que los programadores de C ++ diseñen un nuevo lenguaje de programación. Esto no es solo una metáfora: Go fue diseñado por ex alumnos de plan9, un sistema operativo escrito en C y la fuente de inspiración para muchas de las funciones de Go, y Rust fue diseñado por la gente de Mozilla, cuyo producto estrella tiene una de los más grandes bases de código en C++.
3 meneos
38 clics

Liran Zvibel (WekaIO) cuenta cómo usar D para crear el sistema de archivos más rápido del mundo [ENG]

WekaIO es una startup con sede en San José, California, que ha creado Matrix, el sistema de archivos más rápido del mundo, y lo ha escrito en D. WekaIO es un ejemplo de objetivo de diseño de D: poder escribir prototipos rápida y fácilmente para luego continuar trabajando en la misma base de código hasta alcanzar calidad de producción en lugar de crear prototipos en lenguajes de alto nivel diferentes. Liran hizo un hueco en su apretada agenda para responder algunas preguntas sobre WekaIO y el uso que hacen de D.
2 meneos
44 clics

La asombrosa plantilla que no hace nada [ENG]

Recientemente empecé a usar una nueva plantilla con más frecuencia en el nuevo código D: el uso de la plantilla de identidad. La plantilla de identidad (disponible en std.traits aunque no documentada), se declara así: alias Identity (alias X) = X;. Esta es una forma abreviada de una declaración de plantilla, sinónimo de la forma explícita: template Identity (alias X) { alias Identity = X; }. Se trata de una plantilla epónima, por lo que la instanciación se reemplaza con X (el único parámetro de la plantilla). En consecuencia, Identity!(anything) es asignado a anything. Entonces, ¿de qué sirve una plantilla que no hace nada?
18 meneos
590 clics

Cómo una empresa de ingeniería eligió migrar a D [ENG]

Imagine que existe ese lenguaje de programación poco conocido con el que se disfruta de la programación en el tiempo libre. Sabes que está listo para el horario de máxima audiencia y sueñas con usarlo a diario en el trabajo. Esta es la historia sobre cómo hice realidad un sueño así al conseguir migrar una aplicación escrita en Pascal a D.
11 7 0 K 29
11 7 0 K 29
11 meneos
339 clics

D as BetterC: reescribiendo `make.c` en D [ENG]

D como un mejor C (también conocido como DasBetterC, en inglés) es una forma de actualizar proyectos existentes programados en C reprogramándolos en D de forma incremental. En este artículo se muestra paso a paso el proceso de reescribir en D un proyecto no trivial escrito en C, además de algunos de los problemas comunes que pueden surgir.
5 meneos
54 clics

C no es un lenguaje de bajo nivel [ENG]

A raíz de las recientes vulnerabilidades de Meltdown y Spectre, vale la pena pasar algún tiempo mirando su causa principal. Ambas vulnerabilidades involucraban a los procesadores ejecutando instrucciones especulativamente sin ningún tipo de control de acceso permitiendo al atacante observar los resultados a través de un canal lateral. Las características que llevaron a estas vulnerabilidades se añadieron para permitir que los programadores de C continúen creyendo que están programando en un lenguaje de bajo nivel.
3 meneos
44 clics

Todo lo genial que tiene D se puede ver en ‘std.variant’ [ENG]

Hace poco leí un excelente artículo de Matt Kline sobre todo lo malo de std::visit de C++. Mis habilidades en C++ están oxidadas (hace tiempo que me fui para los pastos más verdes de D), pero tenía curiosidad sobre cómo habían cambiado las cosas en mi ausencia y cómo se podría implementar lo mismo en D. Aunque mi intuición me decía que el artículo exageraba, al final esta estaba completa y absolutamente equivocada.
3 meneos
7 clics

Swift Package Manager – Paquetes y Dependencias

En esta ocasión aprenderemos sobre Swift Package Manager, el gestor de paquetes de Swift, una herramienta con la cual podremos crear paquetes / proyectos ya sean librerías o ejecutables, gestionar las dependencias de estos y en general administrar de una manera más fácil y consensuada la distribución de nuestro código Swift...
12 meneos
333 clics
Código seguro en D [ENG]

Código seguro en D [ENG]

He visto a buenos programadores en C++ cambiarse a Java o C#. La pregunta es: ¿por qué lo abandonan una vez que tienen un amplio conocimiento del mismo? La respuesta universal es “productividad”. ¿Qué impide a C++ lograr productividad? La horrible sintaxis y la seguridad son dos de los mayores impedimentos. Aunque también tiene cosas buenas, como su gran rendimiento. Entonces, ¿existe algún lenguaje que sea sencillo, seguro y potente a la vez? Te voy a contar un secreto: ese lenguaje existe y es D.
3 meneos
49 clics

En crudo y sin censura: raw sockets II (en C)

¡Qué tal! Ya estoy aquí con la segunda entrada de esta serie, que me da a mi que va a ser larga ;D Bueno, como prometí en la entrada anterior, vamos a ver el ejemplo que os dejé, vamos a ver las partes importantes de sockets raw y añadiremos o modificaremos el código para conseguir un ejemplo más versátil. Al lector: si incurro en cualquier error a lo largo de estas entradas, agradecería vuestras correcciones. Como primer ejercicio quiero que le echéis un vistazo más a fondo al código que está debajo de este párrafo y leáis los […].
12 meneos
532 clics
En crudo y sin censura: raw sockets I (en C)

En crudo y sin censura: raw sockets I (en C)

Aprovechando que tengo que guardar reposo por un mini accidente laboral, he decidido ponerme con algo que llevaba posponiendo un tiempo (permitirme la redundancia): salsear un poquito con los sockets en C y ya de paso escribir una entrada en el blog. A lo largo de esta serie de entradas intentaré mostrar para qué podemos utilizar la programación de sockets (sobre todo los RAW) siempre mirando desde un prisma, digamos, oscuro. Soy consciente que no es un tema fácil de tratar, y mucho menos hacer que la lectura sea liviana a la […].
9 meneos
339 clics

Herramientas de línea de comandos más rápidas usando el lenguaje de programación D [ENG]

Esta entrada muestra cómo unas simples construcciones en el lenguaje de programación D pueden hacer que una ya rápida herramienta de línea de comandos se convierta en una especialmente rápida sin perder la simplicidad inherente del programa original. La solución es aplicable a muchos problemas de programación, no sólo a herramientas en línea de comandos. Esta entrada muestra cómo funcionan estas técnicas y por qué son efectivas.
6 meneos
405 clics
Cinco razones por las que el lenguaje de programación D es una buena elección para el desarrollo [ENG]

Cinco razones por las que el lenguaje de programación D es una buena elección para el desarrollo [ENG]

El lenguaje de programación D es de propósito general, tiene tipado estático, sintaxis similar a C y C++ que compila a código nativo, etc. Estas son varias de las razones por las que este lenguaje de programación es una buena elección para desarrollar aplicaciones.
15 meneos
588 clics
¿Crees que sabes mucho de C? [ENG]

¿Crees que sabes mucho de C? [ENG]

Muchos programadores dicen que saben C. Tiene la sintaxis más famosa, tiene más de 44 años de historia y no tiene características oscuras. ¡Es fácil! Bueno, muchos programadores dicen que saben C. Lo más probable es que lo hayan aprendido en la universidad y que tengan algún tipo de experiencia en ello, porque en realidad no hay mucho más que saber. Pero en realidad C no es tan simple. Pero si piensas que sí lo es, prueba a hacer este test.
13 2 0 K 37
13 2 0 K 37
« anterior12

menéame