Wybór technologii (i?) I środowiska

10

Jesteśmy dwoma programistami, którzy chcą rozpocząć tworzenie nowego produktu internetowego.

Obaj jesteśmy fanami podejścia typu „lean start-up” i chcielibyśmy ćwiczyć ciągłe wdrażanie.

Nadchodzi dylemat - oboje pochodzimy z środowiska C # / Windows i musimy zdecydować między:

Trzymaj się .NET i Windows, nie będziemy tracić czasu na naukę nowych technologii i wkładamy cały nasz wysiłek w rozwój.

Przełącz się na Ruby on Rails i Linux, który ma dobrą reputację szybkiego uruchamiania i szerokiej obsługi otwartego oprogramowania. Negatywną stroną jest to, że będziemy musieli włożyć dużo wysiłku w naukę Ruby, Railsów i Linuksa ...

Co byś zrobił? Jakie jeszcze uwagi powinniśmy wziąć?

Słup
źródło
Kiedy planujesz mieć gotowy produkt?

Odpowiedzi:

11

Najkorzystniejszą opcją jest użycie platformy .NET, ponieważ wysiłek włożony w naukę drugiej platformy jest (z perspektywy biznesowej) wysiłkiem zmarnowanym na niedostarczenie produktu klientom.


źródło
5

W startupie wykorzystaj swoje mocne strony. Proponuję trzymać się technologii .NET i sprawdzić, czy możesz dostać się do programu BizSpark firmy Microsoft . Dzięki temu otrzymasz przystępne licencje na oprogramowanie, którego potrzebujesz, przy minimalnym ryzyku.

Ryan Hayes
źródło
Chciałbym zauważyć, że BizSpark wygasa po 3 latach, co oznacza, że ​​będziesz płacić pełną cenę za stos MS w roku 4. W zależności od ilości oprogramowania i liczby uruchomionych serwerów, może to znacznie przewyższyć wszelkie koszty spędzając dodatkowe cykle na początku, ucząc się alternatywy open source.
Jordan
2

Musisz wziąć pod uwagę następujące czynniki:

1) Koszt wdrożenia na wybranej platformie (istnieją licencje na uruchomienie .NET / Windows, ale ostatecznie trzeba będzie zapłacić, plus porównywalne koszty hostingu / sprzętu)

2) Czas wymagany do podniesienia umiejętności (w tym przypadku zero dla .NET)

3) To, co budujesz i przydatność platformy do tego w krótkim okresie (prototyp, niewielkie wykorzystanie itp.) I długoterminowym (czy będzie skalowany i czy rzeczywiście zamierzasz go skalować, czy powiedzmy, B2B, w którym to przypadku wolumeny mogą zawsze być stosunkowo niskie)

Mój instynkt trzyma się tego, co wiesz, ponieważ będziesz się dużo działo bez konieczności uczenia się czegoś innego, ale musisz rozważyć inne czynniki w oparciu o specyfikę Twojego pomysłu.

Jon Hopkins
źródło
2

Stackoverflow odbywa się w .Net . Więc nic złego w C # .Net lub technologii Windows.

Moje pierwsze uruchomienie odbyło się w C # .net, ponieważ a) wszyscy założyciele znają C #. b) studio wizualne było i nadal jest bardzo przyjazne dla programistów podczas debugowania itp.

Uruchomienie było ogromną porażką z powodów biznesowych i technologicznych.

Niezależnie od wybranej technologii, musisz rozważyć, czy jesteś wystarczająco zręczny / dobry, aby użyć tej technologii do uruchomienia za X lat.

Jak widać, powyższe kryteria nie były wystarczająco rygorystyczne. Nie mieliśmy pojęcia, jak długo musimy zbudować ten przedmiot. Po prostu zdajemy sobie sprawę, że C # .Net to wszystko.

Nikt z nas nie ma doświadczenia w budowaniu czegoś zbliżonego do tego, co chcieliśmy zbudować.

Po pewnym czasie opłaty za serwer itp. Powodują, że porzucamy C # i przepisujemy całą zawartość w php. To kolejna historia i kolejny błąd z biznesowego punktu widzenia.

