Bueno; yo no veo problema en comenzar a aprender managed code. De hecho, lo considero mucho menos traumático y sobretodo más productivo. Creo que el único motivo que me llevaría aconsejar comenzar con C++ en cualquiera de sus sabores, es si realmente se va a desarrollar una carrera profesional basado en programación nativa que igual hoy sigue siendo útil para gente que hace drivers, aplicaciones nativas para teléfonos, mantenimiento a aplicaciones viejas, o aplicaciones nuevas que requieren un uso extremadamente eficiente del hardware (realmente son pocas las que requieren esto). O tal vez programación directa de multimedia sobre DirectX. Cosas así, son las que requieren C/C++. Pero si lo que uno quiere es dedicarse a hacer aplicaciones de negocio o de usuario final, comenzar de una vez a ser productivos con managed code, es el mejor camino.
martes, 25 de mayo de 2010
sábado, 22 de mayo de 2010
martes, 18 de mayo de 2010
Ventajas R�pidas en Expression Web
En el video r�pido de esta semana, muestro ventajas que he encontrado usando Expression Web en la creaci�n de un proyecto Open Source en el que necesitaba algo muy r�pido y sencillo, pero con estilo.
Veamos c�mo para lograr esto, Expression Web nos ayuda bastante. Principalmente abordo temas como edici�n de texto, formateo y aplicaci�n de estilos: C�mo se crean autom�ticamente dentro de la p�gina a trav�s de cuadros de di�logo visuales. Y c�mo se pueden administrar para reunirlos autom�ticamente en un archivo de estilos.
Tambi�n algunos tips HTML como. Centrar un div dentro del body y crear un template con varias columnas en divs.
Algo r�pido, sencillo y �til. Enjoy!
sábado, 15 de mayo de 2010
NaCl: El Silverlight/Flash de Google?
En mi continuo transitar por las novedades tecnol�gicas (no s� a que hora visito tanto sitio�) Me encontr� con que Google de una manera bastante discreta estaba lanzando una tecnolog�a abreviada como la sal: NaCl. Acr�nimo de Native Client.
Native Client es una idea supernovedosa
Con la cual de acuerdo a lo que encontramos en el sitio del proyecto, tenemos un fabuloso SDK que permitir� al browser ejecutar c�digo nativo para construir aplicaciones web de alta respuesta e interactividad� (no les suena esto familiar?)
Lo cual, me parece bastante curioso, dado todo lo que Google ha dicho acerca de su firme apoyo a HTML 5, que pretende solucionar el mismo tipo de problema.
Dijo el vice presidente de ingenier�a Vic Gundotra en el Google I/O de 2009: �HTML 5, will be the future of the web�.
Y si es as�? Para qu� desgastarse tratando de implementar toda una tecnolog�a para correr c�digo nativo desde el browser? Sobretodo cuando se ha criticado al mismo tipo de tecnolog�as ya implementadas como Silverlight y Flash?
Ser� que en el fondo no creen mucho en HTML5? O ser� que en el fondo creen mucho en tecnolog�as Silverlifght/Flash?
NaCl tiene un SDK que funciona en Windows, Linux y Mac� Genial! Y lo mejor de todo, es que las aplicaciones las programar�amos en una suerte de sancocho (l�ase mescolanza o MIX para los m�s modernos) de CSS, HTML, Javascript y s�, el amigable C/C++! Todo para lograr que la aplicaci�n no se vea como un frame embebido dentro del HTML, sino como puro HTML.
Este C/C++ nos permitir� crear de una forma bastante sencilla gr�ficos en 2D/3D, ejecutar audio y responder a eventos del mouse y teclado!
Pero�
Cu�l es el AS bajo la manga de Google que aventajar� a Silverlight y Flash?
Pues que no se requerir� plugin! No habr� que instalar nada!!!
Bueno, excepto el propio browser de Google (Chromium). Entonces ha de ser que para ellos no existen m�s browsers :
�all without requiring users to install a plugin. These web apps run in recent versions of Chromium with the --enable-nacl flag.�
Bueno; pero pongamos esas des-virtudes a un lado y d�mosle una oportunidad de prueba; observemos c�mo ser�a la programaci�n. Primero, veamos c�mo ser�a la p�gina web que hospedar�a la sal; digo, NaCl:
1: DOCTYPE html>
2: <html>
3:
8: <head>
9: <title>Hello, World!title>
10:
11: <script type="text/javascript">
12: hello_world = null; // Global application object.
13: status_text = 'NO-STATUS';
14:
15: function moduleDidLoad() {
16: hello_world = document.getElementById('hello_world');
17: updateStatus('SUCCESS');
18: }
19:
20: // If the page loads before the Native Client module loads, then set the
21: // status message indicating that the module is still loading. Otherwise,
22: // do not change the status message.
23: function pageDidLoad() {
24: if (hello_world == null) {
25: updateStatus('LOADING...');
26: } else {
27: // It's possible that the Native Client module onload event fired
28: // before the page's onload event. In this case, the status message
29: // will reflect 'SUCCESS', but won't be displayed. This call will
30: // display the current message.
31: updateStatus();
32: }
33: }
34:
35: function fortytwo() {
36: try {
37: alert(hello_world.fortytwo());
38: } catch(e) {
39: alert(e.message);
40: }
41: }
42:
43: function helloworld() {
44: try {
45: alert(hello_world.helloworld());
46: } catch(e) {
47: alert(e.message);
48: }
49: }
50:
51: // Set the global status message. If the element with id 'status_field'
52: // exists, then set its HTML to the status message as well.
53: // opt_message The message test. If this is null or undefined, then
54: // attempt to set the element with id 'status_field' to the value of
55: // |status_text|.
56: function updateStatus(opt_message) {
57: if (opt_message)
58: status_text = opt_message;
59: var status_field = document.getElementById('status_field');
60: if (status_field) {
61: status_field.innerHTML = status_text;
62: }
63: }
64: script>
65:
66: "pageDidLoad()">
67:
68:Native Client Simple Module
69:
70:
71:
72:
73:
76:"nacl_helloworld_content">
77: