4.03.2006

facilidad de uso o flexibilidad

Leo en planetcodigo un post bastante interesante sobre las futuras caracterísitcas de la programación sobre avalon y dice cosas bastante interesantes y no faltas de razón.

Cuando has programado con windows para hacer cualquier cosa, siempre te topas con alguna dificultad que soluciones tirando del bajo nivel, siempre hay alguna "ñapa" que te saca del apuro. En mis escasos años como observador de las tecnologías de programación me he dado cuenta como se tiende a hacer lenguajes más simples, más eficientes en cuanto al tiempo de programación. No hay más que comparar C con C# o cualquier de los lenguajes más o menos recientes. Es lógico que esto sea así, la hora d e mano de obra es cara y compensa mucho más tener un producto más barato a pesar de necesitar una máquina más potente, ahora las máquinas son baratas en el fondo.

Sin embargo llega un momento en el que facilitar tanto las cosas deja de ser algo bueno para la tecnología, al acercar la programación a nivel de usuario, por decirlo de alguna forma, estás quitando flexibilidad a los programadores más experimentados. Esto es una espada de doble filo, ya que permite acercar a la programación a personas que no necesitan tanta cualificación, pero por otro lado, estás arriesgándote a que el software sea de peor calidad y no estás permitiendo "salirse del tiesto" a los que lo necesitan. El modelo de visual basic ha sido así y ha funcionado (y sigue haciéndolo) muy bien.

Otro detalle que comenta es el posible mercado de componentes. Recuerdo cuando estudiaba en quinto (jaja) todo el sistema que pretendían montar sobre componentes, J2EE, CORBA (vamos, el rollo aquel que tenían de componentes) y aquellos sistemas para descrubrir componentes que después se ha aplicado a los web services (de las narices) y que serviría para crear un mercado global de componentes, en el cual tuvieras un interface bien definido... cualquier persona en sus cavales se reiría de esto, la verdad es que es algo bastante interesante y sería cojonudo tener cajas negras de verdad reutilizables y buen precio (que se lo digan a los fabricantes de hardware lo bien que les funciona VHDL). La verdad es que estaba todo bien montado tecnológicamente, pero, como llevamos viendo unos años, no es precisamente lo más avanzado tecnológicamente hablando lo que finalmente termina imponiéndose. Creo que todo el mundo quiere un sistema para tener la modularidad y reusabilidad tan deseada, pero no creo que sea a costa de tener que pagar X cantidad a MS (o cualquier otra) para poder usar su SDK y tener la licencia necesaria.

2 comentarios:

Kartones dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...

Si se simplifican las cosas pero dejando una puerta al desarrollo "avanzado", es la solución perfecta.

Por ejemplo, actualmente entre otras cosas ando trasteando con temas de seguridad. ASP.NET 2.0 proporciona un sistema de seguridad mediante providers extremadamente sencillo de emplear.

Pero lo bueno es que también proporciona un conjunto de interfaces para desarrollarnos nuestros propios providers.

Sin entrar en detalles (mas que nada porque no puedo), una de las cosas que estoy realizando es un "provider avanzado" que hacia fuera funciona 100% compatible con los providers de Roles y Membership de Microsoft (puede ser configurado desde el Web Site Administration Tool), pero por dentro emplear configuración "extra" via XML para cosas nuevas, como emplear Factories para la capa de datos, o estar subdividido en módulos también intercambiables.

Los provider de MS traen la lógica y acceso a datos juntos, los mios no, ademas de tener una estructura interna mucho mas extendible (aunque por temas ajenos a mi voluntad no del todo bien estructurada, según mi punto de vista).


Facilidad de uso no excluye a flexibilidad, salvo si se diseña aposta sin flexibilidad. Es mas, a cualquier cosa flexible puede añadirsele una envoltura que facilite su uso, luego para mi lo primero es flexibilidad :P

PD: Of course es mi punto de vista subjetivo, pero trasteo con bastante código ajeno (tanto profesional como amateur, comercial y no comercial) y es lo que suelo ver.