PDA

Ver la Versión Completa : [ DEBATE ] ¿Qué tan bueno es usar librerias de terceros?


LEAJIM_454
15/07/17, 05:53:37
Hola a todos, tengo un proyecto en el que uso cuatro librerias y querías saber ¿Hacer uso de las mismas me hace menos programador?, ¿Qué tan recomendable es ésta práctica? ¿Conlleva algún percance o inconveniente? gracias a todos de antemano por su tiempo y por leerme.

mocelet
15/07/17, 09:52:10
Buenas, usar software de terceros en general no te hace mejor o peor programador, de hecho lo que te hace mejor programador es saber por qué las estás usando y tener claras sus ventajas, inconvenientes y alternativas.

La idea principal de una biblioteca es no volver a hacer el trabajo que probablemente alguien ha hecho ya porque sería reinventar la rueda.

Primero es identificar la necesidad. Ejemplos:
- Quieres conectarte a un servidor con websockets pero Android no tiene API para eso. Por mucho que me gusten los protocolos no se me ocurriría implementarme la especificación de la RFC 6455, la probabilidad de pifiarla es muy alta y me quitaría tiempo de lo que realmente quiero hacer. Necesito una biblioteca.
- Tengo que leer un par de atributos que me devuelve un servidor codificados en JSON. Android ya tiene un API para analizar un JSON y leer el par de atributos que quiero, y se hace en tres líneas de código. Hay bibliotecas de serialización/deserialización de JSON como GSON que mapean objetos a JSON de forma automática, ¿pero qué me aportan si ya lo hacía con tres líneas y no me hace falta en más sitios?. No necesito biblioteca.

Una vez identificada la necesidad, ¿cuál elegir?. Esta es más peliaguda, hay que analizar varios factores, por ejemplo:
- La licencia de uso y en especial las obligaciones de los trabajos derivados. Si no quiero compartir mi código fuente descarto licencias GPL.
- La estabilidad, bugs, si es software libre o no, cómo de mantenida y actualizada está, si se usa en producción masivamente o es un proyecto independiente bastante verde. Si voy a hacer un juego, por muy bueno que sea AndEngine no pienso usarlo porque lleva abandonado tres años.
- La compatibilidad. Si es para hacer una prueba de concepto rápida y te da igual que solo funcione bien en un dispositivo de demostración me da igual que sea solo para Android Nougat por ejemplo.
- Las alternativas, el típico no poner todos los huevos en la misma cesta. ¿Si mañana dejan de darle soporte supone un impacto muy grande buscar alternativas? ¿Me echan por tierra todo y tengo que rehacer la app?
- Impacto "no funcional", tamaño, rendimiento, seguridad, etc.

Seguro que por mi cabeza pasan más cosas a la hora de elegir si sí o si no, pero me tengo que ir ya xD Es cuestión de poner las bibliotecas en una balanza. De por sí no son buenas ni malas, ni el programador que las use mejor o peor.

LEAJIM_454
15/07/17, 17:02:04
Buenas, usar software de terceros en general no te hace mejor o peor programador, de hecho lo que te hace mejor programador es saber por qué las estás usando y tener claras sus ventajas, inconvenientes y alternativas. La idea principal de una biblioteca es no volver a hacer el trabajo que probablemente alguien ha hecho ya porque sería reinventar la rueda. Primero es identificar la necesidad. Ejemplos: - Quieres conectarte a un servidor con websockets pero Android no tiene API para eso. Por mucho que me gusten los protocolos no se me ocurriría implementarme la especificación de la RFC 6455, la probabilidad de pifiarla es muy alta y me quitaría tiempo de lo que realmente quiero hacer. Necesito una biblioteca. - Tengo que leer un par de atributos que me devuelve un servidor codificados en JSON. Android ya tiene un API para analizar un JSON y leer el par de atributos que quiero, y se hace en tres líneas de código. Hay bibliotecas de serialización/deserialización de JSON como GSON que mapean objetos a JSON de forma automática, ¿pero qué me aportan si ya lo hacía con tres líneas y no me hace falta en más sitios?. No necesito biblioteca. Una vez identificada la necesidad, ¿cuál elegir?. Esta es más peliaguda, hay que analizar varios factores, por ejemplo: - La licencia de uso y en especial las obligaciones de los trabajos derivados. Si no quiero compartir mi código fuente descarto licencias GPL. - La estabilidad, bugs, si es software libre o no, cómo de mantenida y actualizada está, si se usa en producción masivamente o es un proyecto independiente bastante verde. Si voy a hacer un juego, por muy bueno que sea AndEngine no pienso usarlo porque lleva abandonado tres años. - La compatibilidad. Si es para hacer una prueba de concepto rápida y te da igual que solo funcione bien en un dispositivo de demostración me da igual que sea solo para Android Nougat por ejemplo. - Las alternativas, el típico no poner todos los huevos en la misma cesta. ¿Si mañana dejan de darle soporte supone un impacto muy grande buscar alternativas? ¿Me echan por tierra todo y tengo que rehacer la app? - Impacto "no funcional", tamaño, rendimiento, seguridad, etc. Seguro que por mi cabeza pasan más cosas a la hora de elegir si sí o si no, pero me tengo que ir ya Es cuestión de poner las bibliotecas en una balanza. De por sí no son buenas ni malas, ni el programador que las use mejor o peor.

La verdad veo muy util tu respuesta, soy principiante, estoy mejorando en eso, pero vi a mucha gente que quiere reinventar la rueda y hacerlo todo por su cuenta por simple ego, y valoro respuestas como la tuya que son muy constructivas y que se puede aplicar de forma inmediata los consejos que das.