Quais são os diferentes tipos de programação de computadores?
Dado que a definição de programação de computadores é tão ampla e o uso de programas tão difundido, na verdade existem muitos tipos de programação de computadores, frequentemente definidos de maneiras totalmente diferentes. Os tipos mais básicos de programação de computadores podem ser detalhados pela linguagem de programação - como C, Lisp ou Java® - usada pelo programador. Em outros contextos, pode haver apenas dois tipos de programação de computadores - sistema e aplicativo. Algumas distinções são feitas entre programação de rede, programação baseada na Web e programação de desktop. Às vezes, os diferentes tipos de programação de computadores podem ser separados pela plataforma de destino, como programação de sistemas embarcados, programação de sistema em tempo real (RTS) ou programação de banco de dados.
Os diferentes tipos de programação de computadores geralmente são definidos pelo idioma usado para escrever o software. Existem muitas linguagens disponíveis, mas elas se enquadram amplamente nas linguagens estruturadas, como C, ou nas linguagens orientadas a objetos, como Java®, sendo que ambas são comumente usadas por profissionais para diferentes tarefas. As linguagens também podem ser imperativas, como as mencionadas anteriormente, ou funcionais, como Lisp, nas quais os programas consistem em uma série de funções em vez de comandos. Alguma programação de computador é feita exclusivamente com linguagens de script, que são documentos legíveis por humanos interpretados que executam operações em outra estrutura.
Tradicionalmente, existe uma distinção entre dois tipos amplos de programação de computadores. O primeiro é a programação de aplicativos e envolve a criação de programas que podem ser usados diretamente para alguma função. Como alternativa, existe a programação do sistema, que busca projetar programas para o gerenciamento de hardware ou estruturas nas quais os aplicativos podem ser executados, como sistemas operacionais.
À medida que a tecnologia para redes e comunicações remotas se tornou mais amplamente usada, certos tipos de programação de computadores começaram a se diferenciar dos outros campos da programação de computadores. A programação de rede é considerada diferente devido ao conhecimento necessário de protocolos de rede e interfaces de hardware. A programação de aplicativos ou servidores baseados na Web requer conhecimento específico de restrições de segurança, protocolos da Internet e padrões exclusivos de design de programação.
Existem também tipos de programação de computadores específicos para um determinado campo ou hardware de destino. A programação de banco de dados envolve o uso de linguagens de consulta especiais, scripts e outros elementos para interagir com infra-estruturas específicas de banco de dados. A programação de jogos envolve o conhecimento de hardware gráfico, algoritmos gráficos e, às vezes, técnicas especiais de otimização. Os sistemas incorporados, como dispositivos portáteis ou consoles, podem envolver especificações exclusivas de hardware e conhecimento das bibliotecas de fornecedores. Uma programação mais avançada do sistema em tempo real pode envolver a criação de software de controle à prova de falhas para usinas de energia nuclear ou hardware militar.