paulo1205
(usa Ubuntu)
Enviado em 09/09/2016 - 01:51h
É possível, sim.
Já existiam GUIs antes de existir C++ ou Java, e ambientes de programação nativos, como WinAPI ou X11+Xlib, são totalmente definidos em C. E mesmo ferramentas de nível mais alto existem também com C “puro”, como Xaw, Tk, e MOTIF.
Mas acaba sendo um bocado verborrágico programar uma GUI apenas com os recursos nativos do C. GUIs são mais facilmente modeladas usando orientação a objetos, mas C não foi projetada para implementar suporte a OO diretamente, em nível de linguagem.
Algumas bibliotecas modernas para a construção de GUIs em C procuram permitir modelagem OO mas com implementação feita em C. Para tanto, elas usam pesadamente tipos de dados próprios e macros que servem para descrever relações entre tipos de dados (herança e polimorfismo, de um jeito que lembra, explicitamente, aquilo que C++ faz implicitamente).
A principal biblioteca que trabalha desse modo é a Gtk+, usada pelo Gnome e diversos outros aplicativos. Ela é considerada uma biblioteca moderna e adequada para quem quer fazer programas com GUI em C. No entanto, se a GUI for muito elaborada, o peso de se trabalhar com as macros e tipos de dados próprios acaba ficando muito grande, e o programa acaba ficando com mais cara de Gtk+ (uso explícito da implementação manual de OO) do que com cara de C. Então, a pergunta de muitos críticos acaba sendo esta: se Gtk+ acaba criando uma linguagem própria para conseguir implementar OO, por que não usar logo uma GUI numa linguagem que já tem esses recursos nativamente?