programming, swift

Swift 3.0 Unsafe World

Like most of the modern languages, in Swift you will be living in a happy world where all the memory is managed by an external element, it could be the compiler/runtime like swift or it could be worse and depend on a garbage collector. References to instances that fly around are hidden in the language and rarely you need to deal with these issues.

However, given Swift versatility you could need to call a dirty C Api like OpenGL or POSIX functions, and in those cases you will need to deal with that thing that has caused lots of headaches to many of us, yes, I'm talking about pointers and allocating memory manually in the heap

Before 3.0, Swift unsafe API was a little bit confusing, there were several paths to achieve the same result, and that caused that you usually ended by copying and pasting what you saw in stackoverflow without understanding what is really happening. In 3.0 everything has changed, and it has done it for the better.

In this post I won't write how to migrate from Swift 2.x to 3.0 code, instead I will describe how the things works in 3.0 and will be comparing occasionally with C, since usually the main purpose of using unsafe references is to interact with low level C APIs.

Let's start by doing the simplest operation, allocating memory to hold an Integer.

Continue reading

programming, rust

Cargo. Configurando nuestro proyecto.

cargo

En el anterior post escribimos nuestro primer programa en Rust, para ellos creamos un fichero .rs donde pusimos la implementación, sin embargo cuando creemos proyectos con Rust, usaremos una aproximación diferente.

Integrado en Rust tenemos una herramienta que nos ayudará a crear y configurar nuestros proyectos. Esta herramienta es cargo y es algo que si habéis desarrollado en otros lenguajes como C o C++ os va a gustar bastante.

Continue reading

dart, desarrollo movil, programming

Flutter. Nuevo framework multiplataforma

14101776

Recientemente Google nos ha sorprendido con el lanzamiento de un nuevo framework para realizar aplicaciones multiplataforma (iOS/Android) llamado Flutter.

El objetivo de este framework es poder realizar aplicaciones usando Dart, y que se ejecuten en nuestros teléfonos de manera nativa, y con un rendimiento equiparable a las aplicaciones desarrolladas con Java, Swift ó Objective-C que usan los SDKs oficiales.

Para ello, el equipo de flutter se ha alejado de otras aproximaciones que usan soluciones basadas en Javascript y HTML, creando una librería de componentes gráficos en C++ desde cero.

Continue reading

programming, rust

Rust playground

 

rust_playground

En el anterior post introdujimos el nuevo lenguaje de programación surgido de los labs de Mozilla. En esta nueva entrada vamos a ponernos manos a la obra y preparar nuestra maquina para empezar a jugar con Rust.

Dependiendo del sistema operativo que utilicemos tendremos diferentes alternativas para instalar Rust, la manera más sencilla es descargar el instalador para nuestro sistema operativo desde la propia web de rust.

Continue reading

programming, rust

Introducing Rust

rust-logo-256x256-blk

Cada poco tiempo un nuevo de lenguaje de programación aparece tratando de aportar nuevas características y mejorar la manera en que nos comunicamos con nuestros ordenadores.

La gran mayoría de lenguajes acaban apuntando a ámbitos de alto nivel como el desarrollo web, el scripting o entornos específicos. Sin embargo en 2010 en el departamento de investigación de Mozilla se creó un nuevo lenguaje de programación destinado a un ámbito que normalmente llama muy poco la atención, lo que se conoce como “system programming”, y que actualmente esta ampliamente dominado por C y C++.

Rust compite con grandes “players” en el ámbito de los lenguajes de programación, y es que su meta, sin llegar a explicitarlo, es poder destronar a los reyes de la programación.

Y ¿qué aporta Rust que no podamos hacer ya con los diferentes lenguajes que tenemos disponibles?

Continue reading