Dlaczego wielu programistów przenosi swój kod do github?

114

Przez ostatnie 6 miesięcy lub dłużej widziałem wiele kodów hostowanych na sourceforge.net, a także na innych stronach hostingowych „Przenieś do GitHub”. Zwykła wyszukiwarka Google z frazą „Przeniesiono do Github” zwraca kilka wyników zawierających tekst przeniesiony do github. Jest to dla mnie bardzo mylące i zastanawiam się, dlaczego dokładnie ludzie się poruszają? Czy to znaczy, że GitHub jest lepszy, czy jest jakaś szczególna zaleta, której nie widzę?

Chibueze Opata
źródło
16
Dodałbym również, że żadna strona nie ułatwia od razu interakcji z kodem niż github. Większość stron ukrywa kod źródłowy za kilkoma menu. Github zawiera również linki do niemal każdego innego zadania, które możesz wykonać w domu projektu bez wszystkich śmieci wszędzie (patrząc na ciebie sourceforge ).
Xeoncross,
2
Zastanawiałem się nad tym samym, więc poszedłem i zapisałem się, a wkrótce też zostałem sprzedany. Przerzuciłem wszystkie moje projekty i zaangażowałem wszystkich moich klientów.
lorddev
7
ponieważ github jest fajnym miejscem, a git jest lepszy niż CVS?
4
SourceForge zaczął dodawać adware do wydań binarnych Windows dla deweloperów; jeden z serwerów dystrybucyjnych SF w Korei został przejęty.
Deer Hunter
1
Laucnpad jest jeszcze gorszym przestępcą w ukrywaniu źródła. Wyróżnia się kilka „Serii i kamieni milowych” -> trunk -> „Kod dla tej serii: Następująca gałąź została zarejestrowana jako gałąź główna dla tej serii: lp: ~ USER / PROJ / trunk” -> jeszcze inne metadane strona dla bagażnika? gdzie jest kod o tak, -> „Przeglądaj kod” ... Właściwie w końcu zauważyłem, że na pierwszej stronie było „Przeglądaj kod”. Ale wszystkie te podobne, ale subtelnie różne strony metadanych są oszałamiające.
Beni Cherniavsky-Paskin

Odpowiedzi:

102

Jest to objaw szerszej migracji do rozproszonych systemów kontroli wersji .

Niektóre strony internetowe, które tradycyjnie hostowały nierozproszone VCS (np. Codeplex i SourceForge), dodawały obsługę DVCS (np. Git lub Mercurial). Tak więc ludzie, którzy chcieli wykorzystać DVCS do swojego projektu, zostali zmuszeni do migracji swoich projektów do dostawców, którzy je wspierali (np. Github lub BitBucket). Github był jednym z pierwszych, którzy zaoferowali wsparcie DVCS, więc naturalnie wiele osób migrowało tam swój kod, aby z niego skorzystać.

Te inne strony internetowe dopiero teraz zaczynają nadrabiać zaległości w DVCS (na przykład Codeplex obsługuje teraz Mercurial & Git), ale wciąż są daleko w tyle pod względem funkcji, takich jak rozwidlanie i przesyłanie żądań ściągania. Aby naprawdę skorzystać z DVCS, Github i Bitbucket to wciąż najlepsze opcje.

