Canonical이 Unity의 차세대 GTT 대신 QT를 선택하는 이유는 무엇입니까?


33

내가 혼란스러워서 너무 많이 쓰여졌지만, 내가 실수하지 않는다면 Canonical이 Qt를 사용하여 모바일 장치를위한 차세대 Unity를 구축하고 있으며, 가까운 시일 내에 데스크톱도 qt로 마이그레이션 될 것입니다.

이 결정을 내리는 기술적 및 / 또는 정치적 이유와 현재 존재하는 Ubuntu 데스크탑 응용 프로그램에 어떤 영향을 줄 수 있는지 알고 싶었습니다.


3
GTK 프로그래밍은 OO 개념을 C로 구체화하려는 비참한 시도 인 GObject를 기반으로하기 때문에 큰 고통입니다. Qt는 OO (및 기타 패러다임)를 즉시 지원하는 C ++ 만 사용합니다. C ++은 완벽하지는 않지만 GObject는 막대를 너무 낮게 설정합니다.
weberc2

답변:


23

메일 링리스트와 Mark Shuttleworth의 블로그 에서 답변을 찾을 수 있습니다 . 이 블로그 게시물은 아마도 가장 잘 대답 할 것입니다.

Natty + 1에 대한 계획의 일환으로, Qt 라이브러리 용 CD에서 약간의 공간을 찾아야하며 CD에 포함되고 Ubuntu의 기본 설치를 위해 Qt로 개발 된 응용 프로그램을 평가할 것입니다.

사용 편의성과 효과적인 통합은 사용자 경험의 핵심 가치입니다. 우리는 우리가 선택한 애플리케이션이 서로간에 그리고 시스템 전체와 조화를 이루도록주의합니다. 역사적으로, 이는 동일한 개발자 툴킷을 사용하여 기본적으로 일정한 양의 조화가 이루어지기 때문에 Gtk를 사용하여 작성된 응용 프로그램을 매우 선호했습니다. 즉, OpenOffice와 Firefox가 처음부터 존재했기 때문에 Gtk는 절대적인 요구 사항이 아닙니다. 내가 지금 주장하는 것은 그것이 중요한 가치이며 툴킷은 그 목적을위한 수단 일 뿐이라는 것입니다. 우리는 앱이 개발자의 기술적 선택에 기초하여 편견이 아니라 요구 사항을 얼마나 잘 충족하는지에 따라 평가해야합니다.

Ubuntu 기본 설치를위한 앱을 평가할 때 다음을 요청해야합니다.

  • 자유 소프트웨어입니까?
  • 동급 최고입니까?
  • 시스템 설정 및 환경 설정과 통합됩니까?
  • 다른 응용 프로그램과 통합됩니까?
  • 마우스 나 키보드를 사용할 수없는 사람들이 액세스 할 수 있습니까?
  • 시스템의 나머지 부분과 일관된 모양과 느낌이 있습니까?

물론 개발자가 선택한 Qt는 처음 두 가지에 영향을 미치지 않습니다. Qt 자체는 오랫동안 GPL 하에서 사용 가능했으며 최근에는 LGPL 하에서 사용 가능해졌습니다. 그리고 Qt로 작성된 동급 최고의 소프트웨어가 많이 있으며, 이는 매우 유능한 툴킷입니다.

그러나 시스템 설정과 환경 설정은 오랫동안 Qt와 Gtk 사이에서 마찰의 원인이었습니다. 시스템 설정 및 기본 설정과의 통합은 응용 프로그램이 시스템에서 "포함"한다는 의미에서 중요합니다. 다른 모든 응용 프로그램을 관리하는 데 사용하는 것과 동일한 도구를 사용하여 해당 응용 프로그램을 관리하는 기능과 사용자가 응용 프로그램에 대해 가질 수있는 설정 및 환경 설정의 종류에 영향을줍니다. Gtk 앱은 모두 중앙에서 관리 가능한 환경 설정 저장소를 사용하고 KDE 앱은 다르게 작동하기 때문에 이것은 우분투의 Qt / KDE 애플리케이션에서 전통적으로 문제가되었습니다.

