lunes, agosto 20, 2007

La entrada Poliglota :P

Bueno... aqui estará la entrada poliglota... la idea es hacer el famoso Hello World! usando sockets y ver que resultados obtenemos.

Por motivos de testing, puse que antes de responderle al cliente el servidor gastara algo de ciclos. Ademas, puse que para atender a cada usuario se realice un hilo.

En C
El Servidor
El Cliente

La ventaja de escribirlo en C es total control sobre como se hacen los sockets. El manejo de Hilos realizado con pthreads tiene su complique (pasar como argumento un apuntador void lo hace a uno sentir mas hombre, pero el código pierde claridad) Además toca escribir muucho mas código

En Java
El Servidor
El Cliente

Pese al alto nivel de Java, escribir un programa tan sencillo como el de sockets requiere mucho código verbose. Pese a que se ahorra uno unas cuantas líneas comparando con C, resulta necesario escribir mucho mas y separar a veces las expresiones dejando una variable temporal para no pasarse uno de los 76 caracteres por línea.

La ventaja es la legibilidad. Pese a que hice el programa muy reducido, los tipos hablan por si solos. Resulta también mas fácil de depurar.

En Ruby
El Servidor
El Cliente

Salve oh gran minimalismo de Ruby. Si uno requiere un lenguaje para salir del paso lo mas rápido posible éste es Ruby. Si se escribe bien puede ser muy claro el código, si se escribe mal puede ser tan reducido y críptico como Perl. Sin embargo, echar tan poco código trae sus desventajas. La primera es que Ruby es bastante lento y su sistema de threads a nivel de usuario no saca ningún provecho de arquitecturas SMT.

En Haskell
El Servidor
El Cliente

Este es el que a mi parecer resulta en el equilibrio perfecto. Por un lado son programas cortos. Lo fuertemente tipado ayuda a la claridad y a la correctitud. Cumplen con otra pres facil de pensar e implementar.

No hay comentarios.: