Me pregunto si hay recursos menos sesgados que brinden descripciones buenas y específicas de los lenguajes de programación y sus objetivos. Me gustaría aprender un nuevo idioma, pero visitar los sitios de cada idioma no funciona. Cada uno habla de lo bueno que es sin mencionar mucho sus debilidades u objetivos específicos .
Ruby es un lenguaje de programación dinámico y de código abierto con un enfoque en la simplicidad y la productividad.
Python es un lenguaje de programación que le permite trabajar más rápidamente e integrar sus sistemas de manera más efectiva.
Habiendo sido un desarrollador de PHP durante años, Vic Cherubini resume bien mi situación:
Conocía bien PHP, tenía mi propio marco y podía trabajar rápidamente para poner en marcha algo.
Lo programé así durante toda la revolución MVC. Obtuve mejores y mejores trabajos (léase: mejor pago, mejor título) como desarrollador de PHP, pero en todo momento me di cuenta de que el código que escribí en mi propio tiempo fue excelente, y el código con el que trabajé en el trabajo fue horrible. Como, peor que horrible. Atroz. Nivel de comercio del sistema operativo incorrecto. Tener proyectos paralelos me mantuvo cuerdo, porque el código con el que trabajé en el trabajo me hizo sentir miserable.
Es por eso que me retiro de PHP para mis proyectos paralelos y nuevas empresas de programación. Me paso con PHP. Agotado, por así decirlo. Llegué a un nivel en el que creo que estoy en la cima con él como lenguaje y si no paso a un nuevo idioma pronto, terminaré por completo con la programación y no quiero eso.
Los idiomas que he visto incluyen JavaScript (para node.js), Ruby, Python y Erlang. Incluso he pensado en Scala o C ++.
El problema es descubrir cuáles están diseñados para satisfacer mejor mis necesidades.
Entonces, ¿dónde puedo ir para omitir la publicidad y obtener información real sobre la madurez de una plataforma, el tamaño de la comunidad y las fortalezas y debilidades de ese idioma. Si los conozco, elegir un idioma para continuar con mi desarrollo web debería ser fácil.
Actualizar
Simplemente no quiero obtener 4 meses en el futuro con un poco de lenguaje y me parece que apesta porque cada hilo tiene 4 MB de sobrecarga, o las conexiones simultáneas máximas son 999, no hay un paquete para hacer la función "X", o el soporte es ser eliminado para una nueva rama de idiomas.
fuente
Respuestas:
No iba a publicar esto como respuesta, pero Xeoncross me lo pidió, así que aquí vamos:
(Nota al margen: si alguien pudiera solucionar el problema del descuento en el pequeño ejemplo de código, lo agradecería).
Publicado por Alex Martelli en comp.lang.python : ¿Qué hay de mejor en Ruby que en Python? el 18 de agosto de 2003, 5:50 p.m.
fuente
Buena suerte
Ninguna de las descripciones de ejemplo dadas es objetiva o comprobable. Todos son bombo y opinión.
Intentalo
Tome un pequeño proyecto de muestra del tipo que probablemente esté haciendo y pruébelo con todos los idiomas que le interesen. Luego publique su revisión objetiva y todos lo sabremos.
fuente
Creo que parte del problema es que cualquiera que sepa lo suficiente como para comentar significativamente sobre uno o más idiomas tendrá un sesgo. En casi 4 décadas de programación, he trabajado en más idiomas de los que puedo contar. Puedo darle opiniones (algunas de ellas fechadas) sobre algunos de esos idiomas, pero ninguna de esas opiniones será imparcial.
Tomo el enfoque de usar el lenguaje correcto para el trabajo. Usted pregunta específicamente sobre el desarrollo web , pero sigue siendo una categoría bastante amplia, algo así como decir que está interesado en la fotografía. ¿Micro? Astro? etc. Aunque estoy de acuerdo en que PHP no es un lenguaje emocionalmente satisfactorio para trabajar, para muchos clientes es el lenguaje correcto en función de una serie de factores, entre los cuales se encuentra la capacidad a largo plazo de encontrar programadores para arreglar el sitio después de que te vayas. y / o ser atropellado por un autobús.
Entonces, tal vez debería mirar a los tipos de clientes que están interesados en proyectos que se prestan a algo diferente, y luego trabajar para hacer que sea interesante para ellos.
fuente
Pitón
El propósito más universal y general de todos ellos, pero también en el caso de la programación web, ofrece una mayor variedad de productos. Tener una interfaz WSGI estandarizada garantiza una gran interoperabilidad entre el marco y los servidores. Algunos de los productos web notables de Python:
Rubí
Ruby también es un lenguaje bastante universal. Pero, con mucho, su producto más notable es Ruby on Rails. Su diseño ha sido inspiración para muchos (incluido Django mencionado anteriormente).
JavaScript
Actualmente, la única opción del lado del servidor para JS es node.js. Es muy similar a Tornado y Twisted (por lo que se inspiró). Sin embargo, todavía carece de un marco completo similar a Django o RoR construido sobre él.
Scala
Al ser un lenguaje funcional, es excelente para la computación paralela masiva, en lo que respecta a la programación web de uso general, existe Lift - marco web inspirado en RoR, utilizado por ejemplo por FourSquare.
fuente
En mi último proyecto web comencé con PHP porque lo había usado antes para proyectos web (inicio rápido), pero tuve muchos problemas con el lenguaje, por ejemplo, mal soporte UTF-8 y tipeo dinámico. También tengo algunos antecedentes de Java y realmente disfruto la escritura estática y las buenas herramientas de refactorización. Java también tiene un buen rendimiento en comparación con PHP. Pero también me gusta la expresividad de la programación funcional.
Scala y Play Framework
Con la experiencia anterior, realmente disfruto del lenguaje de programación Scala, está estáticamente tipado, tiene soporte para programación funcional y orientada a objetos y tiene un buen rendimiento en comparación con otros lenguajes utilizados para el desarrollo web. Pero no me gustaron los frameworks web para Java y los servlets, y encontré Play Framework que tiene soporte para Scala y Java y tiene un ciclo de desarrollo muy rápido: guarde el archivo y actualice su página web. Estuve muy satisfecho con Scala & Play Framework el último mes. Pero el soporte de Scala en Play Framework aún no es muy maduro, y tampoco el soporte de herramientas.
En resumen, recomiendo Scala como lenguaje de programación y Play Framework como marco web.
fuente
En realidad, probablemente esté viendo tres tipos de recursos:
Ambos recursos estarían sesgados.
Puede tener la oportunidad de encontrar una comparación neutral, pero es muy difícil escribir una. Personalmente, nunca podría escribir una comparación entre un lenguaje real y PHP sin criticar PHP todo el tiempo. Y estoy bastante seguro de que no estoy solo para no ser lo suficientemente neutral.
Si desea tener una visión general de los diferentes idiomas, debe aprenderlos usted mismo y leer mucho . Al aprender, me refiero a conocer los conceptos básicos del idioma, pero poder tener tu propia opinión . No es porque haya leído un manual de Ruby que pueda explicar qué es bueno y qué es malo en este idioma.
Esto significa que tienes que pasar tiempo (meses o incluso años) practicando. O puedes leer mucho. Pero trata de leer cosas contradictorias . Si alguna persona escribe que odia PHP y PHP es uno de los peores lenguajes de la historia, especialmente en comparación con lenguajes reales como Ruby, C # o Java, intente también encontrar a una persona que diga que PHP es maravilloso, y es mucho más fácil de usar que C #, mucho más rápido que Java, y mucho ... (realmente no sé qué) que Ruby.
Recuerda una cosa: si ya conoces bien un idioma, serás muy crítico al principio cuando aprendas otro , creyendo que el idioma que ya conoces es mejor y mucho más fácil de usar. Es como los usuarios de Linux que odian a Windows y los usuarios de Windows que odian a Linux: de hecho, ninguno de los dos sistemas operativos es mejor; es solo que un usuario de Linux no sabe cómo usar Windows, y viceversa. Solo después de adquirir suficiente experiencia en ambos, podrá decidir correctamente cuál es mejor para usted.
Lo último, a menudo olvidado: también es muy importante poder evaluar el "entorno" de un idioma:
fuente
Bueno, dado que uno de sus criterios parece ser "es divertido trabajar con él", creo que le gustaría encontrar información sesgada. Si el autor de algo es un apasionado de su idioma de elección, existe una gran posibilidad de que dé una evaluación parcial.
Tal vez deberías abordarlo desde la otra dirección. Como parece que estás hablando de hacer un cambio profesional en lugar de un pasatiempo, tal vez deberías encuestar algunos anuncios de trabajo, encontrar algunas tecnologías / idiomas interesantes y buscarlos.
En cuanto a los idiomas que tienen objetivos específicos, muchos idiomas no los tienen. La mayoría de los idiomas que enumeraste son de uso bastante general. Por ejemplo, el lenguaje Ruby es un lenguaje de propósito general bastante adecuado para muchas tareas. Una vez que le agregas un marco, como Rails , eso tiene un objetivo bastante específico.
fuente
Esto no es exactamente lo que estabas preguntando, pero si estuviera buscando algo para sacarme de la rutina profesional del desarrollo web, y al mismo tiempo aprovechar esa experiencia y contactos, me gustaría escribir aplicaciones de Android y iPhone. Ser capaz de vender una aplicación que complemente el sitio web de un cliente realmente podría hacer que se destaque desarrollando para un Internet al que se accede cada vez más a través de dispositivos móviles.
fuente
¿Realmente has alcanzado el límite de PHP, o solo los límites de PHP tal como lo conoces?
¿Has mirado en Drupal ? Es un marco de programación y CMS basado en PHP que fomenta firmemente los buenos estándares y prácticas de codificación. (Habiendo tenido que trabajar con OSCommerce en trabajos anteriores, siento su dolor allí.) Aunque está basado en PHP, es lo suficientemente diferente como para que a menudo la forma "correcta" de hacer algo en PHP puro no sea la forma correcta de hacerlo en Drupal, y vas a tener una buena curva de aprendizaje para escalar para dominarlo realmente. Sin embargo, puede cambiar sus perspectivas sobre las capacidades de PHP como lenguaje y el desarrollo web en su conjunto.
fuente