Czy WinApi i WinSock to dobry wybór na 2018 rok, czy lepiej Qt?

Odpowiedz Nowy wątek
2018-02-12 21:34
0

Mam dość duży zapał na WinApi i WinSock. Jednakże, czy to dobry wybór na 2018 rok? Czy ucząc się ich cały czas nie zmarnuje tylko czasu? Czy potem na rynku pracy, okaże się, że WinApi i WinSock niepotrzebne, a chcą kogoś kto zna Qt?


Pomoc jest warta każdego czasu, być może dzięki niej właśnie ten czas zyskasz.
edytowany 1x, ostatnio: furious programming, 2018-02-12 22:33

Pozostało 580 znaków

2018-02-12 22:00
1

ale co ty właściwie chcesz robić? Jak jakaś sieć to czemu np. nie boost a koniecznie qt? Qt to cały framework, a boost też jest obszerny. Do zadania dobierasz narzędzie.

Czy potem na rynku pracy, okaże się, że WinApi i WinSock niepotrzebne, a chcą kogoś kto zna Qt?

to zobacz na oferty pracy, ale ogólnie wiedzy nigdy za wiele ale lepiej skup się na qt.


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
edytowany 1x, ostatnio: revcorey, 2018-02-12 22:00

Pozostało 580 znaków

2018-02-12 23:36
0

Ogólnie C++ to słaby język do nauki w 2018 wiec ten tego...

całe IoT, embeeded, gry itd. Ogólnie masz swego renesans c++ może nie na poziomie javy ale nadal. - revcorey 2018-02-13 09:11
Gier się nie piszę w C++, co najwyżej silniki. Tam gdzie teoretycznie używałoby się winapi i winsock tam nie ma sensu na dzień dzisiejszy używać C++sa. - spartanPAGE 2018-02-13 11:33
popraw mnie jeśli się mylę, unreal engine c++, cocos c++, itd. Oczywiście są jeszcze języki skryptowe itd. Ale to zależy też od platformy kolego, na windows to będzie c++ ewentualnie c#, linux c++/c#, android java itd. Także gry pisze się w c++ wbrew temu co nam mówisz(nie zawsze), oczywiście należy wziąć pod uwagę to co wspomniałem. Mógłbyś rozwinąć też ten kawałek o sieci i c++? Rynek IoT to głównie C/C++ a to wszystko do sieci podpięte. Chętnie się dowiem czemu c++ jest be,zważywszy na to że jak pamiętam c++ notuje wzrost popularności w rankingach. - revcorey 2018-02-13 11:40
Ale mówimy o pracy czy o klepaniu <tu nazwa="nazwa" generycznej="generycznej" gierki="gierki"> dla siebie? Ten fragment o winapi i winsock nawiązuje do desktop'u, bo OP stawia go obok Qt. A tam pracy jest jak na lekarstwo. - spartanPAGE 2018-02-13 11:58
Ja odniosłem się i odnoszę do twojego posta o tym że c++ to słaby język do nauki, od lat C++ podobnie jak javie od 20 lat ludzie mówią że to koniec, a język mimo to nie chce odejść. Ogólnie rzecz biorąc można prowadzić dysputy(i prowadzono) o tym od czego zaczynać itd. Ale przede wszystkim język trzeba dobrać do projektu. A ekspertem też w wszystkim być nie można. - revcorey 2018-02-13 12:52
Bo jest słaby. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf Zawiłości języka przy jednoczesnym balaście po C dają mega fajny miks - możesz tworzyć super fajny meta kod, gdzie 90% roboty jest załatwione w czasie kompilacji po czym wykrzaczy się na jakiejś pierdółce bo UB. Jest masa innych języków w których łatwiej o przyjemną pracę, bez potrzeby utrzymywania softu (do którego sprowadza się większość ofert). - spartanPAGE 2018-02-13 13:23

Pozostało 580 znaków

2018-02-13 00:54
0
spartanPAGE napisał(a):

Ogólnie C++ to słaby język do nauki w 2018 wiec ten tego...

Dlaczego tak uważasz ?

