• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C#, Unity, WPF vs C++, UE.

VPS Starter Arubacloud
0 głosów
723 wizyt
pytanie zadane 10 października 2017 w C i C++ przez Noctuis Nowicjusz (220 p.)
Hej, od około roku bawię się programowaniem lecz postanowiłem zająć się tym bardziej na poważnie. Podczas tego roku używałem i C++ i C#, ten drugi bardziej przypadł mi do gustu z powodu prostoty, lecz w czytając oferty pracy i fora, C# jest głównie wykorzystywany do tworzenia aplikacji webowych które na ten moment mnie nie interesują. Chciałbym robić aplikacje desktopowe oraz gry i ponoć C++ jest wydajniejszy i lepszy w tym aspekcie od C#. Który w który język warto zainwestować czas?
komentarz 10 października 2017 przez NowyUrzydgownig Mądrala (5,090 p.)
C# to jezyk obiektowy, a C++ to jezyk zorientowany obiektowo, to dlatego pisze ci sie fajniej w C#. Zarówno C# jak i C++ jest warty nauczenia, jednak C++ jest trudny i inaczej się w nim pisze duże projekty aniżeli w C#. Co do twojego pytania, to nie bedziesz w duzych firmach pisal apek desktopowych od poczatku do konca, a jedynie pewne funkcjonalnosci tych aplikacji, a dzisiaj kazda apka laczy sie z jakas baza danych, wiec nie wazne czy C++ czy C# i tak bedziesz bral udzial w projektach web-api.

2 odpowiedzi

+1 głos
odpowiedź 10 października 2017 przez NaviFox Dyskutant (8,950 p.)
wybrane 10 października 2017 przez Noctuis
 
Najlepsza
C# jak już wspomniałeś kładzie nacisk na prostotę ale ma swoje ograniczenia. Różnice między C# a C++ pojawiają się oczywiście w momencie większego skomplikowania projektu i o ile w aplikacjach desktopowych z przeznaczeniem korporacyjnym tych różnic jest niewiele to w aplikacjach naukowych czy bardziej wymagających aplikacjach typu "close to the metal" tych różnic jest więcej. To samo z grami. Wiedźmina 3 czy Crysisa 3 w Unity nie zrobisz z takim samym efektem jak w C++ ale jest wiele przykładów gier stworzonych w Unity które odniosły duży sukces przy mniejszym nakładzie pracy i środków na nie przeznaczonych. Świeży przykład "Cuphead", nie jest to gra jakoś super bardzo wymagająca jeśli chodzi o proces tworzenia oczywiście w porównaniu do gier typu AAA ale jak widać z dobrym pomysłem i 3-osobową ekipą dało się to zrobić. Pokemon Go, Firewatch, Pilars of Eternity, Inside czy Fallout Shelter są przykładami podobego typu gier, które o wiele łatwiej i szybciej robi się w Unity i jeśli celujesz w takie projekty to weź C#, jeśli jednak chcesz czegoś więcej to C++.
komentarz 10 października 2017 przez Dorion300 Szeryf (90,250 p.)
Jakie C# ma ograniczenia?
1
komentarz 10 października 2017 przez NaviFox Dyskutant (8,950 p.)
W porównaniu z C++ czy w ogóle? Bo jeśli z C++ to wydajność i pewne, chociaż coraz mniejsze uzależnienie od platformy i producenta a w ogóle to tak jak w większości języków wywodzących się z zaplecza inżynieryjnego czyli cała masa zasad ograniczających możliwości swobodnej interpretacji na rzecz prostoty i bezpieczeństwa przy czym dla wielu są to porządane ograniczenia.
komentarz 10 października 2017 przez Dorion300 Szeryf (90,250 p.)
edycja 10 października 2017 przez Dorion300
Jakie zasady ograniczające?

Mniejsze uzależnienie od platformy i producenta?