Chodzi o tę technologię, której zamierzasz użyć, wcale NIE musi być fajna, zirytowana. Chcesz zbudować aplikację internetową. Więc wybierz ten, który daje najlepszą szansę . Co daje ci najlepszą szansę?

Wybierz technologię, którą osoba lub osoby zajmujące się programowaniem mają RZECZYWISTE doświadczenie w budowaniu podobnie złożonej aplikacji PRZED

Przeczytaj powyższe 10 razy.

Gdybym miał zwrócić się do mojego młodszego ja z 3-4 lat temu, a on powiedziałby: „Ale nie mam doświadczenia w robieniu złożoności, o której myślę W KAŻDYM JĘZYKU. Więc jak mam wybrać?”

Odpowiedź za 50 000 $ to (tak, tyle zmarnowałam ucząc się na swoich błędach):

Wybierz taki, który najbardziej wybacza Twojemu rozwojowi nauki.

Jak definiujemy wybaczanie ?

Na przykład .Net opiera się na serwerze Windows. A serwer Windows jest droższy niż serwer Linux. To jest fakt. Nawet jeśli masz licencje Bizspark, lepiej upewnij się, że musisz wziąć pod uwagę pieniądze po wygaśnięciu licencji.

NIE zakładaj, że będziesz w stanie nauczyć się C # .net za 3 lata. Trudno powiedzieć. Dla mnie to po prostu nie działało.

Próbowałem wcześniej RoR. Kiedyś przeczytałem artykuł o 2 bankowcach inwestycyjnych z doświadczeniem programistycznym ZERO, którym udało się stworzyć aplikację internetową o podróżach w programie Techstars.

Używają RoR.

Mam doświadczenie w programowaniu. Ale RoR po prostu mi nie działało.

Kupiłem książki z Amazon itp. Próbowałem. Poważnie dałem z siebie wszystko.

W końcu zdecydowałem się na Cakephp. Wystarczy, że mam najlepszą szansę na ponowne uruchomienie innej aplikacji internetowej. Wybaczam wystarczająco, żebym się uczył we własnym tempie.

Podobnie jak znalazłeś lepsze dziewczyny nie dlatego, że są lepsze, ale dlatego, że po lepszym doświadczeniu jesteś lepszą osobą, być może stałem się lepszy jako programista

Więc nie chodzi o to, jaki jest lepszy framework / język. Albo że Cakephp jest najlepszy, jakiego użyłem. Być może w końcu zostałem programistą wystarczająco dobrym, by zbudować aplikację internetową, o której myślałem.

Chodzi o to, co działa najlepiej, aby zbliżyć się do uruchomienia.

Och, tu jest gratis.

Po 6 miesiącach, kiedy debiutujesz z wersją alfa lub prywatną wersją beta i otrzymujesz opinie klientów, i masz ochotę przepisać całą sprawę w nowym języku, prawda?

Odpowiedź:

NIGDY. NIGDY. NIGDY.

Jest artykuł JoelOnSoftware na temat przepisywania oprogramowania kontra oprogramowania do refaktoryzacji. Jestem zbyt leniwy, by to znaleźć.

Sugeruje to samo.

Weź to od kogoś, kto wybrał niewłaściwą technologię, a następnie przepisz wszystko w php (bez frameworka), a następnie zrzuć start w końcu. I wydał 50 000 $.

To jest jak małżeństwo. Wybierz technologię i do momentu śmierci wykonaj swój start i część technologiczną.

Ok, przesadzam, ale tylko dlatego, że zbyt łatwo jest myśleć, że wszystkie twoje sytuacje programistyczne można rozwiązać za pomocą innego języka / frameworka. Podobnie jak myślenie, że możesz mieć lepsze małżeństwo, zmieniając inną osobę. O wiele lepiej jest pracować nad sobą lub swoimi praktykami programistycznymi .

Powodzenia. I kontynuuj naukę. Proszę, dla własnego zdrowia psychicznego, rozebrać funkcje do absolutnego minimum. Wejdź na google w celu uzyskania produktu minimalnego (MVP).

Jest to ważniejsze niż wybrana technologia.

Więc poświęć odpowiedni czas na planowanie / projektowanie tego MVP.

