¿Cuál será un buen lenguaje de programación que se pueda usar para construir un inicio basado en una aplicación web? PHP es fácil de aprender pero puede convertirse en un desastre. Ruby on Rails está fuera de discusión. ¿Qué idioma se puede usar para crear y mantener una aplicación de manera fácil?

Como otros han mencionado, PHP no es necesariamente desagradable, especialmente con las versiones más nuevas. Agregue hiphop-php a la mezcla y también lo hará bastante bien en cuanto al rendimiento.

Necesito un lenguaje que pueda usarse para crear y mantener una aplicación de manera fácil.

No importa el idioma que elija, si los ingenieros que crean la aplicación escriben código desordenado, tendrá una aplicación desordenada. PHP (u otros lenguajes realmente) no son intrínsecamente desordenados. PHP facilita la escritura de código desordenado, pero no lo exige. Se pueden decir cosas similares sobre cualquier otro idioma.

Si yo fuera tú, miraría otros factores. Si comenzaras a construir esto hoy, ¿cuál sería el lenguaje que te permitiría construir más rápido? ¿Tienes un equipo listo para trabajar en esto? (Supongo que no, ya que estás preguntando qué idioma usar). Si tuviera que comenzar con Python, ¿cuándo podría comenzar? ¿Cuándo tendrías un producto? ¿Te permites el lenguaje X? (piense en el tiempo de Ing. dedicado a construirlo hasta obtener ganancias).

En primer lugar, el código PHP no tiene que ser un desastre. El código desordenado indica más prácticas de ingeniería deficientes que cualquier lenguaje en sí.

Si su aplicación web se basará principalmente en front-end, PHP es una opción tan buena como cualquier otra, de hecho, mejor que la mayoría, dada su facilidad de uso y disponibilidad de una comunidad de código abierto fuerte. La única alternativa que se acerca es Python / Django.

Si se siente aventurero, también puede echar un vistazo a los próximos patrones de JavaScript de una sola página utilizando Nodejs + Expressjs junto con Angularjs o Knockoutjs. Sin embargo, no estoy completamente convencido de que este patrón pueda proporcionar una funcionalidad de backend significativa.

Si hay una carga pesada de backend (por ejemplo, algún tipo de algoritmos de aprendizaje automático), entonces PHP probablemente no sea una gran opción. Sin embargo, Python funciona bien aquí también.

Alrededor de un año atrás, con mi otro amigo de Microsoft pensé en comenzar algunos de los nuestros. Con nuestra idea, pensamos en crear aplicaciones web para nuestros clientes. Siendo de Microsoft, no estábamos muy expuestos a la tecnología web. Entonces comenzamos a explorar nuestras opciones. Comenzamos con una opción más fácil, PHP y sinfonía como marco. Entonces otro amigo mío se une a nosotros. Sugirió que deberíamos codificar en Python. Luego comenzamos a explorar django. Créeme, en una semana me enamoré de Python y Django. Es demasiado fácil , poderoso y lo más importante, hermoso .

La documentación de Django es exhaustiva y la comunidad es increíble. Hay demasiadas bibliotecas de terceros disponibles que hacen la vida mucho más fácil.

Mis 2 centavos por django.

Mi sugerencia sería Python (Django es solo una opción). La razón principal es el fuerte ecosistema de Python. En términos de backend, Python proporciona herramientas en todas las áreas en las que es posible que desee construir. Esto también le brinda la ventaja de implementaciones uniformes y fácil mantenimiento.

El lenguaje correcto es el que le permite obtener la primera versión de su MVP en la puerta y en manos de sus clientes potenciales lo más rápido posible. Eso dependerá en gran medida de las habilidades que usted o su equipo tengan actualmente.

Si tiene desarrolladores de PHP, hágalo en PHP. Si tienes desarrolladores de Ruby, hazlo en Ruby.

