¿Cómo un lenguaje que usted considera tan limitado cómo es Go, lo utiliza para su trabajo, aún más de lo que usa C? ¿Cómo elige que lenguajes le funcionan para que tipo de trabajo?
Otras personas escogieron Go, con criterios diferentes a los que yo hubiera aplicado; no era mi selección. El resultado ha sido razonable, considerando las destrezas del grupo y los problemas particulares que hubo que resolver. Lo que está escrito en Go habría sido mucho más difícil de escribir en C, y la ganancia en desempeño no habría sido notable; estaba escrito en Perl, y ha sido más trabajo reescribirlo en particular por la carencia de librerías consistentes en Go, pero la ganancia en desempeño por ahorro de memoria lo ha justificado. Las carencias de Go han complicado otras áreas.
Puedo escribir programas en más o menos 20 lenguajes de programación diferentes. Sin embargo, sólo hay 7 u 8 que realmente me resultan efectivos y simpáticos para trabajar.
Son muchos los criterios para escoger. Uno es saber si voy a trabajar sólo o acompañado, y cuál va a ser la audiencia de la solución en términos de mantenimiento. Después, hay que entender el problema lo suficiente antes de escoger; aquí es donde entra en juego la experiencia y el estudio previo.
Si hay que resolver un problema de procesamiento de datos que están o van a estar en una base de datos, el lenguaje es PL/pgSQL de PostgreSQL, y se escribe *todo* dentro de la base de datos. Prueba superada hace más de una década. Si el problema es de análisis estadístico de esos mismos datos, probablemente quiera usar PL/R. Si los datos están fuera de la base de datos, y nunca van a estar dentro, probablemente use Octave o R, según el tipo de cómputo a realizar.
Para labores de administración de sistemas, transformación de datos, interacción con servicios (SMTP, IMAP, HTTP) seguramente usaría Perl.
Hay cosas que sólo las puedes escribir en un lenguaje. Por ejemplo, para hacer una extensión para PostgreSQL, o un módulo PAM tienes que escribir en C.
Ahora mismo estoy estudiando un problema que es de base de datos, pero el problema es una combinación de manipuación de símbolos y búsqueda exhaustiva. Obviamente lo estoy haciendo en Prolog. Si después resulta «lento», veré cómo lo transformo, pero para ese problema, termina siendo el mejor lenguaje.
Para aplicaciones concurrentes y paralelas, servicios REST puros, o hacer un lenguaje, usaría Haskell.
En todo caso, el fondo es que con un sólo lenguaje no puedes resolver todos los problemas eficaz y eficientemente. Es muy importante en tu vida profesional aprender y dominar más de un lenguaje; a menos que tu deseo sea dedicarte a una, y sólo una cosa, en cuyo caso es probable que con un sólo lenguaje atiendas tus necesidades razonablemente bien.
Finalmente, evita caer en la tentación de pensar que un problema se resuelve con un sólo lenguaje. Hay problemas en los cuales deben participar varios lenguajes, cada uno apropiado para la sección del problema que ataca. El éxito está en tener práctica con tantos lenguajes y paradigmas, que puedas romper cada problema en pedazos que son representables de manera clara y rápida con cada uno.
Puedo escribir programas en más o menos 20 lenguajes de programación diferentes. Sin embargo, sólo hay 7 u 8 que realmente me resultan efectivos y simpáticos para trabajar.
Son muchos los criterios para escoger. Uno es saber si voy a trabajar sólo o acompañado, y cuál va a ser la audiencia de la solución en términos de mantenimiento. Después, hay que entender el problema lo suficiente antes de escoger; aquí es donde entra en juego la experiencia y el estudio previo.
Si hay que resolver un problema de procesamiento de datos que están o van a estar en una base de datos, el lenguaje es PL/pgSQL de PostgreSQL, y se escribe *todo* dentro de la base de datos. Prueba superada hace más de una década. Si el problema es de análisis estadístico de esos mismos datos, probablemente quiera usar PL/R. Si los datos están fuera de la base de datos, y nunca van a estar dentro, probablemente use Octave o R, según el tipo de cómputo a realizar.
Para labores de administración de sistemas, transformación de datos, interacción con servicios (SMTP, IMAP, HTTP) seguramente usaría Perl.
Hay cosas que sólo las puedes escribir en un lenguaje. Por ejemplo, para hacer una extensión para PostgreSQL, o un módulo PAM tienes que escribir en C.
Ahora mismo estoy estudiando un problema que es de base de datos, pero el problema es una combinación de manipuación de símbolos y búsqueda exhaustiva. Obviamente lo estoy haciendo en Prolog. Si después resulta «lento», veré cómo lo transformo, pero para ese problema, termina siendo el mejor lenguaje.
Para aplicaciones concurrentes y paralelas, servicios REST puros, o hacer un lenguaje, usaría Haskell.
En todo caso, el fondo es que con un sólo lenguaje no puedes resolver todos los problemas eficaz y eficientemente. Es muy importante en tu vida profesional aprender y dominar más de un lenguaje; a menos que tu deseo sea dedicarte a una, y sólo una cosa, en cuyo caso es probable que con un sólo lenguaje atiendas tus necesidades razonablemente bien.
Finalmente, evita caer en la tentación de pensar que un problema se resuelve con un sólo lenguaje. Hay problemas en los cuales deben participar varios lenguajes, cada uno apropiado para la sección del problema que ataca. El éxito está en tener práctica con tantos lenguajes y paradigmas, que puedas romper cada problema en pedazos que son representables de manera clara y rápida con cada uno.