Ostatnio natknąłem się na toartykuł sprzed kilku lat. Argumentuje, że znaczące różnice w kulturze otaczającej VB i C #, a nie rzeczywiste różnice w języku, przyczyniają się do tego, że kodery C # są generalnie bardziej utalentowane niż kodery VB. Oczywiście spowodowało to wiele wojen o płomienie, a pytanie, czy C # ery czy VBers są głupsze, nigdy nie zostanie udzielone. To powiedziawszy, autorzy twierdzą, że kultura otaczająca daną platformę przyczynia się do jakości zespołu, może nadal być wiarygodna. Na przykład, mimo że Java jest obecnie bardziej wydajna w tworzeniu aplikacji, zespół programistów Google Go wydaje się mieć średnio wyższego kalibru niż zespół programistów Java, ponieważ aby nauczyć się Go, programista prawdopodobnie ma być bardzo wcześnie adoptującym i świstem granicznym. Krótko mówiąc,w jaki sposób kultura otaczająca jedną platformę, jeśli w ogóle, wpływa na jakość przeciętnego programisty na tej platformie?
źródło
Odpowiedzi:
Naprawdę ciekawe pytanie. Moim osobistym zdaniem jest to pytanie, które jest zbyt często zadawane i naprawdę nie ma w ogóle wody.
Dzieci ze skryptu (i firmy, które je zatrudniają) pozwalają, aby wybrany język decydował o ich statusie wśród grona „programistów”. Dobrzy inżynierowie nie mogli mniej przejmować się wybranym językiem, ale koncentrowali się na rozwiązywaniu zadanych problemów w najbardziej optymalny sposób (oczywiście optymalne to ogólne stwierdzenie, które można zastosować do wielu różnych czynników). Niezależnie od tego, czy jest to C #, VB, C ++, Python, czy odręczny zestaw, nie ma to znaczenia, ponieważ korzystanie z tej technologii w celu rozwiązania problemu ma wyraźną korzyść.
Krótko mówiąc, myślę, że bardziej wartościowe jest przyjrzenie się złożoności problemów, które rozwiązuje się regularnie, w przeciwieństwie do tego, jakiego języka używają do ich rozwiązania.
Tylko moje dwa centy na ten temat :)
źródło
Jakość kodu opracowana w każdym z tych języków opiera się na tych fundamentalnych filozofiach, a mniej na poszczególnych programistach
Każdy język ma wokół siebie kulturę, ponieważ każdy język został opracowany z jakiegoś powodu przez kogoś z planem i filozofią leżącą u podstaw tego, dlaczego jego język będzie lepszy w czymś niż to, co istniało w tym czasie.
Podobnie jak religie, języki programowania mają tendencję do przyciągania ludzi, którzy już mają takie same predyspozycje do głównych zasad i filozofii twórcy języka.
Przykład postrzeganej jakości rozwiązań
W jednym obozie Microsoft masz:
W drugim obozie Microsoft:
Oto język i policzek nabiera języków i ich filozofii:
To, o co dbają te grupy, kształtuje język, jego rozwój i społeczność.
Filozofie zmieniają się wraz z doświadczeniem i potrzebą
Przyjąłem ASM i BASIC, ponieważ w 1983 roku było to wszystko, co miałeś. Chciałem pisać gry i wersje demo, to były narzędzia do tego. Głównie ASM dla wersji demonstracyjnych.
Zaadaptowałem C, a potem C ++, kiedy był to jedyny sposób na pisanie takich rzeczy, jak renderowanie 3D i prawie wszystko inne, co miało kluczowe znaczenie dla przestrzeni i czasu. To nie był ASM, więc się tego nauczyłem.
Przyjąłem VB do zarabiania pieniędzy, było to najbliższe środowisko programistyczne Scala, Director i CanDo, do którego byłem przyzwyczajony na Amiga. Zgodziłem się z filozofią szybkiego rozwoju
Wcześniej zaadaptowałem Javę, aby zarabiać lepsze pieniądze. Zarabiałem na VB do 1999 roku i zostawiłem go, gdy Java 1.2 stała się stabilna i dojrzała, a sieć w pełni się w tym momencie rozpoczęła. Miałem 4 lata doświadczenia w Javie, kiedy ludzie naprawdę zaczęli brać to na poważnie. Zgodziłem się z pisaniem raz, działam gdziekolwiek, ponieważ im więcej miejsc działa mój kod, tym łatwiej będzie go sprzedać. filozofia.
Zaadaptowałem Pythona późno na osi czasu, 2005, ponieważ podrapał mnie świąd, którego nie zrobiła Java. Musiałem szybko napisać kod, aby korzystać z niektórych bibliotek, które były dostępne tylko w C, a także potrzebowałem szybkiego prototypowania usług WWW Python był szybszy i mniej kodu, aby zrobić to samo w Javie. Coś poszło do produkcji, ponieważ Java pozostała Pythonem, wiele rzeczy nigdy nie trafiło w dzicz. Zgodziłem się z zawartymi w nim bateriami, filozofiami pojedynczego idiomu, a także innymi.
Zaadoptowałem Luę, kiedy musiałem zainstalować lekki skryptowy silnik w moich programach C ++ i Java. Było to znacznie wcześniej niż obsługa JSR233 w Javie. Zgodziłem się z osadzeniem w pełni funkcjonalnego języka skryptowego, który jest łatwy w użyciu, powinna być prostą filozofią Lua.
Przyjąłem Erlang w 2006 roku, kiedy zacząłem potrzebować ogromnej skalowalności i względnie bezbolesnego wykonywania wielordzeniowego w przypadku bardzo równoległych problemów i wykonywania wielu platform. ** Zgadzam się z jej brakiem wspólnego stanu, przekazywania wiadomości, niezmiennej filozofii stanu. * 8
Przyjąłem Objective-C, kiedy zacząłem potrzebować budować aplikacje OSX i iOS. Zgadzam się z tym, że dodał on prawo do Object Orientation do C, aby uczynić go lepszą filozofią. Również, aby zarabiać lepsze pieniądze.
JavaScript oficjalnie przyjąłem w 2009 roku, ponieważ zgodziłem się z filozofią CouchDB i używa JavaScript. Nadal nie lubię JavaScript, gdy mam do czynienia z DOM.
Nadal nie oficjalnie adoptowałem Lisp, ale w końcu zamierzam! Zgadzam się z tymi, którzy nie znają seplenienia skazani są na ponowne wynalezienie filozofii.
źródło
Rzeczywiście interesujące pytanie. Jest to jeden z tych, w których rozumiesz odpowiedź na poziomie podświadomości, ale staraj się ją wyrazić słowami.
Najlepiej jest to postrzegane jako pętla przyczynowości.
Kultura jest odpowiedzialna za „etniczną” kompozycję twórców przyciągniętych do platformy. Ten skład z kolei określa cechy „przeciętnego” programisty. Jakość programistów korzystających teraz z platformy wpływa na kulturę lub sposób jej postrzegania, co w konsekwencji wpływa na to, że programiści wchodzą na platformę lub ją opuszczają. W rezultacie zmienia się wartość „jakości”.
Próbowałem wymyślić konkretne zasady, ale trudno mi je uogólnić. Musimy osobno zbadać każdą platformę. Poczyniłem kilka obserwacji:
Szybkość, z jaką konkretna platforma jest opracowywana, rozszerzana, ulepszana, ma bezpośredni związek z jakością programistów. Ciągły przepływ nowych błyszczących funkcji i narzędzi przyciąga entuzjastycznych programistów (którzy średnio są bardziej zdolni do wysokiej jakości pracy) i odstrasza konserwatywne umysły, które są zirytowane ciągłym wysiłkiem uczenia się.
Mniej ograniczeń, jakie oferuje platforma, nawet kosztem większego ryzyka wystrzelenia się w stopę, przyciąga entuzjastyczne eksperymentalne umysły
Im bardziej złożone są rzeczy, które należy zrozumieć i opanować, aby móc korzystać z platformy, przyciąga rozwiązane osoby i odstrasza leniwych programistów
źródło