Wybór języka do programowania obiektowego

0

Z radoscia musze stwierdzic ze w MEGA n00ba zeszlam na boziom nieco mniejszego n00ba, n00biczka takiego :D

Postep jest, gra pod konsola dziala, wiec czas pojsc dalej ..
W tym semestrze zajmujemy sie dalej c++ aczkolwiek tak jak w poprzednim umowilam sie z prowadzacym na oddanie duzego projektu, ktory bedzie zykraczal poza program zajec.

W zwiazku z czym chce stworzyc aplikacje okienkowa. Moja aplikacja bedzie to planista grafikow.

Mam pewna dowolnosc bo moge to wykonac w c++ jak i w c# a nawet w Javie.

I moje pytanie do bardziej doswiadczonych. Co powinnam wybrac ?
Jako IDE mam poki co zainstalowanego VS 2013.

Czytalam kilka tematow na forum i mam maly metlik w glowie. Zreszta jak odpalilam program i pobawilam sie troche to zauwazylam ze C++ juz wzale nie przypomina C++, w zasadzie nie bardzo widzialam tam skladnie znana mi z moich prob programowania w konsoli. Ale przeciez WoW zostal napisany w C++ ( lub w C ... nie pamietam) wiec zakladam ze ja po prostu cos robie zle :D

Co radzicie Panowie ?

1

Nazistowski OOP jest zły, więc pojedźmy standardem.
Python.
Tak, z jakiegoś powodu wychodzą nowe wersje.
Nie, nie powinieneś brać wersji 2.x.
Pycharm.
Tak, gry wychodzą w tym języku.
Tak, jest wystarczająco szybki.
Tak, można w nim robić więcej niż gdy i drobne programy.

0

Pewna dowolnosc znaczyla C++ / C / C# / Java :D to mamy do wyboru :D

2

Ja bym wybrał C#, dlaczego:
#2 dość popularne i duże biblioteki do GUI (Winforms i WPF).
#Duża społeczność jest w około nich zgromadzona, więc znajdziesz dużo materiałów do nauki.
#W Visual Studio masz do nich OOTB designery.

Ogółem C# to jeden z lepszych języków jak chcesz stworzyć aplikację okienkową.

1

C możesz od razu odrzucić (nieobiektowy).

Weź Javę.

Vanilka napisał(a):

Ale przeciez WoW zostal napisany w C++ ( lub w C ... nie pamietam) wiec zakladam ze ja po prostu cos robie zle :D

Został napisany przez armię programistów i to na pewno nie w jeden wieczór. Zanim dojdziesz do takiego poziomu, zanim naprawdę poznasz C++, trochę czasu musi minąć. Oczywiście pod warunkiem, że będziesz spędzać ten czas czynnie.

Vanilka napisał(a):

Czytalam kilka tematow na forum i mam maly metlik w glowie.

Bo każdy Ci poleci technologie, w których coś robił i przypadły mu do gustu ;) Musisz sama podjąć ostateczną decyzję.

0

biblioteka z jakiej bede korzystac to windows forms, jako ze posiadam VS 2013 wersje Professional ( mam dreamsparka)

Ca nczym dokladniej polega wyzszosc c# od c++ ??
Co prawda sama nie bede tego robic ale tak z czystej ciekawosci .. Gry jak WoW, Sismy itd moglyby by przepisane na C# jakby komus sie stalo ? jakie jest tak wlasciwe zastosowanie tego jezyka ?

0

Jeśli ma być to w .Net, to bierz C#, C++ tu jest zbyt przekombinowane (tak naprawdę to c++/cli), to już mniej kombinowania jest @Spine by pisać obiektowo w C :)

3

Ca nczym dokladniej polega wyzszosc c# od c++ ??

Jaka znowu wyższość? :|

C# i C++ mają zupełnie różne zastosowania. Ten pierwszy jest używany głownie do aplikacji biznesowych/użytkowych, rzadziej do gier ze względu na to, że tam potrzeba trochę na innym poziomie abstrakcji operować niż C# pozwala. Co nie znaczy, że nie da się napisać gry w C# (powstało kilka nawet bardziej popularnych tytułów w nim afair). C++ z kolei wymaga więcej pracy od programisty, ale też umożliwia większą kontrole nad tym co się dzieje w kodzie i w niektórych działkach jak np. ów gamedev (a właściwie to pisanie silnika) jest on zwyczajnie bardziej stosowny.

0

C++ i Qt

0

@n0name_l coraz bardziej dajecie mi do myslenia z tym C# ... bo prawda jest taka ze i tak czesciej bede pisac aplikacje uzytkowe niz gry... poki co ten moj planista grafikow jest piorytetem. A szansa ze taki blizzard mnie zatrudni jest rowna 0 :D

