A eso me refiero con programar de verdad,
hacer algo que exprima una máquina al límite o un sistema en tiempo real
Y luego malos hábitos, pues en primer lugar no tocas nada de la memoria,
con lo cual esa parte no te molestas en pensar acerca de su optimización,
lo cual va a derivar en un menor rendimiento de lo que hagas.
#40 suponía que ibas a responder algo así. Te doy mi opinión:
Ah, pues muy bien. Esa es tu definición. Según a quien preguntes te va a decir una cosa distinta.
Si le preguntas a mi director general, te dirá que un programador de verdad soy yo y mi equipo, que
utilizamos XP como metodología de trabajo y antes del deadline tenemos todo a punto. Y te dirá que el equipo de weberos de mi empresa son lo peor porque se pasan el deadline por el arco del triunfo.
Si le preguntas a un usuario sobre dos webs distintas quién es el programador de verdad, te dirá que la más bonita, aunque por debajo tenga código espagueti del bueno.
Si le preguntas a un profesor de universidad, un engendro como este:
sobre qué es programar de verdad, la respuesta puede ser que programar de verdad es ASM. Y que todo lo que no sea ASM es de pobres. Son personas que dudo que hayan escrito programas de más de 1000 líneas (y estoy siendo generoso).
A mí si me preguntas qué es programar de verdad, te preguntaré a su vez que me des información sobre Qué, Cuándo, Dónde y Cuánto. Y entonces elegiré la herramienta, la metodología y te diré que para ese objetivo en concreto, programar de verdad es hacerlo con esto, de esta forma y en este tiempo. Y todo lo que no sea saber elegir bien la herramienta y la metodología, lo considero un mal hábito.
Cierto es que a mi opinión le he dado un sesgo desde el punto de vista de la ing. del software a nivel empresarial. Pero, por mi parte, basta ya de denostar paradigmas, lenguajes y metodologías. Cada una de ellas tiene su razón de ser y es como comprar churras con merinas. Hace tiempo que no soy ni de apple ni de android, ni de c ni de java, etc. Creo que en estos temas se tiende a caer en absolutismos con puntos de vista obtusos creyendo, por ejemplo, que programar en C es de pr0s y programar en Java es de inútiles.
Es como decir que un Concorde es mejor que una avioneta. Pues si es para ir de Londres a Nueva York con prisa ok. Pero si lo que quiero es ir de mi finca al aeródromo que está a 50Km va a ser que no.
Y los malos hábitos los puedes tener programando en ASM, ActionScript, C, Java, Haskell, Ruby, etc. He aquí un listado de malos hábitos: http://es.wikipedia.org/wiki/Antipatr%C3%B3n_de_dise%C3%B1o. Y aun así, hay situaciones en las que se permite caer en alguno de ellos si tiene en cuenta el compromiso eficiencia/rentabilidad.
Por otro lado, suscribo todo lo referente a tus comentarios sobre C, Java y la eficiencia en términos de velocidad de uno sobre otro. Te veo muy puesto en el asunto. No puedo estar más de acuerdo.