19 lip 202114 min czytania
Dawid Karczewski
Senior full stack developer i CTO w Ideamotive.
Którą technologię wybrać do projektu biznesowego: C# czy JavaScript?
Między tymi dwoma językami programowania są różnice. Każdy wykształcony programista wie, że nie wszystkie języki programowania powstają w ten sam sposób i nie wszystkie da się wykorzystać do tego samego celu. Gdy mówimy o C# i JavaScripcie, różnice między tymi dwoma językami są ogromne. Mają jednak kilka obszarów, w których się pokrywają.
Ciekawi Cię to? Zajmijmy się tym.
Początkowo Microsoft zamierzał wydać własną wersję języka Java (Microsoft Java albo J++), ale z powodu kilku spornych kwestii musiał pozwać właścicieli praw (Sun Microsystems). Dlatego kierownictwo uznało, że trzeba stworzyć własny język, który spełni ich wymagania i którego rozwój będą mogli kontrolować. Tak powstał C#.
C# powstał dzięki wysiłkom Andersa Hejlsberga, twórcy kompilatora, który stał się podstawą Turbo Pascala i języka Delphi. Pierwsza wersja języka ukazała się w czerwcu 2000 roku (możliwe, że Microsoft chciał uczcić nowe tysiąclecie), a wersja ostateczna w 2002 roku wraz z Visual Studio. Dziś C# stał się jednym z najpopularniejszych języków programowania, wyprzedzając nawet nieznacznie swojego poprzednika.
Trudno mówić o jakiejś filozofii języka w przypadku C#. Faktem jest, że od samego początku język nie był otwartoźródłowy, bo powstał specjalnie dla jednej znanej korporacji kierowanej przez towarzysza Gatesa. Wiele koncepcji i konstrukcji zapożyczono z innych języków, takich jak C, C++, Java itd. (pierwsze wersje języka były bardzo podobne do Javy, choć dziś C# trudno uznać już tylko za klon tego języka - zaszedł zbyt daleko).
C# nie można traktować wyłącznie jako języka. To część dużego systemu, który obejmuje system Windows, środowisko Visual Studio (i inne narzędzia) oraz oczywiście sam Microsoft, który zapewnia wsparcie dla tego języka. C# będzie istniał i rozwijał się tak długo, jak długo istnieje Microsoft i jak długo ludzie używają Windowsa - a to będzie bardzo, bardzo długo.
Wczesne wersje C# były dość proste i miały wykonywać surowe polecenia w podejściu zorientowanym na zadania. Powiedz komputerowi, czego chcesz, a komputer wykona zadanie. To mniej więcej główna funkcja każdego języka programowania. C# wyróżnia się tym, że jest przeznaczony wyłącznie dla oprogramowania Microsoftu i innych produktów tej firmy.
Dla jasności: C# był proponowaną alternatywą dla JavaScriptu, którą można było wykorzystać wyłącznie do oprogramowania Microsoftu. Ponieważ C# jest językiem programowania najpopularniejszego oprogramowania na świecie, przeszedł wiele wersji i aktualizacji. Uchodzi za język ogólnego przeznaczenia, który można wykorzystać do wielu celów. Nawet nowoczesne, zgrabnie zaktualizowane wersje C# są zorientowane na komponenty, obiekty i zadania. Większość programistów lubi jednak C# za jego prostotę.
Chcesz porównać C# z kolejnymi językami? Sprawdź Ruby on Rails vs C# - którą technologię wybrać?
JavaScript to jeden z najpopularniejszych języków programowania na świecie, z ponad dwudziestoletnią historią. To także jeden z trzech głównych języków dla twórców stron:
JavaScriptu można się szybko nauczyć i łatwo wykorzystać w bardzo różnych zastosowaniach - od prostych usprawnień strony po gry i aplikacje webowe. Co więcej, dzięki darmowym serwisom takim jak GitHub dostępne są tysiące szablonów i aplikacji w JavaScripcie.
JavaScript powstał w 10 dni, a jego autorem jest Brendan Eich, który w 1995 roku pracował dla Netscape. Pierwotnie nazywał się Mocha. Nazwę zmieniono na Mona, potem na LiveScript, aż wreszcie na JavaScript. Pierwsza wersja języka działała tylko w przeglądarce Netscape i miała wąską funkcjonalność, ale z czasem ewoluowała - częściowo dzięki społeczności programistów, którzy nad nią pracowali.
Poznaj więcej wiedzy o JS w naszym przewodniku JavaScript: kompletny przewodnik dla przedsiębiorców i product ownerów
W 1996 roku JavaScript został ustandaryzowany i otrzymał oficjalną nazwę ECMAScript; ECMAScript 2 wydano w 1998 roku, a ECMAScript 3 rok później, w 1999. Przełożyło się to na dzisiejszy JavaScript, który działa nie tylko w różnych przeglądarkach, ale też na wielu urządzeniach - mobilnych i stacjonarnych.
JavaScript od tamtej pory stale rósł - w 2016 roku używało go 92% stron. W zaledwie dwadzieścia lat urósł z prymitywnego języka programowania do jednego z najpopularniejszych narzędzi w arsenale twórcy stron. Jeśli korzystasz z internetu, na pewno zetknąłeś się z JavaScriptem.
Co ciekawe, JavaScript od zawsze miał wspierać internet - nawet wtedy, gdy w połowie lat 90. internet składał się głównie z połączeń wdzwanianych i bardzo ograniczonego przeglądania. Dziś służy do budowy stron i pomaga działać większym platformom, jak Netflix czy Hulu.
Większość programistów podchodzi jednak do JavaScriptu z pewną obawą. Sam język jest złożony, ma też wiele niuansów i nie jest używany tak powszechnie jak C# czy nawet C++. JavaScript nie jest tak użyteczny, jak mogłoby się wydawać. W projektach webowych jest jednak duża szansa, że to właśnie JavaScript trzeba będzie zastosować, więc większość programistów zna ten język na pamięć.
Chcesz zobaczyć inne porównania JS? Polecamy Python vs JavaScript. Co lepiej sprawdzi się w Twoim projekcie uczenia maszynowego?
Bywa, że C# i JavaScript się nakładają - i to nie tylko w tym sensie, że oba mogą być potrzebne u tego samego klienta czy w tym samym projekcie. JavaScript może działać i działa równolegle z C#, zarówno z perspektywy aplikacji, jak i kodu.
Nawet w tych rzadkich przypadkach, gdy JavaScript jest używany poza budową frameworków webowych, mało prawdopodobne, żeby ten kod robił coś innego niż wspieranie C#.
Ogólnie rzecz biorąc, C# i JavaScript nie mają ze sobą wiele wspólnego. Za to różnic jest sporo.
Ktoś mógłby pomyśleć, że C# i JavaScript różnią się jak dzień i noc. Prawda jest jednak taka, że oba te języki są dwiema stronami tej samej monety. Choć oba powstały mniej więcej w tym samym czasie, C# i JavaScript mają ogromne różnice, które nieustannie stawiają je w roli konkurentów.
Przejdźmy przez główne obszary porównania C# i JavaScriptu.
Niestety praca z JavaScriptem bywa żmudna. Gdy programista używa JavaScriptu, program nie daje mu dodatkowego wsparcia, które przyspieszyłoby kodowanie. C# jest dokładnym przeciwieństwem, zwłaszcza w nowszych wersjach - z autouzupełnianiem i dynamicznym podpowiadaniem typów, które pomagają wyłapać błędy i przyspieszyć pracę. C# pozwala zrobić więcej, szybciej i z mniejszą liczbą błędów.
Zwycięzca: C#
C# i JavaScript to języki, więc same w sobie nie mają konkretnych charakterystyk wydajnościowych. C# jest kompilowany do .NET IL i wykonywany w maszynie wirtualnej, przy czym mogą wchodzić w grę różne optymalizacje (jak JIT). JavaScript nie jest kompilowany, tylko interpretowany - i wykonywany przez silnik JavaScript właściwy dla przeglądarki. Każda przeglądarka może inaczej podchodzić do poprawy „wydajności” wykonania JavaScriptu, ale optymalizacja wydajności zwykle wiąże się z kompromisem (na przykład między szybkością a pamięcią).
Przy wszystkich innych warunkach równych (i nietrywialnych) kod .NET - z JIT czy bez - będzie działał lepiej niż podobny kod JavaScript w przeglądarce. Skala różnicy mocno zależy od konkretnego programu. Wszystko, od rozmiaru i liczby przetwarzanych obiektów po sposób i moment użycia pętli, wpłynie na to, jak jedno środowisko wypadnie na tle drugiego.
Jeśli jednak zatrudnisz doświadczonego programistę C# i początkującego programistę JavaScript, Twój C# na pewno będzie szybszy. Jeśli masz kogoś, kto jest dobry w obu, C# prawdopodobnie i tak będzie szybszy, ale różnica może nie być tak duża, jak Ci się wydawało - to wszystko bardzo zależy od programu.
Remis
W tym momencie nie dziwi już, że C# jest bardziej spójnym i elastycznym językiem z tej dwójki. Wynika to głównie z automatycznego wykrywania błędów w C#. Do tego C# ma mniej błędów czasu wykonania niż JavaScript i można go używać na więcej sposobów.
Zwycięzca: C#
C# jest dziś zdecydowanie poszukiwany. Ofert pracy jest sporo - zarówno w dużych projektach enterprise z konserwatywnym stosem, jak i w firmach rozpoczynających nowe projekty, gdzie używa się najnowocześniejszych rozwiązań i narzędzi.
Jednocześnie bardzo ważne jest, żeby zrozumieć, jak szeroki jest zakres tego języka:
W ramach jednego języka można więc łączyć specjalizację w kilku obszarach i jednocześnie korzystać ze znanych narzędzi i bibliotek.
Jeśli chodzi o konkretne liczby, według Google Trends JS ma pewną przewagę nad ścigającym go rywalem.
Do tego możemy założyć, że C# traci popularność w aplikacjach chmurowych, ale nadal odgrywa ważną rolę w grach.
Nowe badanie programistów przeprowadzone przez Slashdata pokazało, że popularność C# spadła w ciągu trzech lat z trzeciego na szóste miejsce. C# jest głównym językiem platformy Microsoft .NET.
Mimo spadku popularności ogólne użycie C# wciąż rośnie, a język jest szczególnie popularny w tworzeniu gier.
Brytyjska firma Slashdata przeprowadziła badanie, w którym wzięło udział ponad 30 000 programistów z ponad 160 krajów. Na potrzeby tego raportu, zatytułowanego The State of the Developer Nation, przebadano ponad 17 000 programistów na całym świecie.
To już 19. rok, w którym firma badawcza prowadzi takie badanie.
Raport Slashdata różni się od innych indeksów „popularności”, takich jak StackOverflow czy Redmonk. Badacze Slashdata chcą bowiem zmierzyć bezwzględną liczbę użytkowników danego języka programowania, a nie tylko ustalić względną popularność każdego z nich.
Raport Slashdata wymienia kilka ważnych wniosków dotyczących języków programowania.
Po pierwsze, JavaScript jest zdecydowanie najpopularniejszym językiem programowania - używa go 12,4 miliona programistów na świecie. Python ma dziś 9 milionów użytkowników po tym, jak tylko w ostatnim roku dołączyło do niego 2,2 miliona nowych programistów, wyprzedzając Javę na początku 2020 roku.
Raport zauważa, że C# wciąż zyskuje na popularności, ale nie tak szybko jak niektóre inne języki.
"Być może C# nadal będzie dominował w ekosystemach twórców gier oraz AR/VR,” - czytamy w raporcie. Dodatkowo raport zauważa, że C# traci pozycję w tworzeniu aplikacji desktopowych. Zdaniem badaczy Slashdata może to wynikać z pojawienia się narzędzi wieloplatformowych opartych na technologiach webowych.
Zwycięzca: JS
Tymczasem - częściowo z powodu swoich wad - ekosystem JavaScriptu stał się ogromny i egalitarny. To zresztą jedna z tych rzeczy, na które ludzie narzekają, nie zdając sobie sprawy, że to tak naprawdę nie jest jedna społeczność. To kilkanaście różnych społeczności, które powstały bardzo szybko (nawet jQuery, dziadek tego świata, ma nieco ponad 10 lat) i wciąż się przenikają oraz dopracowują własne rozwiązania.
Społeczność JavaScriptu wymyśliła pomysłowe rozwiązania ważnych problemów. Co ważniejsze, jest kilka różnych rozwiązań na różne gusta i różne przypadki użycia. Niektórych można używać jednocześnie. Mamy więc:
To wszystko i dużo więcej. To najbardziej udana społeczność programistów wszech czasów. Zdecydowanie najgorszy język, ale wielokrotnie większa, bardziej różnorodna, odważniejsza i szybciej działająca społeczność.
Zwycięzca: JS
Wracając do raportu Slashdata: okazało się, że z C# korzystało zaledwie 6,0 miliona programistów. To poważna wpadka tego języka - spadł z 3. na 6. miejsce w badaniu. Co więcej, C# ustąpił nawet PHP, które miało 6,1 miliona użytkowników.
Biorąc pod uwagę, że Microsoft aktywnie rozwija platformę .NET Core, sądzimy, że liczba ofert pracy w tym kierunku w najbliższym czasie wzrośnie. Rynek klasycznej wersji .NET już się ukształtował i najprawdopodobniej nie zajdą w nim wkrótce żadne globalne zmiany. Nie należy oczekiwać dużego wzrostu ani spadku wynagrodzeń. Nie zapominaj jednak, że C# należy do dziesiątki „najlepiej płatnych” języków programowania.
Według Developer Economics w trzecim kwartale 2020 roku z JavaScriptu korzystało 12,4 miliona programistów. Oznacza to, że 53% wszystkich programistów na świecie w pewnym momencie używało JS.
Według badania Stack Overflow Developer Survey 2020 „JavaScript jest najczęściej używanym językiem programowania na świecie. Nawet programiści back-endu sięgają po niego częściej niż po jakikolwiek inny język”. Tymczasem najnowsze dane Slashdata pokazały, że w 2018 roku na świecie było 10,7 miliona programistów JavaScript (źródło).
Zwycięzca: JS
JavaScript to język o typowaniu dynamicznym, co oznacza, że nie trzeba go zmieniać, żeby zachować tę samą zmienną w dwóch miejscach. C# jest z kolei językiem typowanym statycznie, czyli każdą zmienną trzeba zmieniać niezależnie. Niektórzy twierdzą, że czyni to C# prostszym z tej dwójki, zwłaszcza że C# napotyka mniej błędów kodowania w czasie wykonania niż JavaScript.
Jeśli chodzi o naukę, wymagania wobec początkujących w ostatnich latach wzrosły. JavaScriptu zdecydowanie warto się uczyć - to wciąż najłatwiej dostępny obszar programowania webowego dla nowicjuszy. Nie da się jednak znaleźć pracy, mając samą teorię.
Początkującym radzilibyśmy oczywiście uczyć się C#. Naszym zdaniem to doskonale wyważony język obiektowy, w którym na tyle łatwo zacząć pracę, korzystając na początku z prostych i zwięzłych konstrukcji, żeby w przyszłości stopniowo przechodzić do tak potężnych narzędzi jak Linq i wyrażenia lambda.
Osoba, która zaczyna naukę programowania od tego języka, od początku nabierze właściwych nawyków przy pisaniu kodu.
C# ma pod tym względem kilka zalet:
Zwycięzca: C#
Ta różnica jest dla programistów prawdopodobnie najbardziej widoczna, głównie dlatego, że potrafi najbardziej frustrować. Jest bardzo prosta: JavaScript nie wykryje błędów, dopóki kodowanie się nie zakończy i program nie zostanie uruchomiony, podczas gdy w C# możesz wykryć błąd w kodzie i poprawić go w dowolnym momencie. Z tego powodu JavaScript bywa źródłem ciągłej frustracji, bo zmusza programistę do przejścia przez cały kod w poszukiwaniu błędu po zakończeniu całej reszty, co oznacza zmienianie zmiennych powiązanych z kodem, aż program zacznie działać płynnie. W C# takiego problemu nie ma.
Zwycięzca: C#
Utrzymanie kodu ma dla programistów duże znaczenie i wiąże się bezpośrednio z prostotą systemu typów danego języka. Ponieważ JavaScript jest typowany dynamicznie, utrzymanie kodu bywa uciążliwe - trzeba wyciągnąć i przejrzeć cały kod, żeby go zaktualizować albo naprawić błędy. Statycznie typowany kod C# jest za to łatwy w utrzymaniu, tak jak łatwo w nim znaleźć i naprawić błędy.
Zwycięzca: C#
JavaScript opiera się na składni bazującej na HTML-u, przez co jest ona bardziej złożona i wymaga większego nakładu na utrzymanie. C# działa na zwięzłej składni poleceń, która jest łatwiejsza w użyciu i nauce. Składnia jest dla programistów ważna w tym sensie, że łatwiej mówić o czymś wprost niż owijać w bawełnę. JavaScript wymaga od programistów pokonania kilku trudności, podczas gdy C# pozwala pisać przy użyciu prostej składni.
Zwycięzca: C#
Każdy projekt jest inny. Nie da się więc z góry powiedzieć, ile trzeba będzie wydać. Na ostateczną wycenę wpłynie szereg wymagań i życzeń klienta.
Możemy jednak dać Ci jaśniejszy obraz tego, czego się spodziewać, patrząc na zestawienie „Z jakimi językami wiążą się najwyższe zarobki na świecie”."
Zgodnie z tymi danymi programiści C# zarabiają 57 tys. USD, a programiści JavaScript 53 tys. USD. Widać więc, że wynagrodzenia są mniej więcej na tym samym poziomie.
Remis

