UI 프로그래밍에 적합한 패러다임


9

이것은 OOP가 GUI 프로그래밍에 대한 올바른 패러다임이 아니라고 말한 OOP 기술의 죽음에 대한 의견에서 나온 더 구체적인 질문 (또는 실제로는 두 가지이지만 관련이 있습니다) 입니다.

거기에서 여기에 의견을 읽으면 여전히 배워야 할 느낌이 있습니다. 어떤 프로그래밍 패러다임이 적합한 것으로 간주되며 왜 다른 것들보다 우수합니까 (아마 설명이 필요한 예가 있습니까?)

제목과 질문에서 tk-example을 제거했습니다.


@Inca-SK-logic (이 의견을 작성한 사람)은 광신적 임무를 수행하는 것처럼 가능한 모든 경우에 OOP와 싸 웁니다. 나는 그가 tk가 OOP와 전혀 관련이 없다는 것을 실제로 증명할 수 있는지 의심합니다.
Andreas Dolk 2018 년

-1 : 개인 의견을 마치 사실 인 것처럼 인용합니다. "OOP는 GUI 프로그래밍을위한 올바른 패러다임이 아니다"는 GUI 프로그래밍을위한 OOP에 크게 의존하는 C #과 Objective C에 직면 할 것이다. 그것이 올바른 패러다임이 아니라면 애플의 거대한 시장 점유율은 실제로 존재하지 않거나 무언가가 아닙니다.
S.Lott

1
@ S.Lott 올바른 패러다임은 아니지만 GUI는 선언적이어야합니다. 당신은 옳은 것과 인기를 혼동하는 것 같습니다.
Raynos 2016 년

@Raynos : "선언적". 마찬가지로 일부 관련 개체? 나는 선언적인 것이 많은 객체들 사이의 관계가 아니라는 것을 알지 못합니다. 과. 그것은이 질문에 대한 주제가 아닌 것 같습니다. 문제는 OO에 관한 것으로 보이지만 GUI를 작성하는 더 좋은 방법은 아닙니다. 제목은 실제 질문과 비교하여 오해의 소지가있는 것 같습니다. 둘 다 좋지 않습니다.
S.Lott

1
@ 잉카 : 그것을 단순한 과장으로 간주하지 마십시오.
S.Lott

답변:


9

나는 일반적으로 OOP의 지지자가 아니지만 GUI 프로그래밍은 OOP의 장점을 활용할 수있는 최고의 기회를 제공한다고 말하고 싶습니다. OOP의 다형성 및 상속을 사용하면 다양한 위젯을 훨씬 쉽게 구현할 수 있습니다. PLT Racket의 GUI 라이브러리 가 좋은 예입니다.


2
기능적 반응 형 프로그래밍이 더 적합합니다.
SK-logic

@ SK-logic : 당신은 그것에 대해 아주 좋은 사례를 만들 수 있으며, Common Lisp (셀에 대해 들어 보셨습니까?)의 흥미로운 작업이 그 방향으로 이루어졌습니다. 보다 정확한 답을 위해 답변을 편집하겠습니다.
Larry Coleman

5

위젯과 레이아웃으로 구성된 일반적인 GUI는 완전히 선언적입니다. 위젯 자체는 서로 상호 작용하지 않으므로 객체와 메시지 개념이 다소 외계인입니다. 계층 적 선언 DSL은 현재 일종의 주류이며, Tk는 초기 예 중 하나이며 WPF는 같은 것에 대한 현대적인 접근 방식입니다. 기능적 반응 형 프로그래밍은 또 다른 흥미로운 (그러나 널리 보급되지는 않은) 접근 방식입니다.

어떤 사람들은 계층 구조가 정의 된 곳 어디에서나 OOP를 보는 경향이 있습니다. 이는 잘못된 계층 구조 (읽기-대수적 데이터 유형)와 Kay의 OOP 정의 사이에는 아무런 관련이 없습니다.


3
내 경험상 위젯은 더 나은 GUI를 만들기 위해 서로 상호 작용해야하며, 내가 경험 한 선언적 시스템 (HTML + cs를 포함한 xml 기반 시스템)은 상호 작용 부분에서 가능성이 부족합니다. 또한 선언적 (프롤로그) 및 기능적 (Haskell)을 사용하여 UI를 통합 한 경험은 실제로 쉬운 인상을주지 못했습니다. 내가 더 자세히 논의 할 수있는 자료가 있습니까? 특정 접근 방식이 더 나은 이유에 대해 설명하지 않는 매우 추상적 인 (또는 매우 기본적인) 예를 생각해 냈습니다
Inca
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.