Содержание
Nowicjusze programiści C# pracują z tym językiem od ponad dziesięciu lat, jednak jak w przypadku każdego języka istnieje wiele nieporozumień. Przekonasz się, że nawet programiści zajmujący się rozwojem .net mają niektóre z tych błędnych przekonań dla nowicjuszy.
Najczęstsze błędne przekonania to:
C# jest lepszą iteracją C++
C# pojawił się po C++, ale nie można patrzeć na C# jak na C++ 2. Zamiast tego C# jest językiem wysokiego poziomu. Kiedy używasz języka wysokiego poziomu, często łatwiej jest napisać w nim kod, ale można go również skompilować do środowiska uruchomieniowego języka wspólnego.
C++ jest językiem niskiego poziomu, dzięki czemu można głębiej zagłębić się w sprzęt komputera i wchodzić w interakcję ze sprzętem na różne sposoby.
Czy zatem C++ jest lepszy od C#?
Nie. Obydwa języki mają swoje własne przeznaczenie i choć C# jest podobne, uważa się je za łatwiejsze do nauczenia i może być pomocne także w przypadku aplikacji komputerowych i internetowych.
C# jest tylko dla Windows
Wielu programistów i innych osób zakłada, że skoro C# pochodzi od Microsoftu, będzie działać tylko w systemie Windows. To błędne założenie jest błędne, ponieważ C# jest oprogramowaniem typu open source i pozwala na używanie go zarówno w systemie Linux, jak i na komputerach Mac, a także w systemie Microsoft.
Ponieważ języka C# można używać w różnych systemach operacyjnych, jest to uniwersalny język, którego można używać w szerokiej gamie aplikacji.
C# jest taki sam jak Java
Java cieszy się dużym zainteresowaniem i jest bardzo potężnym językiem programowania. Java, w dużym stopniu zależna od OOP, dorównuje C++ pod względem mocy, ale prawdopodobnie jest językiem najbliższym C# pod względem składni i funkcjonalności.
C# nie jest identyczny z Javą, chociaż ma podobny charakter. C# ulepsza Javę pod wieloma względami, włączając kilka funkcji i funkcji, których Java nigdy nie zaimplementowała:
- Typy wartości
- Przeciążenia operatora
- Liczby całkowite bez znaku
Java istnieje już znacznie dłużej, więc wiele zaawansowanych aplikacji nadal działa w oparciu o Javę. C# nie wymaga również prawie tak dużej czystości OOP, jakiej wymaga Java. Możesz i nadal musisz używać OOP, aby móc tworzyć wysokiej klasy, wydajne aplikacje, ale nie będziesz związany tym samym poziomem rygorystyczności, który sprawia, że Java jest żmudnym językiem do nauki.
C# jest wolniejszy niż C++
Wiele osób chwali się szybkością C++, a język jest bardzo szybki. C# jest również szybki i w wielu przypadkach C# może osiągnąć prędkość bardzo zbliżoną do C++. Będzie wiele sytuacji, w których biblioteki będą podobne w obu językach, i sytuacje, w których C++ wyprzedzi C#.
Specyfika aplikacji określi, który język będzie optymalnym wyborem.
- C++ jest często znacznie szybszy, gdy mamy do czynienia ze złożonymi komplikacjami. Możesz zwiększyć szybkość aplikacji od 200% do 500%, używając C++ do tych trudnych obliczeń.
- C# i C++ mają podobne prędkości podczas odczytu i zapisu na dysku, tworzenia grafiki i innych zadań, w których korzystają z podobnych lub wielu takich samych bibliotek.
Należy także wziąć pod uwagę ilość prac rozwojowych i zasobów, które będą potrzebne do napisania kodu w C++, który będzie bardziej zoptymalizowany i wydajny. Ponieważ C++ jest językiem niskiego poziomu, będziesz musiał napisać znacznie więcej kodu, aby spełnić te same funkcje co C#.
Czas na rozwój i optymalizację kodu często sprawia, że C# jest optymalnym wyborem w stosunku do C++.
C++ i C# nie można używać razem
Szybki rozwój jest kluczową cechą definiującą język C# i wielu programistów chce wykorzystać te praktyki szybkiego programowania. Może się jednak zdarzyć, że w przypadku zadań krytycznych C++ będzie w stanie zapewnić znacznie lepsze prędkości niż C#.
Jeśli potrzebujesz użyć więcej niż jednego języka, możesz użyć zarówno C#, jak i C++ w jednym projekcie.
Wiele dużych korporacji wdroży C++ dla kluczowych zadań, które będą bardzo intensywne i mogą kosztować firmę znaczną moc obliczeniową i koszty energii. Facebook jest znany z kompilowania części swojego kodu do C++, ponieważ nawet najmniejsze zwiększenie szybkości może być korzystne dla firmy i jej użytkowników.
Można jednak używać jednocześnie języków wysokiego i niskiego poziomu, aby móc stworzyć naprawdę wydajną, zoptymalizowaną aplikację lub aplikację internetową.