JavaScript to język o dużych zaletach, które czynią go najlepszym wyborem w swojej kategorii, zwłaszcza w niektórych zastosowaniach. Oto tylko kilka zalet:
Każdy język programowania ma swoje wady i słabe punkty. Jednym z powodów problemów jest popularność języka. Gdy język programowania staje się tak popularny jak JavaScript, staje się celem zwiększonego zainteresowania hakerów, oszustów i innych złośliwych podmiotów, które szukają luk i podatności. Do słabych punktów należą:
C# od dawna pewnie utrzymuje pozycję w rankingu najbardziej poszukiwanych języków na rynku. Na początku interesowali się nim tylko twórcy dla Windowsa, ale potem C# nauczył się działać na Mac OS, Linuksie, iOS i Androidzie. A gdy kod platformy udostępniono wszystkim, zniknęły niemal wszystkie możliwe ograniczenia w używaniu C#. W efekcie język aktywnie się rozwija i jest coraz częściej używany. Często poleca się go do nauki jako jeden z podstawowych dla programistów o dowolnym profilu.
Zestaw narzędzi C# pozwala rozwiązywać szeroki wachlarz problemów. Język jest naprawdę bardzo potężny i uniwersalny. Często używa się go do tworzenia:
Lista możliwości jest praktycznie nieograniczona dzięki najszerszemu zestawowi narzędzi i udogodnień. Oczywiście wszystko to da się zrobić w innych językach. Niektóre z nich są jednak mocno wyspecjalizowane, a w niektórych trzeba sięgnąć po dodatkowe narzędzia zewnętrzne. W C# rozwiązywanie szerokiego zakresu problemów jest maksymalnie szybkie i proste, a do tego mniej czaso- i zasobochłonne.
Ponieważ język należy do Microsoftu, używa się go w niemal wszystkich produktach, które firma stworzyła albo kupiła. Przyjrzyjmy się najciekawszym z nich.
JavaScript jest używany głównie w tworzeniu front-endu. Ten język, obok HTML-a i CSS-a, wchodzi w skład podstawowego zestawu narzędzi front-endowych. Służy do tworzenia aplikacji przeglądarkowych po stronie klienta. To one zapewniają stronom interaktywność. Gdy na przykład użytkownik wypełnia formularz i klika przycisk Subskrybuj, natychmiastową reakcję zapewnia zwykle kod JavaScript.
Choć C# i JavaScript powstały mniej więcej w tym samym czasie, każdy zaprojektowano z myślą o konkretnym celu. JavaScript miał wspierać sieć, a C# - Microsoft.
Jeśli chodzi o różnice, C# i JavaScript mają swoje zalety i wady. JavaScriptu można na przykład używać na wielu platformach internetowych i najczęściej służy do budowy stron albo obsługi przeglądarek.
Tymczasem C# uchodzi zwykle za lepszy program, bo łatwiej nim zarządzać, jest bardziej niezawodny, wydajniejszy i spójniejszy, nawet jeśli język ogranicza się do świata Microsoftu. Wybierając język programowania, weź pod uwagę specyfikę każdego z nich i zadania, które masz do wykonania. Projekty internetowe wymagają JavaScriptu, a projekty software’owe - C#.
Nie możesz zdecydować, który język wybrać? Skonsultuj z nami swój produkt. Zapewnimy Ci doradztwo techniczne i połączymy Cię z ekspertami biegłymi w obu technologiach, dopasowanymi do Twojego produktu i wymaganej branży.
Dawid jest full stack developerem. Tworzy aplikacje w Ruby on Rails i React Native od pierwszego pomysłu aż po wdrożenie. Buduje dla naszych klientów rozwiązania, które pomagają im rosnąć.
Zobacz wszystkie wpisy autoraWszystko, co musisz wiedzieć o wdrożeniu JS w biznesie w 2023
Czytaj terazPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Jakich usług programistycznych szukasz?
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.
Zatrudnij autora artykułu
Dawid jest full-stack developerem z dużym doświadczeniem w tworzeniu front-endu. Brzmi ciekawie? Porozmawiajmy o dostępności Dawida.