C ++ e Java são algumas das linguagens de programação muito populares. Eles podem ser comparados em grandes detalhes, comparando velocidade, digitação, compiladores, etc., mas para um leigo médio é demais e será muito mais fácil considerar suas diferenças em um nível geral e básico, para que mesmo uma pessoa que esteja longe de programar e possa tirar conclusões por si mesma. apenas olhando para esta área. Já nesta fase, podemos concluir qual idioma de qual paradigma combina com você. E sim, a situação dessa escolha é bastante real - por exemplo, para estudantes para fins educacionais.
Para fazer isso, tentarei considerar brevemente as principais construções das linguagens de programação, a saber:
expressões: matemáticas, lógicas, string;
operadores: declaração composta, declaração de atribuição, declaração IF condicional, loops FOR e WHILE, declaração GOTO e outros;
subprogramas: procedimentos e funções;
tipos de dados: tipos básicos, estruturas, classes, interfaces e modelos.
(Este artigo não é uma tradução, mas minha análise pessoal das informações coletadas)
Expressões
Java
Expressões matemáticas
Uma expressão matemática é uma expressão que resulta em um número. Eles incluem variáveis, funções e constantes.
Os operadores aritméticos em Java permitem executar operações matemáticas padrão de adição, subtração, multiplicação e assim por diante. Também no idioma existem operadores de decremento e incremento (aumente ou diminua o valor em um).
Expressões lógicas
Uma expressão lógica é uma descrição de uma expressão que resulta em verdadeiro (verdadeiro) ou falso (falso). Operadores lógicos funcionam apenas com operandos do tipo booleano.
Todos os operadores lógicos com dois operandos combinam dois valores lógicos para formar o valor lógico resultante.
Java suporta mais de dez instruções: AND (lógica e abreviada), OR (lógica e abreviada), XOR, NOT e assim por diante.
Expressões de string
Expressão de string - manipulação de string. Parece uma expressão matemática, mas o resultado é uma nova linha.
A linguagem Java permite adicionar, subtrair, dividir e concatenar cadeias. Um recurso distintivo do Java é a presença da classe String, que é fornecida especificamente para trabalhar com seqüências de caracteres.
C ++ / Visual Basic
Expressões matemáticas
C ++ e Visual Basic também incluem operadores aritméticos, operadores de decremento e incremento, e a sintaxe da expressão matemática também suporta colchetes e menos unário.
Como na linguagem Java, eles têm operações mais complexas disponíveis como funções internas, por exemplo, a raiz quadrada sqrt (x) e o expoente exp (x).
Expressões lógicas
O Visual Basic usa seis operadores: além de AND, OR, NOT, XOR, também são usados operadores de equivalência e implicação.
No C ++, eles usam três operadores lógicos: AND, NOT e OR. Em todos os idiomas em consideração, alguns dos operadores podem ser usados para vários operandos ao mesmo tempo.
Expressões de string
Ao contrário do Java, no C ++ não há suporte interno para um objeto como uma string e, se necessário, trabalha com strings (adição, subtração, etc.) incluem a string do arquivo de cabeçalho.
No Visual Basic, devido à importância de trabalhar com seqüências de caracteres, o tipo de dados String é suportado, o que representa uma sequência de caracteres. Uma variável desse tipo pode receber qualquer expressão que resulte em uma sequência.
Operadores
Java
Todas as linguagens em questão são semelhantes, pois oferecem suporte a operadores de loop (FOR, WHILE), o operador de condição IF, no entanto, sua diferença significativa é que em Java não existe um operador de transição goto como tal: as palavras-chave const e goto são salvas, no entanto, eles não são usados.
C ++ / Visual Basic
O C ++ e o Visual Basic, desenvolvidos muito antes do Java, têm um operador de transição para goto, mas o uso desse operador geralmente é indesejável.
Procedimentos e Funções
Java
Um subprograma é um grupo logicamente completo de operadores de idiomas que pode ser chamado para executar qualquer número de vezes em vários locais do programa. As funções retornam um valor ao programa principal, os procedimentos não retornam.
Em Java, não existem procedimentos ou funções, ambas as entidades são chamadas métodos, mas também podem retornar ou não valores, podem ser chamadas com ou sem parâmetros.
C ++ / Visual Basic
No C ++, as rotinas são implementadas como funções. Um programa C ++ consiste em uma ou mais funções que devem ser descritas antes de serem utilizadas.
Os programas do Visual Basic também consistem em várias rotinas divididas em procedimentos e funções.
Tipos de dados
Java
Em Java, para todos os tipos numéricos básicos, certas convenções são usadas de forma independente, independente da implementação específica do ambiente, o que garante resultados reproduzíveis em uma ampla variedade de plataformas.O Java também não possui estruturas e estruturas de união, tudo isso é combinado no conceito de classes.
Além disso, o Java não suporta ponteiros (os chamados "links" desempenham seu papel em Java), modelos, sobrecarga de operador, estruturas etc.
C ++ / Visual Basic
C ++ herdou de C todos os tipos de dados usuais deste último. Esses tipos são usados para representar números inteiros e reais de vários tamanhos e precisão. Infelizmente, o alcance e a precisão reais desses tipos variam de acordo com a implementação específica do tradutor.
Devido à dependência do tradutor em diferentes plataformas, o comportamento do código C ++ e do Visual Basic pode mudar. O C ++ está tentando fornecer ao programador a capacidade de encapsular dados declarando estruturas (struct) e polimorfismo usando uniões (união). Esses dois projetos abrangem limitações críticas e catastróficas específicas da máquina em tamanho e alinhamento.
C ++ e Visual Basic suportam ponteiros e aritmética de ponteiros, sobrecarga de operador, etc.
Sumário
A linguagem Java foi desenvolvida sob a influência das linguagens que existiam antes dela, incluindo Visual Basic e especialmente C ++, o que significa que um certo número de construções dessas linguagens coincide; no entanto, muitas falhas de C ++ foram corrigidas em Java, o que afetou o desempenho e os resultados do programa e também foram tomadas medidas para "simplificar" a linguagem em comparação com o C ++, o que implica uma diferença significativa entre Java e C ++. Apesar de ter construções semelhantes, o Java é muito diferente do C ++ e do Visual Basic.
PS Apenas para mencionar, não pretendo dar conselhos sobre a escolha de um idioma para estudar ou o melhor idioma dentre os considerados, mas apenas fornecer alimento para o raciocínio. E, a propósito, como você escolheu sua primeira linguagem de programação, o que era importante para você em primeiro lugar? Ou você foi "obrigado" a escrever sobre algo específico em uma universidade?