Barra superior

diumenge, 8 de desembre del 2013

Sobre C#, Mono i l'alternativa a Gnome: Vala

El projecte Mono

Mono és la implementació lliure del CLI (Common Language Infraestructure) i C# (ambdós creats per Microsoft), d'acord a les especificacions enviades a la ECMA per a la seva estandardització. Aquesta implementació és de codi font obert (Open source).

Mono inclou el CLI, el qual conté la màquina virtual que s'encarrega de carregar les classes, el compilador JIT (Just-in-time) i el garbage collector, tot això escrit des de zero d'acord a les especificacions Ecma-334.

Mono també inclou un compilador de C #, el qual paradoxalment aquesta escrit en C # i igual que el CLI, aquest compilador segueix les especificacions Ecma-335.

Addicionalment Mono compta amb un catàleg de llibreries compatibles amb les llibreries del. Net Framework, però a més compta amb una sèrie de llibreries no existents al. Net Framework de Microsoft, com el GTK # que permet crear interfícies gràfiques natives del joc d'eines GTK +, Mono . LDAP, Mono.Posix, etc.

 

Els perills de Mono i C#

Com que Mono és la implementació de codi font obert del .Net Framework de Microsoft, basat en els estàndards alliberats a l'ECMA, per ser una implementació basada en un producte de Microsoft, ha causat controvèrsia l'ús de Mono a Linux entre els usuaris i desenvolupadors de Linux. L'argument és que Mono pugui infringir patents de Microsoft, la qual cosa pot convertir-se una demanda en contra de Mono.

Actualment existeixen alguns programes realment excel·lents escrits en Mono. Només cal pensar en F-Spot, Gnome Do o Docky. Però, hi ha alternatives lliures no basades en C#.

Sobre la recent polèmica decisió de Debian i Ubuntu d'incloure Mono en la seva instal.lació per defecte, a diferència de Fedora que el va eliminar, només per incloure la popular aplicació Tomboy, escrita en C #, Richard Stallman té unes paraules que reprodueix.

"
És perillós dependre en C# , així que hem descoratjar el seu ús. El problema no és únic de Mono, qualsevol implementació lliure de C# tindria el mateix problema. El perill és que Microsoft probablement està planejant forçar totes les implementacions lliures de C# a quedar-se al marge algun dia usant (les seues) patents de programari. Aquest és un perill seriós i només els ximples ho ignorarien fins al dia en què realment succeeixi . Necessitem prendre precaucions per protegir-nos a nosaltres mateixos.Hem d'arreglar les coses per dependre
de C# en les implementacions lliures tan poc com sigui possible. En altres paraules, hem de descoratjar a la gent d'escriure programes en C#. Per tant no hem d'incloure implementacions de C# a la instal·lació per defecte de les distribucions de GNU/Linux, i hem distribuir i recomanar aplicacions no C# en lloc d'aplicacions C# comparables cada vegada que sigui possible."

Alternatives. El projecte Vala

Una alternativa a C# la constitueix el projecte Vala. Vala és un llenguatge de programació orientat a objectes amb un compilador que genera codi C i utilitza el sistema GObject. Vala és sintàcticament similar a C# i inclou característiques de llenguatge útils com funcions anònimes, senyals, propietats, programació genèrica, gestió de memòria assistida, maneig d'excepcions, inferència de tipus, i bucles de tipus "foreach". Els seus desenvolupadors Jürg Billeter i Raffaele Sandrini pretenen portar aquestes característiques al temps d'execució C pla amb poca sobrecàrrega i cap suport especial en temps d'execució per l'orientació del sistema d'objectes GObject. En lloc de ser compilada directament en el muntatge o en un altre llenguatge intermedi, Vala és de codi -font compilat en C que després es compila amb el compilador de C estàndard de la plataforma, com gcc.

Per a la gestió de memòria, el sistema GObject proporciona el recompte de referències. En C, un programador ha de gestionar manualment afegir i treure referències, però en Vala, la gestió d'aquest tipus de comptes de referència és automàtic si un programador utilitza el llenguatge d'una funció dels tipus de referència en lloc de punters plans.

Vala va ser concebut per Jürg Billeter i va ser implementat per ell i Raffaele Sandrini, acabant un compilador "self-hosting", és a dir, capaç de compilar el seu propi codi, el maig de 2006.

Fonts: desdeLinux. Viquipèdia.

Cap comentari:

Publica un comentari a l'entrada