이를 해결하기 위해 Canonical은 Qt에 대한 dconf 바인딩 개발을 추진하고 있으므로 우분투의 다른 모든 것과 동일한 설정 프레임 워크를 사용하는 Qt 앱을 작성할 수 있습니다. 우리는 dconf를 잘 알고있는 Ryan Lortie와 계약을 맺었으며, 고객을위한 맞춤형 개발 작업을 위해 Qt를 사용하고있는 Canonical의 일부 직원들과 협력 할 것입니다. 우리는 그 결과가 Qt 개발자에게 자연스럽고 dconf의 의미와 스타일을 완벽하게 표현할 것이라고 확신합니다.

Qt 팀은 광범위한 Ubuntu 커뮤니티에서 오랫동안 잘 일했습니다. – 우리는 6 개월마다 UDS에서 훌륭한 Qt 대표를 가지고 있으며, Kubuntu 팀은 Qt 패키징 및 유지 보수에 대한 깊은 경험과 관심을 가지고 있으며 Qt 업스트림과 다양한 기술 간에는 많은 훌륭한 기술 교환이 있습니다. Canonical을 포함한 Ubuntu 커뮤니티의 일부. 예를 들어, Qt 사람들은 uTouch를 통합하기 위해 노력하고 있습니다.

나는 명백한 장소에서“Qt”와“KDE”를 구별 할 것입니다. KDE 앱은 dconf 시스템 구성에 대해 전혀 모르므로 결과적으로 Ubuntu 데스크톱과 쉽게 통합 할 수 없습니다. 따라서 우리는 Amarok이 곧 Banshee를 대체 할 것을 제안하지 않을 것입니다! 그러나 dconf가 일단 큰 Qt 바인딩을 갖 으면 KDE 커뮤니티가 고려한다는 것은 전적으로 그럴듯하다고 생각합니다. 원하는 경우 대화를 이끌어가는 사람들이 더 많으므로 여기서 더 이상 아이디어를 발표하지 않겠습니다. 그럼에도 불구하고 KDE 앱이 표준 KDE 메커니즘 외에 dconf를 배우는 것을 배우면 우분투 기본 설치의 후보가 될 것입니다.

Qt에 공개하기로 결정한 것은 그놈에 대한 비판이 아닙니다. 자유 소프트웨어의 다양성과 복잡성을 축하합니다. 사용 편의성과 통합의 가치는 그놈과 공유 가치를 유지하며 그놈 개발자 및 프로젝트 참여자와의 협업을위한 훌륭한 기반이됩니다. 아마도 그놈 자체는 아마도 Qt를 받아들이지 않을 것입니다. 그러나 그렇게한다면, 우리가이 길을 타파하려는 의지가 리더십에 기여할 것입니다. 정식 방식에서 일정량의 차이를 받아들이면 역동적 인 생태계를 만드는 것이 훨씬 쉽습니다. 말하기 디자인에 대한 우리의 작업은 그놈을 중심으로하며, 그놈 3.0과 gtk3로 이동할 때 현재의 설정과 환경 설정이 있습니다.

물론, 이것은 그 관계에서 재미를 찌르는 사람들에게는 완벽한 기회이지만, 내 생각에 가장 중요한 것은 실제로 그놈 배너 아래에 응용 프로그램을 작성하는 사람들과의 견고한 관계입니다. 우리는 자유 소프트웨어 개발자들의 노력을 중요하게 여길 수있는 가장 좋은 방법이되기를 원합니다. 즉, 매일 수백만 명의 사람들에게 실질적인 변화를 가져 오는 최선의 방법, 그리고 그것들을 연결하는 가장 좋은 방법입니다 그들의 사용자.

Qt를 훌륭한 툴킷으로 만든 Nokia의 트롤 테크 (Trolltech) 직원들에게 감사합니다. 그것을 사용하고 우분투 경험의 일부가되기를 원하는 개발자들에게 – 환영합니다.


6
마지막으로 QT가 완전히 무료인지 확인했지만 이전과 같지 않았지만 이제는 모두 무료입니다.
Mario Kamenjak

