[질문] 윈도우 폼 개발 언어 선정에 도움을 얻고 싶습니다

visualplus의 이미지

안녕하세요!
계속 리눅스만 다뤄오다 이번에 윈도우 어플을 개발해야 할 일이 생겨서 고민중입니다.
처음엔 아무생각 없이 요즘 C#이 좋다고 하니 C#으로 하면 되겠지.. 란 생각으로 바로 C#으로 개발을 했습니다.
그런데 어느정도 완성하고 다른 컴터에 테스트하려고 돌려보니 닷넷 프레임워크란게 필요하더군요.
뭐 자동 설치까지 해 주긴 하지만 설치하는데 10분은 족히 걸리는것 같습니다.
( 테스트용 컴퓨터는 사양이 좀 낮아서 그런지 2~30분 넘게 걸렸습니다. )

그래서 언어를 바꾸려고 하는데.. 무엇으로 해야 할 지 상당히 고민 되네요.
리눅스는 콘솔만 개발했어서.. 그냥 파이선이나 C/C++로 개발하면 됐었는데.. 윈도우는 그게 아닌가보네요..ㅠㅠ

이번 언어를 선정할땐 좀 신중히 결정을 하려고 합니다.
현재 윈도우XP만 지원하도록 일단 개발을 해 놓고 차차 Vista나 이번에 나올 window7까지 개발을 해야 되는데요.
검색을 해보니 윈도우XP라고 하더라도 홈 에디션과 프로페셔널로 나눠지고 간간히 홈 에디션에선 돌아가는데
프로페셔널에선 돌아가지 않는다는 글도 보이네요..

일단 제가 검색해 보고 대충 훑어본 바로는..
자바는 자바가상머신이 설치되어야 하고 ( 자바 가상머신은 닷넷프레임워크보다는 설치속도가 상당히 빠른것 같네요 )
자바가상머신만 설치되어있으면 어느 플랫폼이던간에 호환성이 보장 된다. 라 해서 이클립스와 visual editor를 설치해 이용해 봤더니
visual studio보다 상당히 불편한 폼 디자인이 좀 거슬리네요.
이제 c++ builder와 mfc를 한번 테스트 해 볼 생각입니다.

긴 글 읽어주셔서 감사하구요. 마지막으로 제 질문을 정리하자면
1. C#으로 무턱대고 개발했다 닷넷프레임워크라는 벽을 만나 고전중입니다.
2. C#을 대체할 다른 언어를 찾고있는데 자바는 좋긴 하지만 윈폼 디자인 하는게 상당히 불편합니다.
3. 현재는 윈도우XP만 지원 할 생각이지만 점차 vista나 window7등 지원을 해줘야 하는 상황이라
   os버젼이 올라가도 어느정도는 호환이 되어주는 언어였으면 좋겠습니다.
 
다시한번 제 글을 읽어주셔서 감사합니다..ㅠ.ㅠ
jsj3579의 이미지

1. 일단 닷넷 프레임 워크가 왜 벽인지를 이해할수가 없구요. 설치 속도라고 하신다면야, 실행 할때 마다, 설치하는 것도 아니고, 사용자도, 한번만 깔면 되는 거 아닌가요??
2. 파이썬으로 코딩 하셨다고 하니, VS에서 아이언 파이썬을 사용하시거나, GTK+ 등으로 UI를 만드시면 될 것 같네용.
3. 이것을 효과적으로 해결하기 위해서, 닷넷 프레임 워크 위에서 어플리케이션이 동작하는 것인데요..

dalmagi의 이미지

열심히 써주시긴 했는데 목표환경을 visualplus님 본인도 명확히 정의해 놓고 계시진 않은 것 같습니다.
먼저 그것부터 명확히 하셔야할 듯 한데요.

