GOobject System은 왜 만들어졌습니까?
서론
따라서 GTK+ 버전 0.60 이후 설계자들은 향후 개발과 발전을 위해 전체 툴킷을 객체 지향적으로 다시 작성해야 한다는 것을 깨달았습니다.
이제 C는 OOP를 지원하지 않기 때문에 객체 지향성과 상속 상속 계층을 제공하기 위해 GOobject System을 만들었습니다.이제 GObject System을 만드는 데는 개발 시간이 필요하고, 의존성이 높아야 하며, 문제가 많아야 하지만 C 프로그래밍 언어에 객체 지향 기능을 제공하기 위해 Gobject System을 만들어야 했습니다.하지만 그 당시 C++라는 정확한 솔루션을 제공하는 또 다른 솔루션이 있었습니다.
더 퀘스천
GTK+ 개발자들은 왜 그냥 C++를 사용하지 않았을까요?
해설
제 말은, 많은 프로젝트에서 채택한 시간 검증된 솔루션을 사용하지 않고 전체 라이브러리를 생성하는 데 시간을 낭비하는 이유가 무엇입니까?오해하지 마세요, 저는 이 게시물을 C 대 C++로 바꾸려고 하는 것이 아닙니다. (포럼에서 그것은 이미 질렸습니다. 감사합니다.GTK+의 디자이너들이 결정을 하게 된 이유와 문제점을 알고 싶습니다.
저는 적어도 GTK에 관해서는 직접적으로 질문에 답할 수 없습니다.그 답은 GTK+ 개발자들에게 있으므로, 그들을 추적해서 물어봐야 할 것입니다.그러나 C++를 사용하는 대신 C에 객체 지향 시스템을 추가하려는 이유에 대해서는 다양한 이유가 있습니다.바로 생각나는 세가지는
언어 복잡성:C가 꽤 간단한 언어인 반면, C++는 대부분의 (모든 것이 아닌) C 콘텐츠를 지원하고 참조와 같은 편리함과 객체 지향 기능 및 복잡한 템플릿 언어를 지원하여 마음이 복잡합니다.그리고 l값, r값, gl값, pr값, x값과 같은 새로운 값 체계를 보았습니까?제가 얘기할 수 있는 게 많아요.C++는 시간이 주어지면 관리가 가능해지지만, C에서 객체 지향적인 기능을 원하는 데는 여전히 무리가 있습니다.
컨트롤:만약 디자이너들이 C++를 선택했다면 그들은 C++ 철학에 사로잡혀 있었을 것입니다.예를 들어, 다중 상속은 논란의 여지가 있는 생각이고, 그럴만한 이유가 있습니다.GObject 시스템은 단일 상속만 지원하도록 설계되어 상속 계층을 대폭 간소화할 수 있습니다.설계자들이 C++를 사용한다면 사용자를 단일 상속 시스템으로 제한할 방법이 없을 것입니다.다중 상속은 하나의 예에 불과합니다. Gobject 시스템이 C++ 이념과 다른 곳이 많을 것입니다.
상호운용성:이건 아마 큰 것일 겁니다.C++가 깨끗하게 상호 운용되는 몇몇 언어들이 있지만, 사실은 C++가 상호 운용에 그다지 뛰어나지 않다는 것입니다.그러나 C와의 상호 운용성은 거의 당연한 것으로 여겨집니다.C는 인터롭에 대한 사실상의 표준을 형성하기 때문에 프로그래밍 언어의 lingua franca로 종종 묘사됩니다.GObject 설계자들은 C API를 설계하여 다양한 언어로 GTK+ 개발의 문을 열었습니다.
GO 개체는 언어에 독립적으로 사용됩니다.동적 타이핑 기능이 있으며 특정 언어보다는 COM, .NET 또는 CORBA와 같은 런타임 시스템과 비교해야 합니다.언어로 들어가면 C++ 쪽보다는 목표-C 쪽에 기능이 더 있습니다.
Gobject type 시스템은 C++에서는 할 수 없는 일을 합니다.한 가지 예로, 런타임에 새 클래스를 만들 수 있으며 언어에 독립적인 방식으로 이 작업을 수행합니다. 런타임에 Python에서 새 클래스를 정의한 다음 C로 작성된 함수 내에서 해당 클래스의 인스턴스를 조작할 수 있습니다. Python이 관련되었다는 사실을 인식할 필요도 없습니다.
질문에 링크된 위키에서 다음과(와)
역사 (위키피디아에서)
GTK+는 모티프 툴킷을 대체하기 위해 GNP(GNU Image Manipulation Program)에 설계되고 사용되었습니다. Peter Matis는 모티프 툴킷에 환멸을 느껴 GIMP 툴킷이라고 불리는 자신만의 GUI 툴킷을 작성하기 시작했고 모티프를 0.60 릴리스로 성공적으로 대체했습니다.[3] 마지막으로 GTK는 객체 지향으로 다시 작성되어 GTK+로 이름이 변경되었습니다.이는 GIMP의 0.99 릴리즈에서 처음 사용되었습니다.
이것은 당신에게 다음과 같은 것을 알려줄 것입니다.object-oriented paradigm
는 GTK의 언어 선택에 대한 가장 중요한 기준이 아니었으며 (GTK+와 다른) 그 기능은 훨씬 나중에 추가되었습니다.
언급URL : https://stackoverflow.com/questions/9747468/why-was-the-gobject-system-created
'programing' 카테고리의 다른 글
zip 파일 생성/추출 및 기존 파일/내용 덮어쓰기 (0) | 2023.09.24 |
---|---|
Android용 모바일 웹 사이트(응용프로그램 아님)에서 WhatsApp의 공유 링크 (0) | 2023.09.24 |
XSD - 어떤 순서로든 요소를 몇 번이든 허용하는 방법? (0) | 2023.09.24 |
신호R 2.0 오류: 파일 또는 어셈블리 Microsoft를 로드할 수 없습니다.오윈.보안 (0) | 2023.09.24 |
node-gyp이란 무엇입니까? (0) | 2023.09.24 |