Y en un frente puramente técnico, como otros han dicho:

  • Puede escribir PHP perfectamente limpio si lo desea. No es mi idioma favorito en el mundo, pero no hay nada que impida que los buenos desarrolladores escriban un código fácil de mantener, y muchos lo han hecho.
  • Ruby and Rails es fácil de implementar con herramientas como Capistrano, etc.

Por mucho que no quieras escucharlo (de tu publicación), primero voy a presentar un caso para Ruby, antes de comparar varios idiomas. Si lo desea, simplemente omita los siguientes párrafos, pero si se trata solo de problemas con el archivo de encabezado, léalos.

Gemas:
Para Ruby, el único problema generalizado con las gemas que he encontrado es el hecho de que muchos sistemas no pueden construir correctamente los archivos de encabezado, porque muchos de los archivos / compiladores / otras cosas necesarias están instalados incorrectamente. Asumiré que este es el caso aquí, porque aparte de eso, la instalación de gemas debería ser tan simple como escribir dos palabras en su Gemfile y ejecutar la instalación del paquete (o escribir “gem install ______” en la consola, ninguna de las cuales debería ser siquiera remotamente difícil).

El uso de RVM en un sistema Unix / Linux lo instalará correctamente, y el uso de RailsInstaller en un sistema Windows lo instalará correctamente allí. Si usa cualquiera de los dos, no debería tener problemas.

Ahora que he terminado con esa diatriba, aquí hay un resumen básico de mis pensamientos sobre cada uno.

Comparaciones:
Velocidad:
Ruby suele ser más rápido que Perl, Python o PHP. Algunas estadísticas difieren en esto, pero en muchos puntos de referencia, este suele ser el caso, aunque solo sea marginalmente. Sin embargo, todos estos lenguajes son eliminados por Java, Scala, C, etc. Por razones de simplicidad, me mantendría alejado de C, pero Java parece ser uno de los favoritos (aunque también puedes obtener un mayor rendimiento con JRuby) parece tener algunos problemas con las llamadas a la base de datos).

Legibilidad:
Ruby y Python son sin duda los idiomas más fáciles de leer. PHP es probablemente el tercero. Java y Scala se quedan atrás, y C puede ser bastante (léase: muy) difícil para el desarrollo web. En cuanto a Perl, hay un viejo dicho que dice:

“Si pones un millón de monos en un millón de teclados, uno de ellos eventualmente escribiría un programa Java. El resto escribiría programas Perl”.

Perl es tan feo como se pone.

Curva de aprendizaje:
PHP, Ruby y Python deberían llevarte (como máximo) unos días para dominar. La mayoría de las personas ya conocen Java, pero incluso si usted no lo sabe, es realmente fácil de aprender. De todos los lenguajes enumerados hasta ahora, C es probablemente el más difícil, aunque todavía no es tan malo.

Soporte / Documentación:
Esta fue la razón por la que elegí Ruby sobre Java para mi inicio. Ruby está tan bien documentado que necesita tener un problema más allá de su codificación para no poder encontrar algo. Además, hay muchos tutoriales útiles, como el famoso Tutorial de Rails (uno fantástico, solo Google) que puede construir un sitio web con usted en solo unos días, mientras le enseña las habilidades de nivel más bajo a medio que aprenderá. necesitar.

Todo el resto está bien documentado, pero la mayoría de los que no están completamente enfocados en el desarrollo del backend probablemente tengan menos documentación al respecto. Tuve un problema para obtener suficiente información sobre el marco de juego Java / Scala, que en realidad fue lo que me impidió elegir Java en primer lugar.

En pocas palabras: depende de cuánto tiempo y experiencia tenga. He incluido mis tres primeros para cada categoría a continuación.

Tiempo / Experiencia:
Poco poco
1) rubí
2) PHP
3) Python

Pequeño / lote
1) Java / Scala
2) Ruby (con extensiones C / C en línea más adelante) o Python (con algo como Boost Python, más adelante)
3) C # u otro .NET

Lot / Little
1) rubí
2) Python
3) Java / Scala