1. 크로스플랫폼이어야 하는가
2. 자유소프트웨어이여도 괜찮은가 (개발 하려는 프로그램이 상업용인지)
3. 부담되는 부분이 설치.배포인지 아니면 프로그램 사이즈인지.
4. Rad 개발이 반드시 필요한가 (C# 처럼)
5. GUi의 퀄리티

대충 이정도 조건만 매치시켜 보면 답이 나올 것 같습니다.
쓰신 글들에서 어느정도 유추가 되긴 하는데, 제가보기엔 "되면 더 좋고" 정도 수준에서 머무르고 계신 것 같습니다.
참고로 C++빌더 같은 경우는 라이센스 당 가격이 200만원이 넘습니다.(대략)

화이팅(fighting) 말고 화이트닝(whitening) 하면 안되나요.

whitelazy의 이미지

GTK#에 Monodevelop .... =333 리눅스에서 개발해서 윈도로 배포하는겁니다!! 핵심 장점은... 싸고... 폼 그리는게 잘되어있습니다. 편하더군요...

자바는 자바 가상머신 설치할 필요도 없이 아예 프로그램 배포시에 자바 가상머신을 설치 프로젝트에 포함해서 배포해버려도 됩니다.
실행 자체는 레지스트리 안건드립니다. jar파일 실행할때 더블클릭으로 실행 할 경우에야 설치 하면 좋지만 아닌경우에는 환경변수만 잡아주고 실행용 배치파일이나 실행용 프로그램 하나만 넣어주면 돌아가는걸로 알고있습니다. 보통 이런 무식한 방법은 잘 안쓰긴하는데 귀찮으면 이런방법도 있지요.... 오라클 같은경우가 자바 가상머신을 설치중에 같이 설치합니다...
간단하게 설치중에 검사해서 안깔려있으면 깔래말래 물어보던지 설치프로그램에 포함된 자바를 깔아버리던지 하면 되니까요

같은 맥락으로 닷넷도 설치프로그램에서 모노 프레임워크 업어다가 같이 돌리면 돌아갈꺼같습니다... 대신에 Winform보다는 GTK#등을 써야겠죠~ =333 mono랑 gtk# dll 등등 들고다닐수 있는거 다 들고다니는겁니다... 요즘 저장매체 값도 싼데 다 바리바리 싸들고 가면되지요....... 닷넷프레임워크는 설치가 아니라 파일만 업어가면 안될꺼같아서 모노로 추천드립니다.... =33

아니라면 C++ & QT도 있구요 실행파일이랑 DLL만 들고 배포하면되니.....

그런데.... Vista와 Windows 7은 각각 기본으로 .net framework 2.0과 3.5가 깔려있는걸로 알고있습니다... =_=a

XP만 깔면 되요............

visualplus의 이미지

헉.. 이럴수가--;;
그럼 윈도우XP만 지원하는것에서..
윈도우XP 이하 os를 지원하지 않는걸로 샤바샤바하면............
좋은 힌트 감사합니다^^

visualplus의 이미지

제 글에 답변주신점 정말 감사합니다.

1. 닷넷 프레임워크 설치 시간이 문제가 되는 점.
   규모가 작은 어플이기 때문에 설치시간 10~20분 걸린다는게 상당히 문제가 됩니다.
   ( 어플만 설치하는데 걸리는 시간은 1분 이내입니다. )
 
2. 닷넷 프레임워크가 호환성을 보장해주는것은 상당히 매력이 있는데 아무래도 설치시간이 너무 부담이 됩니다.
 
3. 크로스플랫폼이어야 하는가.
   지금 이 점이 조금 애매하게 됐습니다..
   원래는 윈도우XP만 지원 할 생각이었으나 고객의 요청으로 vista나 window7도 지원을 해줘야 할 것 같습니다.
   그래서 일단 원래 계획이었던 윈도우XP만 개발을 하고 그 뒤에 vista나 window7을 지원하도록 결정했습니다.
   그러니.. 결과적으로는 모든 윈도우 계열 os를 지원하는게 목표지만 현재로써는 최대한 빨리 윈도우XP를 지원하는 어플을 만드는게 목표입니다.
 
4. 자유소프트웨어이여도 괜찮은가.
   현재 라이센스를 모두 검토한 뒤 개발할 시간이 안되서 언어가 몇개 선택되어지면 그 언어에 대한 라이센스만 검토할 예정입니다.
   그렇기 때문에 상업용으로 해선 안되는 라이센스이면 안될것 같습니다.
 
5. Rad 개발이 반드시 필요한가.
   Rad의 개념을 잘 모르겠습니다. 검색을 해보니 소프트웨어를 좀더 빨리 정확하게 만들자는 개념..? 정도로 나오는것 같은데..
   이게 맞다면 프로젝트 규모가 작다보니 그리 필요 없을것 같습니다.
 
6. GUI의 퀄리티.
   GUI의 퀄리티는 어느정도 됐으면 좋겠습니다.

다시한번 답변 주신점 감사합니다^^

rubenz의 이미지

RAD, Rapid Application Development 약자라고 알고 있습니다.
VB가 뜨면서 델파이가 뜨면서, 방법론이 바뀌었습니다.
요건정의 --> 분석 --> 설계 --> 구현에서
분석 --> 바로코딩 으로 바뀌었지요.
첫번째는, 이것의 기본 개념에는 VB의 OLE 컴포넌트 혹은 ActiveX 컴포넌트가 복잡하거나 어려운 부분은 해결해 준다.(가져다 쓴다.)
두번째는, 사용자 화면이 곧 설계이고 자료구조이다
이 두가지 개념으로 분석(사용자 요구사항 --> 어떻게 화면을 구성할래?) --> 바로 코딩(복잡한 코딩은 컴포넌트로 해결) 입니다.
RAD개념은 규모가 작을수록 더 맞습니다. 왜냐하면 작은 규모일수록 표준이나 규약 같은 것이 상대적으로 중요하지 않고 사용자의 편리함과 쓰임이 중요하니깐요..
그리고, RAD 개념은 툴의 발달을 가져 왔고, 직관적인 논리에 의해서 개발할수 있는 그래서 덜 전문적이어도 프로그래밍할 수 있는 요건의 토대를 마련했습니다.
흔히들, VB를 언어도 아니다 혹은 약점이 너무 많아서 쓸수가 없다 등등 등한시 되나,, 사실은 VB이후에 거의 모든 개발이 툴의 개념으로 바뀌 었습니다. 그전만 해도 전문 개발 컴파일러 및 라이브러리의 조합으로 개발 했으나, VB이후부터는 는 개발을 툴로서 하는 즉, 코딩 중심이 아닌 목적 중심의 툴 개념으로 개발하도록 바뀌었습니다.(물론 gcc는 여전히 사용된다고 반박할수도 있습니다.)
VB가 컴퓨터 프로그래밍의 역사에서는 사실상 기점이라고 볼 만큼 전환점을 가져온건 사실입니다.(대중적으로나 개념적으로나)
(언어 및 라이브러리 중심의 프로그래밍에서 목정 중심의 프로그래밍, 단적인 엑셀의 VB스크립트와 VB프로그래밍이 같다..엑셀 프로그래밍?)
머..역시 그래도 이렇게 이야기들 하지요.
"나 Visual C++ 전문으로 쓰는 사람인데, 내가 컴포넌트 안만들어 주면, VB는 아무것도 아니야.."

dalmagi의 이미지

제가 말한 Rad 는 디자인타임 개발환경의 완성도, 즉 말씀하신 '폼 디자인이 거슬린다' 라는 말과 맥락을 같이해서 언급한 말이었는데 정확히 전달이 안된 것 같군요.
또한 윈도우 운영체제 버젼끼리의 호환성은 '크로스플랫폼'이라고 부르지 않습니다.
사실 C#(닷넷) 정도의 높은 GUI 퀄리티와 간편한 디자인타임 개발(Rad) 환경을 갖춘 프레임워크가 흔치 않고,
크로스플랫폼을 필요로 하시는게 아니므로, 추천한다면 닷넷도 충분히 후보에 올릴만 하지만, 가상머신인데다가 응용 프로그램의 크기가 작다면 배보다 배꼽이 큰 모양새인 것은 확실히 틀리지는 않는 것 같군요.

닷넷이 영 거슬리신다면 두가지를 더 추천해드립니다.
하나는 볼랜드사의 VCL. (C++빌더나 델파이 등. 라이센스 필요)
다른 하나는 WxWidgets 입니다.

VCL은 퀄리티도 높고(네이티브 look), 닷넷만큼이나 직관적인 폼 디자인이 가능합니다. 결과물은 정적링크시 대략 500k ~1M 정도로 추가 라이브러리 없는 네이티브 코드가 생성됩니다. 또한 닷넷과 같이 상업용 개발이 가능한 프리웨어버젼이 존재합니다.

WxWidgets 은 애초에 크로스플랫폼을 위해 나왔고 많은 폼 디자이너가 존재하며 그중 어떤 것은 상용 프로그램 못지 않게 편리합니다. 라이센스도 LGPL과 비슷하여 상업용개발도 가능합니다.
다양한 언어 바인딩과 IDE가 있는데, 윈도우즈 개발에 사용하실 것이므로 저는 그 중 wxDevC++ 을 추천합니다. 디자이너가 아주 직관적이고 한글화가 잘 되어 있습니다.
결과물의 크기는 정적링크시 대략 2~3M 정도 나오는 걸로 알고 있습니다.
굳이 이런 질문을 윈도우개발 커뮤니티가 아닌 이곳에서 하신 것을 보니 아마 이런쪽 라이브러리를 염두에 두신거라 생각이 들어서 특히 강추합니다.

화이팅(fighting) 말고 화이트닝(whitening) 하면 안되나요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.