Tema:
Saludos a todos, esta es mi primera entrada.
Como preambulo quiero contarles que soy aficionado a la programacion, unos de los lenguajes que mas use fue C#, por razones ideologicas deje de usarlo y busque una alternativa, y la encontrè, es Vala de Gnome, software libre.
Tiene una sintaxis muy parecida a C# por lo que aprenderlo fue cuestion de unos dias.
Valac, el compilador, convierte el codigo fuente de Vala automaticamente a C y posteriormente ese codigo lo compila a codigo maquina.
Esto permite que los programas escritos en Vala puedan ser compilados y corridos en casi todas las plataformas. Es un lenguaje aun joven, no por eso menos potente.
No requiere de un framework para correr como lo hace un compilado de C#.
Esta es la pagina oficial del proyecto, enontraran informacion acerca del lenguaje, tutoriales, etc.
http://live.gnome.org/Vala
Los invito a conocerlo y aprenderlo.
Me despido, bendiciones a todos.
Comentarios
Y como el resultado es código
Y como el resultado es código en C/C++ compilado, correrá hecho una "(B)VALA" ... :D
Veamos que tal pinta tiene ...
bye
;)
Velocidad de Vala
Bueno, el desempeño de Vala depende tambien como se haga el programa. Pero en las pruebas que he visto buscando en la red Vala es superior a c# en velocidad.
Esto porque compila a codigo maquina y no requiere el uso de algun framework como c# o Java.
Gracias por compartir
Gracias por compartir el dato edwinspire.
Voy a echarle una ojeada al lenguaje.
Saludos cordiales.
Carlos Julio Pérez Quizhpe
Full stack developer
https://ec.linkedin.com/in/carlosjulioperez
Vamos a ver que tan versatil
Vamos a ver que tan versatil es ;), con tanto lenguaje por allí hay que estar seguro a lo que se le apunta jejeje
"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net
Vala me gusta.
Si comparamos la documentacion, ejemplos, librerias etc, entre Vala y c#, pues Vala queda muy por debajo.
Pero eso no significa que sea poco potente.
Cuando me cambie de c# a Vala heche de menos muchas cosas, muchas librerias que me hacian la vida mas facil.
En Vala algunas librerias tuve que implementarlas yo mismo, por ejemplo para controlar puertos seriales en windows y linux. Por cierto si a alguien le interesa esa libreria solo me avisan y listo, en los proximos pondre un blog acerca de ella.
Vala es un lenguaje joven, usa GLib, portada para Windows y Linux, su desarrollo va de la mano del equipo de Gnome.
Existen muchos bindings para poder usar una serie de librerias que actualmente ya existen y han sido escritas en C.
Hace unos dos años realice un software para un sistema de alarmas comunitarias con notificaciones via sms escrito en c#, hoy estoy reescribiendo todo ese codigo a Vala sin mayor problema.
tienes algun ejem de codigo
tienes algun ejem de codigo que haga algo simple... solo para analizar desde el punto de vista sintactico como lleva...
Sería muy didáctico poder ver
Sería muy didáctico poder ver algo de código vala }:)
"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net
Algo de Codigo con Vala
Basic Vala Samples
Hello World
A very simple Hello World program:
void main () {
print ("hello, world\n");
}
Compile and Run
$ valac hello.vala
$ ./hello
If the binary should have a different name:
$ valac hello.vala -o greeting
$ ./greeting
Reading User Input
void main () {
stdout.printf ("Please enter your name: ");
string name = stdin.read_line ();
if (name != null) {
stdout.printf ("Hello, %s!\n", name);
}
}
Vala provides the objects stdin (standard input), stdout (standard output) and stderr (standard error) for the three standard streams. The printf method takes a format string and a variable number of arguments as parameters.
Mathematics
Math functions are inside the Math namespace.
void main () {
stdout.printf ("Please enter the radius of a circle: ");
double radius = double.parse (stdin.read_line ());
stdout.printf ("Circumference: %g\n", 2 * Math.PI * radius);
stdout.printf ("sin(pi/2) = %g\n", Math.sin (Math.PI / 2));
// Random numbers
stdout.printf ("Today's lottery results:");
for (int i = 0; i < 6; i++) {
stdout.printf (" %d", Random.int_range (1, 49));
}
stdout.printf ("\n");
stdout.printf ("Random number between 0 and 1: %g\n", Random.next_double ());
}
Command-Line Arguments and Exit Code
int main (string[] args) {
// Output the number of arguments
stdout.printf ("%d command line argument(s):\n", args.length);
// Enumerate all command line arguments
foreach (string arg in args) {
stdout.printf ("%s\n", arg);
}
// Exit code (0: success, 1: failure)
return 0;
}
The first command line argument (args[0]) is always the invocation of the program itself.
Reading and Writing Text File Content
This is very basic text file handling. For advanced I/O you should use GIO's powerful stream classes.
void main () {
try {
string filename = "data.txt";
// Writing
string content = "hello, world";
FileUtils.set_contents (filename, content);
// Reading
string read;
FileUtils.get_contents (filename, out read);
stdout.printf ("The content of file '%s' is:\n%s\n", filename, read);
} catch (FileError e) {
stderr.printf ("%s\n", e.message);
}
}
Spawning Processes
void main () {
try {
// Non-blocking
Process.spawn_command_line_async ("ls");
// Blocking (waits for the process to finish)
Process.spawn_command_line_sync ("ls");
// Blocking with output
string standard_output, standard_error;
int exit_status;
Process.spawn_command_line_sync ("ls", out standard_output,
out standard_error,
out exit_status);
} catch (SpawnError e) {
stderr.printf ("%s\n", e.message);
}
}
First Class
/* class derived from GObject */
public class BasicSample : Object {
/* public instance method */
public void run () {
stdout.printf ("Hello World\n");
}
}
/* application entry point */
int main (string[] args) {
// instantiate this class, assigning the instance to
// a type-inferred variable
var sample = new BasicSample ();
// call the run method
sample.run ();
// return from this main method
return 0;
}
The entry point may as well be inside the class, if you prefer it this way:
public class BasicSample : Object {
public void run () {
stdout.printf ("Hello World\n");
}
static int main (string[] args) {
var sample = new BasicSample ();
sample.run ();
return 0;
}
}
La pagina es la siguiente:
https://live.gnome.org/Vala/BasicSample
Y mas ejemplos en:
https://live.gnome.org/Vala/Documentation#Sample_Code