Jakie na przykład uzależnienia dotyczące platformy?
C# jest językiem wysokopoziomowym który wymaga środowisku uruchomieniowe, więc zadziała wszędzie tam gdzie i środowisko.
A .NET Core jest otwarto źródłowym projektem więc można C#'bem pisać projekty na Linuxa, Mac'a lub Windowsa. (obecnie)
komentarz 10 października 2017 przez NaviFox Dyskutant (8,950 p.)
Wszystkie te, które musisz znać i używać do zbudowania programu, a które nie wchodzą w skład podstawowych poleceń odpowiadających rozkazom procesora lub przyczyniające się do nadmiernej "gadatliwości" (verbosity) języka oraz wszystkie inzynieryjne formy paradygmatów o które dany język został oparty i od których jest zależny z pominięciem lub ograniczeniem matematycznych form abstrakcji jako bazy przy projektowaniu języka (jak rachunek lambda).

Chcesz mi wmówić, że mam takie same możliwości programistyczne pod Linuxa czy Maca w C# co w C++? Napisałem "pewne, chociaż coraz mniejsze uzależnienie od platformy i producenta" a nie, że całkowite.
komentarz 10 października 2017 przez Dorion300 Szeryf (90,250 p.)
A czy ja ci coś wmawiam?
Napisałem tylko fakt że istnieje .NET Core które działa na wielu systemach.

A czy takie same możliwości programistyczne?
Zależy o jakich możliwościach mowa.

Już chyba rozumiem o jakie ograniczenia ci chodzi.
Ale... czy to jest wada?
Pewnie zasady które ograniczają możliwości programistyczne, sprawiają że kod jest bardziej do ogarnięcia i umożliwia zachować pewien porządek.
np. Zaprzyjaźnianie klas, moim staniem jest to proste rozwiązanie które sprawia że kod zaczyna być nieczytelny.
Jak taśma klejąca sklejająca funkcje kodu.

Albo jak dziedziczenie klas, że tylko jedną klasę możesz odziedziczyć.

Czy to jest dobre czy złe jest kwestią subiektywną.
Ale w C# niektóre rozwiązania rozwiązano inaczej, np. wprowadzenie interfejsów.
1
komentarz 11 października 2017 przez NaviFox Dyskutant (8,950 p.)
Tak, dla tego napisałem, że dla wielu są to porządane ograniczenia i nawet system filozoficzny (obiektywizm czy subiektywizm) nie ma tutaj nic do rzeczy odkąd człowiek dąży do stworzenia maksymalnej urzyteczności dla już istniejącego "obiektu" wprowadzając coraz to więcej zasad mających na celu coraz to większe uszczelnienie informatycznej abstrakcji, które są porządane z ekonomicznego punktu widzenia. Problem zaczyna się gdy chcesz wyjść z poziomu abstrakcji informatycznej na abstrakcję matematyczno-filozoficzną, wtedy okazuje się, że narzędzi to ułatwiających jest niewiele gdyż cała energia została sporzytkowana na ulepszanie "koła" zamiast na wymyślenie czegoś co to "koło" zastąpi. W większości przypadków taki uśredniający (aby już nie wchodzić w politykę "socjalistyczny") tok rozumowania nie tyle nie pomaga co przeszkadza odkąd ludzie nie są skłonni wychodzić ze stworzonej wcześniej strefy komfortu. To forum między innymi jest tego przykładem, bez podtekstów.
–1 głos
odpowiedź 10 października 2017 przez Haker2004 Użytkownik (590 p.)
Myśle że w C++ nie wiem jak ty ale mi lepiej przypadł do gustu a po za tym to że C# jest nowszy nie znaczy że jest lepszy i do gier to lepszy jest C++ (a zrobiłeś już jakąś grę?).

Podobne pytania

+1 głos
8 odpowiedzi 4,557 wizyt
pytanie zadane 11 kwietnia 2016 w C i C++ przez Dawid Patko Nowicjusz (130 p.)
0 głosów
6 odpowiedzi 2,066 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...