5
@VassilisGr Qt는 현재 한동안 GPL과 호환되었습니다 (다른 GPL과 마찬가지로 무료입니다). 그러나 Qt가 커뮤니티에서 코드를 제공하려면 이중 Q 라이센스를 통해 해당 기여를 부여해야합니다. 오늘날 Qt를 소유 한 회사라면 누구나 누군가가 비용을 지불하면 GPL이 아닌 라이센스를 코드에 판매 할 수 있습니다. 어떤 "자유 소프트웨어의 자유"의 스톨만 정의에 문제가되지 않습니다 (우리가 단지 ... GPL을 사용하여 비용을 지불하지 않고 사람들의 소프트웨어를 복용 고려 등으로) 우분투가 지불되지 않을 것이다, 리눅스는 GPL이 될 것입니다.
HostileFork

14

GTK +는 해상도 독립성을 지원하지 않으며, 최신 모바일 장치는 픽셀 밀도가 매우 높습니다. 모바일 화면에서 GTK + 애플리케이션을 실행하면 모든 사용자 인터페이스 요소가 사용하기에 너무 작습니다.

이것은 2008 년부터 GTK +에서 공개 버그 였습니다. 2014 년에 "우리는 현재 dpi 척도 지원을하고 있습니다. 이것은 완전히 같은 것은 아니지만이 버그를 쓸모 없게하기에 충분히 가깝습니다"라는 의견입니다.

GTK + 3이 출시되었을 때, 프로젝트는 호환성을 어길 수 있기 때문에 해상도 독립성을 추가 할 수있는 완벽한 기회를 가졌습니다. 그들은하지 않기로 선택했고 지금은 너무 늦었습니다.

GTK + 로드맵 그게있을 것이다 후가 4.0 다음 주요 릴리스를 발표 할 예정이다, 그래서 해상도 독립성, 4.0 이후에 출시 될 예정입니다. 만약 그들이 그 계획을 고수한다면, 높은 DPI 데스크탑 모니터와 랩탑 모니터가 이미 이용 가능하고 새로운 표준이 되려고하기 때문에 데스크탑 GNU / Linux조차 GTK +를 포기해야 할 것입니다.


2

기술적 / 실용적인 이유 : Nokia는 Trolltech을 구입하고 QT에 많은 투자를했습니다. 가벼우 며 모바일 플랫폼에 대한 수년간의 최적화가 있습니다. 노키아에 대한 귀하의 현재 의견에 관계없이, N900은 그 시간보다 몇 년 앞서있었습니다. 그러나 나는 결정에 대한 실제 지식이 없다.


2
QT는 또한 휴대 성이 훨씬 뛰어납니다. QT를 사용하여 응용 프로그램을 만드는 개발자에게는 부담이 될 것입니다 .Android, Blackberry, Windows Mobile, WebOS 등 많은 OS에서 기본 지원을 찾을 수 있기 때문입니다. 물론 Mac OS와 Windows. QT는 또한 훨씬 더 많은 기여자들로부터 혜택을받습니다.
마이크 스튜어트

1

Ubuntu CTO Matt Zimmerman의 블로그 도 유익합니다.

내가 최근에 Qt에 대해 생각한 것은 바로이 정신입니다. 우리는 Ubuntu를위한 응용 프로그램을 빠르고 쉽고 고통없이 개발하기를 원하며 Qt는 응용 프로그램 개발자를위한 옵션입니다. 이것에 대해 생각하면서, 나는 Qt의 장점과 우분투의 새로운 방향 사이에 약간의 공통점이 있음을 깨달았습니다.

  • Qt는 임베디드 장치에서 널리 사용되기 때문에 ARM과 x86 에서 오랫동안 사용되어 왔습니다 . 소비자 제품은 ARM에서 Qt를 사용하여 10 년 이상 제작되었습니다. 우리는 현재 거의 2 년 동안 ARM 용 Ubuntu 제품을 제공하고 있으며 10.10은 Freescale, Marvell 및 TI의 참조 보드를 포함하여 그 어느 때보 다 더 많은 ARM 보드를 지원합니다. Qt는 최신 ARM 칩에 혜택을주기 위해 ARMv7 최적화를 추가하고 있습니다. 우리는 소프트웨어 선택을 희생하지 않고 OEM에게 하드웨어 선택을 제공하기 위해이를 수행합니다. Qt는 응용 프로그램 개발자에게도 이와 동일한 선택을 유지합니다.
  • Qt는 Windows, MacOS 등의 공식 포트와 Android, iPhone 및 WebOS에 대한 실험적인 커뮤니티 포트를 갖춘 크로스 플랫폼 애플리케이션 프레임 워크입니다. 강력한 크로스 플랫폼 지원은 Qt의 원래 원칙 중 하나였으며 공식 포트의 성숙도를 보여줍니다. Windows가 설치된 컴퓨터에 Ubuntu Light를 설치하고 Android 및 iPhone에 Ubuntu One을 설치하려면 다른 플랫폼과의 상호 운용성이 필요합니다. Qt를 선택하여 우분투 사용자에게 접근 할 수있는 Windows를 대상으로하는 방법을 이미 알고있는 많은 개발자가 있습니다.
  • Qt는 상당히 성숙한 터치 입력 시스템을 가지고 있으며, 이제 멀티 터치 및 제스처 (QML 포함)를 지원하지만 Windows 7 및 Mac OS X 10.6에서만 완벽합니다. 한편 Canonical은 Qt 및 기타 툴킷의 이점을 위해 Linux 및 X11 용 저수준 멀티 터치 프레임 워크를 개발하기 위해 커뮤니티와 협력하고 있습니다. 이러한 노력은 결국 중간에 이루어질 것입니다.