Co prawda z punktu widzenia ofert pracy w mojej firmie to dobrym wyjsciem jest takze Java, bo programistow w javie szukaja na okraglo..... ehhh

0

Zazwyczaj - i tak trzeba znać kilka języków programowania, więc nie wiem w czym problem.

0

Również polecam C# z książką Head First C#. Potem i tak będziesz próbować innych języków.

0
Vanilka napisał(a):

Ca nczym dokladniej polega wyzszosc c# od c++ ??

Każdy z tych języków ma inne zastosowanie, ale napisz sobie np klienta poczty, przeglądarkę internetową, odtwarzacz mp3, to uświadczysz wyższość C# w aplikacjach desktopowych.

2

Każdy mówi C# lub Java. Jak zaczynasz to rzuć monetą i wybierz któryś z tych języków.

1
Trebuh napisał(a):

Każdy mówi C# lub Java. Jak zaczynasz to rzuć monetą i wybierz któryś z tych języków.

A w locie będziesz już wiedział komu kibicujesz ;)

0

hmm .. prawda jest tez taka Panowie, ze mowimy o takim n00bie jak ja ;D wiec programy ktore wy piszecie w linijkach 20 ja pisze w 100 ( przyklad mojego tematu dotyczacego sortowania, ostatecznie i tak zrobilam to babelkowo bo byl dla mnie bardziej zrozumialy jak zakodowac, na tamten moment )
Moj program zwany "duzym" i tak bedzie maly i niewydajny, bo to dopiero poczatki.
Ale mi sie tak najlepiej uczy. Wybrac duzy projekt i myslec jak chce to napisac a potem kombinowac jak kon pod gore ;D

1

No widzisz, zrobiłaś bąbelkowo, a gdybyś lepiej znała C++ (bo domyślam się, że w C++ to pisałaś), to byś skorzystała z STL (ktoś się zaraz przyczepi, że to nie STL :D ).

http://pl.cppreference.com/w/cpp/algorithm/qsort

a w Pythonie mogłabyś to napisać w jednej czytelnej linijce:

print sorted([-2, 99, 0, -743, 2, 3, 4])

Tablicę obiektów jednego typu równie łatwo posortować, wystarczy podać wyrażenie lambda wskazujące na klucz po którym sortujemy.

2

Wyłamię się trochę... Scala.

Dlaczego? Po pierwsze OOP w Scali jest znacznie mocniejszy niż w Javie. Dzięki traitom masz namiastkę wielodziedziczenia. Masz na poziomie języka zaimplementowane pewne mechanizmy jak np. singletony (object). Do tego sam język jest w miarę prosty, próg wejścia jest podobny jak w Javie.

0

Też się wyłamię. Golang. Składania bardzo z C więc ewentualna przesiadka na Javę/C++/C# nie będzie ciężka, ale jednocześnie bardzo prosta. Brak dziedziczenia (kompozycja ftw) i związanych z nim problemów. Zajebisty pakiet http. Spoko podejście do współbiezności. Jednolita konwencja stylu programowania (przed kompilacją kod jest formatowany do ustalonej wartości) więc nie będziesz tworzył strasznie brzydkiego kodu.

Angielski wymagany, bo polskich materiałów niemal nie ma.

0
Mateusz napisał(a):
Vanilka napisał(a):

Ca nczym dokladniej polega wyzszosc c# od c++ ??

Każdy z tych języków ma inne zastosowanie, ale napisz sobie np klienta poczty, przeglądarkę internetową, odtwarzacz mp3, to uświadczysz wyższość C# w aplikacjach desktopowych.

Generalnie to C++ w ogóle nie nadaje się do szybkiego tworzenia aplikacji desktopowych, tutaj o niebo lepiej jest w C# i nie chodzi tu tylko o składnię. C# to podstawowy język pod platformę .NET, choć jeśli rozpatrywać Visual Studio to i C++ jest zdaje się pod .NET (chodzi mi o kod wynikowy). Zresztą proszę spróbować zrobić Reverse Engineering za pomocą jakiegoś ILSpy czy DotPeek, mówię o dekompilacji aplikacji w napisanej w C++ pod Visual C++. Tylko że DotPeek wypluje kod w C#.

W przypadku gdy zarówno C++ jak i C# finalnie da kod pod .NET to jaki jest sens zabawy w C++? To tylko wygeneruje więcej pracy nad taką aplikacją.

