Hacker News 의견
  • 많은 댓글을 읽으면서 전체 전제가 잘못되었음을 깨달음. 블로그 게시물을 "요구 사항이 비현실적일 때 Windows용 GUI 앱 작성은 고통스러움"으로 이름을 바꾸는 것이 좋겠음
  • .NET Framework 3.5를 사용하여 WinForms를 타겟으로 하는 것이 좋겠음. 최신 Windows 버전에는 모두 설치되어 있음
  • 이 글은 여러 옵션에 대한 좋은 개요를 제공하지만, 저자의 특정 요구 사항이 많은 옵션을 배제하게 만듦
    • 완전히 사용자 정의된 GUI 스타일링을 원하면서 자체 렌더링 함수를 작성하지 않으려는 요구 사항은 쉬운 사용자 정의 GUI 라이브러리를 선택하는 작업이 됨
    • 자체 포함 실행 파일과 40MB 이하의 크기 제한 요구 사항도 많은 옵션을 배제함. Qt는 이러한 요구 사항을 충족할 수 있었지만 오픈 소스 라이선스가 목표와 맞지 않았고 라이선스를 구매하기 싫어했음
    • 종속성을 허용하거나 더 큰 다운로드 크기를 허용하거나 내장된 Windows GUI 컨트롤을 사용하는 경우 상황이 매우 다름
    • 외부 종속성 없이 가벼운 완전 사용자 정의 GUI를 작성하고 허용적인 라이선스를 원한다면 ImGui가 답이 될 것이라고 예상했음
  • WinForms/WPF 아이디어에 큰 결함이 없음을 지적하지만, 두 개의 스택을 요구하는 것 외에는 언급하지 않음. 네이티브 코드를 원하고 C#이 보이지 않기를 원하지만 이유를 설명하지 않음. 역공학에 대한 두려움일 수 있음. UI 코드는 비밀을 포함하는 경우가 드뭄
    • 단일 exe 배포는 때때로 편리하지만, 이 시나리오에서는 번거로울 수 있음. Velopack(스퀴럴)과 같은 패키저를 사용하면 단일 exe로 배포할 수 있으며 자동 업데이트 기능도 추가됨. 설치 시 디스크에 두 개 이상의 파일이 있는 것은 좋은 타협임
    • Windows는 다른 모든 플랫폼을 제외하고 데스크탑 앱을 개발하기에 최악의 플랫폼임
  • LGPL 라이선스 소프트웨어 라이브러리에 대한 상업적 라이선스 비용을 지불해야 한다고 비난하는 개발자에 대해 매우 낮은 의견을 가짐. 그들은 자신의 작업에 대해 보상을 받기를 기대하며, 폐쇄 소스 소프트웨어를 만들어 이를 보장함. 그러나 UI 라이브러리를 만드는 실제 어려운 부분을 해결한 개발자는 세상에 코드를 자유롭게 선물하는 성인이 되어야 함
  • Sciter와 "안티앨리어싱" 문제에 대해... 저자는 애플리케이션에서 고해상도 DPI 지원을 활성화하지 않았음
    • Visual Studio에서 활성화하거나 적절한 매니페스트를 포함하여 해결할 수 있음
    • "Hello C++" 튜토리얼에서 설명됨
  • 더 정확하게:
    • "포터블" (자동 압축 해제 없이 단일 exe)
    • 상업적이고 컴파일된 객체 파일을 재배포하지 않으려 함 (이는 "포터블" 요구 사항과 함께 LGPL을 허용하지 않음)
    • 다크 모드
    • Windows GUI 앱은 고통스러움. 이 요구 사항 중 하나를 제거하면 좋은 옵션이 많음
    • 대부분의 "포터블" 애플리케이션은 win32를 사용함. 보통 포터블은 작고 단순한 애플리케이션으로 기능이 다크 모드나 다른 스타일링 능력보다 중요함
  • 다른 사람들의 오픈 소스에 많은 것을 요구하는 사람으로서, 저자는 자신의 솔루션을 오픈 소스로 공개하려 하지 않음
  • 나는 요구 사항에 맞는 GUI 툴킷을 작업 중임: Slint - https://slint.dev
    • 단일 .exe로 정적으로 컴파일될 수 있으며 크기가 40M보다 작음. 데스크탑에서 무료로 사용할 수 있는 라이선스를 가짐. 다크/라이트 스타일을 제공함. (작업 중인) 드래그 앤 드롭 WYSIWYG 편집기도 포함됨
  • 모든 컨트롤에 대해 사용자 정의 페인트 함수를 작성해야 한다는 것은 오래된 win32 철학이 저자에게 맞지 않음을 보여줌. win32의 핵심 요소는 wndproc임. 대부분의 컨트롤은 부모에게 색상을 물어봄
    • 불편하다면, 작은 라이브러리로 래핑하여 보일러 플레이트를 제거하는 것은 큰 문제가 아님
  • 결과는 종속성이 없거나 최소한의 종속성을 가진 단일 .exe 파일이어야 하며 크기는 40MB 미만이어야 함
    • 컴퓨터에는 이제 현대적인 브라우저가 있음. .exe 파일 대신 단일 .html 파일에 인라인된 이미지/css/javascript를 사용할 수 있음