Ver Mensaje Individual
  #16  
Antiguo 06-06-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Wink

Cosas que no deberias hacer NUNCA

Mas conocido como "el error estrategico numero 1 de los desarrolladores"

http://www.joelonsoftware.com/articl...000000069.html

Mira, he ayudado a VARIAS empresas de software a subirse al vagon de .NET. Les advierto, les suplico y les vuelvo a suplicar que miren otras alternativas, pero tercos que son... asi que trato de hacer que tengan el paseo menos doloroso posible. Pero nunca es los suficientemente indoloro.


Como concepto, .NET es una idea genial... el framework en si es muy potente, elegante y todo. Precisamente por eso es un dolor de cabeza para la mayoria de los desarrolladores que he conocido (quizas los de Delphi estan en mejor posicion, quizas por tener el mismo padre?).

Tu jefe obviamente no tiene idea de lo que dice. Y piensa hacer el experimento con la aplicacion que lleva muchos años-codigo de depuracion y codificacion?

La mejor manera es hacer un desarrollo nuevo y pequeño. COntratar un par de "expertos" de .NET de esos que abundan y le puedo apostar lo que quiera al que sea, de cualquier empresa, que ni en 6 meses estan cerca de abosolutamente nada - o sea, en cuanto igualar sus desarrollos actuales-.

Algunas cosas que son convierten en grandes bloqueos:

- Con todo el respeto que se merece, .NET esta enfocado a departamentos de IT de empresas medianas y grandes. No para desarrolladores "INDIE" ni independiente ni ISV ni micro-ISV ni videojugadores ni nada. Que se puede usar eso si, pero no es el mercado importante. Una mirada a download.com corrobora eso (que es una de las mas grandes paginas de aplicaciones de empresas que no son IT de empresas medianas y grandes)

Eso trae consecuencias "ocultas" pero importantes. Un equipo pequeño con .NET a pelo es obligadamente menos eficiente que uno que use Delphi para aplicaciones de windows y utilerias, C++/Delphi/Lua/Python para juegos, PHHP/Python/Ruby para web, etc. Por la razon que esos otros entornos estan realmente enfocados a los equipos pequeños y agiles.. y tienen una infraestructura mas completa de despliegue


- Winforms es muy lento, y se supone que esta obsoleto hacer 4 años. WPF es una cosa IMPRESIONANTE .... pero nadie puede usuarlo. No hay tooling, no hay controles, el mercado de terceros es muy pobre, es muy bueno para hacer multimedia pero no mucho para aplicaciones de negocios.

- A menos que se quiera hacer una interface Win95 los controles GUI de Winforms no dan la talla ni a palos. Hay que usar controles de terceros, que practicamente sin excepcion son de pago.

No recomiendo hacer aplicaciones de negocios en .NET sin usar www.devexpress.com o www.infragistics.com. Fallar en este punto aumenta varios meses el desarrollo. Fijo.

- El sistema de reportes nativo de .NET es muy pobre, a menos que se use SQl Server Reporting Services.

OBLIGATORIAMENTE hay que usar un reporteador de terceros y para .NET hay pocos

- La programacion de BD es tan potente que no he visto quien no tenga problemas importantes. Esta hecha para un mundo (la web y n-tier) que no es el punto fuerte de las aplicaciones que la mayoria hacen (que a duras penas es 2-tier con pretenciones de 3-tier).

LINQ y los tipos anonimos y todo eso es muy bonito pero es un nivel mas arriba de la OOP y por experiencia pocos dominan la OOP, menos le dan a las programaciones dinamicas. Solo veo a alguien que use Fox, Dbase, Smaltalk, Ruby o Python que veo masomenos intuitivo lo que trae .NET al respecto.

Solo hay un OPF de facil uso y gratis, y sin embargo a muchos les falla el "chip" que entiende que es mejor escribir 3 lineas de codigo dinamico que 40 de codigo clavado.

- Es mas dificil desplegar .NET. Mucho mas si se depende de WPF u otras tecnologias mas "modernas"

- La enorme magnitud de .NET impide que alguien sea medianamente bueno en .NET. Solo es posible la especializacion. En comparacion, frameworks grandes y potentes como la VCL o las librerias de Python o Visual FoxPro, que por experiencia no son nada "pequeñas" se pueden dominar con los años. Eso es imposible con .NET o Java.

- Lo que en legnuajes mas especializados toma poco codigo en .NET normalmente requiere mas plomeria. Existen casos especiales, por ejemplo los tipos anonimos, la delegacion, lINQ y demas hacen muy facil hacer un OPF que en Delphi (pero no tanto como en python o ruby) pero la experiencia total seguramente parece mas frustrante

- De todas las empresas que han hecho migraciones en mi ciudad (conozco el caso de por lo menos unas 10, 5 de las cuales son las mas "grandes") NI UNA SOLA ha sido exitosa. Se de esfuerzos muy grandes, en mi caso creo que fui el primero en iniciar algo de envergadura y desde que sali, nadie a podido continuar - lo han intentado, no miento, unos 7 desarrolladores -. Eso fue hace 5 años.

Todos los demas tienen partes, pero no sistemas completos.

Y las versiones que siguen vendiendo? La misma hecha en Fox, Cobol, Delphi o lo que sea.

--------------------
En total:

- .NET a igual que cualquier cosas sirve para hacer cosas simples.
- .NET esta OK para hacer sitios Web. Pero quizas PHP o mejor aun, Python o Ruby es mas productivo
- .NET esta OK si hay un equipo de desarrollo de mas de 5>. Menos de 5 es muy poquito, y en todo caso deben estar equilibrados en capacitacion
- .NET , al igual que CUALQUIER cosa incluido assembler, esta OK para iniciar algo nuevo.
- Al menos uno del equipo debe ser o muy bueno en .NET o tener el "chip" Delphi y/o el chip FoxPro y ser muy adaptable, no temer buscar mucho en google, y querer aprender muchos paradigmas de desarrollo en paralelo
- Es un error fatal reescribir una aplicacion y deberia dar pena eterna reescribirla en otro lenguaje, se cual sea, excepto SI:

--- Es masoquista
--- El lenguaje anterior esta mas abajo en la cadena de productividad (ej: de assembler a c, de c a pascal)
--- Ya averiguo y sabe que usar para los reportes, el instalador, los controles, la conectividad, etc... el rango full de todo lo que va a necesitar
--- Le pagan. Como a mi. Por eso yo si puedo hacerlo a ciegas
-
__________________
El malabarista.
Responder Con Cita