Co do C++ (i mowa tu o samodzielnych aplikacjach Win32, nie pod .NET) można by mu przeciwstawić inny język o którym mało kto już mówi: DELPHI. To jest rozwinięty język programowania i też daje ogromne możliwości. I jak dla mnie jest o niebo lepszy od C++, który jak dla mnie jest syfem. W takim Lazarusie też można bez problemu pisać aplikacje pod Win32, jak również GTK2 albo QT. Jest też wiele komponentów, gdzie pod DELPHI się je tylko instaluje, co do Lazarusa jest trochę inaczej bo trzeba go przebudować.

Co do .NET można by też rozważyć IronPython albo IronRuby, gdzie bez problemu można się przecież podpinać pod jakieś biblioteki dla .NET a na bank będzie mniej klepania :-)

0

Nie generalizowałbym - Delphi nie jest złe, tez w nim piszę, ale jesli potrzebuję zrobic coś małego i dobrze zoptymalizowanego, to kompilatory borlanda odpadają w przedbiegach w zasadzie dowolnym kompilatorem obecnie wspieranym języków C i C++ uzyskuję dużo lepszy kod wynikowy... Jeśli mam zrobic aplikację ciągnącą jakies dane z bazy danych - delphi jest super, ale jeśli coś co ma działać szybko, a jeszcze w tle - to tu jednak c/c++ bardziej się sprawdza.

0
kaczus napisał(a):

Nie generalizowałbym - Delphi nie jest złe, tez w nim piszę, ale jesli potrzebuję zrobic coś małego i dobrze zoptymalizowanego, to kompilatory borlanda odpadają w przedbiegach w zasadzie dowolnym kompilatorem obecnie wspieranym języków C i C++ uzyskuję dużo lepszy kod wynikowy... Jeśli mam zrobic aplikację ciągnącą jakies dane z bazy danych - delphi jest super, ale jeśli coś co ma działać szybko, a jeszcze w tle - to tu jednak c/c++ bardziej się sprawdza.

A możesz rozwinąć tą myśl? Weźmy pod uwagę chociażby GCC vs Free Pascal. Lazarus się właśnie opiera o Free Pascal. Tak jak teraz przeglądam katalog plików binarnych FPC, to tam są pliki o nazwach np. as.exe, gcc.exe, ld.exe, mam też zainstalowane MinGW (GCC) i tam też są te pliki.

Zresztą mógłbym też zrobić testy na GCC 4.8.1 vs. FPC 2.6.2. Czy w tym przypadku da się zauważyć jakąś istotną różnicę w czasie wykonania kodów? Podejrzewam że te różnice będą niewielkie. Zresztą FPC bez problemu daje możliwość pisania procedur w assemblerze, więc tu nie powinno być problemów.

To pewnie kwestia upodobań, dla mnie FPC jest o wiele bardziej przyjazny niż GCC. Jak dotąd nie udało mi się znaleźć jakiegoś sensownego odpowiednika C++ Buildera dla GCC, bo co do DELPHI to Lazarus jest znakomitą alternatywą. Nie spotkałem się z niczym lepszym.

Ogólnie jeśli chodzi o OOP, sprawa nie jest taka prosta. Kiedyś byłem tak zafascynowany FPC, że myślałem że inne języki są niewarte zainteresowania. Oczywiście jak poznałem JAVA czy C#, później także pythona wszystko zaczęło wyglądać zupełnie inaczej.

0

FPC nie sprawdzałem, więc ciężko mi powiedzieć, mowa była o Delphi i wynalazkach borlanda. O ile w miarę dobrze i szybko konstruuje sie standardowe rzeczy, o tyle jesli chodzi o wygenerowany kod, jest on mało optymalny zarówno pod względem szybkości jak i objętości. Więc jesli robię coś z gui, wtedy - tak delphi robi się w miarę łatwo i szybko, ale jeśli jest to jakiś programik działający w tle ect - szybciej napisać jest to w c/c++ i dodatkowo kod będzie szybszy i mniejszy. Może FPC potrafi też generować dobry kod - nie wiem, nie testowałem, więc się nie wypowiadam. Lazarus jest zbyt mało stabilny jak dla mnie nawet porównując do małej stabilności delphi, więc szybko zrobił miejsce innym rzeczom na dysku. Buildera C++ używałem przez chwilę, ale teraz jeśli mam coś w c/c++ łatwiej jest to kompilować pod gcc - lepszy kod wynikowy i mniej problemów ze zgodnością ze standardem.

0

zaczelam jednak od C++/CLI i chyba zaraz zjem klawiature... bo najprostrze rzecyz nie dzialaja....

7
Vanilka napisał(a):

zaczelam jednak od C++/CLI i chyba zaraz zjem klawiature... bo najprostrze rzecyz nie dzialaja....

Już chyba gorzej wybrać nie można :)

6

@spartanPAGE czuje sie nawrocona :D w C# idzie mi lepiej :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1