Może nie tyle słaby do nauki - bo moim zdaniem wręcz przeciwnie, do nauki programowania nadaje się idealnie, ale po opanowaniu podstaw / wyrobieniu sobie nawyków i nabraniu wprawy, wypadałoby coś do niego dodać (i to zależy już od konkretnie wybranej ścieżki - czy to będzie jakiś .NET, czy chociażby przejście na C# albo właśnie biblioteka Qt) - cerrato 2018-02-13 10:24

Pozostało 580 znaków

2018-02-13 10:22
0

A ja bym zaczął od odpowiedzi na pytanie - co konkretnie chcesz robić?
Jeśli pisać stricte aplikacje pod Win, to jest to dobry start (aczkolwiek później, z racji pracochłonności przy pisaniu stricto w API nie dasz rady, więc pojawią się róznego typu "udogodnienia", środowiska RAD, frameworki itp.). Ale o wiele lepiej i bardziej świadomie będziesz mógł korzystać z tych "urządzeń" mając wiedzę, co się dzieje "pod przykrywką".

Jeśli ogólnie chcesz się nauczyć programowania - ten zestaw (w mojej ocenie) też jest dobry, można sobie wyrobić różne dobre nawyki oraz nabrać doświadczenia.
Ale w wypadku, jakbyś chciał np. zająć się bazami danych czy developerką - po ogólnym wprowadzeniu raczej powinieneś się zainteresować tematami związanymi mocniej z wybraną specjalizacją (aczkolwiek, w mojej ocenie przynajmniej - znajomość C++ to taka podstawa w branży IT, tak samo jak konieczne w życiu codziennym jest, chociaż w stopniu komunikatywnym, dogadanie się po angielsku).

A co do pytania o przydatność QT - jak pisałem, zależy co konkretnie chcesz pisać. Duzym plusem Qt jest fakt, że te bibiloteki są projektowane na wiele platform, więc w odróżnieniu od WinAPI nie ograniczasz się jedynie do Microsoftu.


That game of life is hard to play, I'm gonna lose it anyway, The losing card I'll someday lay, So this is all I have to say

Pozostało 580 znaków

2018-02-13 14:50
0

Witam! Dziękuję bardzo za odpowiedź. Podstawy C++ już znam (obsługa plików normalnie jak i binarnie, wskaźniki, dziedziczenie o polimorfizm, zmienne [oczywście xD],...). Na moje szczęście wcześniej pisałem w javie, co bardzo ułatwiło mi naukę C++. Ogólnie to mam pomysł na projekt - lokalny komunikator P2P. Mam już koncepcję, zarys. Tylko teraz czas na wybór czegoś do obsługi sieci i do okienek. Raczej nie będę nic pisał pod Linuxa/MacOs, ponieważ nie znam ich API, struktury plików itd.


Pomoc jest warta każdego czasu, być może dzięki niej właśnie ten czas zyskasz.

Pozostało 580 znaków

2018-02-13 15:17
0

I tutaj właśnie jest fajny, dość niszowy oraz mocno niedoceniany projekt - Lazarus. O ile w Javie piszesz raz, ale uruchamiasz wszędzie, to w Lazarusie piszesz raz i kompilujesz na różne platformy. Teoretycznie, w oparciu o wiele wbudowanych w pakiet bibliotek, można pisać w oderwaniu od tego, na jakim systemie jest program odpalony. Oczywiście - pojawiają się pewne zgrzyty, ale teoretycznie możesz pisać pod Lin/Win totalnie nie wiedząc, jak wygląda ich API - wykorzystując wbudowane kontrolki, które chowają przed Tobą szczegóły implementacji i wyglądają dokładnie tak samo, niezależnie od systemu, na jakim są odpalone. Taki mały offtop, proszę nie krzyczeć ;)


That game of life is hard to play, I'm gonna lose it anyway, The losing card I'll someday lay, So this is all I have to say
"O ile w Javie piszesz raz, ale uruchamiasz wszędzie" Oj bajki baki z netu :) nie, nie doceniony ale języki takie jak java,c+++,c# dorobiły się ogromnej bazy bibliotek,narzędzi(kompilatorów, debuggerów itd.) tutków i stoją za nimi konkretne organizacje. - revcorey 2018-02-13 15:32
Zamysłem javy była wieloplatformowość, a i tak z tego się nie korzysta. - PrezesiQ 2018-02-13 16:03
jak to się nie korzysta? w pracy korzystam z wieloplatformowości Javy od dawna. programowanie jest na komputerach z Windowsem, a serwery na których jest środowisko produkcyjne stoją na Linuksie, a kiedyś miałem też do czynienia z Solarisami - Wibowit 2018-02-14 00:48

Pozostało 580 znaków

2018-02-13 15:32
0

Lazarus ma coś wspólnego z C++ ?

Pozostało 580 znaków

2018-02-13 15:47
0

Lazarus ma coś wspólnego z C++ ?

Poza tym, że służą do tego samego, to zupełnie nic ;)
Dlatego prosiłem, żeby na mnie nie krzyczeć za offtopa. Tak mi się po prostu skojarzyło z tym, co PrezesiQ pisał - wspomniał, że nie rozważa pisania na inne platformy, bo nie zna tamtejszego API. No to delikatnie zasugerowałem, że jest jakieś rozwiązanie, którym można temat załatwić nawet bez większej znajomości innej platformy.


