Alexandre,
Existem diversas linguagens disponíveis, cada uma tem suas vantagens e desvantagens. Somente com o tempo você descobrirá. Por exemplo o C trabalha com ponteiros, o que às vezes é extraordinariamente difícil de entender ou o que ocasiona erros, caso o programador cometa algum erro. Já no Java não existem ponteiros. Entretanto o Java (multiplataforma e não o nativo) é cerca de 20 vezes mais lento do que o C. Por sua vez o Java é Orientado a Objetos e o C não, etc... Tudo depende do uso.
Algumas linguagens e suas características:
Linguagem C (Padrão ANSI)*:
Linguagem procedural totalmente portável* para qualquer tipo de plataforma e sistema operacional. Grande parte do Gnome foi feita em C (além de outras linguagens). Com ela é possível programar tanto para console quanto para interfaces gráficos como o Gnome, KDE, etc... Porém a programação é feita utilizando API's. Trata-se de uma programação orientada a eventos e não Orientada a Objetos. Para programar em C no linux você pode usar o Glade (IDE) e criar as interfaces visualmente. Existe também o Qt Creator (antigo Qt Designer). O Glade usa a biblioteca gtk e o Qt Creator usa a qt.
Linguagem C++ (Padrão ANSI):
Variante do C Orientada a Objetos. Praticamente quase todos os SGBD (Sistema Gerenciadores de Bancos de Dados) foram feitas em C/C++. MySQL, SQL Server, etc... A maioria dos Sistemas Operacionais também foram feitas em C/C++: Windows, Linux, MacOS, Unix, etc...
Linguagem Java:
Linguagem Orientada a Objetos multiplataforma que roda em vários sistemas operacionais sem precisar ser recompilada (desde que o so tenha um JRE - Java Runtime Environment). É uma linguagem compilada e interpretada e por isso é bem mais lenta. É recomendável para aplicações que precisam ser multiplataformas e que não exijam muito em termos de processamento. Jogos para PC 3D no nível de Doom 3, Quake 4, FarCry, Half-Life, etc... é praticamente inviável de ser feita. Existe a possibilidade de compilar o Java para suporte nativo, porém, nesse caso você ganha velocidade e perde "portabilidade sem a necessidade de recompilar" pois terá que compilar o código para cada SO diferente. Ex.: Windows, Linux, MacOS, BeOS, OpenSolaris, etc... O Java é mais usado para aplicações comerciais para a Web. É o que está "bombando" hoje em termos de programação Web.
Linguagem Object Pascal:
Variante do Pascal porém Orientada a Objetos também. A mesma linguagem que o Delphi (Windows) usa. O similar para linux seria o Lazarus ou o Kylix. Muitas empresas, principalmente de pequeno e médio porte usam o Delphi (Object Pascal) para desenvolver aplicações Desktop cliente-servidor de pequeno e médio porte. Possui bastante bibliotecas e componentes.
Bom, acho melhor parar por aqui, você também pode procurar por: Python, Perl, Tcl/TK (todas elas usadas no linux também).
Orientação a Objetos X Linguagem Estruturada
Bom, são muitas as diferenças. Resumindo: com a o voce pode reutilizar o código de forma "inteligente" sem ter que criar bibliotecas enormes. Você pode usar "herança" ou "herança multipla" no caso do C++ por exemplo. Isso aumenta a produtividade do programador pois as tarefas mais difíceis ficam "encapsuladas" dentro das "classes". Quanto mais você se distancia das linguagens de máquina ou de baixo e médio nível (Assembly e C por exemplo) menos você se preocupa com tarefas difíceis como acessar uma determinada área no disco rígido ou gerenciar a memória de um SO.
A linguagem estruturada é bastante usada em microcontroladores, televisões, relógios digitais, equipamentos eletrônicos em geral pois são linguagens mais leves e rápidas.
Bom, acho que você terá que pesquisar e estudar mais para aprender as diferenças.
Quanto ao AutoCAD, com certeza grande parte deve ter sido feita em C/C++ por serem rápidas e eficiêntes.
Quanto ao software para Hóteis, você poderia usar, para começar a aprofundar, Object Pascal com Lazarus ou Kylix ou Java com o NetBeans ou Eclipse.
Bons estudos e boa sorte!