Somos dos desarrolladores a punto de comenzar el desarrollo de nuevos productos web.
Ambos somos fanáticos del enfoque de puesta en marcha lean y nos gustaría practicar la implementación continua.
Aquí viene el dilema: ambos procedemos de un fondo de C # / Windows y debemos decidir entre:
Se adhieren a .NET y Windows, no perderemos tiempo en aprender nuevas tecnologías y pondremos todo nuestro esfuerzo en el desarrollo.
Cambie a Ruby on Rails y Linux, que tiene una buena reputación de aceleración rápida y amplio soporte de código abierto. El lado negativo es que tendremos que poner mucho esfuerzo en aprender Ruby, Rails y Linux ...
¿Qué harías? ¿Qué otras consideraciones debemos tomar?
Respuestas:
Bueno, la opción más eficiente es usar .NET, ya que el esfuerzo que invierte en aprender la otra plataforma es (desde la perspectiva del negocio) un esfuerzo desperdiciado en no llevar el producto a sus clientes.
fuente
En una startup, juega con tus fortalezas. Sugeriría seguir con las tecnologías .NET y ver si puede ingresar al programa BizSpark de Microsoft . Eso le proporcionará licencias asequibles para el software que necesita, con un riesgo mínimo.
fuente
Debe tener en cuenta los siguientes factores:
1) El costo de implementación en la plataforma elegida (hay licencias de inicio para .NET / Windows, pero eventualmente tendrá que pagar, más los costos comparativos de alojamiento / hardware)
2) El tiempo requerido para mejorar la habilidad (cero para .NET en esta instancia)
3) Lo que está construyendo y la idoneidad de la plataforma para eso a corto plazo (prototipo, uso de bajo volumen, etc.) y a largo plazo (¿escalará y, de hecho, tiene la intención de escalar o es, por ejemplo, B2B en cuyo caso los volúmenes pueden ser siempre relativamente bajos)
Mi instinto es seguir con lo que sabes, ya que tendrás mucho que hacer sin tener que aprender algo más, pero debes sopesar los otros factores según los detalles de tu idea.
fuente
Stackoverflow se realiza en .Net . Entonces, nada malo sobre C # .Net o la tecnología de Windows.
Mi primer inicio fue en C # .net porque a) todos los fundadores están familiarizados con C #. b) Visual Studio fue y sigue siendo muy amigable para el desarrollador para la depuración, etc.
El inicio fue un fracaso masivo por razones comerciales y tecnológicas.
Independientemente de la tecnología que elija, debe considerar si es hábil / lo suficientemente bueno como para usar esa tecnología para lanzarla en X años.
Como puede ver, el criterio que teníamos arriba no era lo suficientemente estricto. No teníamos idea de cuánto tiempo necesitamos para construir la cosa. Simplemente estamos familiarizados con C # .Net, eso es todo.
Ninguno de nosotros tiene experiencia en construir algo cercano a lo que queríamos construir.
Después de un tiempo, las tarifas del servidor, etc., nos hacen deshacernos de C # y reescribir todo en php. Esa es otra historia y otro error en cuanto a negocios.
El punto es que esta tecnología que vas a usar, NO tiene que ser genial, vanguardista. Quieres construir una aplicación web. Así que elige uno que te de la mejor oportunidad . ¿Qué te da la mejor oportunidad?
Elija la tecnología que las personas que realizan la mayor parte de la programación tienen experiencia REAL construyendo una aplicación igualmente compleja ANTES
Por favor lea lo anterior 10 veces.
Si tuviera que dirigirme a mi yo más joven de hace 3-4 años, y él diría: "Pero no tengo experiencia en hacer nada de la complejidad que tengo en mente EN CUALQUIER IDIOMA. Entonces, ¿cómo elijo?"
La respuesta de $ 50,000 dólares es (sí, eso es lo que desperdicié aprendiendo de mis errores):
Elija uno que sea más indulgente con su desarrollo de aprendizaje.
¿Cómo definimos perdonar ?
Por ejemplo, .Net depende del servidor de Windows. Y los servidores de Windows son más caros que los servidores de Linux. Eso es un hecho. Incluso si tiene las licencias de Bizspark, es mejor que se asegure de tener en cuenta el ingreso de dinero una vez que expiren sus licencias.
NO asuma que podría aprender C # .net en 3 años. Es difícil de decir. Para mí, simplemente no funcionó.
Intenté RoR antes. Una vez leí un artículo sobre 2 banqueros de inversión con experiencia en programación CERO que tuvo éxito con alguna aplicación web sobre viajar en el programa Techstars.
Ellos usan RoR.
Tengo experiencia en programación. Pero RoR simplemente no funcionó para mí.
Compré libros de Amazon, etc. Lo intenté. En serio, di lo mejor de mí.
Finalmente me decidí por Cakephp. Es lo suficientemente bueno para mí tener la mejor oportunidad de relanzar otra aplicación web. Perdonando lo suficiente como para aprender a mi propio ritmo.
Además, al igual que encontraste mejores novias no porque sean mejores, sino porque eres una mejor persona después de más experiencia, quizás, también había mejorado como programador
Así que no se trata de un mejor marco / lenguaje. O que Cakephp es el mejor que he usado. Tal vez, finalmente, me he convertido en un programador lo suficientemente bueno como para construir la aplicación web que tenía en mente.
Se trata de lo que funciona mejor para que te acerques más al lanzamiento.
Oh, aquí hay un regalo de promoción.
Después de 6 meses, cuando debuta con una versión alfa o beta privada y recibe comentarios de los clientes, y tiene ganas de reescribir todo en un nuevo idioma, ¿debería?
Responder:
NUNCA. NUNCA. NUNCA.
Hay un artículo de JoelOnSoftware sobre la reescritura de software versus el software de refactorización. Soy demasiado vago para encontrarlo.
Él sugiere lo mismo.
Tómelo de alguien que eligió la tecnología incorrecta y luego reescribió todo en php (sin marco) y luego volcó el inicio al final. Y gastó $ 50,000 en el proceso.
Es como el matrimonio. Elija una tecnología y hasta la muerte haga su inicio y la parte de tecnología.
Bien, exagero, pero solo porque es demasiado fácil pensar que todas sus situaciones de programación pueden resolverse con otro lenguaje / marco. Al igual que pensar que tendrías un mejor matrimonio al cambiar a otra persona. Es mucho mejor, aunque más trabajo trabajar en usted o en sus prácticas de programación .
Buena suerte. Y sigue aprendiendo. Por el bien de tu cordura, elimina las características al mínimo absoluto. Vaya a google para un producto mínimo viable (MVP).
Eso es más importante que la tecnología que elijas.
Así que dedique el tiempo adecuado a la planificación / diseño de este MVP.
La planificación es importante. Los planes no lo son. Es posible que deba deshacerse de sus planes después de pasar 4 meses planificando este MVP porque necesita reaccionar ante las circunstancias cambiantes o la competencia.
Esta bien. Los 4 meses de planificación no se desperdiciaron.
Ahora tendría más conocimiento de dominio del que tenía antes de los 4 meses.
Por lo tanto, incluso si se trata de un plan rediseñado rápidamente en esta etapa, debería ser notablemente mejor que su primer borrador hace 4 meses.
¡Buena suerte!
fuente
Voy a ir contra la corriente de todos los demás aquí y decir que sería mejor para usted ir a la ruta de código abierto.
He estado trabajando en .NET durante aproximadamente 8 años, y he usado casi todos los lenguajes y marcos de código abierto comúnmente conocidos, en general, durante el mismo período de tiempo.
Si realmente quiere seguir con el enfoque esbelto, probablemente encontrará que la facilidad de integración, el costo de los servidores y el software, y la productividad a largo plazo serán más prudentes financieramente, y dependiendo de su nivel de capacidad y tiempo para poner este negocio, puede pagar en el corto plazo.
BizSpark es un camino peligroso para bajar. Eventualmente pagará el precio completo por esa gran pila de software, mientras que el código abierto siempre es barato o gratuito.
Tengo servidores configurados en la configuración del servidor en la nube de Rackspace. Puede obtener su propio servidor Linux nuevo y brillante con almacenamiento CDN por $ 11 / mes + ancho de banda menor y costos de almacenamiento. Eso es dinero de café.
Aprender a usar Linux y el entorno de código abierto puede llevar un tiempo acostumbrarse, pero no es un proyecto de varios años para volverse competente. Hay innumerables foros, tutoriales y personas capaces y dispuestas a ayudarlo a mejorar.
fuente
Si estuviera en su situación, usaría la tecnología en la que estoy mejor. Tuvimos una situación similar en mi empresa donde el cliente solicitó Java y todos éramos desarrolladores de .net.
Al principio todo estaba bien, pero más tarde algunas cosas pequeñas nos dieron problemas y en un momento los marcos de tiempo eran de ciencia ficción.
En mi experiencia, es fácil aprender un nuevo lenguaje de programación y una nueva tecnología, pero para saber realmente se necesita mucho tiempo.
fuente
Solo hazlo en C # y dot net .
fuente