That game of life is hard to play, I'm gonna lose it anyway, The losing card I'll someday lay, So this is all I have to say
chłopie po to masz mulitplatformowe biblioteki jak boost, inne czy nawet frameworki dla c++(qt). I od razu ci zaznaczam, są specyficzne operacje dozwolone na danej platformie ma to c++(qt), java itd. To jest wszędzie a w przeciwieństwie do lazarusa c++ czy tam java to znany rozwijany standard i dojrzały. - revcorey 2018-02-13 15:58
Oczywiście, masz rację. Aczkolwiek (to moja opinia, możesz mieć inne zdanie) Lazarus jest bardzo niedoceniany. A odnośnie jego niedojrzałości - sam się niedawno zdziwiłem, jak poszedł on do przodu. Zarówno jeśli chodzi o język, jak i całe IDE oraz dostępne komponenty. Nie chcę nikogo namawiać do przejścia, ale nie zgadzam się, że w obecnej postaci Lazarus nie nadaje się do profesjonalnych zastosowań i jest raczej zabawką dla amatorów. Oczywiście, C++ to C++ i nic tego nie zmieni, ale są także alternatywy, które również dają radę - cerrato 2018-02-13 16:15
Widzisz trzeba się zastanowić co daje radę. Jeśli daję radę dla ciebie jest to ileś tam kontrolek itd. To nie tędy droga. Gui dla c++ nie brakuje,z resztą nie zawsze jest ono potrzebne. A ile bibliotek masz do sieci? Ile do operacji na dyskach? Ba i tu najważniejsze kompilatory i narzędzia. Kompilatory c++ są rozwijane od dziesięcioleci. I jak tu wypada optymalizacja, względem c++ pewnie słabo. itd. Lazarus nie jest alternatywą. Jest to projekt ciekawostka do ewentualnie jakiś open source projektów. - revcorey 2018-02-13 16:18
Zależy jeszcze od tego, co chcesz robić. Przykładowo - pisząc jakiś program w oparciu o bazę danych, nie potrzebujesz korzystać bezpośrednio z wywołań systemowych, tylko używasz jakiejś biblioteki/komponentu do łączenia się z SQL. Do tego grid, który wszystko ładnie wyświetli, plus parę kontrolek, przycisków itp. Po co tutaj dodatkowe 100 bibliotek do obsługi sieci? O jakich operacjach na dyskach mówimy? Optymalizacja kompilatora... taaa.. żeby na 8 rdzeniowym procku 3GHz aplikacja uruchomiła się o 0,000023 sekundy szybciej? - cerrato 2018-02-13 16:22
wiele różnych bibliotek realizujących często to samo. Dlaczego?niektóre daję lepsze interfejsy, są po prostu zoptymalizowane lepiej(pod konkretne zadanie). Wydaje mi się że nigdy chyba nie widziałeś dużego projektu. Powiem ci że w dużych projektach potrafią się np. pojawić problemy z wydajnością std::string. Myślisz że się pisze proste aplikacji z gridem jak to ująłeś? Chłopie widziałem dojechane wielordzeniowe ARM, mips, x86. Przez soft w C/C++. I sztuczki żeby zwiększyć wydajność się robiło także optymalizacja jest ważna + cały toolchain. - revcorey 2018-02-13 16:30

Pozostało 580 znaków

2018-02-13 16:12
1

Zacznij od qt, łatwo idzie się go nauczyć, łatwo skompilować kod pod różne platformy, wystarczy jakiś wstępny tutorial potem przejrzeć przykłady z qt creatora i dokumentację (mimo że korzysta z C++ który powinien paść dawno temu ale jakimś dziwnym trafem jeszcze nie padł, najwyraźniej mimo skomplikowania jakieś zalety ma i do czegoś się nadaje xD a jak nie to jest wersja na pythona).

Jeśli koniecznie będziesz potrzebował winapi to ucz się winapi tyle że stworzysz kod tylko pod jeden system, w dodatku jest zawiłe zwłaszcza przez te funkcje zwrotne.

A jeśli będziesz się musiał uczyć c++ od początku... to masz pecha :P

Pokaż pozostałe 8 komentarzy
Zależy o czym mowa. Można osadzić w C++ interpreter pythona, można w pythonie pisać małe narzędzia do projektu. Btw, jeślo chcesz się bawić w desktop to i qt będzie średnie na początek, jak caly c++ - spartanPAGE 2018-02-14 00:35
Szczerze - biorę C++. Wcześniej pisałem w Javie i na serio fajnie mi się pisało, ale ona jest strasznie ramożerna. Wiec przeszłem na C++. A dlaczego Qt jest złym wyborem? - PrezesiQ 2018-02-14 08:11
@PrezesiQ: ucz się C++, bo to wiesz... tak jakbyś uczył się łaciny, co najmniej: https://goo.gl/t8z39K ;) - grzesiek51114 2018-02-14 08:14
Podstawy mam opanowane. I mogę się spytać dlaczego kurs MZ? To właśnie dzięki niemu się na samym początku przygodzy z programowaniem zniechęciłem i skakałem po językach (HTML, CSS, JS, PHP, SQL, Java, aż w końcu znów C++). Dodatkowo kurs ten nie cieszy się największą popularnością.. - PrezesiQ 2018-02-14 08:18
To była ironia. Powinieneś raczej zapytać dlaczego nie kurs MZ? - grzesiek51114 2018-02-14 08:18

Pozostało 580 znaków

2018-02-13 16:16
0

Jak masz aplikacje w QT możesz w miare łatwo skompilowac pod inne systemy np. Linux :)


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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

Robot: CCBot