world woldle tagxedo creator create art cloud

cloud - woldle - wordle create free



¿Qué lenguaje de programación para cloud computing? (8)

Ahora que viene la nueva era de la computación en la nube, y voy a aprender a programar, no sé qué lenguaje de programación son compatibles con las nubes.

Creo que es compatible con Java, ASP.NET, PHP, Python, Ruby, Perl, etc. y no los lenguajes de gama baja, como C, C ++, etc. ¿O me equivoco? Si es así, las empresas de software tendrán que volver a desarrollar su software. ¿Es este el momento en que puede iniciar un proyecto y no tiene una gran compañía de software como competidor?

Quiero saber en qué idioma debería centrarme en el aprendizaje, para poder desarrollar para la nube.


"Cloud computing" es más un concepto a nivel de sistema operativo que un concepto de lenguaje.

Supongamos que desea alojar una aplicación en el servicio de computación en la nube EC2 de Amazon : puede desarrollarla en cualquier idioma que desee, en cualquier sistema operativo compatible con EC2 (varios tipos de Linux, Solaris y Windows), luego instalarlo y ejecutarlo. "en la nube" en una o más máquinas virtuales, tal como lo haría en un servidor físico dedicado.


De los idiomas que mencionas Java, PHP, Python, Ruby, Perl son ciertamente más independientes de la plataforma que C / C ++ (y ASP.NET).

Muchas de las diferencias específicas de la plataforma también provienen de las bibliotecas disponibles para una plataforma determinada.

Sin embargo, en la práctica, creo que siempre se desarrollará en la misma plataforma o al menos muy similar (sistema operativo) que el sistema donde se ejecutará su código, es decir, la nube no tomará el código fuente y lo compilará antes de ejecutarlo.

Personalmente apostaría por Java o Python (probablemente también Ruby), ya que tienen una gran cantidad de bibliotecas disponibles para todo tipo de tareas y son muy independientes de la plataforma.


Depende de qué "nube" desea utilizar. Si es Google App Engine, puedes usar Java o Python. Groovy también es compatible con Google App Engine, que se ejecuta en jvm. Si va con Amazon, puede instalar prácticamente cualquier sistema operativo (Amazon Machine Images) que desee con cualquier servidor de aplicaciones y usar cualquier idioma, dependiendo de la compatibilidad de los servidores de aplicaciones con el idioma. Pero hacer algo así significaría una gran comprensión técnica de los conceptos de escalabilidad. Algunos de los servicios se pueden proporcionar de forma inmediata, como servicios de DB, almacenamiento, etc. Escuché sobre ruby ​​y Heroku (otra plataforma de aplicaciones en la nube). Pero no tengo experiencia con ello.

Personalmente, prefiero Java / Groovy para tales cosas debido a las vastas bibliotecas y herramientas disponibles.


En cuanto a los lenguajes de programación, es probable que se utilice cualquier lenguaje basado en navegador o en servidor. Javascript, PHP, ASP, AJAX, Perl, Java, SQL.

Digamos que necesita implementar un nuevo lenguaje de programación y BCL diseñados específicamente para operar en la nube (nunca se utilizará en las máquinas cliente). Debe estar optimizado para la computación en la nube; Fácil de aprender, rápido, eficiente, potente, moderno.

La forma más grande en que he visto a los desarrolladores de servicios de alojamiento en la nube ayudar a los desarrolladores es la capacidad de iniciar y aumentar el tamaño de un servidor, sin ningún tipo de retraso. Los desarrolladores pueden crear la aplicación en un entorno completamente personalizado y luego expandirla a una máquina de producción con una molestia significativa. Si las cosas no funcionan como se desea, pueden destruir esa máquina con relativa facilidad.

La mayoría de los proveedores de computación en la nube utilizaron JAVA y C-Sharp para hacer un servidor en la nube.


Esa es una pregunta muy interesante.

