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?


Jest więcej niż jedna prawda.
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/[...]21/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 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.


Jest więcej niż jedna prawda.

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

2018-02-13 16:43
0

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.

Oczywiście - należy dobrać narzędzia do projektu, masz rację. Zresztą to dotyczy każdej innej branży - nikt nie kupuje TIR'a, żeby przewieźć szafkę ze sklepu, do tego nada się większe kombi albo mały busik, którego zresztą można pożyczyć. Ale wcale nie oznacza to, że TIR albo kombi są niedobre - po prostu mają inne przeznaczenia. I pamiętaj, że nie wszyscy tak, jak Ty robią "duże projektów" oraz mają do czynienia z "dojechanymi wielordzeniowymi ARM, mips" - jest wielu drobnych "dziobaków", którzy tworzą aplikacje na zlecenie, czasami w pojedynkę albo w małych zespołach. W takich przypadkach jednym z ważniejszych czynników jest czas oraz wygoda realizacji zadania. I jak ktoś ma tracić ileś dni na walkę z interface, który można mieć w oparciu o grida zrobionego w kilkanaście minut... to nie ma sensu.

Powtarzam - nie twierdzę, żę C++ jest niefajne, bo byłoby to głoszenie herezji. Ten język jest odpowiednikiem angielskiego w naszym obecnym życiu - jego znajomość jest czymś bardzo ważnym. Ale np. znajomy ma firmę, która prowadzi większość operacji z Bałkanami, dlatego do pracy szuka ludzi ze znajomością języka Chorwackiego. I co - jemu też zaczniesz mówić, że robi bez sensu, powinien szukać kogoś z angielskim? Bo to język międzynarodowy, większość piosenek i filmów jest w tym języku?

Problemem jest to, że piszesz z perspektywy wielkiego centrum handlowego. A tutaj - na forum - większość to są mali sklepikarze. No bo nie oszukujmy się - raczej nie ma wśród nas (albo stanowią jakiś tyci ułamek) developerów z Oracle, Gogole, Facebooka czy Microsoftu. Większość to albo - jak wspomniałem - drobni klepacze kodu, studenci albo pasjonaci. I z perspektywy takiego użytkownika lekki (totalnie nieodczuwalny w przypadku "zwykłych" aplikacji) spadek wydajności oraz mniejsza dostępność bibliotek jest niewielkim kosztem, za który zyskuje się wygodę i cenny czas, potrzebny do wykonywania zleceń / prowadzenia życia osobistego.


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

Odpowiedz
Liczba odpowiedzi na stronę

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