MattDavey
źródło
46
Należy również pamiętać, że zestaw funkcji GitHub szybko stał się znacznie bardziej atrakcyjny niż jakikolwiek inny oferowany hosting DVCS (w tym samo hostowanie). Częścią odpowiedzi jest to, że GitHub jest seksowny. :-)
Martijn Pieters
49
@MartijnPieters: ... oprócz darmowego prywatnego hostingu, który BitBucket oferował od wieków.
Den
17
Inne strony internetowe oferują DVCS. W szczególnym przypadku SourceForge po prostu uważam, że powodem jest to, że strona internetowa jest całkowicie okropna, nie wspominając o obsługiwanych systemach kontroli wersji.
Konrad Rudolph
17
@ Den Tak, naprawdę nie wiem, dlaczego BitBucket nie jest bardziej popularny. Ma prywatny hosting i pozwala wybrać między Git a Mercurial (który bardziej podoba mi się Mercurial)
Earlz
11
Github i Bitbucket działają w oparciu o dwa różne modele biznesowe. Github oferuje prawie pełny zestaw funkcji za darmo i sprawia, że ​​płacisz za prywatne repozytorium (pomijając bezpłatne plany Bronze, które daje każdemu z adresem e-mail .edu . Bitbucket oferuje zarówno publiczny, jak i prywatny hosting, ale pobiera opłaty za [miejmy nadzieję] produktywność - zwiększenie dodatków. Jeśli nie masz powodu, by ukrywać swój kod, Github wydaje się bardziej logicznym modelem. Myślę, że Bitbucket się zbliża - z pewnością lubię Sourcetree lepiej niż natywny GUI Gitub (nie, że tak naprawdę użyj albo) ..
David Cowden,
45

Hosting projektów to infrastruktura. Infrastruktura wykazuje efekty sieciowe, co oznacza, że ​​infrastruktura staje się bardziej użyteczna, im więcej ludzi jest z nią połączonych. (W szczególności użyteczność to O (liczba_połączeń), co oznacza, że ​​dla każdego pojedynczego członka jest to O (total_members), a dla całego systemu to O (total_members ^ 2)). To z kolei prowadzi do efektu zwanego naturalnym monopolem, co oznacza, że ​​dla takiego systemu naturalne jest, że przetrwa tylko jeden konkurent, ponieważ użyteczność jest zmaksymalizowana, gdy wszyscy korzystają z tego samego systemu.

Dlatego warto dołączyć do lidera rynku, którym jest GitHub. Istnieje więcej repozytoriów, więcej użytkowników, więcej oddziałów, więcej, więcej rewizje wszystko na GitHub niż na SourceForge, Google Code i CodePlex połączeniu .

Interesującym pytaniem jest oczywiście to, że jeśli efekty sieciowe oznaczają, że lider rynku automatycznie uzyskuje naturalny monopol, w jaki sposób GitHub był w stanie przełamać SourceForge?

A odpowiedź jest taka, że przeszkadzając, że dołączenie do znacznie mniejszej infrastruktury było tego warte dla pierwszych użytkowników:

  • GitHub jako pierwszy zaoferował hosting Git z zestawem funkcji porównywalnym z SourceForge (lub przynajmniej tą częścią SourceForge, z której korzystała większość osób)
  • GitHub był fajny z punktu widzenia interfejsu użytkownika: elegancki, nowoczesny interfejs WWW
  • GitHub był fajny pod względem technologicznym: Ruby on Rails, Sinatra, Erlang, node.js
  • GitHub był Web 2.0, z naciskiem na kodowanie społecznościowe i użytkowników ponad projektami
Jörg W Mittag
źródło
6
+1 za wyjaśnienie efektów sieciowych. Ale naprawdę uważam, że SourceForge był znacznie większy niż Github przed nagłymi gwałtownymi migracjami ... a ty
brzmisz
2
Ponadto rozważ utworzenie klienta GitHub dla systemu Windows - po raz pierwszy jako programista systemu Windows nie czuję się obywatelem drugiej kategorii, jeśli chodzi o używanie Git do kontroli źródła, a GitHub jest za to odpowiedzialny.
Carson63000,
25

Myślę, że jednym z powodów jest inna publiczność: sourceforge jest przeznaczony głównie do hostowania aplikacji , prawdopodobnie najważniejszą cechą strony projektu jest link do skompilowanego pliku wykonywalnego (lub innego pobrania). Innymi słowy, jest skierowany do użytkowników , a nie programistów.

Z drugiej strony github służy głównie do hostowania kodu źródłowego , najbardziej widoczną cechą strony projektu jest lista katalogów mastergałęzi. Jest skierowany do programistów (chcących zmodyfikować lub użyć kodu z projektu), a nie użytkowników.

Myślę, że jest to jeden z powodów, dla których narzędzia i biblioteki przeznaczone dla programistów przechodzą na github.

svick
źródło
15

Sourceforge oferuje również Git , ale Github po prostu robi to lepiej (na razie).

  • Ich system żądania ściągania działa dobrze (na przykład znacznie lepiej niż Gitorious)
  • Ich niedawno zaktualizowane powiadomienie jest bardzo wygodne.
  • Pokazują kod od razu

Moim zdaniem ich zabójcą jest „Wykres sieci”:

wprowadź opis zdjęcia tutaj

Różnica w stosunku do gitk: pokazuje również, co dzieje się w gałęziach innych osób (bez konieczności ciągnięcia ich gałęzi), co jest bardzo ważne podczas współpracy.

Nicolas Raoul
źródło
10
+1 Wszyscy wiemy, że ostatecznie najważniejsze są wykresy.
Xeoncross,
2
Jest także fantastyczny do znalezienia najlepiej utrzymanej gałęzi. Niedawno musiałem dowiedzieć się, który rozwidlenie określonego repozytorium faktycznie zostało utrzymane (co nie jest trywialne, ponieważ bardziej aktualne widelce nie dotarły jeszcze na szczyt wyszukiwarki Google).
beatgammit
1
wydaje się również, że github może wyświetlać statystyki klonowania, podczas gdy nie mogę znaleźć jednego sposobu, aby to zrobić na sourceforge :(
Aquarius Power
11

GitHub jest prosty, łatwy w użyciu, łatwy w rozpoczęciu, potężny i wygląda świetnie i jest zgodny z Web 2.0.

Korzystam z GitHub i uważam, że jest on znacznie łatwiejszy w użyciu niż SourceForge, który miał swoją moc ukrytą za serią menu i wymagał dość skomplikowanych operacji, aby cokolwiek skonfigurować. A ja jestem programistą.

Ponadto myślę, że istnieje jeszcze jedna potężna funkcja: czy to osoba, która chce gdzieś opublikować swój pierwszy projekt typu open source, czy też zespoły, które chcą współpracować przy komercyjnym (prywatnym) projekcie, GitHub „doskonale skaluje się” dla prawie wszystkich przypadków użycia.

Koniec dnia, myślę, że chodzi o ludzką psychologię. Czy produkt jest łatwy w użyciu, łatwy w użyciu, niedrogi (lub darmowy) ... czy wygląda dobrze i czy poleciłbym go moim znajomym? W przypadku GitHub odpowiedziałbym twierdząco na wszystkie te pytania.

Suman
źródło
Za pomocą kodu Google mogę oznaczać problemy gwiazdkami, co pozwala deweloperom wiedzieć, które problemy są ważne dla społeczności i pomaga mi śledzić postępy. Wydaje się, że Github ma tylko anonimowe obserwacje, co może prowadzić do komentowania spamu (+1, ja też itp.). Jest to istotne w przypadku popularnych projektów o ograniczonych zasobach.
beatgammit
5

Musisz także wziąć pod uwagę niektóre dość niesamowite funkcje oferowane przez github, o których jeszcze nie wspomniałem.

  • strony github ze zniżką o smaku github
  • Aplikacja mobilna github
  • wtyczka github eclipse
  • github dla Mac
  • zadania github
  • github dla Windows
  • System biletowy / śledzenia błędów github
  • github API dla deweloperów, który pozwala na bezproblemową integrację strony trzeciej
  • częste aktualizacje / ulepszenia interfejsu użytkownika (możesz dosłownie zobaczyć zmiany z dnia na dzień, tj. pole tekstowe wyszukiwania teraz dynamicznie rozwija się, fokus stał się nowym przyciskiem gwiazdki itp.)
  • github gists (dobre dla skryptów narzędziowych, krótkich fragmentów kodu itp.)
  • bezproblemowa integracja github przez hub

Inne strony mogą mieć te funkcje, ale jestem pewien, że żadna witryna nie ma ich wszystkich.

Ci faceci są praktycznie wszędzie ... powoli rozpraszają swoje techniczne zalety w Internecie i na komputerach. Stają się coraz większe i lepsze, kiedy rozmawiamy, i zatrudniają najlepszych inżynierów (nawet udało im się ukraść Phila Haacka z Microsoftu ... idź).

A-Dubb
źródło
4

Dodatkowym powodem, który może przyciągać dodatkowych programistów do GitHub, jest fakt, że narzędzia programistyczne zaczynają obejmować git, a platformy takie jak Eclipse mają teraz wbudowaną obsługę Git po wyjęciu z pudełka (dotyczy pakietów dla Java, C ++ Developers itp.), Dzięki czemu potrzeba mniej kroków, aby Twój projekt został przesłany do GitHub.

Jessica Brown
źródło
1
Innym IDE, które dodało obsługę Gita, jest Visual Studio w wersji 2013 i późniejszych. Szczegółowe informacje można znaleźć na stronie msdn.microsoft.com/en-us/library/hh850437.aspx
Bernard Vander Beken
-1

Szczerze mówiąc, najważniejszą rzeczą dla Gita, kiedy ją widzę: 1. Wykres sieciowy lub powinienem nazwać Historię (również komentując) 2. Żądanie rozgałęzienia i ściągania 3. Jest bardziej wydajny, naprawdę, powiedziałbym, że jest taki wydaje mi się, że mam sekretarkę, która zajmuje się całą moją pracą, i mogę powiedzieć temu sekundzie, żeby spisał mi wszystko, zmianę, wszystko! 4. Łatwo jest przywrócić

Po prostu to. Korzystanie z niego jest seksowne

Benyamin Limanto
źródło
tak, dlaczego dostałem się poniżej?
Benyamin Limanto
Chociaż myślę, że miałeś dobre intencje w udzieleniu odpowiedzi na pytanie, nie sądzę, aby twoja odpowiedź dodała wiele do odpowiedzi, o którą prosił PO. To brzmi jak twoja odpowiedź na pytanie „Dlaczego programiści przenoszą swój kod do github?” to „bo mi się podoba”. Inne odpowiedzi tutaj są prawdopodobnie lepsze i dlatego ktoś zlekceważył.
Frank Bryce,