Lote / lote
1) C
2) Java / Scala
3) Python (con algo como Boost Python) o Ruby (con extensiones C / C en línea más adelante)

Honestamente. Como he dicho antes, usaría un lenguaje muy básico (como Ruby o Python) al principio, y luego agregaría módulos de código más rápidos más tarde (generalmente en forma de código C) cuando tenga más tiempo y experiencia. Tengo poca experiencia con las ofertas de Python en eso, y no tengo experiencia con PHP, pero puedo dar fe de la simplicidad de la línea C en Ruby. Hay algunas cosas raras que causan un poco de curva de aprendizaje, pero sigue siendo muy simple. Desde mi experiencia, Python también parece ser similar.

Muy simple:
Pila MEAN: MongoDB, Express, AngularJS, Node.js

Muchas startups están usando Node de una forma u otra.

Aprendiendo solo JavaScript, podrá lograr mucho.

Bueno, me doy cuenta de que dijiste que Ruby on Rails (marco web) está fuera de discusión, pero en realidad es más fácil de usar y, en mi opinión, el marco más pulido para arrancar y una aplicación simple basada en web. Con Rails Composer · RailsApps puedes crear una nueva aplicación e implementarla en Heroku en, prácticamente, una línea de comando.

LOL Muchas líneas de respuesta ..

Como start-up tendrás muchas cosas que cuidar. Codificar y hacer el producto es solo una parte. Nadie crea un sitio web que sea escalable para miles de millones de usuarios de una sola vez. Así que ve por lo que sea más fácil para ti. Incluso hoy Facebook está usando PHP.

Como desarrollador de Java, estoy evaluando JSF (PrimeFaces / RichFaces). Puede echar un vistazo si su aplicación web va a ser pesada.

Para un inicio, debe elegir un idioma y un marco que esté en etapa madura.

Para que pueda obtener fácilmente nuevos desarrolladores / recursos a medida que crece su inicio.

Recomendaría trabajar en algún framework en PHP, por ejemplo, CakePHP.

Echa un vistazo a Grails, otro marco MVC con una ventaja. Se puede importar cualquier biblioteca Java ya que Groovy está escrito en Java y proporciona acceso directo a las API de Java

No hay nada malo con C #.

More Interesting

¿Cómo llegó Trello a 1 millón de usuarios?

¿Cómo iniciar una empresa? ¿Es realmente tan complicada la etapa inicial?

Me gustaría comenzar un pequeño negocio dentro de un par de meses en mi ciudad en el entorno actual que puede ofrecer buenas opciones para mejorar en el futuro. ¿Puede sugerir un rango de inversión inferior a 4 lacs?

¿Cuáles son los factores clave de éxito para que las startups escalen rápidamente?

Si quiero convertirme en biólogo sintético y crear una empresa, ¿por dónde debo comenzar?

Cómo planificar y desarrollar una idea en una idea de negocio

¿Qué pasa si tenemos una idea para una startup, pero algunos grandes competidores en el mismo mercado ya existen? ¿Qué debemos buscar entonces?

¿Cuál es una buena manera de comenzar un proyecto paralelo?

¿Cómo iniciar un negocio de lavado de autos en India? ¿Cuáles son los permisos / registros requeridos?

¿Cuál es la mejor manera de prepararse para el emprendimiento?

Si soy ciudadano de los EE. UU. Y hago una financiación de ángel en una empresa india, al momento de la salida, ¿tengo que enfrentar la doble imposición tanto con India como con EE. UU.? ¿Cómo funcionan las matemáticas?

He construido una infraestructura SaaS. ¿Cuáles son algunos valiosos problemas comerciales que resolver?

Bajo el socialismo, ¿puedo comenzar mi propio negocio?

Si quiero comenzar una startup tecnológica, ¿debo ir a la universidad o usar el dinero para financiar la etapa inicial de mi startup y comenzar a trabajar a tiempo completo?

¿Qué título de trabajo debería tener si acabo de fundar una startup?