En la conferencia Lang.Next hubo una discusión muy interesante sobre este tema, en la que participan autores de varios lenguajes de programación (Scala, Dart, C #). No hubo un consenso claro al final, pero desde mi punto de vista hay un mensaje:

El lenguaje ideal para esta "era de la nube" debe estar orientado a objetos (porque así es como entendemos y somos capaces de modelar el mundo) y también abrazamos la programación funcional.

El código en "cloud age" casi siempre se distribuye: se ejecuta en varios núcleos / máquinas (en el centro de la nube) o solo en la separación cliente / servidor. Y también es asíncrono. No bloqueamos el código al esperar la respuesta de WS. Las devoluciones de llamada vienen en cualquier momento.

Cuando se utilizan lenguajes de programación imperativos estándar, el manejo de la asincronía y la distribución es realmente complicado. Siempre debe cuidar el "estado actual" y, cuando llegan las devoluciones de llamada, debe decidir qué hacer, en las dependencias de este estado.

La programación funcional ayuda a eliminar el "estado" y es mucho más adecuada para esta nueva situación.

Así que diría: en la computación en nube el código se distribuye, sin estado, asíncrono. La programación funcional puede ayudarte con eso. Orientado a objetos es casi una necesidad para poder modelar el mundo.

He escrito una publicación en el blog al respecto , si está interesado. Me gusta C #, pero en realidad diría que Scala, Clojure, F # podría encajar aún mejor.

Por otro lado, C ++ siempre estará allí, y últimamente se está modernizando y recibiendo más atención.


Esto siempre es fascinante. No soy un desarrollador en la nube, pero según mi investigación, no hay nada significativamente diferente de lo que muchos de nosotros hemos estado haciendo durante décadas. El servidor es específico de la plataforma. Si desea escribir un código independiente de la plataforma para su servidor, está bien, pero es innecesario en función de quién sea su proveedor de servidor en la nube. Creo que la mayor diferencia que he visto hasta ahora es el concepto de proporcionar un gran conjunto de servicios para que el cliente final los procese. En la parte frontal, asumo que es predominantemente el desarrollo de aplicaciones web o web. Como la mayoría de los navegadores pueden manejar la pila LAMP vs Microsoft lo suficientemente bien, entonces todavía estás de regreso a lo que sea tu sabor del mes. La única diferencia que realmente veo por lo que hice hace 20 años en un entorno de red altamente distribuido es el protocolo de nivel superior (HTTP frente a TCP / UDP). Tal vez me equivoque y agradecería la educación, pero nuevamente he estado haciendo esto por mucho tiempo y aún no he visto nada que pueda considerar revolucionario o significativamente diferente, aunque lenguajes como Java, C #, Python, Ruby, etc. son significativamente significativos. Es más sencillo de programar en el que se trata de una bolsa mixta, ya que la barra se baja para aquellos que no están familiarizados con la escritura de código optimizado. PAAS y SAAS para mí parecen ser algunas de las claves de la nueva tecnología, pero han estado haciendo esto de vez en cuando durante 20 años :)


Obviamente, no hay un lenguaje "mejor", o más vale la pena aprender, en absoluto. El idioma que use es solo una cuestión de lo que le gusta y lo que su servidor admite. No debe aprender un idioma que no sea compatible con ningún servidor o que se diga que está muriendo en un futuro próximo. Por otro lado, también es obvio que habrá idiomas aún mejores en el futuro y que serán más útiles. Entonces, aprenda uno que sea rápido, conveniente y que le guste y donde aprenderlo no sería un esfuerzo demasiado grande porque, como se dijo, es probable que cambie en menos de 3 años.

Yo, personalmente, estaría considerando un "código abierto" (no propietario), porque la web está abierta para todos y es más probable que el código abierto sea compatible con todos. (Lo que significa PHP en este caso)


Tu pregunta es un poco vaga acerca de lo que realmente estás pensando hacer. "Cloud computing" puede significar casi cualquier cosa. Si está buscando idiomas con ventajas específicas de computación en la nube, Java tiene varios porque es un lenguaje compilado que compila código de byte independiente del sistema operativo.

También comparto con los demás que C ++ es un lenguaje de bajo nivel. Sí lo es. Pero siempre vas a tener más que solo el lenguaje C ++. Si separa Java y C ++ de las clases que vienen con ellos, Java y C ++ son extremadamente similares. Tienes que adoptar algún criterio rígido como "punteros = bajo nivel, recolección de basura = alto nivel" para hacer que la distinción se mantenga. (Y, por supuesto, puede hacer que los punteros sean inteligentes e invisibles en C ++ y también puede usar la recolección de basura en C ++ si lo desea).