여전히 데스크톱 GUI 개발을 배울 가치가 있습니까? [닫은]


18

지난 몇 년 동안 내가 작업 한 모든 심각한 프로젝트는 웹 기반이거나 그래픽이 아닌 사용자 인터페이스 (서비스, 명령 줄 스크립트 등)를 사용했습니다. WinForms 앱을 함께 던지거나 필요할 때 간단한 WPF를 수행 할 수는 있지만 MFC 또는 QT와 같은 하위 수준 API에 대해서는 결코 탐구하지 않았습니다.

나는 이것이 상황에 달려 있다는 것을 이해하지만 일반적으로 데스크톱 개발을 잘 배우는 데 시간이 걸리거나 응용 프로그램이 웹과 모바일 장치로 빠르게 이동 하여이 지식을 덜 관련 시키는가? 또한 함께 일하는 개발자가 데스크탑 GUI 전문 지식을 갖기를 기대하십니까?


5
데스크톱 응용 프로그램 개발은 훌륭하지만 Knuth의 사랑을 위해 MFC를 신경 쓰지 마십시오. Windows 데스크톱 앱 작업의 95 %에 필요한 것은 WinForms 또는 WPF / XAML입니다. 원하지 않는 직업의 다른 5 %.
Adam Crossland

1
@Adam : "하고 싶지 않은 다른 5 %의 일자리"+1 -맞아 :)
Bobby Tables

답변:


38

나는 그렇다고 말할 것입니다. 프로그램 개발에는 일종의 진자 효과가 있습니다. 먼저 모든 것이 컴퓨터에서 직접 실행되었습니다. 그런 다음 컴퓨터가 여러 프로그램을 실행하기에 충분히 강력 해지면 바보 터미널이있는 메인 프레임이 생겼습니다. 그러나 멍청한 단말기는 사용성 측면에서 정말 빨라서 컴퓨터가 단말기 크기의 시스템에 적당한 양의 하드웨어를 넣을 수있을만큼 강력 해지 자마자 개인용 컴퓨터를 얻었고 모든 것이 컴퓨터에서 직접 실행되었습니다.

그런 다음 월드 와이드 웹을 발명했으며 메인 프레임 (서버)과 벙어리 터미널 (브라우저)로 돌아 왔습니다. 그러나 벙어리 터미널은 여전히 유용성 측면에서 엉망이되어 사람들은 30 년 전에 교훈을 다시 배우기 시작했습니다. , 우리는 다시 그 추세를 쫓고 있습니다. 요즘 가장 많이 개발 된 것은 로컬로 실행되지만 기능을 향상시키기 위해 특정 목적으로 인터넷에 연결할 수있는 데스크톱 (또는 모바일) 앱을위한 것입니다.


5
이러한 추세가 주기적으로 실행됨을 지적하면 +1입니다. 그러나 터미널 응용 프로그램을 데스크톱 응용 프로그램으로 다시 작성하여 사용자가 터미널 응용 프로그램을보다 효율적으로 사용할 수있는 경우를 보았습니다.
Larry Coleman

2
브라우저와의 차이점은 실제로 로컬 시스템에서 코드를 실행할 수 있으며이 기능은 각 브라우저 생성에 따라 증가한다는 것입니다. 그 결과 데스크톱과 웹 앱의 사용성 차이가 그다지 크지 않다는 것입니다. 많은 사람들에게 (자신을 포함하여) Gmail은 전망보다 더 유용합니다. 진자는 매번 덜 흔들리며 기본 기술에 관계없이 앱이 로컬 및 클라우드 부분을 혼합하여 반쯤 멈출 것입니다.
Joeri Sebrechts

13
+1, 사람들이 데스크탑이 죽었다고 주장하기 시작하는 것을 싫어합니다.
Dr Hannibal Lecter

1
@Joeri : 대부분의 터미널은 항상 최소한 몇 비트와 조각을 로컬에서 수행 할 수 있습니다. 필자가 보았던 우울한 양의 JavaScript는 IBM 3270 (예를 들어)이 로컬에서도 수행 할 수있는 작업을 수행합니다.
Jerry Coffin

1
@Joeri Sebrichts-Gmail에서 이메일을 작업 또는 일정 항목으로 끌어다 놓을 수있게되면 동의하지만 그 때까지는 기능이 너무 적습니다.
JeffO

11

데스크톱 개발을하지 않더라도 웹 클라이언트를 통해 데스크톱 솔루션을 사용하는 것이 더 나은시기에 대해 충분한 정보를 얻을 수있는 충분한 경험을 얻을 것을 제안합니다.


+1 : '데스크톱이 죽었다고 가정하고 응용 프로그램을 피닝하는 것은 웹 응용 프로그램으로는 결코 좋지 않을 수 없다'고 말하는 순수한 데스크탑 개발자의 반대입니다. 당신이 일하고 싶은 것을 고르지 만, 진정한 이점 / 함정을 알만큼 충분히 다른 것을 아십시오.
Steven Evers

8

네,하지만 당신이 생각하는 방식이 아닙니다.

GUI 프로그래밍은 더 이상 어렵지 않으며 GUI 프로그래밍 인터페이스에 익숙하지 않은 전문 기술이 필요하지 않습니다. 버튼과 창 및 컨트롤을 연결하는 것은 그리 어렵지 않으며 MFC와 같은 것들로 초기에 비해 현대적인 프로그래밍 환경에서는 매우 쉽습니다. GUI 프로그래밍은 필요할 때 배우기 매우 쉬운 것들입니다.

그러나 버튼과 텍스트 상자를 연결하는 것은 매우 쉽고, 언제 어디서 단추를 배치 해야하는지 알며 , 사람이 사용할 GUI를 디자인 하는 것은 매우 어렵습니다. 그것은 매우 소중하고 중요한 기술입니다. 그러나 기본 인터페이스와 웹에 적용되는 디자인 원칙은 매우 유사합니다.

따라서 효과적이고 사용자를 혼동하지 않는 우수한 사용자 인터페이스를 디자인하는 방법을 배우면 무료로 프로그래밍에 익숙해 질 것입니다.


2
특히 요즘 사용자 경험 은 소프트웨어 디자인을 담당합니다. 건축은 더 이상 책임이 없습니다.
rwong

5

실제로 상황에 따라 달라질 것입니다. 최근에 웹 응용 프로그램을 데스크톱 응용 프로그램 (SmartClient / Click-Once)으로 다시 변환하는 여러 프로젝트가있는 Fortune 500 대 기업에서 근무했습니다. 특정 상황에서는 기존 앱이 겪는 여러 가지 유용성 문제를 제거하고 의미가있었습니다.

정규 직원이고 회사에서 일반적으로 데스크톱 앱을 디자인하지 않는 경우 Winforms 또는 WPF를 완전히 숙지하는 것이 의미가 없습니다. 그러나 컨설턴트 인 경우 고객에게 다른 서비스를 제공하고 싶을 경우 아프지 않을 수 있습니다.


4

흠, Gmail, Stack-Exchange 및 은행의 홈 뱅킹 외에도 하루 종일 웹 이외의 소프트웨어를 사용합니다. 이제 스마트 폰과 태블릿이 등장하면서 웹 응용 프로그램의 매력이 떨어졌습니다 (스마트 폰 Facebook 클라이언트 사용). 그것은 사용자 측입니다.

개발자 쪽 : 지난 10 년 동안 나는 웹 이외의 소프트웨어에서만 일했고 (소프트웨어 컨설턴트로 일하면서 경력이 매우 다른 여러 영역에 걸쳐 있었으며) 앞으로는 웹 트렌드가 보이지 않습니다.

예, 여전히 데스크톱 GUI 환경을 학습 해야 합니다.


2
와우, 당신은 인터넷 검색 엔진을 사용하지 않습니까?
JBRWilkinson

1
@JBRWilkinson : 아니요, 저는 Gopher에 의존합니다. 진심으로, 하루 종일 Google을 사용하지만 데스크톱 도구 나 응용 프로그램을 대신 할 수는 없습니다.
Wizard79

2

물론 "의존"-하지만 당신의 경험이 일반적이라고 생각합니다. 필자가 작성한 응용 프로그램에 대해 씩 클라이언트를 만들어야하는 경우는 거의 없었습니다. 클라이언트가 데스크톱에서 연결해야하는 특별한 이유가 없다면 (연결 문제 또는 3D 게임 등) 개발자와 관리자가 응용 프로그램의 "인스턴스"를 유지하는 것이 더 쉽다고 생각합니다. 웹 응용 프로그램을 디자인하는 기술을 보유하고 있다면 일반적으로 데스크톱 응용 프로그램 영역으로 이동하는 것이 좋습니다.

사실 나는 두꺼운 클라이언트 개발자가 웹 애플리케이션 프로그래밍을 배우는 것이 더 중요하다고 생각합니다. 패널의 컨트롤).

잊지 마십시오-Silverlight 및 Adobe Flex / AIR와 같은 기술을 사용하여 데스크탑 / 웹 응용 프로그램 사이의 경계를 넘을 수 있습니다.


웹 개발에 +1이 더 어려워졌습니다. 저는 데스크톱 개발자로 시작하여 업무에서 웹 개발로 옮겨야했습니다. 확실히 더 복잡합니다 (분명히 쉽지 않은 비교 작업을 가정합니다).
Bobby Tables

@ 구지 카-예, 데스크톱 앱 개발에 관심이있는 사람과 함께 일했던 좋은 개발자들과 비슷한 태도를 겪었습니다. 일단 그들이 처음 생각했던 것처럼 스위치를 쉽게 만들 수 없게 만들려고 노력합니다. 이것이 웹 응용 프로그램 프로그래밍의 본질적인 복잡성, 프로그래밍 방법이 다르고 시스템이 무엇을 할 수 있는지에 대한 많은 기본 가정 (새로운 프레임 워크를 배우는 것 외에도)인지 모르겠습니다.
왓슨

도구가 더 제한적이고 "더 복잡해지지"않는 작업을 수행하는 것은 항상 더 어렵습니다. 그것은 번거 로움을 더합니다.
Sam

0

IE9 팀에 따르면 :

기본 앱과 웹 앱간에 차이가 없어야합니다. HW 가속, 빠른 JS 및 사이트 고정으로 시작

이 기술들이 서로 더 가까워 질 것이 안전하다고 생각합니다. 자바 개발자라면 데스크탑 앱 개발과 웹 앱 개발 (GWT 사용) 사이에는 차이가 거의 없습니다. 점점 더 많은 "데스크톱"개발 플랫폼이 브라우저 엔진을 목표로 삼을 것으로 기대하는 것은 무리가 없습니다. 점점 더 많은 데스크톱 앱이 웹과 같은 배포 모델 (백그라운드에서 자동 업데이트, 크롬과 같은 샌드 박스 실행)을 갖기를 기대하는 것도 무리가 없습니다.


3
그것은 총 BS입니다. 시장 데이터 제공의 지연 시간을 "실시간"으로 측정하고 표시하기 위해 로컬에 위치해야하는 지연 시간 측정 앱을 개발 중입니다. 이런 종류의 일은 결코 클라우드로 이동되지 않을 것입니다.
Tim

응용 프로그램이 로컬에 있어야한다는 어리석게 모호한 필요성을 발견했기 때문에 총 BS입니다.
Mike M.

@ 팀 : 일부 앱은 항상 로컬 인 것이 맞습니다. 다른 앱은 절대 로컬 일 수 없습니다 (예 : Google 번역). 그러나 로컬에서 실행한다고해서 클라우드에서 제공되지는 않습니다. Chrome은 로컬에서 실행되지만 클라우드 기반 앱입니다 ( "버전"이 무엇인지 거의 제어 할 수 없음). 기본 코드 실행을 브라우저 플랫폼 (Google NaCl)에 연결하려고 시도하고 웹 언어를 기본 앱 (Adobe Air)에 연결하려고 시도합니다.
Joeri Sebrechts

1
@Mike M-그것은 엄청나게 모호하지 않습니다. 이전에는 해군 선상 소프트웨어에서 일했습니다. 이들은 클라우드에 없을 수도 있습니다. 내가 작업하는 도메인은 마이그레이션되지 않을 가능성이 높습니다. 대기 시간 및 하드웨어 인터페이스 이유로 로컬이어야합니다. 웹은 훌륭하지만 우리 중 일부는 여전히 이유로 기본 앱 영역에서 작업합니다.

@Tim 나의 요점은 당신이 견디지 못하는 시나리오를 발견했다는 것입니다. 저자는 그가 MOST라고 말할 때 이것을 알고 있습니다. 당신은 반론을 생각해 냈습니다. 당신은 결코 모든 것이 근거가 없다는 것을 증명하지 못했습니다. 물론 여러 가지 이유로 현지인이어야 할 때가 있습니다. 그러나 대부분의 경우, 일부 광섬유 케이블을 던져서 1200 마일을 10 밀리 초로 건너 뛸 수 있습니까? 사용자는 양식을로드하는 데 10 밀리 초가 더 걸리는 모든 데스크톱 응용 프로그램을 사용하는 것이 좋습니다.
Mike M.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.