Somos dois desenvolvedores prestes a iniciar o desenvolvimento de novos produtos da web.
Nós dois somos fãs da abordagem de inicialização enxuta e gostaríamos de praticar a implantação contínua.
Aí vem o dilema - ambos somos provenientes de um background em C # / Windows e precisamos decidir entre:
Atenha-se ao .NET e Windows, não perderemos tempo aprendendo novas tecnologias e colocaremos todo o nosso esforço no desenvolvimento.
Mude para Ruby on Rails e Linux, que tem uma boa reputação de aceleração rápida e amplo suporte a código aberto. O lado negativo é que precisaremos fazer muito esforço para aprender Ruby, Rails e Linux ...
O que você faria? Que outras considerações devemos tomar?
Respostas:
Bem, a opção mais enxuta é usar o .NET, já que o esforço que você gasta em aprender a outra plataforma é (do ponto de vista comercial) gasto em não levar o produto aos seus clientes.
fonte
Em uma startup, jogue com seus pontos fortes. Eu sugeriria continuar com as tecnologias .NET e ver se você pode entrar no programa BizSpark da Microsoft . Isso lhe dará licenças acessíveis para o software que você precisa, com o mínimo de riscos envolvidos.
fonte
Você precisa considerar os seguintes fatores:
1) O custo da implantação na plataforma escolhida (existem licenças de inicialização para .NET / Windows, mas você precisará pagar eventualmente, mais os custos comparativos de hospedagem / hardware)
2) O tempo necessário para aumentar a qualificação (zero para .NET nesta instância)
3) O que você está construindo e a adequação da plataforma para isso a curto prazo (protótipo, uso de baixo volume etc.) e a longo prazo (será escalável e, de fato, você pretende escalar ou é, digamos, B2B, caso em que os volumes sempre podem ser comparativamente baixos)
Meu instinto é manter o que você sabe, pois você terá muita coisa sem precisar aprender outra coisa, mas é necessário ponderar os outros fatores com base nas especificidades da sua ideia.
fonte
O Stackoverflow é feito em .Net . Portanto, nada de ruim na tecnologia C # .Net ou Windows.
Minha primeira inicialização foi em C # .net porque a) todos os fundadores estão familiarizados com C #. b) o visual studio era e ainda é muito amigável para desenvolvedores para depuração etc.
A startup foi um fracasso maciço por razões comerciais e tecnológicas.
Qualquer que seja a tecnologia escolhida, é necessário considerar se você é habilidoso / bom o suficiente para usar essa tecnologia para lançar em X anos.
Como você pode ver, os critérios que tínhamos acima não eram suficientemente rígidos. Não tínhamos ideia de quanto tempo precisamos para construir a coisa. Por acaso, estamos familiarizados com o C # .Net.
Nenhum de nós tem experiência em construir algo parecido com o que queríamos construir.
Depois de um tempo, as taxas do servidor etc. nos fazem abandonar o C # e reescrever tudo no php. Essa é outra história e outro erro em termos de negócios.
O ponto é essa tecnologia que você vai usar, que NÃO precisa ser legal, nervosa. Você deseja criar um aplicativo da web. Então escolha um que lhe dê a melhor chance . O que lhe dá a melhor chance?
Escolha a tecnologia que a (s) pessoa (s) que executam a maior parte da programação possui experiência REAL na criação de um aplicativo igualmente complexo ANTES
Por favor, leia o acima 10 vezes.
Se eu me dirigisse ao meu eu mais jovem de 3 a 4 anos atrás, e ele dissesse: "Mas não tenho experiência em fazer nada da complexidade que tenho em mente EM QUALQUER LÍNGUA. Então, como faço para escolher?"
A resposta de US $ 50.000 é: (sim, é isso que eu perdi aprendendo com meus erros):
Escolha a que mais perdoa o seu desenvolvimento de aprendizado.
Como definimos perdão ?
Por exemplo, .Net depende do servidor Windows. E o servidor Windows é mais caro que os servidores Linux. Isso é um fato. Mesmo se você tiver as licenças do Bizspark, é melhor garantir o recebimento de dinheiro assim que suas licenças expirarem.
NÃO presuma que você seria capaz de aprender C # .net em 3 anos. É difícil dizer. Para mim, simplesmente não funcionou.
Eu tentei o RoR antes. Certa vez, li um artigo sobre dois banqueiros de investimento com experiência em programação ZERO, bem-sucedidos em alguns aplicativos da web sobre viagens no programa Techstars.
Eles usam RoR.
Eu tenho experiência em programação. Mas o RoR simplesmente não funcionou para mim.
Comprei livros da amazon etc. Tentei. Sério, deu o meu melhor.
Finalmente, decidi pelo Cakephp. É bom o suficiente para eu ter a melhor chance de relançar outro aplicativo da web. Perdoar o suficiente para eu aprender no meu próprio ritmo.
Também, assim como você encontrou namoradas melhores, não porque elas são melhores, mas porque você é uma pessoa melhor após mais experiência, talvez eu também tenha melhorado como programador.
Portanto, não se trata de uma estrutura / linguagem melhor. Ou que o Cakephp é o melhor que já usei. Talvez eu tenha finalmente me tornado um programador bom o suficiente para criar o aplicativo da web que eu tinha em mente.
É sobre o que funciona melhor para você se aproximar do lançamento.
Oh, aqui está um brinde.
Depois de 6 meses, quando você estrear com um alfa ou beta privado, obtém feedback dos clientes e deseja reescrever tudo em um novo idioma, não é?
Responda:
NUNCA. NUNCA. NUNCA.
Há um artigo da JoelOnSoftware sobre reescrever software versus software de refatoração. Estou com preguiça de encontrá-lo.
Ele sugere o mesmo.
Escolha alguém que escolheu a tecnologia errada e depois reescreva tudo em php (sem estrutura) e depois despeje a inicialização no final. E gastou US $ 50.000 no processo.
É como casamento. Escolha uma tecnologia e, até a morte, faça sua inicialização e a parte da tecnologia.
Ok, exagerei, mas apenas porque é muito fácil pensar que todas as suas situações de programação podem ser resolvidas por outra linguagem / estrutura. Assim como pensar que você teria um casamento melhor mudando outra pessoa. É muito melhor que haja mais trabalho para você ou suas práticas de programação .
Boa sorte. E continue aprendendo. Por favor, pelo bem da sua sanidade, reduza os recursos ao mínimo absoluto. Acesse o google para o produto mínimo viável (MVP).
Isso é mais importante do que a tecnologia que você escolhe.
Portanto, gaste tempo adequado planejando / projetando esse MVP.
O planejamento é importante. Planos não são. Pode ser necessário abandonar seus planos depois de passar 4 meses planejando esse MVP, porque você precisa reagir às mudanças nas circunstâncias ou à concorrência.
Está bem. O planejamento de quatro meses não foi desperdiçado.
Agora você teria mais conhecimento de domínio do que antes dos 4 meses.
Portanto, mesmo que seja um plano redesenhado às pressas nesse estágio, ele deve ser notavelmente melhor do que seu primeiro rascunho, há 4 meses.
Boa sorte!
fonte
Eu vou contra a corrente de todos os outros aqui e dizer que você estaria melhor servido para seguir a rota do código aberto.
Trabalho com .NET há cerca de 8 anos e usei praticamente todas as linguagens e estruturas da Web de código-fonte aberto comumente conhecidas, bem como geralmente no mesmo período.
Se você realmente deseja seguir a abordagem enxuta, provavelmente descobrirá que a facilidade de integração, o custo dos servidores e do software e a produtividade a longo prazo serão mais prudentes financeiramente e dependendo do seu nível de habilidade e tempo para colocar em prática. este negócio, pode render a curto prazo.
BizSpark é uma estrada perigosa a percorrer. Você acabará pagando o preço total por essa pilha robusta de software, enquanto o código aberto é sempre barato ou gratuito.
Eu tenho servidores configurados na configuração do servidor em nuvem da Rackspace. Você pode obter seu próprio servidor Linux novo e brilhante com armazenamento CDN por US $ 11 / mês + largura de banda menor e custos de armazenamento. Isso é dinheiro do café.
Aprender o Linux e o ambiente de código aberto pode levar algum tempo para se acostumar, mas não é um projeto de vários anos para se tornar proficiente. Existem inúmeros fóruns, orientações e pessoas capazes e dispostas a ajudá-lo a melhorar.
fonte
Se eu estivesse na sua situação, usaria a melhor tecnologia. Tivemos uma situação semelhante na minha empresa em que o cliente solicitou java e éramos todos desenvolvedores .net.
No começo, tudo estava bem, mas mais tarde algumas pequenas coisas nos deram esses problemas e, a certa altura, os prazos foram SciFi.
Na minha experiência, é fácil aprender nova linguagem de programação e nova tecnologia, mas realmente saber que você precisa de muito tempo.
fonte
Basta fazê-lo em c # e dot net .
fonte