¿Es JAVA competente en el trabajo con Sockers?

Iniciado por imaginawireless, 5 Marzo 2012, 11:52 AM

0 Miembros y 1 Visitante están viendo este tema.

imaginawireless

 Estos días pasados asistí a algunos RootedLab, y haciendo practicas en algunos, me atreví a decir que a mi me gustaba trabajar con Java para haber mis pequeñas herramientas para auditorías. Algún ponente de cierto peso me insinuó que era un error bajo su punto de vista. El tema salió a que hice una herramienta, bajo Java que el había echo bajo Perl, y a el le funcionaba más rápido, en torno a un 45% más.

¿Hasta que punto es puede tener razón?¿Es realmente Java una herramienta util en estos casos?  ;D

adastra

Te dio alguna razón objetiva para no usar Java en entornos de red?
El decir "a él le funcionaba más rapido" depende de muchas cuestiones, por ejemplo, que tu código no este tan optimizado como el de él, las condiciones de ejecución, etc. etc. etc.
Personalmente no considero "un error" utilizar un lenguaje de programación tan potente como Java, así como tampoco consideraria usar un lenguaje tan flexible como Perl o Python. Todo es cuestión de gustos y los que tratan de afirmar que un lenguaje tan robusto como Java/Ruby/Python/C es mejor que otro, normalmente se basan en "sensaciones" y otros estimulos subjetivos que nada tienen que ver con la realidad

imaginawireless

Por la experiencia del ponente, me hizo plantearme si realmente es un buen lenguaje para desarrollar soluciones a bajo nivel. El ponente en cuestion escribe en "Security By Default", y por eso me tome en serio lo que me comento. El soft que me cree, me comprobaba si existía algún servicio corriendo en el puerto 80, y me leía las cabeceras HTTP, dado un rango de IPs.

Mientras en mio había escaneado 9000 Ip en un día, el escrito por el en Perl escaneo todos los rangos de España ".es" en una semana y pico.

Por eso me he quedado un poco flipadillo.

adastra

Vale, nuevamente... hay muchos factores que determinan ese comportamiento, la máquina en la que se ejecuta tu programa y el de él, las buenas/malas practicas que implementas en tu programa (y el en el suyo), librerías que utilizas, sistema operativo (si usaste windows estas vendido, ademas de que debes ser consciente de que la máquina virtual de java no es para "instalar y ejecutar", debes configurarla para que tenga buen rendimiento)  etc. etc. etc.

Sin embargo como dije anteriormente, ambos son lenguajes potentes y no descartaría el uso de ninguno de los dos, ahora si de aplicaciones a "bajo nivel" hablamos, me gustaría ver que el rendimiento de un programa (bien escrito) en lenguaje C/C++ o Python sea superado por otro en Perl. Si es por comparar, existen lenguajes mucho más optimas para programar que Perl y que requieren mucho menos "tunning" que Java.