SOBRE A LINGUAGEM C++. PORQUE O PADRAO DA LINGUAGEM C++ É EM AMBIENTE MS-DOS?
TIPO GALERA, NAO SEI SE É SÓ EM C++ QUE O PADRAO É EM MS-DOS ACHO QUE EM TODAS AS LINGUAGENS QUE NAO SAO ORINENTADAS A OBJETOS SAO ASSIM. MAS SE EU FIZER UM PROGRAMA C++ NO LINUX COM PADRAO MS-DOS RODARIA A TELA PRETA NORMALMENTE???
MUITAS PESSOAS PERGUNTAM ISSO SE NAO TIVER O CMD NO SEU PC PROGRAMAS CRIADOS EM AMBIENTE MS-DOS NAO RODAM. PRECISA DO CMD PARA RODAR PROGRAMAS CRIADOS EM C++ EM ABIENTE MS-DOS??????????????????
Comments
O padrão de C++ não tem nada a ver com o ms-dos. E C++ é uma linguagem orientada a objetos. Uma aplicação rodar em modo gráfico não depende de uma linguagem orientada a objetos, pois a orientação a objetos é só uma forma de organizar o programa. Um programa pode rodar em modo gráfico sendo escrito em C, em Lua, em Basic.
O C++ foi escrito para ser independente do sistema operacional. Ele roda em modo de comando de linhas porque nem todos os sistemas operacionais suportam aplicações gráficas, o que suportam cada um tem uma arquitetura própria para lidar com isso e a parte gráfica não é uma das partes imprecindíveis num programa. Tem muito mais coisas para se tratar na biblioteca padrão. Tem a parte de entrada e saída, te a parte de tratamento de erros, a parte de manipulação de strings, de operações matemáticas, operações com listas e dicionários. Muitas coisas mais básicas que uma linguagem pode ou não incluir em seu padrão.
O C++ não foi feito para DOS. Um programa no windows pode ser linkado para executar no terminal. E no linux ou qualquer outro sistema unix isso ocorre mais naturalmente. Se o programa for chamado no terminal, então ele rodará com uma janela do terminal de comandos e se ele precisar criar uma janela gráfica, ela aparecerá. E se o programa for chamado pelos dois cliques mesmo, ele abrirá o terminal se precisar fazer alguma operação de escrita ou leitura.
Se quiser fazer um programa gráfico em C++, é melhor deixar essa tarefa para um toolkit de sua preferência do que incluir essa inutilidade ao padrão. Se isso estivesse no padrão, como faria-se para rodar C++ num tablet ou num celular? E para escrever um sistema operacional? Dependeria de OpenGL, desenharia os pixels na mão, interfacearia com o sistema operacional? Como trataria os eventos de mouse, teclado, touchscreen, rede?
Então o melhor é deixar fora do padrão e usar um QT para isso. Ou então FLTK, Juce, IUP, Gtkmm, winforms, WxWidgets ou mesmo OpenGL.
O C++ não é baseado em MS-DOS. Pelo contrário o C++ é derivado de C que é baseado em UNIX.
O que faz com que um programa C++ rode no modo console (MS-DOS) é o compilador/linker que foi utilizado.
Em C++ você pode criar programas em modo console ou em modo gráfico utilizando inclusive Windows forms, em C++ é possível com a utilização de algumas bibliotecas específicas criar inclusive jogos 3D.
Só depende das bibliotecas e do compilador ou IDE que você usa.
Além disso os programas escritos em C e C++ são alguns dos mais portáveis que existem.
E o Linux foi escrito quase totalmente em C.
C, C++, Java, C#, Python
Todas estas linguagens por padrão irão rodar os códigos no console.
Seja a linguagem orientada a objetos ou não!
O que você precisa fazer é usar bibliotecas que acessam os gráficos e desta maneira você poderá criar aplicações que usem de janelas, formulários, imagens, etc.
Entenda que não existe mais ambiente MS-DOS no Windows, e no Linux nunca existiu este ambiente MS-DOS. O que existe em ambos, Windows e Linux, é o terminal de comandos (a tela preta que você citou).
Vc pode programar em C++ orientado a objeto, assim como vc pode desenvolver seu sistema com ambiente gráfico.
Se vc compilar um programa no windows, vc não vai roda-lo no linux, e vise-versa, mesmo se o seu sistema usar o terminal, no caso do windows do ms-dos, no linux o shell. Os sistemas possuem arquiteturas diferentes. vc pode usar o mesmo codigo fonte para os 2 sistemas, mas na hora de compilar, terá q usar um compilador proprio para cada sistema operacional.
Quanto ao windows não ter o ms-dos, vc pode esquecer. Muitos processos do windows rodam no ms-dos, mas de forma "invisivel", então, ainda vai demorar pra desenvolverem o windows q não precise do ms-dos.
?
A linguagem é a mesma em qualquer ambiente.