Hace 14 años | Por leonard_shelby a codinghorror.com
Publicado hace 14 años por leonard_shelby a codinghorror.com

Artículo de opinión de Jeff Atwood en el que defiende la programación web ante el ataque de Michael Braude (traducción mía): "La razón por la que la mayor parte de la gente quiere programar para la web es porque no son lo suficientemente inteligentes como para hacer otra cosa". ¿Creeis que la programación para escritorio está muerta?, ¿es la programación web el recurso de los programadores mediocres?

Comentarios

D

No soy programador y no se que es mas facil, pero como usuario si me dan una aplicacion que no tengo que instalar y que puedo utilizar desde el explorador, la preferire sobre una que tenga que instalar. De hecho, el otro dia salio por aqui una estadistica sobre el uso de twitter y el 90 y pico por ciento de la gente lo utilizaba via web.

Por otra parte, como persona que no sabe ni programar en web ni programar "normal", el comentario del tal Michael este, me parece terriblemente prepotente.

danic

En general creo que aunque la programacion de escritorio aun es necesaria, cada vez mas se tiende y con razon a la programacion web

Soy programador, empece (como la mayoria de los de mi edad jeje que entonces lo de la web era algo 'a pagar con modem de 56k') en programacion de escritorio, y para algunas cosas sigue gustandome, pero sin duda la programacion web es un avance necesario en muchos entornos, sobretodo si uno programa herramientas especificas para una empresa, una programacion de escritorio es, en principio, mas 'rapida' y robusta, pero eso es solo la primera impresion, luego el mantenimiento se hace desesperante, distintos entornos, sistemas operativos, que si actualizaciones de clientes, que si reinstala todo cada vez que cambias un pc por fallo...

en programacion web , si un usuario tiene un navegador y su clave para la intranet, tiene sus herramientas de trabajo, me da igual que entren desde un windows que desde un linux o un macos , pueden intercambiar puestos de trabajo sin molestarme para nada, pueden hasta consultar desde casa , o en un determinado momento si estan fuera de la empresa pedir que les dejen cualquier pc y entrar en sus aplicaciones, la comodidad y funcionalidad son lo primero y aunque los entornos web aun cojean en muchas cosas, en otras sacan muchisima ventaja

Evidentemente los entornos web nos dan (por el momento) menos vistosidad y menos rapidez en tratamiento grafico, pero eso tambien esta cambiando (ya veremos si las herramientas y apis de google para trabajar directamente con 3d sobre el navegador despegan) pero nos dan sin duda una base buena, los datos y aplicaciones al servidor, que es donde deben estar, que es donde podemos hacer copias facilmente y de forma centralizada, y podemos actualizar en el servidor y todos los clientes ven la nueva version, no es mas facil programar en web (de hecho es absurdo plantearlo, un programa X tiene un coste de diseño especifico, la parte de implementacion sea web o escritorio es lo de menos, lo importante normalmente es la complejidad del programa y en web a veces es mas 'complicado' conseguir lo mismo que en escritorio y mejorar las funcionalidades para que sea comodo de usar)

albandy

Bueno pues si la programación de JSF, EJB, servlets y Struts es para programadores mediocres que venga él ha hacer mi trabajo.

No se que coño tendrá que ver la interfaz que ve el usuario con todo lo que hay detrás.

D

La programación web tiene el inconveniente de que tienes que estar atento a la seguridad y validar SIEMPRE los datos que recibes. La máxima es "nunca te fies de la información que recibes del cliente" (cliente == usuario remoto)

strider

Sólo estoy de acuerdo en parte. Por ejemplo, no entiendo qué tiene que ver programar para la web con no saber lo que es la herencia de clases o las clases abstractas. ¿Acaso no existen estos conceptos en la programación para la web?

Pero voy más allá: ¿por qué es mucho más fácil programar para la web que para el escritorio?

l

La programación web es como cualquier otra. Se pueden hacer las cosas bien y mal en cualquier plataforma y lenguaje de programación.

He trabajado muchísimos años en cliente/servidor en varias plataformas: Delphi, Oracle Developer y Visual Basic. Llevo desde el 96 trabajando en plataformas web.

He visto cosas horrorosas en C/S como funciones kilométricas donde ni siquiera el "genio" que las hizo se le ocurrio hacer un mínimo diseño descendente, repetición de código y otras barbaridades.

En Web más de lo mismo incluso algún "super-arquitecto" que de tanto usar plataformas de persistencia tipo hibernate y similares no se acordaba de como hacer un maldito join entre dos tablas y lo hizo por código. Terrible.

albandy

#2 Es cierto que hay un abuso de hibernate, pero te permite abstraerte del motor de BD al que atacas. Es decir, como sabrás hay diferencias entre el SQL de DB2, Oracle, Mysql, Postres, SQl server, etc ...

De todas formas yo prefiero usar EJB que es a lo que estoy acostumbrado.

leonard_shelby

Personalmente, mi postura está un poco entre las dos. Me explico...

Yo diferenciaría entre programación web para la parte del cliente (CSS, JS, HTML...) y la parte del servidor (PHP/ASP/JSP...). A mí la parte del cliente no me gusta, y me parece que dedicas la mayoría del tiempo a lidiar con la interpretación que los navegadores hacen del código. Por no hablar de que puedes hacerlo todo en Flash, sin tirar una sola línea...

A ver, para los puristas: Ya sé que hacer todo el cliente web en flash puede ser una barbaridad, según lo que tengas que hacer, y que también se puede escribir código cuando estás haciendo algo en flash. Pero se pueden hacer cosas muy vistosas sin necesidad de programar, y a eso me refiero. No hace falta ser programador para esa parte. Según en lo que tengas que trabajar, insisto.

En cuanto a la parte del servidor, yo creo que hemos perdido un poco la cercanía con lo que tenemos debajo. Todo es capa, sobre capa. Struts, Hibernate, JSF, Servlets... Al final, tú escribes código para que un framework lo interprete y haga lo que tiene que hacer. Y puede suceder lo que dice #2, que luego haya "arquitectos" que no saben ni como hacer un Join...

Por esa razón, yo creo que un programador que ya tiene experiencia en programación general en otros lenguajes, podrá pasarse a la programación web del lado del servidor sin problemas, y tendrá que afrontar nuevos retos. Pero empezar a programar directamente en Java EE, por ejemplo, me parece una barbaridad. Y es algo que creo que, desgraciadamente, sucede. Poner a gente con cursillos de 3 meses a programar Servlets puede hacerse (y el resultado son chapuzas inmensas, por supuesto), pero poner a alguien así a programar una aplicación en C... no lo veo.

l

#7 Estoy muy de acuerdo contigo.

El programador experto puede pasar a programación web sin ningún problema. Creo que lo importante es tener claros unos principios básicos que a veces algunos chapuceros los olvidan o es que les han dado un curso de 2 dias del lenguaje en cuestión:

1) Diseñar "módulos" de funcionalidades minimizando las dependencias.
2) Preveer perfectamente la comunicación entre módulos
3) Programar orientado a pruebas. Eso hará un programa mantenible y fácilmente trazable
4) Documentar. Al menos al final del desarrollo, una tarea desagradable pero que debemos hacer.
5) Separación entre presentación y lógica de negocio, algo que llevamos haciendo algunos más de 15 años y que ahora le llaman el patrón MVC (Model View Controller).

Creo que con esto se puede programar de manera excelente en cualquier lenguaje Cliente/Servidor o web, sea el que sea, incluso los más denostados.