Planowanie jest ważne. Plany nie są. Być może będziesz musiał rzucić swoje plany po spędzeniu 4 miesięcy na planowaniu MVP, ponieważ musisz reagować na zmieniające się okoliczności lub konkurencję.

Jest w porządku. Czteromiesięczne planowanie nie poszło na marne.

Będziesz teraz miał więcej wiedzy na temat domeny niż przed 4 miesiącami.

Więc nawet jeśli na tym etapie jest to szybko ponownie opracowany plan, powinien być znacznie lepszy niż twój pierwszy projekt 4 miesiące temu.

Powodzenia!

Kim Stacks
źródło
1

Mam zamiar pójść wbrew wszelkim oczekiwaniom i powiedzieć, że lepiej byłoby, gdybyś poszedł drogą open source.

Pracuję w .NET od około 8 lat i używałem prawie każdego powszechnie znanego języka i frameworku open source, a także ogólnie w tych samych ramach czasowych.

Jeśli naprawdę chcesz zastosować podejście lean, prawdopodobnie przekonasz się, że łatwość integracji, koszty serwerów i oprogramowania, a produktywność będzie w dłuższej perspektywie bardziej ostrożna finansowo, w zależności od twojego poziomu umiejętności i czasu ta firma może się w krótkim czasie zwrócić.

BizSpark to niebezpieczna droga do zejścia. W końcu zapłacisz pełną cenę za ten ogromny stos oprogramowania, podczas gdy open source jest zawsze tanie lub bezpłatne.

Mam skonfigurowane serwery w konfiguracji serwera w chmurze Rackspace. Możesz uzyskać swój nowy, błyszczący serwer Linux z pamięcią CDN za 11 USD / miesiąc + niewielkie pasmo i koszty pamięci. To pieniądze na kawę.

Nauka Linuksa i środowiska open source może trochę przyzwyczaić się, ale nie jest to wieloletni projekt, aby stać się biegłym. Istnieją niezliczone fora, instrukcje i ludzie, którzy są w stanie i chcą pomóc Ci się poprawić.

Jordania
źródło
1
Jeśli rozwijasz się profesjonalnie (tj. Ma to na celu zapewnienie twoich osobistych dochodów), jeśli koszt licencji oprogramowania jest istotnym czynnikiem, sam naprawdę ponosisz koszty. Nawet MSDN-Universal (zdobądź VL, nie ma sensu być głupcem) to ułamek kosztów ludzi.
Richard
@ Richard: ale po co płacić ludziom + licencje na oprogramowanie, skoro można po prostu płacić ludziom? Naprawdę mam na myśli koszty licencji na serwer, a nie pieniądze IDE dewelopera, które, jak wspomniałeś, są stosunkowo tanie. O ile nie zauważyłem, że zrobiono to źle, gdy zaczniesz próbować skalować sprzęt serwera, musisz zapłacić za kilka licencji na serwer i licencji CAL. To jest zabójca. Jasne, nie ugryzie Cię to, gdy prowadzisz debugowanie localhosts, ale znowu, jeśli naprawdę chcesz prowadzić szczupłą firmę, po co płacić nawet dodatkowe 1000 $, jeśli masz inne realne opcje?
Jordan
0

Gdybym był w twojej sytuacji, użyłbym technologii, w której jestem najlepszy. W mojej firmie mieliśmy podobną sytuację, w której klient poprosił o java i wszyscy byliśmy programistami .net.

Na początku wszystko było w porządku, ale później niektóre małe rzeczy sprawiły nam takie problemy, aw pewnym momencie były ramy czasowe SciFi.

Z mojego doświadczenia łatwo jest nauczyć się nowego języka programowania i nowych technologii, ale naprawdę wiedzieć, że potrzebujesz dużo czasu.

Vladica Ognjanovic
źródło
-2

Po prostu zrób to w c # i kropka netto .

  • Jesteś już dobry
  • jest lepszy niż rubin na szynach
Nim Chimpsky
źródło
2
jakich danych używasz do uzasadnienia swojego twierdzenia, że ​​C # jest lepszy? A jakie są twoje kryteria?
Walter,
1
wiele bardzo ważnych i istotnych statystycznie danych
NimChimpsky