Przez ostatnie kilka lat wszystkie poważne projekty, nad którymi pracowałem, były oparte na sieci Web lub miały nie graficzny interfejs użytkownika (usługi, skrypty wiersza poleceń itp.). W razie potrzeby mogę złożyć aplikację WinForms lub zrobić prosty WPF, ale nigdy tak naprawdę nie zagłębiłem się w niektóre interfejsy API niższego poziomu, takie jak MFC lub QT.
Rozumiem, że zależy to od sytuacji, ale ogólnie czy nadal warto poświęcić trochę czasu, aby dobrze nauczyć się programowania pulpitu, czy też aplikacje przenoszą się do Internetu i urządzeń mobilnych w takim tempie, że ta wiedza jest mniej istotna? Czy spodziewasz się także, że programiści, z którymi współpracujesz, będą posiadać wiedzę na temat GUI na komputer?
Odpowiedzi:
Powiedziałbym, że tak. Podczas tworzenia programu istnieje pewien efekt wahadła. Najpierw wszystko działało bezpośrednio na komputerze. Potem, kiedy komputer stał się wystarczająco potężny, aby uruchamiać wiele programów, otrzymały komputery mainframe z głupimi terminalami. Ale głupie terminale są naprawdę do bani pod względem użyteczności, więc gdy tylko komputery stały się wystarczająco mocne, aby umieścić rozsądną ilość sprzętu w systemie wielkości terminala, otrzymaliśmy komputery osobiste i wszystko działało bezpośrednio na komputerze.
Potem wynaleźli World Wide Web, a my wróciliśmy do mainframe (serwer) i głupiego terminala (przeglądarki). Ale głupie terminale wciąż są do bani pod względem użyteczności, a ludzie zaczynają ponownie uczyć się lekcji sprzed 30 lat i znów odchodzimy od tego. Wiele naprawdę gorących prac rozwojowych dotyczy aplikacji komputerowych (lub mobilnych), które działają lokalnie, ale mogą łączyć się z Internetem w określonych celach w celu zwiększenia ich funkcjonalności.
źródło
Nawet jeśli nigdy nie planujesz tworzenia pulpitu, sugeruję, abyś miał wystarczająco dużo doświadczenia, abyś miał świadomą opinię na temat tego, kiedy lepiej jest użyć rozwiązania komputerowego na kliencie internetowym.
źródło
Tak, ale nie tak, jak myślisz.
Programowanie GUI nie jest trudniejsze ani nie wymaga specjalistycznych umiejętności poza znajomością interfejsu programowania GUI. Podłączanie przycisków, okien i kontrolek nie jest strasznie trudne i jest dość łatwe w nowoczesnych środowiskach programistycznych w porównaniu do wczesnych dni z takimi rzeczami jak MFC. Programowanie za pomocą GUI jest dość łatwe do nauczenia się, kiedy jest wymagane.
Jednak chociaż podłączanie przycisków i pól tekstowych jest dość łatwe, wiedza o tym, kiedy i gdzie umieścić przyciski, i zaprojektowanie GUI do użycia przez ludzi jest bardzo trudne. Jest to bardzo cenna i ważna umiejętność do posiadania. Jednak zasady projektowania mające zastosowanie do interfejsów natywnych w stosunku do sieci są bardzo podobne.
Dowiedz się, jak projektować dobre interfejsy użytkownika, które są skuteczne i nie dezorientują użytkowników, a zapoznasz się z ich programowaniem za darmo.
źródło
To naprawdę będzie zależeć od twojej sytuacji. Niedawno pracowałem dla firmy z listy Fortune 500, która miała kilka projektów konwersji aplikacji internetowych z powrotem na aplikacje komputerowe (SmartClient / Click-Once). W ich szczególnych okolicznościach miało to wiele sensu i wyeliminowało szereg problemów związanych z użytecznością, na które cierpiały ich istniejące aplikacje.
Jeśli jesteś pracownikiem zatrudnionym w pełnym wymiarze godzin, a Twoja firma na ogół nie projektuje aplikacji komputerowych, prawdopodobnie nie ma sensu w pełni dostosowywać się do WinForm lub WPF. Jeśli jednak jesteś konsultantem i chcesz zaoferować klientom inną usługę, nie może to zaszkodzić.
źródło
Hmm, oprócz GMail, Stack-Exchange i bankowości domowej mojego banku, używam oprogramowania non-web przez cały dzień. Wraz z pojawieniem się smartfonów i tabletów aplikacje internetowe są dla mnie jeszcze mniej atrakcyjne (korzystam z mojego klienta Facebooka na smartfony). To po stronie użytkownika.
Deweloper: w ciągu ostatnich 10 lat pracowałem prawie wyłącznie nad oprogramowaniem innym niż internetowe (a moja kariera obejmowała wiele bardzo różnych domen, ponieważ pracowałem jako konsultant oprogramowania) i nie widzę żadnego przyszłego trendu internetowego w mojej pracy.
Tak, nadal jest to konieczność uczenia się graficznych środowisk graficznych.
źródło
Oczywiście „to zależy” - ale myślę, że twoje doświadczenie jest typowe. Rzadko musiałem tworzyć grubego klienta dla dowolnej aplikacji, którą napisałem. Chyba że istnieje konkretny powód, dla którego klient musi działać na pulpicie (problemy z łącznością lub gra 3D itp.) - Uważam, że twórcy i administratorom łatwiej jest utrzymać jedną „instancję” aplikacji. Jeśli mają umiejętność projektowania aplikacji internetowych, ogólnie powinni przejść OK.
Właściwie myślę, że ważniejsze jest, aby gruby programista klienta nauczył się programowania aplikacji internetowych - dziedziczenie bezpaństwowości HTTP sprawia, że trudniej jest zapanować nad rozwojem aplikacji (a przynajmniej trzeba trochę więcej myśleć niż tylko klapsa) kontrolki na panelu).
Nie zapomnij - masz takie technologie, jak Silverlight i Adobe Flex / AIR, które mogą przekraczać granicę między aplikacją komputerową / internetową.
źródło
Według zespołu IE9:
Nie powinno być różnicy między aplikacjami natywnymi a aplikacjami internetowymi. Rozpoczyna się przyspieszenie sprzętowe, szybkie JS i przypinanie strony
Myślę, że to bezpieczny zakład, że technologie te będą się razem zbliżać. Jeśli jesteś programistą Java, nie ma bardzo różnicy między tworzeniem aplikacji komputerowych a aplikacjami internetowymi (za pomocą GWT). Nie jest nierozsądne oczekiwać, że coraz więcej „programistycznych” platform programistycznych będzie mogło atakować silnik przeglądarki. Nie jest również nierozsądne oczekiwać, że coraz więcej aplikacji komputerowych będzie mieć model dystrybucji podobny do sieci (automatyczne aktualizowanie w tle, wykonanie w trybie piaskownicy, takie jak chrome).
źródło