Opinión: De las palabras de un iluminado y de madurez de comunidad…

Buenas! Este post surge a raíz de una interesante conversación que mantenido con Jorge Serrano, Eugenio EstradaPablo Núñez y Pablo Iglesias.

A ver empecemos… todo viene a raíz de las palabras de un iluminado que se pueden encontrar en http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers. Resumiendo este tio viene a decir que no contrata nunca a desarrolladores en .NET porque en definitiva no los considera buenos. Según él los desarrolladores en .NET sólo saben arrastrar cajas y poca cosa más. Bueno, es su opinión (no la comparto pero la respeto).

Eugenio publicó el siguiente tweet al respecto (http://twitter.com/eugenioestrada/status/52396715441000448):

image

A lo que yo respondí con el tweet que originó la conversación posterior (http://twitter.com/eiximenis/status/52397065011077121):

image

Luego ya empezamos a intervenir todos sobre el tema, que si sí, que si no, que si tal… La verdad es que en 140 carácteres cuesta expresar según que ideas, así que al final me he decidido escribir el post. En concreto yo decía que parte de culpa tenemos en la imagen que tiene de .NET, porque considero que como comunidad (de desarrolladores se entiende) nos falta cierta madurez.

Lo importante, como digo en mi tweet, no es lo que pueda opinar alguien, ya se sabe que las opiniones son como el culo: todo el mundo tiene la suya. Lo importante es si esa imagen de que los desarrolladores de .NET no somos “buenos” está extendida. Y si lo está, mirarnos un poco nosotros, como comunidad y ver si podríamos hacer algo mejor. Ahí iba. Y para empezar voy a dejarlo claro: No estoy de acuerdo con el tipo ese. Los desarrolladores de .NET somos tan buenos o tan malos como los de Java, PHP o cualquier otra comunidad (extendida, eh? que os conozco y me sacaréis algún ejemplo de algún lenguaje, como Brainfuck, donde haya que tener un Nobel para desarrollar). Además el propio autor considera a los de PHP y Java como buenos desarrolladores en contraposición a los de .NET.

Bueno, que me lío, como digo lo importante no es si eso lo piensa un iluminado o no. Lo importante es si lo piensan muchos. Y, mi percepción, es que hay bastante gente que opina como este tio. En general, creo, que la imagen de .NET en general y de los que desarrollamos bajo ella está por debajo de lo que se merece la plataforma y los que la usamos. Y es ahí donde honestamente creo que algo de culpa que tenemos. Recordad que este tio, sólo expresa su opinión, y no se le ve un talibán anti microsoft, se le vé un anti-desarrolladores-en-.NET que no es lo mismo.

Cuando digo que algo de culpa tenemos, lo resumo en que nos falta madurez como comunidad, en respecto a otras comunidades. Eso por supuesto, es una opinión personal, basada en mi experiencia. Es evidente que Microsoft pretende que desarrollar en .NET sea fácil. Eso se resume en muchas cosas: muchos recursos para aprender, mucha documentación y también muchos asistentes que realizan tareas. Eso no es malo, estoy de acuerdo con Jorge cuando dice literalmente que “Hay gente que por hablar de temas frikis se creen que saben más, pero a veces los problemas cotidianos requieren soluciones cotidianas”. Eso es lo que me gusta de .NET, que es fácil iniciarse en ella. Y entonces… ¿donde está el problema?

Bien, voy a generalizar a partir de ahora. Por lo tanto, por favor, que nadie se ofenda. El problema está en que al ser tan fácil desarrollar en .NET no profundizamos mucho. Nos quedamos en la superficie. Además MS nos facilita tanto las cosas que nos permite p.ej. desarrollar aplicaciones web sin conocer html o http. Un ejemplo concreto: he visto varias veces gente que desarrolla en asp.net poner un msgbox y dejar un iis “colgado”. Eso denota una falta total de conocimientos de como funciona la web en general (ojo, no estoy diciendo que tengamos que nacer enseñados). Y esa gente está haciendo aplicaciones porque .NET lo permite, por su facilidad. No he visto jamás a nadie desarrollando en jsp o php que se le ocurra hacer esto. Todas las decisiones tienen sus dos caras, y la que MS tomó de hacer .NET fácil acarrea estas consecuencias. Por supuesto no estoy diciendo que todos los que programan jsps o phps sean los putos masters del universo desarrollando aplicaciones web. Evidentemente que no. Habrá auténticos patanes desarrollando en estas plataformas. Seguro. Y harán aplicaciones. Seguro. Pero nosotros tenemos esta imagen y ellos no. Quizá, en proporción, seamos más. Quizá no y es todo un tema de imagen.

En general creo que somos una comunidad que nos cuesta innovar y buscar soluciones fuera del paragua de Microsoft. De nuevo voy a generalizar y seré un poco “duro”, que nadie se ofenda, por favor.

En general no sabíamos hacer unit test hasta que salió VS2005, y eso que nUnit ya llevaba su tiempo. El tema de builds automáticas e integración continúa era desconocida para nosotros, hasta que salió TFS. Y eso que nAnt y Cruise Control.NET ya existían. Por supuesto usar un modelo MVP para desarrollar aplicaciones de escritorio no sabíamos lo que era hasta que salió CAB (y honestamente después seguimos sin saberlo porque CAB era como era y tampoco llegó a pasar nunca de algo un poco freak dentro de .NET). Por supuesto hasta que Micrtosoft no sacó Entity Framework, no conocíamos que era un ORM, a pesar de que NHibernate ya tenía sus añitos. Y que decir de usar MVC para aplicaciones web? Nada, hasta que Microsoft sacó asp.net mvc. Y podría seguir con más ejemplos…

A lo mejor ahora parece que nos estemos despertando un poco, pero yo veo que seguimos danzando al ritmo que marca Microsoft. Si VS2011 integra una herramienta tipo SpecFlow empezaremos a hablar todos de las maravillas de BDD y como sin BDD no se puede desarrollar. Somos así.

Y eso creo que nos ocurre porque nos hemos acostumbrado a que Microsoft nos proporcione siempre el stack completo: base de datos, lenguajes, plataforma, APIs, buenas prácticas y nos diga que se puede hacer y que no. Lo que no esté en este stack de Microsoft, ni lo miramos. Pero cuando se incorpora algo nuevo, aunque sea peor que algo que ya existía pero no era de Microsoft, lo abrazamos sin dudarlo. Es por eso que creo que nos falta madurez como comunidad. En otras comunidades (sobre todo Java) nos llevan mucha ventaja en esto. No quiero entrar en el porqué, porque eso sería otro debate.

Y creo que todo esto contribuye a la mala imagen que podamos tener como desarrolladores de .NET. Y esto debería preocuparnos, porque si esa mala imágen se extiende entre los que al final nos deben contratar, entonces el problema lo vamos a tener nosotros!

Y por último respondiendo a una última pregunta de Jorge, sobre que se puede hacer para solucionar esto: Pues en general no lo sé. Intentando ser un buen desarrollador, en intentar aprender continuamente, en investigar que hay más allá y sobretodo no quedarse en .NET. Mirar en otros sitios que están haciendo y como lo hacen. Alguien me dijo un dia que todo desarrollador debería aprender (aprender como funciona y su filosofía, no convertirse en un crack) un lenguaje nuevo cada año. Me parece una visión muy acertada.

Un saludo a todos!

PD: Y para terminar, insisto en lo que he dicho antes. He generalizado. Ya lo he dicho pero lo digo de nuevo: No creo que los que desarrollamos en .NET seamos peores que los que lo hacemos en otras plataformas. Hay gente muy, muy, muy buena desarrollando en .NET, al igual que la hay en todas partes. Y al revés también, por supuesto.

22 comentarios sobre “Opinión: De las palabras de un iluminado y de madurez de comunidad…”

  1. Estoy bastante de acuerdo en lo que comentas Eduard, pero me gustaria agregar algo más:

    Puede ser que nos encasillemos en todo lo que nos da MS, pero también les pasa a gente que desarrolla en cualquier lenguaje.

    Creo que el problema viene a que la gente no tiene “hambre” por aprender, y mucho menos por investigar….

    Personalemente pienso, que cuando gente viene de lenguajes antiguos VB6 , FoxPro… tienden a pasar a .NET, por el hecho de ser más sencillo de utilizar, y el problema no se es que sea sencillo de utilizar, el problema es que lo utilizan de forma erronea porque no quieren invertir un minimo de tiempo en aprender a desarrollar de forma correcta, porque todos sabemos que la programación antigua, no todo el mundo la hacia como se haria hoy en día.

    Que haya gente que diga que quien programa con .NET es mal programador es que nos es capaz de ver la paja en el ojo ajeno…

  2. Es lo que tiene el Twitter, por eso no lo tengo, porque es muy facil promocionar a un gilipollas, y también a muchos ignorante que no han terminado una aplicación en su vida, pero mira, es lo que hay. Te apuesto lo que quieras a que mucha más gente conoce ahora a este amigo y su empresa ¿verdad?, pues yo creo que ya ha conseguido su objetivo… Yo ni me molestaría en perder el tiempo que has perdido en redactar este blog, pero bueno….
    Unai

  3. El mundo se mueve por modas. Y desde hace tiempo está de moda meterse con Microsoft. Y todo lo que hace es malo, porque es una empresa malvada. Pero si Apple es más cerrada que M$, sacando productos mediocres muy bien adornados, se le puede perdonar. Google son maravillosos, aunque cada vez pongan más pegas en publicar el código de Android.
    Si algo tiene la comunidad de informáticos, es que se nos manipula muy fácil mente. Se nos ha inculcado desde las universidades, lo bueno que es desarrollar software libre, porque es bueno para la comunidad. Yo desarrollare software libre, cuando la industria del automóvil libere todas sus patentes.
    Se nos ha dicho lo maravilloso que es la tecnología Web, porque es multi-plataforma. Y que las cosas funcionen en todas partes es bueno. ¿Y porque para teléfonos móviles está de moda las aplicaciones pesadas, que solo funcionan para la plataforma que se desarrollaron? Has habéis parado a pensar la cantidad de recursos que se han utilizado en tecnología Web, y lo que se hubiera conseguido si utilizáramos clientes semipesados. A mí me han encargado aplicaciones Web, porque al cliente no le pasaba por la cabeza hacerlo de otra manera.

  4. Estoy de acuerdo contigo, de todas formas es más una postura cómoda que tienen de autodefensa.. Últimamente creo que si que estamos utilizando más los proyectos open source y utilizando proyectos externos a Microsoft, simplemente nos faltaba experiencia y aprovecho para recordaros otra técnica que yo intento promocionar, la generación de código, os recomiendo pasaros por mi proyecto y veréis como crear el esqueleto de una aplicación en un minuto… http://code.google.com/p/magicapps/

  5. Buenas,

    No diré que los programadores de .Net sean mejores ni peores… pero sí que es cierto que a algunos, que sólo han conocido esta tecnología, les cuesta más adaptarse a determinadas cosas nuevas, sobretodo si son de “bajo nivel”.

    Por ejemplo, cuando hay que desarrollar jQuery sin tener ni idea, creo que sufre mucho más un programador de .Net que uno de Java por ejemplo, y en que en .Net estamos acostumbrados a que todo sea muy “simple” -como tiene que ser, leñe-.

    Esto lo he vivido yo en una consultora en la que trabajé hasta hace poco. Parecía que los “javeros” eran más “programadores”.

    Como conclusión, creo que los programadores de .net nos terminamos “pragmatizando”, no nos gusta complicar las cosas si no es necesario. En cambio a los de java les gusta hacerlo todo ellos, y si pueden reinventar la rueda en cada proyecto, usando uno de los miles de frameworks que tienen disponibles, pues mejor… no digo que una de las dos opciones sea mejor que otra, pero creo que en términos de productividad, los de .Net somos los mejores 😀 y al final… las empresas se mueven por los números.

  6. En mi modesta opnión el tio ese no tiene ni idea en mi opinión lo que ha escrito es un absurdo mayúsculo. Es tan idiota como decir que hablar en inglés, en chino o en catalán te hace mejor escritor.

    Lo único que marca una diferencia, a nivel de lenguaje, es haber programado de verdad, a fondo, en C/C++. El resto de lenguajes están a tal nivel de abstracción que no marcan ninguna diferencia.

    Joel Spolsky explica los porques mejor que yo:
    The Perils of JavaSchools
    http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

    El nivel de abstracción que se maneja en PHP, .Net o Java es muy similar. Marca más diferencia haber hecho testeo unitario, integración continua, saber de SOLID y OOP, patrones que el lenguaje.

    Por lo demás, un lenguaje u otro no hace al programador.

    Un saludo.

  7. Tras más de 10 años en el mundo microsoft he entrado en un proyecto Java (como analista mas que como programador) y aquí tratan a todo aquel que viene del mundo de Bill Gates como si fuesen “apestados”, bueno quizá me paso un poco, pero casi. La gente de java tiene la visión de que el enemigo es MS (casi como enemigos políticos :P). Lo que no quieren darse cuenta es de que algunas ideas de un mundo valen perfectamente para otro, y viceversa. Hay que aprovechar lo mejor de los dos mundos. Ni tener que hacer todo con el vi, ni hacer todo con “cajitas”, porque al final siempre te pierdes algo y dejas de ser realmente productivo y util.

    Evidentemente lo que hay en un lado está en el otro, y no se puede menospreciar a los que se encuentran en el otro carril simplemente por estar ahí, y pensar que el tuyo es el mejor simplemente porque estas en el tuyo. Desde hace unos años “el malo” es microsoft, ya veremos dentro de unos años cuando google sea quien imponga estandares y tenga el dominio del mercado.

  8. Qué artículo más interesante 🙂

    Me parece muy acertado tu punto de vista. En general, y como aprendiz de .NET, me da la sensación de que desde el primer momento se concibe como un entorno muy monolítico: Consiste en un bloque de herramientas estándar. IIS, SQLServer, VS, C#, ASP.NET MVC, .NET framework… Y desde el primer momento, se te anima a usarlo con las soluciones de Microsoft. ¿Por qué no Apache? ¿O MySQL? ¿O mono develop?

    Todo ello creo que hace que, salvo por causas mayores, un desarrollador .NET tienda a trabajar con el pack oficial. Además, si hay alguna herramienta que realmente valga la pena, ya la integrará Microsoft, de modo que ¿para qué dedicar tiempo en usar third parties si no es estrictamente necesario?

    En PHP, por ejemplo, es la norma, ya que no hay una solución universal. Cada persona tiene su “stack”: Yo personalmente uso Apache + MySQL + ZendFramework + ZendStudio (IDE) + Doctrine (ORM). Otro podría usar lighttpd + PostgreSQL + Symfony + NetBeans (IDE). Es normal esta heterogeneidad en PHP.

    @andrechi, una cosa son patentes y otra propiedad intelectual. Y no, no tienen mucho que ver. En España no hay patentes de software. Y no liberar tu software me parece una opción válida, no hay nada de malo en ello. Pero te recuerdo que ASP.NET MVC es software libre, o la pila TCP/IP de Windows 2000, que era la de sistemas BSD. Porque tal como lo dices, pareciera que es malo liberar. Hasta la propia Microsoft cada vez más invierte en software libre, y como muestra, echa un vistazo a la iniciativa codeplex.

  9. Uy! en una entrada tan larga es difícil estar de acuerdo con todo o en desacuerdo con todo.
    En primer lugar entiendo que no hay que darle importancia a quienes “piensan” así. Es como si alguien dijera “Yo nunca contrato gente que maneja autos marca Ford.”. ¿!Que tiene que ver!?.
    Hace al menos 10 años que escucho tipos decir cosas como “XXX (el lenguaje que yo uso) te permite hacer arquitectura en serio” y otras ridiculeces. Bien, aquellos que conocen varias tecnologías, lenguajes, frameworks y tienen algo de experiencia seguramente han visto desastrosos horrores en todas las tecnologías. Entonces mi pregunta va de nuevo ¿Qué tiene que ver esto?. Es tan sencillo toparse con un incompetente en Java que con uno en .Net. Acepto apuestas!
    Por esta misma razón no comparto tu opinión con respecto a que la comunidad .Net. Esto se parece más a la moda de autoflagelación que vemos todos los días como “estas cosas en otros paises no sucede”, “Acá en ese tema estamos muy atrasados”, “¡Nuestra actitud ante la vida es tan relajada!, por eso estamos así”. A esta diminuta lista solo le faltaba (y perdón que te cite, vos sabes que te respeto mucho) “nos falta madurez como comunidad, en respecto a otras comunidades”. Es cierto que la comunidad Java, por ejemplo, ha ido siempre un paso adelante, llevan 10 años de ventaja!!! En síntesis, lo que se observa en la comunidad Java es el resultado de un sistema que logró gran sinergia y muchísima “mente de obra” durante muchísimo tiempo…
    Me quedo muy corto con esto pero lo dejo así.
    Muy buena entrada Eduard. Como siempre. Saludos

  10. Bueno, pues yo siempre he pensado que el lenguaje no hace al desarrollador, si no podemos desarrollar una solución adecuada, el lenguaje es lo de menos, lo vamos a hacer mal en donde sea. Ademas veo que este iluminado comete al menos dos errores importantes, .Net no es un lenguaje, contiene un conjunto de ellos; y el segundo, que considero el peor, decir que todo viene prefabricado y es estático, si lo dice por los Controles, pues creo que todos y cada uno de ellos se pueden crear por código (recuerdo que en la universidad ese era ejercicio de examen). Creo que cada uno es libre de trabajar y desarrollar en los lenguajes y plataformas que creamos convenientes, la discusión libre contra privativo me parece totalmente ridícula, al grado de que estoy seguro que algunos manejan software de cada bando a veces sin saberlo (el CUPS, sistema de impresión tan usado en linux, es propiedad de Apple, por ejemplo). También estoy de acuerdo en el hecho que los desarrolladores tengan parte de la culpa de esa imagen, porque incluso cuando algunas de las herramientas y agregados ya están ahí, no recurrimos a ellas. En general una excelente entrada y como bien dices, cada quien su opinion :).

  11. @Axel, creo que te refieres a mi comentario cuando dices que “la discusión libre contra privativo te parece totalmente ridícula”, creo que en primer lugar malinterpretaste mi comentario y en segundo lugar… es una falta de respeto innecesaria (si es que alguna vez se pueden justificarse) calificar de esa manera la opinión de alguien, aún cuando pueda estar errada.
    Lo que digo es que para cuando la primera versión de .Net vio la luz, o a poco de esto, ya estaban disponibles JUnit, Hibernate, CruiseControl y todoas las herramientas que Eduard nombra en esta entrada. Todas estas se popularizaron de la mano de Java y no de otros lenguajes o plataformas. Esto no ha sido “casual” sino “causal” del sistema que lo ha propiciado. Yo no creo en gente superiores o inferiores, creo en sistemas que posibilitan cierto acontecimientos. En este caso, y hasta este momento, gran parte de los avances “conceptuales” sobre desarrollo de software se han “materializado” primero en el mundo Java.

  12. Si eres mal programador, lo serás en cualquier lenguaje, comparto la opinión de que realmente tenemos nuestra cuota de responsabilidad, pero gracias por ello, porque nos diferencia del resto, puedes programar una clase entera en una sola línea si eso te hace feliz, pero no se ve bien y cuando otro lo quiera entender será imposible.
    La facilidad que da MS de realizar acciones cotidianas con arrastrar y soltar tiene ventajas y desventajas a partes iguales, pero tenemos libertad de hacer unas y otras no si así lo deseamos.

    Particularmente no quisiera trabajar en una empresa donde tengan una visión tan cerrada de lo que se quiere, uno de mis profesores de Java siempre dijo “conoce a tu enemigo mejor que tu propia herramienta para saber a que te enfrentas”. Hoy día Java no es mi enemigo, creo que nunca lo fue, MS ha cambiado su visión de solo .NET y se está tomando en serio lo de la interoperabilidad, Azure es una muestra de ello.

    En cuanto a lo de software privativo o libre creo que nuevamente es decisión de cada quien y de cada empresa qué y dónde usarlo, eres LIBRE de usar productos MS si así lo deseas, aunque eso choque en la comunidad de software libre.

    Edward el generalizar siempre trae sus bemoles, no quiero tocar ese punto porque se deriva otra discusión, pero cuando citas a Jorge creo que lo que podemos hacer es seguir colocando material a la mano de todos los que lo necesiten, este blog es producto del querer, de manera directa o indirecta, que esa comunidad de .net crezca y aprenda para entregar productos de calidad a sus clientes.

  13. @Lucas Una disculpa si me di a entender mal, no decía ese comentario por ti, si no por el de andrechi. El hecho de querer encasillar esa discusión (libre vs privativo como una moda) es el que me pareció como lo menciono, también tienes razón, exagere al considerarlo ridículo como tal, me refiero a que esa discusión no tiene mucho sentido. No estoy de acuerdo en encasillar a alguien como bueno o malos por sus políticas, si Microsoft quiere mantener cerrado su código esta en su derecho son sus productos, así como goggle, Oracle y los demás.

    De hecho estoy de acuerdo contigo en la mayor parte, como mencionas muchas buenas herramientas fueron desarrolladas en otros lenguajes y después fueron adoptadas en .NET, creo que es mas importante el desarrollo de herramientas y practicas útiles para mejorar la forma de desarrollar, mas que el lenguaje en si.

    Una vez mas una disculpa.

  14. @Lucas Una disculpa si me di a entender mal, no decía ese comentario por ti, si no por el de andrechi. El hecho de querer encasillar esa discusión (libre vs privativo como una moda) es el que me pareció como lo menciono, también tienes razón, exagere al considerarlo ridículo como tal, me refiero a que esa discusión no tiene mucho sentido. No estoy de acuerdo en encasillar a alguien como bueno o malos por sus políticas, si Microsoft quiere mantener cerrado su código esta en su derecho son sus productos, así como goggle, Oracle y los demás.

    De hecho estoy de acuerdo contigo en la mayor parte, como mencionas muchas buenas herramientas fueron desarrolladas en otros lenguajes y después fueron adoptadas en .NET, creo que es mas importante el desarrollo de herramientas y practicas útiles para mejorar la forma de desarrollar, mas que el lenguaje en si.

    Una vez mas una disculpa.

  15. Hola a todos.

    No quería responder a esta entrada pero bueno, entre alusiones y alguna cosa que sí me hubiera gustado comentar, me veo animado a ello.

    Estoy con Unai en que esto es dar publicidad a un tío que sin conocerlo de nada, sólo por una entrada talibán y despreciativa, creo que no se las merece, pero bueno, aquí estamos no para dar publicidad a ese individuo, sino para discutir un tema cuanto menos interesante como el que trata Eduard, y es que su planteamiento no me parece erróneo, aunque con algunas puntualizaciones que me gustaría expresar.

    El mismo día “x”, por Twitter comenté también algo que voy a copiar y era: “Estoy harto de los programadores frikis, que se creen que por ser frikis son mejores programadores.”

    Con esta frase quería poner encima de la mesa algo que me molesta, y es el hecho de querer hacer tirabuzones y triples saltos mortales para llegar al mismo sitio que hubiéramos llegado con un simple salto hacia adelante y quizás una pequeña pirueta.

    Con .NET podemos hacer las dos cosas, porque .NET nos ofrece las dos posibilidades.
    A mí esto me parece fantástico, y entre otras cosas, por eso adoro y estoy enamorado de .NET y de su IDE (más productivo imposible). Me ofrece todo lo que necesito, y puedo hacerlo con triples saltos mortales o sin tantas complicaciones.
    A veces he hecho triples saltos mortales y otras no, depende de lo que quiera conseguir, cómo y alguna cosa más que no viene al caso, pero todo depende de lo que se quiera hacer.

    Con otros lenguajes, hacer las cosas más fáciles requiere apoyarse en productos de terceros (si existen) o sino… currárselo, es decir, sólo hay una vía normalmente.

    Y es aquí donde yo centraría la discusión, y no tanto en el tema comunidad [educación] (que también).

    Si curioseamos Software desarrollado con las herramientas de desarrollo de Microsoft, muchos habrán hecho aplicaciones que funcionen pero que por dentro son candidatas idóneas para ponerse una pinza en la nariz y mirar hacia otro lado según abres el código fuente, pero es lo que hay.
    También puedes hacértelo todo tú, y es ahí donde realmente se aprende. El problema aquí redunda en que ¿para qué hacérmelo todo yo cuando hay ya módulos que lo hacen por mí y me ahorran mucho tiempo y dinero?.

    No puedo estar más de acuerdo con Unai cuando comenta en uno de los libros que ha escrito (creo que sobre Workflow pero no recuerdo bien si es en ese o en otro) algo así de que no es solo importante saber como utilizar las tecnologías, sino saber como y porqué. Siempre he hecho o he tratado de hacer eso y por eso me sentí identificado con esa frase cuando la leí la primera vez.

    Es ahí donde debemos esforzarnos.

    Las personas de otras plataformas, tecnologías, lenguajes… tienen la obligación de pensar antes de acometer algo, y para pensarlo debemos entenderlo y comprenderlo (cómo y porqué).
    Eso es lo que no hacemos (hablo en general) en .NET, y ahí no hay doble vuelta de hoja, es así nos guste o no, y buena culpa de eso lo tiene la productividad (sus herramientas nos ahorra mucho tiempo de pensar y hacer).

    Cuando preguntaba a Eduard qué podemos hacer, lo hice porque la solución no está en la plataforma ni en el lenguaje, sino en las personas, algo que el tipo del artículo que da pie a esta entrada obvia por completo seguramente porque lo ignora y lo desconoce al mismo tiempo.
    Es como comparar peras con manzanas, ambas son frutas pero ni su sabor ni su textura ni su grado de maduración son comparables, cada una es como es pese a ser las dos dos frutas.

    Como ejemplo citaré por ejemplo algunos desarrollos a modo de aprendizaje y refresco que estoy haciendo últimamente en mi casa con xcode para iPhone. Dar el salto de .NET a xcode ha sido para mí como volver a la edad de piedra, sin embargo, la primera impresión que he notado es que es tan enrevesado a primera vista que si no tienes experiencia previa con la programación te va a costar Dios y ayuda hacer una aplicación. Por otro lado está claro que tienes que saber lo que haces y como lo haces sino quieres perder el tiempo y generar múltiples errores de compilación, e incluso lo más importante, preguntarte porqué se hace así, etc.

    Aquí tenemos delante de nuestros ojos la variante de flexibilidad, apertura y posibilidades de desarrollo RAD que ofrece Visual Studio y lo que los demás ofrecen y que se hacen llamar RAD y que ni de coña, y lo siento pero es así. Ayudan, sí, pero la inmensa mayoría de ellos no están ni siquiera cerca de la productividad y flexibilidad del RAD de Visual Studio de Microsoft.

    En todo este camino, tenemos que pagar un precio de peaje, pero somos todos y cada uno de nosotros los que debemos pensar si nos merece la pena esforzarnos un poco más y conocer los entresijos de las cosas o si nos quedamos con el IDE haciendo aplicaciones Software de forma rápida, que utilicen MVC, código, etc. a raudales pero que lo que busquemos es que funcionen y punto sin importarnos del porqué, cómo, etc.

    Esto último es lo que ha pasado como comenta Javier Torrecilla con migraciones de FoxPro y VB6 al mundo .NET.
    Llevo 10 años diciendo que los programadores que vienen de FoxPro y VB6 lo primero que tienen que hacer es un curso de OOP si no lo han hecho nunca, y a partir de ahí empezar a conocer el Framework y el lenguaje, pero esto como el paso inicial de lo que se debe hacer… a partir de ahí, todo lo demás, pero normalmente somos amantes del asistente de turno (por cultura), siguiente, siguiente, finalizar… ejecutar, genial. Modifico, compilo, ejecuto, instalo y a por otro desarrollo.
    Luego cuando hay problemas a veces no sabemos porqué está ocurriendo una cosa u otra.

    Todo esto que comento es como lo pienso, y es que nos encontramos ante un tema de curiosidad humana, que en otras plataformas estás casi obligado a hacerlo para subsistir, mientras que en Visual Studio y .NET vamos por el camino fácil.

    Si no existiera Visual Studio, seguro que .NET era bastante más friki. 🙂

    Perdonad el rollo, pero 140 caracteres de Twitter no da para esto y aquí puedo expresarme completamente. 🙂

  16. Buenas a todos! Por dios, cuantos comentarios…
    Imposible responder a todos!

    Antes que nada, la entrada ni es para dar propaganda al tio ese (de hecho me estuve pensando si poner el enlace a su post, si lo puse es para que quien quiera vea su punto de vista). Tampoco me importa lo que piense un tio. Por otro lado, si que me importa que esta sea (o se convierta) en una opinión generalizada. Y me importa porque no es cierta, y porque puede afectarme. Aunque concuerdo con @Unai con lo fácil que es promocionarse en twitter. Pero bueno… realmente el post es porque estaba harto de intentar condensar ideas en 140 carácteres para mandárselas a Jorge… 😛

    @Lucas: No quería que el mensaje sonase a autoflagelación que tampoco es eso! Aunque creo que (y de nuevo generalizo, ¡ojo!) estamos muy tranquilos con el stack de Microsoft y tendemos a no mirar/valorar/usar lo que no entra en él. Además el “amplificador” de MS es enorme, y ahoga fácilmente los gritos del resto de nosotros. Me refiero a que mucha gente que empieza sólo ve lo que MS publica. Aunque como habéis dicho eso, al final se resume con un tema de curiosidad humana.

    Y un comentario adicional sobre lo que ha dicho @Rodrigo: Tiene toda la razón (como casi siempre). El lenguaje no hace al desarrollador. Java y .NET no marcan diferencia en cuanto a las capacidades que se pueden presuponer a alguien por usarlos. Pero yo no quería llevar el debate a ese nivel… El debate para mí, era simplemente intentar averiguar las causas por las que los desarrolladores de .NET podemos estar peor vistos que los de Java (a pesar de ser plataformas muy parecidas).

    De nuevo muchas gracias, ha sido muy interesante ver todos esos puntos de vista!
    Saludos!

  17. Me parece un gran post. Y una buena discusión.
    Felicidades a Eduard y a todos los que habéis aportado vuestra visión.
    Me ha resultado muy interesante y enriquecedor.

  18. A colación del mensaje de Javier Torrecilla. Llevo “casi” 10 años programando en FoxPro y ha llegado el momento de dar el salto, en mi empresa han tomado la decisión de pasar a .NET (por el tema de que Microsoft va a dejar de dar soporte a FoxPro) y aqui es donde viene el problema, entre mantener / mejorar las viejas aplicaciones y dar soporte a todos los clientes no queda tiempo para aprender.

    Hemos hecho alguna aplicación de escritorio en vb.net, por supuesto de forma totalmente autodidacta, y aunque la cosa funciona estoy convencido que no lo hemos hecho bien, nos hemos basado en asistentes y demás “ayudas” que nos da la herramienta.

    Ahora se nos plantea una aplicación web bastante grande. Sin apenas formación nos lanzamos a desarrollar en asp.net mvc, por supuesto que vamos a utilizar la herramienta de forma errónea (nunca he programado en entorno web), pero házselo entender a los de arriba, ellos solo ven “resultados”. Para ellos el que tu trabajes 12 horas diarias no es problema, pero amigo, ya no, somos programadores, no putas.

    Saludos amigos
    Un “mal” programador web 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *