웹 대 데스크탑 개발-웹 개발이 더 나빠 집니까? [닫은]


29

최초의 대규모 웹 응용 프로그램을 수행하려는 오랜 데스크탑 개발자로서 웹 개발의 장단점은 무엇입니까?

웹 애플리케이션을 개발하는 것이 데스크탑 앱을 개발하는 것보다 훨씬 나쁩니 까? 예, 더 지루하거나 성가 시나요? 시장 출시 시간이 훨씬 더 깁니까? 웹 플랫폼이 과도하게 제한됩니까? 이 중 하나에 대한 대답이 예라면 왜 그렇습니까?

(Flash 또는 Silverlight 앱 개발은 어떻게 비교됩니까?)


5
폐업 투표를하지는 않았지만 웹 개발 대 데스크톱 개발 관점으로 다시 용도를 바꿀 수 있다면 더 건설적이라고 생각합니다.
Josh K

K : 알겠습니다. 기존 답변을 무효화하지 않고 질문을 바꾸려고했습니다. 감사.
Josh Kelley

답변:


26

아니

현재하고있는 일을 모르거나 올바르게 계획하지 않으면 고통 스럽지만 어떤 개발에도 해당됩니다. 데스크톱 응용 프로그램에서 응용 프로그램을 병에 넣는 것이 더 쉽지만 웹 응용 프로그램을 코딩하여 제공되는 접근성을 잃게됩니다.

원하는 용도에 따라 데스크톱과 웹 중에서 선택할 수 있습니다. 데스크톱 기반의 응용 프로그램을 코딩하는 방법을 모르기 때문에 웹 기반으로 작성된 많은 응용 프로그램을 볼 수 있습니다. 그래도 웹 기반이어야하는 많은 데스크톱 응용 프로그램을 보지 못하고 고려해야한다고 생각합니다. 중앙 집중식 스토리지, 원격 액세스 기능 및 UI 특성이 필요한 경우 확인하십시오 .

둘 다 사용하지 않기 때문에 Flash 또는 Silverlight에 대해서는 언급 할 수 없습니다.


5
내가 할 싫어 ... 사람하지만 :s/loose/lose/:)
박사 한니발 렉터에게

@ dr Hannibal : 고쳤습니다. 때로는 키를 두 번 두드립니다. ;)
Josh K

4
@ dr Hannibal : "Hannibal Lecter"에서 나오는 " 사람이 싫어"라는 말에서 나오는인지 부조화가 있습니다 :)
Skilldrick

25

다른 사람들이 언급했듯이, 그것은 절충과 올바른 지식을 갖는 문제입니다.

당신이 고려해야 할 유일한 함정은 이것입니다 : 당신은 당신의 웹에서 "크로스 플랫폼"을 장점으로 본다고 언급했습니다. 그러나 정말입니까? 이런 식으로 생각하십시오. 데스크탑 용으로 무언가를 개발하는 경우 지원할 플랫폼 목록과 해당 요구 사항을 정의해야합니다.

실수하지 마십시오. 웹에서도 마찬가지입니다. 그리고 예전보다 훨씬 간단하지만 넓은 퍼블릭 앱을 디자인한다면 가능한 모든 웹 브라우저의 모든 버전을 처리해야합니다. 그리고 엔터프라이즈 응용 프로그램 인 경우 자신을 지원하고 지원되는 브라우저 플랫폼 요구 사항을 매우 정확하게 작성하도록 준비하십시오.

중요한 무언가를 구축한다면 여기저기서 플랫폼 별 해킹을 피할 수 있다고 생각하지 마십시오.

그리고 재미있는 부분. 최고는 무엇입니까? Chrome처럼 거의 정기적으로 투명하게 업데이트되는 브라우저? 또는 롤아웃 보안 기능은 IE와 같은 석기마다 매달 및 주요 기능 만 업데이트합니까? 이러한 빈번한 "투명한"업데이트 중 일부는 코드를 손상시킬 수 있으므로이를 따르고 신속하게 대응해야하므로 대답은 생각만큼 명확하지 않습니다. 또는 개발 및 테스트 중에 베타 및 개발자 시험판을 주시하십시오. 모든 브라우저에서 당신은 어리석게도 당신이 지원하기를 원한다고 말했습니다 (행운).

아 그리고 UI 고려 사항을 잊지 말자. 일관된 UI할지 여부도 결정의 기쁨을 직면 ACROSS 모든 대상 플랫폼, 또는 일관된 UI WITH를각 호스트의 대상 플랫폼. 웹 페이지에서 볼 수있는 작은 버튼을 모두 보시겠습니까? 그것들이 모든 곳에서 정확히 동일하거나 사용자가 사용하는 환경과 통합되기를 원하십니까? 물론이 문제는 새로운 것이 아니며 다른 개발 모델에 존재하지만 여기서 더 중요해 보이며 대상 사용자 유형과 예상 대상에 따라 다릅니다. 퍼블릭 최종 사용자는 플랫폼과 통합하기를 원하지만 여전히 "와우!" 엔터프라이즈 사용자는 데스크탑 앱처럼 보이는 것을 원할 것입니다. 그리고 모바일 플랫폼은이 모든 것에 새로운 차원을 가져 왔습니다.

마지막 두 단락의 경우 일반적으로 사전 구성된 웹 브라우저를 설치 프로그램으로 패키지 한 다음 웹 앱 (로컬 호스팅 또는 웹)에 연결합니다. 업데이트 빈도를 제어하고 상태를 "고정"시킬 수 있고 지원 및 테스트 대상을 정확히 알고 있기 때문에 좋습니다. 또한 전용 사용자 확장과 같은 멋진 기능을 추가 할 수 있습니다. 예를 들어, 개발 한 작은 Chrome 확장 프로그램으로 '냉동 된'Chromium을 패키징하면 다양한 유형의 사용자가 웹 앱을 더 쉽게 사용할 수 있습니다. 반면에 ... 릴리스주기를 동결하여 보안 위반이 발생하면 앱에서 책임을 져야하며 앱은 속도 향상 (있는 경우)의 이점을 얻지 못합니다.

많은 것들과 마찬가지로, 양날 도끼입니다.

참고 : 나는 기본적으로 반 구운 기술의 큰 더미 (그리고 여기에서 공손합니다) 대해 웹에 대해 강한 편견 가지고 있습니다. 또는 수정.

즉 , 플랫폼으로서의 보편적 인 특성으로 인해 웹을 선호 합니다. 나는 당신의 회사의 움직임이 (아마도) 올바른 것이라고 생각합니다. 목표 시장과 목표 플랫폼에 따라 다릅니다. 무언가를 서비스로 노출하려면 가고 싶을 것입니다 (필요하지는 않지만). 그렇지 않은 경우에는 그다지 많은 이유가 없을 수 있습니다.

흠, 그리고 기존 운영 체제의 더 가벼운 변형이 모바일 환경 (넷북, 스마트 폰, PDA, 태블릿, 전자 책 등)을 위해 계속해서 생성되고 경량 임베디드 브라우저 사용에 더 중점을두기 때문에 앞으로 약간의 재미있는 개발이 예상됩니다. .. 그러나 새로운 UI 렌더링 결함의 모든 부분과 함께.

플러그인 기반 기술과 관련하여 ... 그들은 멀리 떨어져 있다고 말하고 싶습니다. 앱의 성능은 향상되지만 시장 침투는 제한됩니다. 경우에 따라 새 플랫폼이 갑자기 지원을 거부 할 때까지 크로스 플랫폼 지원 측면에서 이점으로 볼 수 있습니다. 웹 표준은 이유가 있습니다 (HTMl5의 모든 것에 너무 흥분하지 않도록주의하십시오. 그렇지 않으면 얼굴이 터질 수 있습니다).


편집 : 고려해야 할 다른 것들 ...

신병 모집

지식이 풍부한 웹 개발자를 찾기 가 매우 어렵 습니다. 당신은 그것들의 무리가 있다고 생각할 것입니다, 그러나 그들의 형태로 일부 유효성 검사를 구현하기 위해 700 줄의 JavaScript / ECMAScript를 작성했다고 생각하는 거대하고 무능한 사람들의 풀에서 길을 잃었습니다. 고급 기술 측면에서 달성 할 수있는 모든 것.

농담이 아닙니다. 최근에 모든 웹 개발 인터뷰의 첫 번째 질문은 변수를 선언하는 방법과 사용 방법이 다른지 여부 var(응답 방법에 따라 다름)입니다. 우울하다. 평균 또는 고급 데스크톱 개발자를 찾는 것보다 평균 또는 고급 웹 개발자를 찾는 것이 훨씬 어렵다는 것을 알았습니다.

지각

"저는 웹 개발자입니다"라고 말할 때 아무도 당신을 진지하게 고려하지 않을 것입니다. 하위 클래스의 프로그래머를위한 것입니다. 개발자입니까? 당신은 멀리서 무시하고 조롱하고 커피를 먹을 때 참여하지 않습니다. :)

이것은 사실이 아니지만, 대부분 관리되는 환경을 위해 개발되었다는 사실에 달려 있습니다. 브라우저는 고정 된 마크 업, 고정 된 스타일을 수정하고 일부 스크루 된 스크립팅을 수정하고 원하는 경우 최적화합니다. 그리고 웹 개발자라면 사람들은 저수준 프로그래밍에 대한 단서가 없다고 생각할 것이므로 완전한 바보 여야합니다.

그리고 그들은 ECMAScript가 얼마나 복잡한 지 알지만 그들의 의견을 검토하지는 않을 것입니다. 웹이기 때문입니다. 우리는 본질적으로 그것을 좋아하지 않고 우리가 할 수있는 것을 좋아합니다.


-2, +10 ... 논란을 일으켰습니다.)
haylem

브라우저의 차이점은 점점 더 문제가되고 있습니다. 분명히 CSS를 처리하는 방식에는 약간의 불일치가 있지만 대부분 최신 브라우저에서는 큰 문제가 없었습니다. 당신이 아니라면있는 거 HTML5와 출혈 가장자리에 바로 <canvas>그런 물건 ...
딘 하딩

6
"참고 : 기본적으로 반 구운 기술 (그리고 여기서는 공손합니다)의 큰 더미 인 OSI 계층에 이르기까지 웹에 대한 강한 편견이 있습니다. 문제를 해결하거나 해결했습니다. " -나야 ?????
Bobby Tables

2
저는 실제 웹 개발 전문가 인 두 사람과 함께 일하고 놀라운 일을하고 심각한 소프트웨어 개발 플랫폼으로 사용했습니다. 그들은 나의 깊은 존경심을 가지고 있습니다. 그러나 그것은 지난 15 년 동안 두 개에 불과합니다. 나머지 ... 글쎄, 나는 한때 Perl "전문가"로서 공연자가 되었었다. 단지 내 샘플 코드가 면접관이 사용했던 스파게티보다는 구조화 되었기 때문이다. 당시 필자의 진정한 Perl 전문 지식은 골무에 맞을 수있었습니다.
밥 머피

2
ECMAScript가 좋고 나쁘고 ECMAScript라는 +1.
Alan Pearce

14

두 가지 모두를 다루는 사람으로서 (웹보다 더 많은 데스크톱) : 지금까지 가장 큰 어려움은 웹 개발에서 "일반적인 혼란"이라는 느낌입니다. 최고의 툴과 프레임 워크를 사용하더라도 추상화는 여전히 누설이 많으며 상태 비 저장 프로토콜을 통해 실행되고 있다는 사실을 지속적으로 다루고 있습니다.

또 다른 관련 성가심은 웹 앱을 구현하는 데 사용되는 기술의 혼합입니다. 모든 작업을 수행 할 수있는 훌륭하고 모 놀리 식 모듈 식 환경과 언어는 없습니다. 비교적 간단한 웹 앱조차도 별도의 프로그래밍, 스크립팅 및 마크 업 언어로 코딩해야합니다.

따라서 일반적인 대답 : , 실제로는 그렇게 나쁩니다. 최소한 모든 것이 선형적이고 잘 정의 된 기술과 플랫폼을 사용하여 깨끗하고 매끄러운 환경에서 사물을 코딩하는 데 익숙한 전통적인 데스크탑 배경에서 온 경우. 가장 좋은 방법은 그것을 같은 분야로 생각하지 않는 것입니다. 무의식적으로 웹 개발이 "데스크톱 개발과 같을 것"으로 기대한다면, 그것은 항상 매우 불쾌하고 성가 시게 보일 것입니다.


4
"일반적으로 엉뚱한"느낌이 든 이유는 아마도 "추상화"하려고 시도한 프레임 워크를 사용했기 때문일 것입니다. 웹은 상태가 없습니다. ASP.NET의 "webforms"가 아무리 다르게 생각하길 원하더라도 상태가 없다는 것을 잊지 마십시오. 개발자가 변경 불가능한 사실로 더 빨리 받아들 일수록 우수한 품질의 웹 응용 프로그램을 더 빨리 작성할 수 있습니다.
Jason Whitehorn

1
+1, 잘 말했다. 단일 기술 스택으로 모든 것을 작성하는 솔루션 인 Rails와 같은 프레임 워크를 사용하더라도 권장 사례를 RJS에서 "Unobtrusive JS"로 변경하여 문제를 해결할 수 있습니다.
Jas

11

데스크톱에서 웹으로 전환하는 가장 큰 생각은 웹 응용 프로그램이 기본적으로 상태 비 저장입니다.

그 부분을 알아 내면 좋습니다.


브라우저가 중요합니까?
JeffO

@Jeff 브라우저 간 불일치는 정말 중요한 짜증나지만, 아니다
스티븐 A. 로우

4
실제 브라우저 (일부 불일치), Internet Explorer (더 불일치) 및 악마의 자식 (IE6)을 작성해야합니다.
TRiG

2
@Malfist :이 방법 (무 + 세션 = 상태) 당신이 원래 독수리달라고하는 경우에 볼트 항공기 제트 엔진과 에뮤를 설계 할 수와 함께,하지 않도록주의 경우)
Piskvor

1
@ Jim G : 물론 그렇습니다. 그러나 브라우저 등의 차이점은 상태 저장에서 상태 비 저장 응용 프로그램 디자인으로 전환하는 것과 비교할 때 아주 적습니다.
Steven A. Lowe

5

많은 지루함은 모든 브라우저에서 모든 것이 작동하도록하는 데 필요한 작업에서 비롯됩니다. 최첨단에있을 필요는 없기 때문에 자신의 핸드 롤링 대신 적절한 웹 프레임 워크를 선택하여 다른 사람이 수행 한 작업을 활용할 수 있습니다.

사용할 언어는 현재 사용중인 언어 환경에 따라 다릅니다. 해당 정보를 제공하기 위해 질문을 편집 할 수 있습니다.


2
브라우저 호환성 문제는 엄청나게 큰 문제입니다. 그러나이 균형을 맞추기 위해 다른 버전의 운영 체제, 라이브러리 등을 다루어야하는 데스크톱 개발과 비교하는 것을 잊지 마십시오.
Carson63000

@Carson, 만약 자바 데스크탑 개발을한다면이 고통은 실제로 아주 작습니다. .NET 또는 Win32 API의 경우 훨씬 더 나쁠 수 있습니다.

2

아니요, 웹 응용 프로그램은 데스크톱 응용 프로그램과 다른 장단점이 있습니다. 각각 내 마음에는 강점이 있습니다. 단일 배포와 같은 장점이 있지만 지원하는 브라우저와 고객이 어떤 화면 해상도를 기대할 수 있는지 알고 있어야한다는 단점이 있습니다. 서버 하드웨어를 제어 할 수는 있지만 얼마나 많은 트래픽을 예상하고 어느 정도 확장해야하는지에 대한 의문이 있습니다. 몇 년 동안 웹 개발을해온 사람들에게는 이것이 심각한 고통이라고 생각되는 개발 작업이 있다고 상상할 수있는 것처럼 아픈 곳이 될 수 있습니다.

플래시 응용 프로그램은 내 마음에 웹 응용 프로그램 일 수도 있고 아닐 수도 있습니다. AIR과 같은 기능으로 인해 데스크탑에서 일부 Flash 기능을 실행할 수 있으며 Twhirl과 같은 일부 응용 프로그램이 내장되어 있으므로 즉시 잘리지 않고 건조하지는 않습니다.


2

웹 개발이 반드시 나빠지 는 것은 아니며 매우 다릅니다.

웹 개발과 데스크탑 개발을 분리하는 것 중 하나는 상당히 복잡한 응용 프로그램을 개발하기 위해 마스터해야하는 엄청나게 다른 기술입니다. 기본적으로 다음에 대한 강력한 지식이 필요합니다.

  • HTML
  • 자바 스크립트
  • CSS
  • 일부 서버 측 언어 (Java / PHP / 무엇이든 ...)
  • RDBMS (또는 일부 영구 저장소 기술)
  • ... 플래시, 실버 라이트 등과 같은 다른 많은 것들도 가능합니다.

반면 데스크톱 개발에서는 일반적으로 훨씬 더 많은 단일 기술을 사용합니다. 예를 들어, Java 앱을 개발하려면 기본적으로 Java를 알아야합니다. (물론, 그것은 다소 단순화 된 것이지만, 요점은 웹 개발은 기능적인 응용 프로그램을 형성하기 위해 함께 작동해야하는 훨씬 더 광범위하고 근본적으로 다른 기술에 노출된다는 것입니다.)


1

아니

올바른 도구를 선택하는 한 웹 개발은 데스크톱 개발만큼 깨끗하고 쉽습니다.

웹 API (html, CSS, Javascript 및 DOM)는 win32 API와 같습니다. 결국 모든 것이 해당 API 레벨로 내려가지만, 라이브러리없이 직접 프로그래밍하면 복잡하고, 상세하고, 불일치하는 부분을 추상화 할 수 있습니다.

따라서 선택한 프레임 워크에주의하십시오. 일부 문제는 잘못된 도구 (예 : 브라우저 호환성 문제)를 선택하여 자체적으로 영향을받습니다.

단일 언어로 깨끗하고 일관된 웹 개발 플랫폼을 사용할 수 있습니다. 예를 들어, "항상 모든 자바"가되기를 원한다면 GWT를 사용하여 클라이언트 측 코드와 서버 측 코드를 모두 Java로 작성할 수 있습니다. 또는 모든 자바 스크립트를 원한다면 클라이언트 측은 Ext JS, 서버 측은 node.js와 같은 것을 선택할 수 있습니다.


0

나는 그것이 "... 내 존재의 헛됨"이라고 묘사 한 것을 듣고 동의 할 것입니다. HTML 웹 개발을 할 시간당 $$$가 제공되었고 거절했습니다. 그것은 많은 고통입니다. HTML에서 대부분의 시간을 보냈으며 최근 "Flash 플랫폼"으로 작업하기 시작했습니다. 그것은 내가 본 것 중 가장 정교한 프레임 워크 중 하나이며 아무도 그것에 대해 모른다. 사람들이 플래시를 만들면 10 년 전의 플래시를 생각합니다. 자란다 .. 많이. 나는 소프트웨어를 다시 쓰는 것을 좋아합니다.

여전히 단점이 있습니다. 때때로 버그는 영원히 남아 있지만 더 좋아졌습니다 (스티브 J. 덕분에).

BTW Flex 개발자에게는 큰 부족이 있습니다. 너무 많은 회사가 아파서 다가 왔습니다. CS를 알고 있다면 다음 6 개월 이상 Flex 하드 코어를 배우고 전화하십시오. 거절해야 할 모든 구인 제안을 전달하겠습니다.

업데이트 : 크로스 브라우저 지원이 주요 문제점입니다. 한 브라우저에서 작동하는 것은 다른 브라우저에서는 작동하지 않거나 이전 버전에서는 작동하지 않습니다.

프로세스는 다음과 같이 진행됩니다.-사이트 디자인 가져 오기-하나의 대상 브라우저에서 사이트를 다시 만들려고 시도 (어려울 수 있음)-클라이언트 표시-클라이언트 변경 디자인 표시-원래 수행 한 모든 레이아웃 작업을 긁음-기능적으로 설정-클라이언트 승인 -다른 브라우저에서 작동하도록하십시오. 가장 어려운 부분입니다. 길을 따라 모호한 버그가 있습니다. 그런 다음 둥근 모서리와 같이 이전 브라우저에서 지원하지 않는 기능이 나타납니다. 코드와 CSS를 재사용하려고 시도하지만 빠르게 조각화됩니다. 간단하게 유지 보수가 매우 빠릅니다. 애니메이션 및 이전 브라우저 초크에 추가하십시오.

클라이언트 변경합니다. 당신은 "간단한 것이어야하는 것"을하는 데 시간을 할애하고 인생을 미워하게됩니다. 당신은 전문가가되고 싶지 않은 것을 알게 될 것입니다. 나는 그것이 극적으로 들린다는 것을 알고 있지만, 당신이 직면하게 될 문제를 꾸미는 것은 아닙니다. 프레임 워크가 더 쉬워 질 것입니다. HTML 작업을 지속적으로 수행하는 경우 HTML을 지원하는 모든 브라우저의 디자인 및 기능과 일치하는지 확인하여 즐겨 찾는 사이트 중 하나를 HTML로 다시 작성하십시오. 직장에 가기 전에 발생하는 문제를 해결하십시오. 최고의 디자인 툴, 최고의 자바 스크립트 프레임 워크, 최고의 디버깅 툴, 최고의 IDE 등과 같은 문제


존재의 허무로 여기는 이유 를 설명하기 위해 답을 편집 할 수 있습니까?
Josh Kelley

위의 답변을 업데이트

1
시간당 3 달러? 요즘 최저 임금조차 줄어드는 것도 당연합니다. ;)
Piskvor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.