2013-08-06 1 views
-1

수학 연산과 같은 작업 만 수행하고, 콘솔로 인쇄하고, 시스템 관리를 고급 언어로 수행 할 수있는 이유는 무엇입니까?GUI를 고급 언어로 만들 수없는 이유는 무엇입니까?

나는 GUI를 만드는 방법을 생각하고 있었고 왜 C 언어로 그 일을 할 수있는 방법이없는 것 같았는지 모두들 "응용 프로그램 삽입하기"라고 말합니다.하지만 확실한 고수준 언어 뿐만 아니라? (나는 그것이 얼마나 쉽게, 메신저 프로그램을 이해하려고 노력에 관심이 아니에요).

가 물리적으로 불가능하거나 실용적이지?

C는 기계 코드로 컴파일하고로 실행되는 경우 관리자라면 아무런 제약이없는 바이너리를 실행하고 있습니다 ... 원하는대로 무엇이든 할 수 있어야합니다 ...

감사,

마크

P. 추가적인 프레임 워크 없이는 C가 아닙니다.

+7

"수학 연산, 콘솔로 출력, 시스템 관리를 고급 언어로 할 수있는 이유는 무엇입니까?" - 어, 그건 힘든 주장이야. "그 언어를 잘 모르기 때문에"대답 할 수 있습니까? –

+2

C는 매우 고급 언어가 아닙니다. 귀하의 질문에 대한 실제 답변은 OOP 또는 lambdas와 같은 고급 기능이없는 GUI를 작성하는 것은 매우 성가신 일입니다. – SLaks

+1

Windows는 어셈블리 언어로 작성되지 않았습니다. – cHao

답변

4

표준 라이브러리에 GUI를 만들 수없는 이유는 플랫폼간에 방법이 다르다는 것입니다. C, C++ 등은 대부분의 경우 이식성을 위해 노력하기 때문에 플랫폼 별 (또는 대부분 플랫폼 별) API 사양을 피하는 경향이 있습니다.

C로 GUI를 작성하는 방법이 있습니다. 내 머리 꼭대기에는 GTK와 기본 Win32 API가 있습니다. 당신은 쉽게 포인트 앤 클릭 방식을 사용하지 않습니다. :) C는 Java와 같은 언어가 할 일을 많이하지 않기 때문에 일반적으로 많은 코드가 포함됩니다. 많은 것은 자신을 위해해야합니다.

GTK를 확인하려면 UI 라이브러리로 GTK를 사용하는 코드 (여러 언어로 표시) 용 UI를 디자인하기 위해 만들어진 Glade이라는 도구가 있습니다. 대부분의 다른 UI 라이브러리는 어딘가에 도구를 갖게 될 것입니다 (라이브러리를 만든 사람들이 아니라면 상용구 코드 작성에 지친 사람이 :).).

0

예, 물론 C로 GUI를 만들 수 있습니다. 그렇게하기위한 프레임 워크가 많이 있습니다.

더 쉬운 방법으로 GUI를 만드는 기능을 제공하는 다른 언어/환경이 있습니다. 종종 C는 첫 번째 선택이 아니지만 여전히 할 수 있으며 어떤 사람들은 여전히 ​​그것을 선택할 수 있습니다.

1

첫째로, 제 개인적인 의견은 C가 오늘날 사용되는 대부분의 다른 언어에 비해 저수준 언어라는 것입니다.

그러나 요점은 입니다.은 C로 GUI를 만들 수 있습니다. 수행해야 할 일은 그렇게하는 라이브러리를 찾는 것뿐입니다. GUI는 OS에 크게 의존하기 때문에 C에서 GUI 기능을 내장 할 수 없으며 C는 크로스 플랫폼 언어로되어 있습니다 (대부분의 언어는 실제로 크로스 플랫폼을 지향합니다). OS가 어떻게 작동하는지 가정합니다. 대신 라이브러리는 원하는대로 플랫폼에 따라 다를 수 있습니다.

거의 모든 다른 언어에도 동일하게 적용됩니다. C#과 같은 많은 현대 언어의 주요 구현은 이미 GUI 라이브러리가 있으므로 초보자에게는 하나의 언어가 GUI 기능을 지원하지만 다른 언어는 지원하지 않는다는 착각을 불러 일으킬 수 있습니다.

물론 오늘날에는 GUI 코드를 직접 작성하는 대신 코드를 생성하는 도구를 사용하여 GUI를 설계하는 것이 훨씬 더 가능합니다. 이것은 최고 수준의 언어에 대해서조차도 마찬가지입니다. 그러나 이것이 사용자가 직접 가서 GUI 코드를 작성할 수 없다는 것을 의미하지는 않습니다.

+0

답변 해 주셔서 감사합니다. GUI 작업을위한 내장 함수가없는 이유는 이식성을 유지하는 것이기 때문에 다른 내장 함수가 콘솔/화면에 어떻게 인쇄합니까? OS에만 국한되지 않습니까? – user2658577

+1

이러한 언어가 지원하는 것은 * 표준 스트림 * (내가 아는 모든 환경에서 제공되는 메커니즘)에 대한 입력과 출력입니다. 운영 체제는 일반적으로 콘솔이있는 표준 스트림을 나타냅니다 (예를 들어 대신 다른 응용 프로그램으로 리디렉션 될 수 있음). –

+0

네, 고마워요! 나는 분명히 컴퓨터에 대해 많이 알지 못한다. 그러나 그것은 확실히 도움이되었습니다. – user2658577

0

이것은 소프트웨어 개발의 관점에서 좋은 질문입니다. 이 프로세스는 먼저 응용 프로그램의 정의, 달성해야하는 기능/제공해야합니다. 요구 사항이 정의 된 후, THEN 및 ONLY THEN은 해당 응용 프로그램과 응용 프로그램이 실행될 하드웨어를 코딩하기 위해 선택된 언어입니다.

즉, 언어의 선택은 문제의 정의에 비해 두 번째 자리를 차지합니다. 선택해야 할 언어와 플랫폼이 너무 많아서 선택할 우수한 언어가없는 응용 프로그램을 정의하는 것이 거의 불가능합니다.

GUI 개발을 위해 VisualStudio/C#/C/C++ 환경을 좋아하고, 응용 프로그램이 * nix 및 Windows, Eclipse/Java에서 실행되어야한다면.

0

C의 설계를 뒷받침하는 주요 드라이버 중 하나는 다양한 플랫폼에서 구현하기가 쉽고 GUI의 개념을 지원하는 것은 아니며 동작 및 동작에 대한 다른 표준을 가지고있는 플랫폼이 아닙니다. 외관. C 표준은 기본적으로 모든 플랫폼에서 을 처리 할 수있는 최소한의 기능을 제공하지만 플랫폼 고유의 그래픽 (그래픽 [GUI 포함], 네트워킹, 사운드, 파일 시스템 관리 등)은 세 번째 -party API 및 라이브러리.

일 수 있습니다. 시간이 지남에 따라 변경됩니다. 결국 2011 표준은 플랫폼 관련 것으로 간주되었던 스레딩에 대한 기본 지원을 도입합니다. 그러나 GUI 도구 키트는 으로 큰 경향이 있으며 (자세한 내용은 Swing 참조) 많은 복잡성을 추가합니다.

은 고유 한 GUI 툴킷을 지정하는 언어 (Java는 적어도 3 - AWT, Swing, JavaFX)를 지정하는 데 분명히 구현이 얼마나 복잡한 지 문제입니다.

관련 문제