Material de apoio para a vídeo-aula nº 5 do Curso de Java ministrado no Ponto G++, contendo toda a base teórica para um sólido acompanhamento da aula.

Java Curiosa & Divertida

A História de Duke

Quando começamos a estudar a linguagem de programação Java, somos logo apresentados ao seu simpático mascote, chamado Duke…​

duke waving

Neste bloco da vídeo-aula, contamos a história dessa personagem e, para dar um toque de humor, revelamos uma fofoca que rola no mundo Java, sobre a sua ligação com a famosa série Jornada nas Estrelas (Star Trek), finalizando com uma homenagem ao extraordinário Leonard Nimoy, falecido recentemente.

Abaixo, são fornecidos, entre outros, links para os sites que usamos na pesquisa deste assunto.

Desvendando o Mistério do Rei Branco

Quando quisermos apresentar caracteres UTF-8 no console do IDE Eclipse, é necessário que sua codificação esteja configurada corretamente.

Por padrão, o console é configurado para a codificação de terminal Cp 1252. Para dar suporte à codificação UTF-8 (ou outra qualquer), é preciso selecionar o menu Run → Run Configurations…​ (Consulte a figura a seguir, para referência).

ecl runconfig menu

Na caixa de diálogo de configuração, selecione a aba Common:

ecl config utf8 1

Observe que, no grupo de botões de rádio Encoding, está selecionada a opção Default - inherited (Cp 1252). Para mudar a codificação, selecione o botão de rádio Other e, na caixa de seleção Drop-Down, escolha UTF-8, conforme é exibido na próxima figura:

ecl config utf8 2

Tipagem das Linguagens de Programação

As linguagens de programação podem ser divididas em dois grandes grupos: as dinâmicas e as estáticas. Nas primeiras a necessidade de declaração dos tipos de dados é fraca, o que facilita o desenvolvimento por um lado, mas em geral dificultam a detecção de erros, principalmente quando o projeto é de grande dimensão e complexidade. Já as linguagens estáticas permitem que os desenvolvedores localizem erros até mesmo antes da execução do aplicativo, mas tem a desvantagem de não serem tão práticas como as linguagens mais modernas.

Na resposta a uma pergunta sobre o tema no stackoverflow em português, encontramos a seguinte tabela comparativa muito interessante entre esses dois grupos de linguagens:

dinamic vs static

A linguagem de programação Java enquadra-se no grupo das linguagens estáticas e, portanto, nela é obrigatória a declaração do tipo das variáveis e são proibidas determinadas operações com tipos diferentes.

Não são feitas inferências de tipo, ou seja, os tipos não podem ser subentendidos de acordo com o valor atribuído à variável, sob nenhuma hipótese.

Em algumas operações com tipos diferentes, pode ocorrer o "casting" (ou conversão) de um dos tipos em outro, silenciosamente, nos bastidores. É o que ocorre no exemplo abaixo:

package teste;

public class Teste {

	public static void main(String[] args) {

		int i = 2;
		double d = 2.0

		System.out.println(i + d);

		// 4.0
	}
}

Neste caso, o inteiro (int) "i" é convertido silenciosamente para ponto-flutuante de dupla precisão (double), antes da adição com "d". Em outro ponto deste curso, examinaremos esta questão de "casting", ou seja, a conversão automática e silenciosa de um tipo em outro, pois isso é uma coisa muito importante e que se deve ter sempre em mente, para evitar conversões inesperadas e indesejadas.

Em linguagens de tipagem fraca, como JavaScript, por exemplo, essas conversões são muito mais comuns e flexíveis. Inteiros são automaticamente convertidos em "strings" de caracteres e concatenados com outra "string" numa adição como exemplificado abaixo:

console.log('Camisa ' + 10);
console.log(10 + ' camisas');

// Camisa 10
// 10 camisas

Mas afinal, o que é melhor: uma linguagem estática ou uma linguagem dinâmica? A resposta é…​ depende.

A principal dependência é, sem dúvida, do tipo de aplicativo que pretendemos desenvolver. A linguagem de programação é como uma ferramenta: você pode usar um martelo para fixar um parafuso, mas para isso uma chave de fenda seria muito mais indicada.

O fato de ser uma linguagem de tipagem estática muito forte, como ocorre com Java, acaba sendo o seu ponto alto para o desenvolvimento de grandes sistemas corporativos, muito complexos e com exigências muito rigorosas quanto à segurança.

Por outro lado, linguagens dinâmicas tais como JavaScript e PHP, voltadas para o desenvolvimento de aplicativos na Internet (Web), aproveitam ao máximo a flexibilidade delas para o desenvolvimento com alta produtividade.

Uma última coisa para a qual gostaria de chamar sua atenção é que, existem outras linguagens de programação para desenvolvimento no ambiente Java (JRE), e algumas são dinâmicas, como Groovy, por exemplo.


comments powered by Disqus