전반적으로 Qt는 Ubuntu (특히 현재) 응용 프로그램을 개발하려는 사람들에게 많은 것을 제공한다고 생각합니다. 전체 쿠분투 배포판은 말할 것도없고 VLC와 같은 널리 사용되는 크로스 플랫폼 애플리케이션에 이미 적용되었습니다. 작년에 이런 일이 발생했을 때 놓쳤지만 Qt는 현재 LGPL 2.1 또는 GPL 3.0에서 사용할 수 있으므로 거의 모든 우분투 응용 프로그램에 적합합니다. 그것은 큰 개발자 커뮤니티뿐만 아니라 강력한 상업적 후원을 가지고 있습니다. 물론 단일 솔루션이 모든 개발자의 요구를 충족시킬 수는 없으며, Ubuntu는 이러한 이유로 여러 툴킷 및 프레임 워크를 지원하지만 Qt는 앞으로 나아갈 수 있도록 툴박스에 가지고있는 훌륭한 툴인 것 같습니다.

아르스 테크니카의 글 이 블로그 게시물을 논의 몇 가지 통찰력을 제공합니다 :

Qt는 써드 파티 개발자를 Linux로 가져올 수 있습니다

Gtk +는 여전히 가치가 있고 네이티브 리눅스 소프트웨어를 구축하기 위해 계속해서 사용해야하는 여러 가지 이유가 있지만, Qt는 이제 여러 플랫폼을 목표로하는 ISV의 확실한 선택입니다. Qt를 사용하면 기본 플랫폼의 기본 모양과 느낌을 매우 쉽게 준수하거나 대상 장치 또는 폼 팩터에 가장 적합한 완전 맞춤형 사용자 인터페이스를 구축 할 수 있습니다.

Nokia와 Intel이 MeeGo를 광범위한 장치로 가져 오면서 일부 주요 상용 소프트웨어 공급 업체를 유치 할 것입니다. 이러한 소프트웨어 회사는 MeeGo에서 사용하는 것과 동일한 코드를 사용하여 모바일 Qt 애플리케이션을 Linux 데스크탑으로 가져 오는 것이 비교적 쉽습니다. Qt는 특히 쉽게 만들 수 있도록 설계되었습니다. 데스크탑 리눅스에서는 다른 방법으로는 사용할 수없는 타사 응용 프로그램을 가져 오기 때문에 이는 큰 이점입니다.

툴킷에 대한 Nokia의 지원으로 일부 유명 모바일 소프트웨어 공급 업체가 이미 Qt를 적극적으로 수용하고 있다는 점은 주목할 가치가 있습니다. 예를 들어, 모바일 비디오 스트리밍 회사 Qik은 MeeGo로 가져 오기 위해 대중적인 응용 프로그램의 실험적인 Qt 기반 포트를 개발하고 있습니다.

이 기사의 저자는 Gwibber IM 앱을 만든 사람이므로 Linux 용 GUI를 개발 한 경험이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.