Miemblogs
en

DotNetClubs

Comunidades de estudiantes entusiastas de la tecnología

Este blog

Sindicación

Miemblogs

  • Todo lo que siempre quise saber sobre WPF: El comienzo

    Todos los primeros de año la gente hace promesas sobre lo que espera hacer a lo largo de ese año. Pues bien, una de las cosas que quiero hacer durante los próximos 12 meses es aprender todo lo posible de Windows Presentation Foundation (entre otras cosas claro :D).

    Como no quiero esperar hasta enero para empezar, voy a comenzar ya mismo. Para ello escribiré un post semanal dedicado a este tema, se que a alguno le parecerá poco, pero dado mi ritmo de posteo durante los últimos meses creo que es bastante aceptable, además si falta el post alguna semana sois libres de spamearme en el correo :S

    Pues nada, dentro de poco subiré el primer post. Creo que no hace falta decir que se aceptan consejos, ideas y sobre todo correcciones.

    SaludetesCool

  • [Tip/Trick] Ocultar el botón Show Details en el Report Manager

    ShowDetails

    Hace unos días me tuve que pelear al final pa ná con el Report Manager para ocultar el botoncito de mostrar detalles.

    Como no sabía como hacerlo, me puse a investigar un poco y seguí los siguientes pasos:

    Buscar un buen buscador....ahí os dejo que os peleéis por decidir el mejor :P

    Introducimos algo para buscar... hide show details report manager, etc. Y pulsar voy a tener suerte :P ups, eso no debería de haberlo puesto, jejeje

    Al final, encontré este enlace: https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2736702&SiteID=1 donde explica como ocultarlo modificando el estilo del portal. ¿Estilo? Siiii, se pueden tocar los estilos!!!!

    ¿La forma? Pues bien, nos vamos a la ruta donde está el estilo del portal, que por defecto estará en un sitio tal como: C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager\Styles.
    El archivo que tendremos que tocar se llama reportingservices.css y el trozo de código que tendremos que meter será el siguiente:

    #ui_btnSwitchView
    {
          visibility: hidden;
    }

    Con esto ocultaremos el botón del portal. El estilo al ser para todo el portal, se ocultará para todos los usuarios.

    Espero que os sirva.

    Un Saludo

  • [WebCast] ClickOnce, tus aplicaciones llegarán a cualquier parte

    No podíamos despedirnos del año si un nuevo evento. A lo largo de este año, hemos visto temas tan diferentes como CSLA.NET, Reporting Services vs Crystal Reports, Windows Communication Foundation, C# vs VB.NET, Visual Studio Team System 2008, Software Factories, Datagrid a fondo, MOSS, las tripas del CLR, Business Intelligence, Ajax y Silverlight 2.0.

    ClickOnce
    Y ahora para concluir empaquetamos todo nuestro software para llevárnoslo a donde queramos con ClickOnce.

    En este evento de Hadi Hariri (MVP C#) que repite con nosotros otra vez, nos mostrará las diferentes opciones de empaquetar y desplegar nuestras aplicaciones.

    El evento será como siempre y donde siempre, es decir, el primer martes de cada mes (con alguna excepción claro) en nuestra casita. Los datos del evento son los siguientes:

    Título: ClickOnce.- Tus aplicaciones llegarán a cualquier parte
    Fecha y hora: Martes 2 de Diciembre de 2008 - 19.30/21.30 (GMT +1)
    Enlace de registro: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032396625&EventCategory=4&culture=es-ES&CountryCode=ES

    Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace
    Si tenéis dudas sobre como entrar a la WebCast, podéis ver este enlace.

    En este evento, igual que venimos haciendo ya desde algunos eventos atrás, vamos a sortear tres suscripciones de 3 meses a la revista DotNetMania.

    Cualquier duda ya sabéis, preguntad!!!

    Un Saludo

  • Guía de Bloggers para adentrarse en "Connected Systems 1.0" (Oslo, WCF/WF, Azure y Dublin)

    Mucho se ha hablado por la blogosfera en las últimas semanas acerca de la nueva oleada de tecnologías que Microsoft dio a conocer en el pasado PDC. Tanto es así, que nunca viene mal un filtrado y selección de aquellos posts más relevantes o representativos de estos temas.

    Para tal fin, se ha elaborado una recopilación de algunos de estos posts escritos por autores de la talla de Darren Jefford, Charles Young, Andreas Erben, Imran Shafqat, Don Box, Brian Losegen, Aaron Skonnard, Jeff "Pinkey" Pinkston y Martin Fowler.

    En esta recopilación de posts se habla largo y tendido sobre la visión de Oslo a medio y largo plazo, el lenguaje de modelado M, la nueva visión de Microsoft sobre SOA, el futuro de BizTalk ligado a Oslo, así como la relación entre Oslo, Windows Communication Foundation y Workflow Foundation. También se recopilan posts sobre Dublin (y sus similitudes/diferencias con respecto a BizTalk Server) y Azure .Net Services.

    Podéis encontrar esta guía aquí.

    Nota: Al descargar el archivo CHM, deberéis acceder a la ventana de Propiedades del mismo y Desbloquear el contenido (bloqueado automáticamente por seguridad). De no hacerlo, no veréis el contenido HTML del mismo.

  • Minority Report??

    Desde hace algún tiempo me interesan bastante las nuevas formas de interacción hombre - máquina, y me gusta conocer como se va avanzando en todos los aspectos, no solo facilitar la interfaces más simples e intuitivas sino también el modo en como podemos manejarlas.

    Pues bien hoy me he encontrado con algo que no esperaba ver por lo menos hasta dentro de un tiempo. Al final va a ser verdad eso de que el límite está en nuestra imaginación.


    g-speak overview 1828121108 from john underkoffler on Vimeo.

     

    Saludetes Cool

  • DevCamp 08 – ¡Ira XNA!

    Con esta frase terminé mi conferencia de XNA en la DevCamp 08 de Microsoft, para quien no conozca a que película hicimos un guiño entre Pedro, Riqui y yo que vea este link :) La verdad que como siempre la organización del evento fue de 10, 90 frikis en el Trip de Guadalajara a cuerpo de rey.

    Y sin enrollarme mucho más, aquí dejo las transparencias de mi presentación, por si alguien les quiere dar un vistazo.

    XNA – Cómo facilitar el desarrollo de videojuegos

  • una de accesibilidad

    Hoy vamos a hablar de accesibilidad, no pretendo hacer una guía exhaustiva de  cómo hacer una página accesible triple AAA, porque el proceso además de ser peliagudo, co ...

  • [WebCast] Rediseñando la Web con Silverlight 2.0

    A que esperas para registrarte...

    Silverlight 2.0, Blend 2.0, Visual Studio 2008, son tecnología y herramientas para el desarrollo de RIA (o lo que es lo mismo Rich Internet Applications), pero...¿como construimos la arquitectura de nuestras aplicaciones? ,¿e interfaces de usuarios interactivas, ricas y visualmente agradable para tener a nuestros clientes contentos?.
    Pues bien, en este eventazo de la mano de Marino Posadas -MVP C#- y en colaboración con Alhambra-Eidos, nos mostrará como hacer esto, y además  entre otras cosas, aprenderemos a utilizar los nuevos controles de esta versión, a crear los nuestros propios, el acceso a datos mediante servicios Web y ADO.NET Data Services.

    Todo esto y todo lo que se os ocurra pensar (para preguntar luego Wink) para el martes que viene!!! Os dejo los datos del evento a continuación:

    Nombre del evento: Introducción al desarrollo con Silverlight 2.0
    Fecha y Hora: Martes 18 de Noviembre de 2008 - 19.30/21.30 (GMT +1)
    Enlace de registro (gratuito): http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032395205&EventCategory=4&culture=es-ES&CountryCode=ES

    Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace
    Si tenéis dudas sobre como entrar a la WebCast, podéis ver este enlace.

    Bueno, pues lo de siempre Big Smile, que esperamos veros por allí. Cualquier duda, preguntad que no comemos!!!

    Un Saludo

  • DevCamp: volviendo al pasado y viendo el futuro.

    Ya estoy de vuelta a casa.

    Como siempre que vengo de uno de lo eventos con la comunidad de estudiantes, vengo feliz de ver en que se está convirtiendo una pequeña idea, y de conocer a nuevos amigos, a nuevos profesionales y de compartir con ellos unas buenas horas de conocimiento, experiencias, cervezas y risas.

    CIMG2786.JPGPor que lo más importante y emocionante que te puedes llevar de un evento de Microsoft no son las tecnologías que te enseñan, no son los grandes avances que estás creando y no, no son los regalillos que nos dan; son las personas con las que compartes la velada, con las que te tomas el café entre sesión y sesión, o con las que te metes en fregaos durante las actividades que se organizan. Y son estas personas las que te hacen volver a despertar el friki que tenemos dentro, las que te devuelven las ganas e ilusión que con el tiempo y los años vas perdiendo, las que las largas jornadas de trabajo merman y esconden. Y es a estas personas a las que les dos las gracias.

    Animar también a los nuevos estudiantes que se animan a meterse en este mundo, animarles a no solo aprender de nosotros, si no que nos enseñen y demuestren hasta donde podríamos haber llegado, que nos metan caña y que se conviertan el los mejores profesionales y las mejores personas de nuestra casa. Aprended, enseñad y compartid. Demostremos a Redmond que, aunque allí se desarrolle el software de Microsoft, es aquí donde en realidad, esta su corazón y su fuerza.

    CIMG2803.JPGCIMG2821.JPG
    Aquí os dejo un enlace a las foticos de la gymkana
    Hasta pronto!
  • .NET... todos crecemos.

    Parece que fue ayer cuando Ricardo me dio el libro de C# en Valencia y nos explicó qué era .NET. Era a principios de Octubre del 2004 durante el CNR del IEEE de ese año.

    Ahí se quedo la cosa; un libro y una ilusión.

    Luego la ilusión se volvió más grande y juntos montamos una pequeña presentación de .NET en mi universidad, la UPC. Descubrí que no estaba solo, que había más gente que, como yo, no solo estaba en la universidad para estudiar, si no que tenía ganas de aprender cosas nuevas y emprender una nueva aventura junto a mi: montamos nuestro Club .NET en la UPC, mientras que Ricardo montó el suyo en Valencia. Aun recuerdo esa ilusión y esas ganas de comerme el mundo que tenía, las ganas de compartir con todos lo que estaba aprendiendo y de aprender más y más.

    La cosa salió muy bien, Microsoft nos apoyó y nos llenó de recursos. Más clubes empezaron a aparecer por toda las península e incluso en las islas.

    Recuero también en segundo año, hacia principios del 2006 cuando me quedé boquiabierto al ver en que se había convertido lo que habíamos empezado y como estudiantes de toda España me saludaban y querían conocerme.

    Pero el tiempo pasa volando. Ya llevo un tiempo trabajando como desarrollador en .NET y las ilusiones y ganas de hacer eventos y actividades se dividen. Queda el amor por mi club, el que creé e intenté llevar los mejor posible con la ayuda de mis amigos: gracias Chema!, gracias Jordi, gracias Jose!,… Ya no es como antes, después de trabajar durante todo el día sobre .NET ya no hay las mismas ganas seguir desarrollando y descubriendo, aunque aun no han desaparecido.

    Ahora me encuentro aquí en Guadalajara, en la habitación del hotel TRYP Guadalajara, en medio del DevCamp, a punto de acostarme y con mi nuevo MacBook encima las piernas. Recordando las ganas e ilusión que tenía y viéndolas en los ojos de los estudiantes nuevos que se quieren meter en esta aventura. También es bonito de ver a los veteranos de los Clubs .NET, a los que siempre están aquí, dando la cara y rompiéndose la espalda para ser los mejores.

    Gracias familia…, gracias .NET.

  • Sesiones sobre Oslo en el PDC 2008

    Con algunos días de retraso sobre mi intención inicial, espero que aceptéis mis disculpas, voy a comenzar a publicar algunas entradas al respecto de Oslo y todo lo acontecido en torno a esta nueva tecnología en el PDC, celebrado la pasada semana en Los Ángeles.

    En primer lugar, y a modo de recopilación, os dejo los enlaces para la descarga directa de los vídeos de cada una de las sesiones, junto con un breve resumen de cada una. Al margen de realizar la descarga del vídeo, podéis visualizarlos directamente en la web del PDC, concretamente en esta sección.

    Personalmente, prefiero la visualización en la propia web, ya que muestra el doble enfoque sobre el speaker y también captura el escritorio del PC donde se presentan los contenidos, mientras que en los vídeos para descarga tan sólo se muestra el escritorio de la presentación (me gusta ver algo más de movimiento en pantalla, especialmente con speakers con gran riqueza expresiva como Don Box, Douglas Purdy y algunos más que intervinieron en estas sesiones).

    Las sesiones realizadas sobre Oslo fueron las siguientes (pinchad en la imagen para abrir el link con la sesión y los formatos para descarga del video, así como de las slides):

    • “A Lap Around Oslo”: En esta sesión, como su propio nombre indica, se realizó un recorrido general por todas las novedades y características de Oslo, de la mano de nuestro súper Ninja Vijaye Raji (creador del lenguaje Small Basic, del cual os hablé hace unos días por aquí también) y de un más que entregado a la sesión y a la audiencia Douglas Purdy. Recomiendo comenzar por esta sesión especialmente a aquellos que quieran una introducción general a la tecnología y un repaso de su arquitectura a modo top-down, y también por supuesto a todos los demás, ya que se trata de una sesión bastante dinámica y entretenida. Una ideal primera toma de contacto con Oslo.

    • “Oslo: The Language”: Esta fue la segunda sesión sobre Oslo en el PDC, y en ella uno de nuestros Arquitectos David Langworthy y el querido y distinguido señor Ingeniero Don Box hacen un profundo repaso al nuevo lenguaje de modelado que Oslo nos aporta: el lenguaje M. Como veréis en esta sesión y también en próximas entradas en este blog, el lenguaje M nos proporciona una gran riqueza expresiva a la hora de definir modelos para complementar sistemas de tipo declarativo, como por ejemplo Workflow Foundation (WF) y Dublín (sobre lo que también os hablaré por aquí pronto). Además, se realizan varias demos mostrando el potencial de este lenguaje, algunas de sus características sintácticas para crear instancias y realizar consultas, y también el entorno textual con el que trabajaremos (viene incluido en la SDK de Oslo, de la cual, nuevamente, prometo hablar pronto) y que no es otro que Intellipad, con una serie de extensiones y configuraciones especiales “built-in”.

    • “Oslo: Customizing and extending the Visual Design Experience”. Ya en el tercer día de sesiones, le tocó el turno a uno de nuestros Program Managers, Florian Voss, acompañado nuevamente de un Don Box al estilo hawaiano, de profundizar en el uso de la herramienta visual de diseño que Oslo nos proporciona: Quadrant. Entre las características de esta herramienta destaca su alta capacidad de personalización a la hora de visualizar entidades (posición en el gráfico, coloreado contextual en base a valores de cada parámetro visualizado, así como otras muchas cosas más), y también la capacidad de consultar y almacenar modelos en el repositorio de Oslo. Como primera curiosidad/demostración del potencial de Oslo, comentar que todas estas opciones de configuración del diseñador constituyen nuestro “Modelo de Quadrant” y son almacenadas “in the cloud” en el propio repositorio de modelos: Oslo se modela a sí mismo, señores. :-)

    • “Oslo: Repository and Models”: Uno de los objetivos fundamentales de Oslo es minimizar las barreras entre distintos tipos de modelos empleados en el proceso de desarrollo de software, de manera que todos ellos se almacenen de igual forma y sea la vista sobre dichos modelos la que se configure en función de qué es lo que queremos visualizar en cada momento (arquitectura, diagrama conceptual de entidades, etc). En esta sesión, los PMs Martin Gudgin y Chris Sells se encargan de enseñarnos cómo extender modelos, cómo añadir nuestros propios modelos al repositorio, y también aprenderemos a versionar, proteger y desplegar modelos.

    • “Oslo: Building Textual DSLs”: Para poner el broche final a la presencia de Oslo en este PDC, Chris Anderson y Giovanni Della-Libera nos enseñarán de qué forma el lenguaje M nos permite definir esquemas y transformaciones sobre textos. A modo de ejemplo, nos muestran cómo construir nuestro propio DSL utilizando la SDK de Oslo y cómo emplear dicho DSL para crear un editor de textos bastante interactivo.

    Y eso es todo por ahora, podéis ir en paz, no sin antes recordaros por mi parte que en breve encontraréis nuevos posts, tutoriales, vídeos y otra serie de materiales de apoyo para reforzar y profundizar en el contenido de todas estas sesiones. También me gustaría que ante cualquier duda, sugerencia inquietud o feedback oportuno dejéis algún comentario en este post, prometo contestar a todos :-)

    Happy Weekend!

  • Una de las tecnologías más asombrosas que he visto en mucho tiempo

    Probablemente muchos de vosotros recordaréis Live Mesh. Para aquellos que no, comentar que Live Mesh es una de las tecnologías por las que siento una especial predilección y cuya adopción considero clave en la evolución del mundo de la Informática en los próximos años. Además, comentar que Live Mesh forma parte de la plataforma de desarrollo de Windows Live (y por tanto, de uno de los bloques de servicios ofrecidos como parte de Windows Azure), y su objetivo fundamental es proporcionar una serie de servicios y APIs de desarrollo para que podamos construir aplicaciones que consuman cloud services. Concretamente, el tipo de servicios en la nube que Live Mesh nos ofrece es fundamentalmente la compartición y sincronización de archivos, opciones de configuración y personalización para cada usuario entre un conjunto (mesh) de dispositivos, esto es, tener toda nuestra información a nuestro alcance desde todos los dispositivos que utilicemos: PC de sobremesa, PC portátil, dispositivo Windows Mobile, etc.

    Las posibilidades que ofrece esta tecnología (con cuyas APIs podremos comenzar a trabajar dentro de poco) son prácticamente infinitas, únicamente limitadas por nuestra capacidad de imaginación. Quizá recordaréis este post en el cual os mostraba un vídeo en el que Ori Amiga (uno de los creadores de esta tecnología) nos hacía una introducción a la plataforma de desarrollo de Live Mesh. No obstante, siempre es más cautivador de cara al usuario final visualizar un escenario de uso de la tecnología en la cual se haga uso de gran parte de su potencial, y eso es precisamente lo que se ha pretendido en esta ocasión.

    El escenario de uso es el siguiente: Imaginad ir en vuestro coche de camino a una reunión de trabajo y poder escuchar toda esa música que tenéis en vuestros PC’s de casa, del trabajo, etc. También podríais ver películas, concertar citas, enviar SMS de forma automática a los compañeros de reunión para avisarles de cuánto tiempo os falta para llegar a la oficina, basado en cálculos de distancia y tiempo restante extraídos de Live Maps, y todo ello integrado con vuestro dispositivo GPS. Además, el sistema sería capaz de acceder a la información de nuestro vehículo (kms recorridos, gasolina restante, niveles de aceite, etc) e incluso enviar automáticamente avisos a nuestro teléfono, o sincronizar en nuestro calendario de Outlook una cita con el mecánico para realizar la revisión periódica de nuestro vehículo… Y lo mejor: toda esta información, archivos multimedia, calendario, contactos, servicios adicionales… reside en la nube!! De forma que, incluso, podríamos sincronizar varios coches entre sí, de igual modo que haríamos con el resto de dispositivos… Y acceder a dichos servicios con un simple cliente ligero con pantalla táctil.

    ¿Suena imposible? Mira el siguiente vídeo de Channel 9 y verás que, con Live Mesh, es completamente posible, haciendo uso del recién estrenado Live Framework, de cuyo modelo de desarrollo puedes descargar un póster aquí. (demo a partir del minuto 20)

    Quizá ahora comprendáis un poco mejor el porqué de mi admiración por esta tecnología.

  • XNA 3.0 ¡¡ ya está aquí !!

    Pues ya tenemos en la calle la versión 3.0 de XNA y con bastantes cositas nuevas.

    image

    Vaya tela! como pasa el tiempo, XNA es el primer producto (y espero que no sea el último) que empecé a probar desde que era muy pequeñito en su versión beta y poco a poco se nos va haciendo mayor y facilitándonos las cosas.

    En esta ocasión las nuevas características tienen mucho que ver con la comunidad de desarrolladores que se está formando en torno a la XBOX en XBOX Live Community Games. Como por ejemplo, un modo se ha añadido un modo Trial, que permite al desarrollador activarlo para que la gente antes de comprarlo pruebe si le gusta o no.

    Se ha añadido a las características del modo multijugador la posibilidad de invitar a otros jugadores a participar en el juego que más nos guste.

    Además soporta C# 3.0, LINQ y Visual Studio 2008.

    Bueno ahora solo queda que nos pongamos a hacer cosillas con XNA. No os olvidéis de que no tenemos que pasar a mano todas nuestras demos hechas en la versión 2.0, sino que simplemente con abrir el proyecto desde visual estudio nos hace un backup de la solución y la posterior conversión del proyecto a 3.0.

    Os dejo aquí los enlaces:

    Saludetes

  • El Futuro de los Lenguajes de Programación (Capítulo 2): Programación Declarativa para Mentes Procedimentales

    Siguiendo con la reflexión expuesta en el primer capítulo de esta serie, otro fenómeno en el cual estaremos renunciando a cierto nivel de control sobre nuestros desarrollos a cambio de un incremento en nuestra productividad es la adopción de un lenguaje de tipo declarativo (también conocido como descriptivo o funcional). Este fenómeno va incluso más allá de una simple renuncia a nuestro nivel de control, también en cierto modo estamos renunciando al código. Y con esto último no sólo quiero decir que terminaremos escribiendo aplicaciones con la misma funcionalidad y menor cantidad de líneas de código, sino que además estaremos cambiando de paradigma de programación.

    El repaso y análisis sobre los diferentes paradigmas de programación existentes bien merece un capítulo aparte en esta serie (y por tanto, trataré de publicarlo lo antes posible aquí), pero adelantándonos un poco a dicho capítulo, diremos que el cambio de paradigma procedimental por un paradigma declarativo implica aprender a describir qué queremos que suceda en una aplicación y dejaremos el cómo llevarlo a cabo a las capas subyacentes del compilador y la plataforma que estemos empleando.

    En la programación procedimental (también conocida como imperativa y, dicho sea de paso, el uso de la palabra “procedural” es apropiado en lengua inglesa para referirnos a este concepto, pero no es una palabra reconocida por la Real Academia Española de la Lengua) generalmente debemos pensar y elaborar el cómo nosotros mismos. No hay ninguna diferencia entre el hecho de que estemos programando en ensamblador o en otro lenguaje como C, C++, C#… El modo de construir nuestro programa será articular una por una las instrucciones que queremos que se ejecuten, ya que de ningún otro modo serán ejecutadas. En la programación procedimental sólo se ejecuta aquello que nosotros, imperativamente, exigimos que sea ejecutado.

    Por el contrario, en la programación declarativa, el concepto imperativo de órdenes desaparece casi por completo. Mientras que en ciertas ocasiones aún deberemos (y por supuesto, podremos) especificar una serie de acciones a ejecutar, los detalles relativos a “procesos” y/o “procedimientos” desaparecen de nuestra realidad cotidiana, de igual modo que los exámenes parciales desaparecieron de mi realidad cotidiana cuando salí de la Universidad (ánimo amigos!). Definitivamente, dejaremos estas tareas en manos del compilador subyacente, que se encargará de procesar en el momento oportuno cada sentencia declarativa y generar al vuelo su equivalente conjunto de órdenes procedimentales de la forma más optimizada posible. Remarcando el concepto, habremos definido qué queremos obtener, y nuestro compilador se habrá encargado de los detalles relativos a cómo obtenerlo de una manera eficiente.

    Ofreciendo una analogía no relacionada con la Informática, la programación declarativa es bastante similar al modo en que diseñaríamos una casa y dejaríamos los detalles técnicos en manos de quien la fuera a construir. Describiríamos la distribución de habitaciones, el color de las paredes, la ubicación de puertas y ventanas… Es decir, especificaríamos cuál es el aspecto de lo que queremos obtener finalmente. No obstante, dejaríamos en manos de los constructores aquellas cuestiones internas como el cableado eléctrico, el sistema de tuberías, etc.

    Obviamente, en el proceso de construcción de nuestra casa no deseamos que se emplee el doble de metros de cableado eléctrico de lo que es realmente necesario, pero a menos que deseemos meternos directamente en un nivel de abstracción muy bajo, como el nivel en que se desenvuelve un programador procedimental, dejaremos estas decisiones en manos de arquitectos u obreros, de igual modo que haríamos con nuestro compilador en el contexto software y confiaremos en su buen hacer, en favor de la eficiencia.

    Llegados a este punto de la serie hemos analizado la importancia de escoger un nivel de abstracción apropiado en nuestros desarrollos software, y también hemos establecido una serie de diferencias entre paradigmas de programación (qué queremos conseguir y cómo conseguirlo)… evaluando los pros y contras de una y otra alternativa. De este modo, hemos transitado por el puente desde los lenguajes imperativos de más bajo nivel de abstracción (lenguaje máquina) hasta los lenguajes descriptivos de alto nivel, que nos permitirán gozar de una potencia expresiva suficiente para crear nuestras propias abstracciones, nuestros propios modelos. Pero eso será en el próximo capítulo, por ahora realizaremos una parada y disfrutaremos de otro bello paisaje en Stanley Park…

    lgsw16

  • El Futuro de los Lenguajes de Programación (Capítulo 1): Control, poder y confianza

    Entre un anuncio y otro del PDC, comenzaré con la “Serie Filosófica” que os prometí llevar a cabo durante esta semana. Puesto que lo prometido es deuda, ahí va la primera entrega…

    Seguro que muchos de vosotros habréis pensado en numerosas ocasiones acerca de estos tres términos: “control”, “poder” y “confianza”. Al igual que vosotros, yo también he pensado, luego existo (probablemente en un lugar cercano a 0xFF4A7C dentro del LR, aka, Life Runtime)

    Preguntad a cualquier desarrollador con bastantes años de experiencia (o a vosotros mismos) y seguramente será capaz de recordar el momento exacto en que tuvo que renunciar a cierto nivel de control a cambio de adoptar un lenguaje de programación de más alto nivel. Si alguno de vosotros comenzó a escribir sus programas en lenguaje ensamblador, en algún momento tomaría la decisión de dejar de ser Todopoderoso y darle a algún compilador como el de C la oportunidad de tomar el control sobre ciertas secuencias de instrucciones del lenguaje máquina generado. Si por el contrario comenzaste directamente escribiendo código en C, en algún momento darías el brazo a torcer y asumirías que conocerlo todo, todo y todo acerca de cada puntero resulta interesante en muchos aspectos pero a pesar de ello no es una de las pautas más recomendables para llevar un ritmo de vida sano, feliz y socialmente aceptable. Fue en ese momento cuando decidiste aportarle un “plus” a tu vida como desarrollador, o más bien dos, y comenzar a sacar partido de las ventajas del lenguaje C++. Finalmente, decidiste dejar las cuestiones relativas a la gestión de memoria en manos de tu compilador, de igual modo que cuando te marchas de vacaciones le dejas las llaves de casa al vecino para que riegue tus plantas, y en función de donde vivas tu vecino se llamará Visual Basic, C# o Java, por citar algunos.

    Aquellos programadores capaces de llevar a cabo esta transición de manera satisfactoria son los que antes o después tuvieron que abordar una cuestión existencial en la vida del Ser Humano, y los lenguajes de programación como conjunto de reglas y modelos para la representación de una realidad no han sido ajenos a este fenómeno: En muchas áreas del conocimiento humano, la pérdida de control sobre los hechos se traduce irremediablemente en una pérdida de poder sobre las decisiones que los guían.

    Afortunadamente en la materia de estudio que nos ocupa en esta serie, esta ecuación no se cumple. Por varios motivos: el primero de ellos, sacrificar cierto nivel de control sobre nuestros programas es siempre una elección nuestra; y en segundo lugar, dicho sacrificio se ve compensado por un incremento en potencia expresiva y productividad. Expresándolo en términos más cotidianos, diremos que tras cada una de las transiciones de un lenguaje a su inmediato superior en nivel de abstracción, comentadas en el segundo párrafo, éramos capaces de alcanzar los mismos objetivos, con menor cantidad de código. De este modo, las eventuales pérdidas de rendimiento que se puedan producir, entre la optimización realizada ad-hoc por el programador ante cada fragmento de código y las optimizaciones genéricas automatizadas por parte del compilador, se veían compensadas con una considerable mejora en los niveles de fiabilidad y mantenibilidad (expresándolo en términos puristas diremos que la gráfica evolutiva que representa esta ecuación se aproxima a la universalmente conocida Ley de Moore)

    La cuestión clave que estamos asumiendo aquí nos lleva al tercer término de los citados en el título del post: confianza. Deberemos depositar nuestra confianza en el compilador de turno, de la plataforma de turno, que nos ofrezca esta simplificación. Es decir, garantizaremos los niveles de fiabilidad y rendimiento de nuestras aplicaciones basándonos en dichos compiladores, en su fiabilidad y en su rendimiento a la hora de llevar a cabo la tarea para la cual fueron designados (simplificar la nuestra!).

    En el fondo, lo que estaremos haciendo es depositar nuestra confianza en los desarrolladores de dichos compiladores, en su integridad, profesionalidad y habilidades como Ingenieros. Afortunadamente, podemos presumir de una buena salud en este punto, de profesionales altamente cualificados desarrollando compiladores y herramientas al servicio del resto de profesionales… y, en última instancia, ante eventuales fallos deberemos empujar en la misma dirección que ellos. ¿Cuál es esta dirección? Vertical. ¿En qué sentido vectorial? Hacia arriba… ¿Respecto a qué magnitud? Nivel de abstracción. ¿Y qué es la abstracción? Como he tratado de dejar patente a lo largo de este post, la abstracción, amigos míos, es ignorancia selectiva.

Más artículos Página siguiente >
(c) DotNetClubs 2008
Ofrecido por Community Server (Commercial Edition)