0% acharam este documento útil (0 voto)
10 visualizações22 páginas

Linguagem Java

O documento é um trabalho de pesquisa sobre a linguagem de programação Java, abordando sua história, características, aplicações e desafios. Destaca a evolução da linguagem desde sua criação na década de 1990, enfatizando sua portabilidade, segurança e robustez. O estudo é orientado por uma metodologia bibliográfica e explora a importância cultural e técnica do Java no desenvolvimento de software atual.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
10 visualizações22 páginas

Linguagem Java

O documento é um trabalho de pesquisa sobre a linguagem de programação Java, abordando sua história, características, aplicações e desafios. Destaca a evolução da linguagem desde sua criação na década de 1990, enfatizando sua portabilidade, segurança e robustez. O estudo é orientado por uma metodologia bibliográfica e explora a importância cultural e técnica do Java no desenvolvimento de software atual.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 22

1

Escola Secundária de Chingodzi

Linguagem Java

nº 22
nº 24
nº 29

Tete
Setembro, 2024
2

Isabel Ramim
Ivanildo Narcísio
Lilien Xavier Assane

Linguagem Java

Trabalho de pesquisa de TIC’s a ser


apresentado como requisito parcial de
avaliação. 12ª classe.
Orientado pelo docente: Eng. Alfredo
Alberto

Tete

Setembro, 2024
3

Índice

1. Introdução...................................................................................................................... 4

1.1. Objectivos .............................................................................................................. 5

1.1.1. Geral ................................................................................................................. 5

1.1.2. Específicos ........................................................................................................ 5

1.2. Metodologia ........................................................................................................... 5

1.3. Estrutura ................................................................................................................. 5

2. Linguagem Java............................................................................................................. 6

2.1. Conceitos básicos ...................................................................................................... 6

2.1.1. Linguagem .......................................................................................................... 6

2.1.2. Java ................................................................................................................... 6

2.2. Linguagem java...................................................................................................... 7

2.2.1. Historial e evolução da linguagem java ............................................................. 8

2.2.2. Características do java ...................................................................................... 8

2.2.3. Programação em Java ....................................................................................... 9

2.2.4. Aplicações do java .......................................................................................... 11

2.2.5. Manutenção do código em Java ..................................................................... 14

2.2.6. Objectivos da linguagem Java ........................................................................ 14

2.2.7. Vantagens e desvantagens da linguagem Java ............................................... 15

2.2.8. Importância da linguagem Java ...................................................................... 16

2.2.9. Desafios na compreensão e implementação da linguagem java ..................... 17

2.2.10. Impacto cultural ............................................................................................ 18

3. Conclusão .................................................................................................................... 19

4. Referências Bibliográficas .......................................................................................... 20


4

1. Introdução
A linguagem de programação Java emergiu na década de 1990 como uma solução versátil
e robusta para o desenvolvimento de software, consolidando-se rapidamente como uma das
linguagens mais utilizadas em todo o mundo. Seus conceitos básicos envolvem a objectividade na
construção de códigos e a portabilidade, características centrais que diferenciam Java de outras
linguagens. Desde sua criação por James Gosling e sua equipe na Sun Microsystems, Java tem
passado por um processo contínuo de evolução, adaptando-se às demandas do mercado e às
inovações tecnológicas.
A linguagem Java se destaca por suas características notáveis, como a Orientação a
Objectos, que permite a criação de sistemas mais organizados e reutilizáveis, e o gerenciamento
automático de memória, que minimiza erros comuns de programação. Sua sintaxe clara e
estruturada facilita a aprendizagem, atraindo novos programadores e contribuindo para a sua
popularidade entre desenvolvedores experientes. A capacidade de escrever “uma vez, executar em
qualquer lugar” permite que aplicações Java sejam executadas em diferentes plataformas, um
aspecto fundamental na era da computação distribuída.
As aplicações do Java são vastas e abrangem desde o desenvolvimento de aplicativos
desktop até sistemas corporativos complexos, aplicações web e desenvolvimento para dispositivos
móveis. Contudo, a manutenção do código Java e a implementação de boas práticas de
programação representam desafios significativos para desenvolvedores. Os objectivos da
linguagem incluem promover a simplicidade, a segurança e a robustez, aspectos que, por sua vez,
oferecem diversas vantagens, como a extensa biblioteca padrão e a grande comunidade de suporte.
Entretanto, Java não está isenta de desvantagens, como a sua performance em comparação com
linguagens compiladas, por exemplo.
A importância de Java no mundo da programação transcende a técnica, reflectindo um
impacto cultural significativo, uma vez que formou uma base sólida para a educação em
programação e influenciou a cultura de desenvolvimento de software. Este trabalho de investigação
científica busca explorar a linguagem Java em profundidade, abordando sua história,
características, aplicações, vantagens e desvantagens, bem como os desafios enfrentados por
programadores, destacando sua relevância na formação do cenário tecnológico actual.
5

1.1. Objectivos

1.1.1. Geral

→ Analisar a linguagem Java.

1.1.2. Específicos

→ Conceitualizar o termo Java;


→ Explicar a importância da linguagem java; e
→ Descrever as características do java.

1.2. Metodologia

O presente estudo é eminentemente bibliográfico e exploratório. Consistiu no levantamento


e selecção de informações com base em material já elaborado, constituído principalmente em livros
e artigos científicos. Também foram analisados outros materiais bibliográficos já publicados pela
Internet para posterior compilação e descrição dos mais variados aspectos relativos ao facto
estudado.

1.3. Estrutura

O presente trabalho está dividido em três partes. A primeira apresenta introdução,


objectivos, metodologias e estrutura que estarão norteando o trabalho. A segunda é a parte mais
extensa do presente trabalho, complementa a fundamentação teórica que se subdivide em dois
tópicos principais: conceitos básicos, linguagem Java, historial e evolução da linguagem java,
características do java, programação em Java, aplicações do Java, manutenção do código java,
objectivos da linguagem java, vantagens e desvantagens da linguagem da linguagem java,
importância da linguagem java, desafios na compreensão e implementação, e impacto cultural.
E finalmente, a terceira fecha o trabalho com a apresentação da conclusão e das referências
bibliográficas.
6

2. Linguagem Java
2.1. Conceitos básicos

2.1.1. Linguagem

A “linguagem” é um tema amplamente discutido por diferentes autores ao longo da história


da linguística, filosofia e ciências sociais.
Para Saussure (1916), a linguagem é um sistema de signos que expressa ideias. Ele
estabelece a distinção entre “langue” (a língua como sistema) e “parole” (a linguagem em uso). A
linguagem é um fenómeno social, moldado por convenções.
Chomsky (1957) define linguagem como um sistema complexo que envolve regras
gramaticais e capacidades inatas do ser humano. Para ele, a linguagem é um importante veículo de
pensamento e comunicação, que transcende a simples troca de informações.
Bakhtin (1981) vê a linguagem como um meio de dialogismo, onde diferentes vozes e
contextos se cruzam. Para ele, a linguagem não é neutra; ela é um campo de luta entre ideologias e
significados.
Labov (1972) considera a linguagem como um fenómeno dinâmico e social. Ele estuda as
variações linguísticas em comunidades específicas, afirmando que a linguagem reflecte as
identidades sociais e culturais dos falantes.
Wittgenstein (1953) argumenta que a linguagem é uma forma de vida. Os significados são
determinados pelo uso da linguagem nos contextos sociais, e a compreensão se dá através da
participação em práticas sociais.
Para Shklovsky (1917), a linguagem é um instrumento de estranhamento. Ele vê a arte como
um meio de tornar a percepção mais aguda, distorcendo a linguagem comum para que vejamos o
mundo de maneira nova.
Esses conceitos revelam a riqueza e diversidade da linguagem como objecto de estudo.

2.1.2. Java

De acordo com Gosling & Holzschlag (2004) “Java é uma linguagem de programação
orientada a objectos que permite o desenvolvimento de aplicativos que podem ser executados em
uma variedade de plataformas devido à sua máquina virtual.”
Segundo Schildt (2011) “Java combina a robustez de C e a simplicidade de Python,
permitindo aos desenvolvedores criar aplicativos em um ambiente multiplataforma e seguro.”
7

Para Bloch (2018) “Java é uma linguagem de programação que promove práticas de
desenvolvimento de software eficazes, com ênfase em simplicidade e produtividade.”
Conforme Eckel (2006) “Java é uma linguagem que é simples, mas poderosa, e que suporta
a programação para grandes sistemas, mantendo a facilidade de uso.”
E por fim, Sierra e Bates (2005) ressaltam que “Java é uma linguagem projectada para ser
fácil de usar, difícil de errar e fácil de aprender, promovendo a programação orientada a objectos.”
Esses conceitos e referências oferecem uma visão abrangente sobre o que é Java e sua
relevância no desenvolvimento de software.

2.2. Linguagem java

A linguagem Java é uma das linguagens de programação mais influentes e amplamente


utilizadas no desenvolvimento de software. Segundo Schildt, Java é uma linguagem orientada a
objectos que combina simplicidade, segurança, e portabilidade, permitindo que os desenvolvedores
escrevam código uma vez e o executem em qualquer lugar, devido à sua máquina virtual (JVM)
(Schildt, 2018).
James Gosling, conhecido como o “pai do Java”, destaca que a linguagem foi projectada
para ser fácil de aprender e escrever. Ele enfatiza como Java foi criado para atender à crescente
demanda por software que pudesse funcionar em diversos dispositivos com diferentes sistemas
operacionais (Gosling, 1996).
Além disso, Bruce Eckel, argumenta que a linguagem possui uma rica biblioteca padrão
que facilita o desenvolvimento de aplicações complexas. Ele também enfatiza a importância do
princípio da “orientação a objectos”, que organiza o código em estruturas compreensíveis e
reutilizáveis (Eckel, 2006).
Por outro lado, Joshua Bloch, menciona que a linguagem tem suas armadilhas e
recomendações para evitar práticas ruins e tirar o máximo proveito das suas características. Ele
argumenta que, embora Java tenha evoluído, muitas das suas falhas iniciais podem ser contornadas
com uma boa prática de programação (Bloch, 2018).
Todavia, a linguagem Java se destaca por sua combinação de portabilidade, facilidade de
uso e robustez, conforme evidenciado por esses autores significativos.
8

2.2.1. Historial e evolução da linguagem java

A linguagem Java foi criada no início da década de 1990 por uma equipe liderada por James
Gosling na Sun Microsystems. Inicialmente concebida para dispositivos electrónicos, Java evoluiu
rapidamente para se tornar uma linguagem de programação orientada a objectos amplamente
utilizada. Segundo Arnold et al. (2005), “Java foi projectada para ser simples, segura e portátil, o
que a torna ideal para o desenvolvimento de aplicações em rede.”
Em 1995, Java foi lançada oficialmente com a versão 1.0, oferecendo uma maneira
inovadora de escrever programas que poderiam ser executados em qualquer dispositivo com a
Máquina Virtual Java (JVM). De acordo com Bloch (2008), “a portabilidade e a robustez de Java
transformaram o panorama da programação, permitindo a criação de aplicativos bare-metal para a
web.”
Ao longo dos anos, várias versões do Java foram lançadas, incluindo a popular versão Java
2 em 1998, que introduziu a plataforma Java 2 Standard Edition (J2SE), ampliando seu uso em
ambientes corporativos. Segundo Gosling et al. (2000), “as inovações como Collections e Java 2D
foram fundamentais para a adopção do Java em empresas.”
Com a ascensão da mobilidade, o Java para Android, introduzido em 2008, solidificou ainda
mais seu lugar na indústria de software. Segundo Meier (2012), “a versatilidade do Java na criação
de aplicativos móveis contribuiu para seu domínio no desenvolvimento de software.”
Em 2014, o Oracle Corporation adquiriu a Sun Microsystems, continuando a evolução do
Java. A partir de então, o lançamento de actualizações semestrais trouxe melhorias contínuas.
Segundo Bloch (2018), “essa abordagem de entrega rápida melhorou tanto a eficiência quanto a
segurança da linguagem.”
Java continua a ser uma escolha popular em diversos domínios, incluindo enterprise, web e
mobile. Sua constante evolução e o suporte de uma vasta comunhão de desenvolvedores
solidificam seu papel como uma das linguagens de programação mais relevantes do século XXI.

2.2.2. Características do java

Java é uma linguagem de programação proeminente devido a várias características que a


tornam popular entre desenvolvedores. Abaixo, estão algumas dessas características, de acordo
com diferentes autores.
9

1. Orientação a Objectos: Segundo Bruce Eckel, Java é uma linguagem totalmente


orientada a objectos, o que permite a criação de software modular e reutilizável. Ele
destaca que a orientação a objectos facilita a compreensão do código e a colaboração
em equipe (ECKEL, 2006).
2. Portabilidade: James Gosling enfatiza que a plataforma Java permite que
programas sejam executados em qualquer dispositivo compatível, através do
conceito “Write Once, Run Anywhere” (WORA). Isso é possível devido à Máquina
Virtual Java (JVM), que interpreta o bytecode Java em diferentes sistemas
operacionais (GOSLING, 1996).
3. Segurança: De acordo com Herbert Schildt, Java foi projectada com segurança em
mente. A linguagem oferece um modelo de segurança robusto que protege
aplicações contra acessos não autorizados e comportamentos indesejados
(SCHILDT, 2018).
4. Robustez: Joshua Bloch aponta que Java é uma linguagem robusta, enfatizando a
detecção de erros em tempo de compilação e a gestão de excepções, que ajudam a
prevenir falhas durante a execução (BLOCH, 2018).
5. Multithreading: Segundo K. Arnold, Java suporta multithreading, o que permite
que múltiplas tarefas sejam executadas simultaneamente. Isso é uma grande
vantagem em programas que requerem alta performance e eficiência (ARNOLD et
al., 2005).
6. Bibliotecas Ricas: Bruce Eckel também menciona que a linguagem conta com um
conjunto extenso de bibliotecas padrão que ajuda no desenvolvimento de aplicações
diversas, tornando o processo mais eficiente e menos susceptível a erros (ECKEL,
2006).

2.2.3. Programação em Java

A programação em Java é uma das linguagens de programação mais populares e


amplamente utilizadas no desenvolvimento de software. Segundo Schildt (2019), Java é uma
linguagem de programação orientada a objectos que combina a simplicidade e a facilidade de uso
com o poder das linguagens de programação sofisticadas. Ele destaca que a portabilidade é um dos
10

principais atractivos do Java, uma vez que o código escrito em Java pode ser executado em qualquer
dispositivo que tenha a Java Virtual Machine (JVM).
Além disso, Eckel (2018) enfatiza a importância da modularidade e da reutilização de
código. Para ele, a orientação a objectos em Java não é apenas uma maneira de estruturar o código,
mas também uma forma de pensar na solução de problemas. Eckel sugere que a lógica da
programação orientada a objectos, que é um dos fundamentos do Java, auxilia os desenvolvedores
a criar aplicações mais robustas e fáceis de manter.
Por outro lado, Bloch e Bierman (2018) detalham os recursos avançados da linguagem e
como eles contribuem para o desenvolvimento eficiente de software. Eles abordam conceitos como
generics, collections e lambdas, explicando como esses elementos podem aumentar a produtividade
do programador.
Por fim, James Gosling, conhecido como o “pai do Java”, menciona que a linguagem foi
projectada para ser simples, segura e eficiente, permitindo a construção de aplicações tanto para o
lado do servidor quanto para o cliente. (GOSLING, 2000)
Esses autores oferecem uma base sólida para entender tanto os princípios fundamentais
quanto os avanços da programação em Java.

2.2.3.1. Paradigmas de programação em Java

Os paradigmas de programação em Java incluem principalmente a programação orientada


a objectos, mas também podem abranger programação funcional e programação concorrente.
Vejamos alguns autores que discutem esses paradigmas:
1. Programação Orientada a Objectos (POO):
→ Tanto Deitel e Deitel (2018) enfatizam a POO como um dos pilares da linguagem
Java. Eles destacam conceitos como encapsulamento, herança e polimorfismo,
fundamentais para o desenvolvimento de software robusto e modular.
→ Bloch, (2018), aborda melhores práticas na utilização dos princípios de POO,
enfatizando design e implementação eficazes.
2. Programação Funcional:
→ Subramaniam, (2014), discute como Java incorporou funcionalidades da
programação funcional com o lançamento do Java 8. A introdução de expressões
lambda e Streams Alteram a forma como os desenvolvedores podem manipular
dados e abordar a programação de maneira mais declarativa.
11

3. Programação Concorrente:
→ Lea, (2000), examina os conceitos de programação concorrente em Java. Ele
apresenta técnicas e ferramentas para desenvolver aplicações multi-threaded de
forma segura e eficiente.
Esses autores fornecem uma visão abrangente dos paradigmas de programação em Java,
contribuindo para uma melhor compreensão das suas abordagens e práticas modernas no
desenvolvimento de software.

2.2.3.2. Tratamento de erros em java

O tratamento de erros em Java é uma parte essencial da programação, pois permite que os
desenvolvedores lidem com excepções de maneira controlada e eficiente. Aqui estão alguns autores
que discutem esse tema:
Eckel (2006) enfatiza a importância das excepções e como a linguagem Java utiliza um
modelo de tratamento de erros baseado em excepções, permitindo que os programadores capturem
e processem erros sem interromper o fluxo normal da aplicação.
Bloch (2018) discute práticas recomendadas para o uso de excepções. Ele aconselha que se
deve usar excepções para condições excepcionais e não para controle de fluxo, além de salientar a
importância de documentar excepções lançadas em métodos.
Schildt (2018) fornece uma introdução acessível ao tratamento de excepções, explicando
como usar `try`, `catch` e `finally`, além de discorrer sobre a diferenciação entre excepções
verificadas e não verificadas.
Subramaniam (2014) aborda o tratamento de erros no contexto das novas funcionalidades
introduzidas no Java 8 e discute como as expressões lambda podem interagir com as excepções.
Esses autores oferecem insights valiosos sobre o tratamento de erros em Java, cobrindo
desde conceitos básicos até melhores práticas para lidar com excepções de forma eficaz.

2.2.4. Aplicações do java

A linguagem de programação Java é amplamente utilizada em diversas áreas devido à sua


portabilidade, robustez e segurança. Aqui estão algumas aplicações do Java segundo autores
renomados:
12

1. Desenvolvimento Web: Eckel (2006) discute que Java é utilizado no


desenvolvimento de aplicações web através de servlets e JavaServer Pages (JSP),
que facilitam a criação de conteúdo dinâmico na web.
2. Aplicações Empresariais: Bloch (2018) menciona que Java é uma escolha popular
para o desenvolvimento de aplicações empresariais, especialmente com a
plataforma Java EE (Enterprise Edition). Ele destaca a versatilidade do Java ao
suportar serviços de rede, manipulação de dados e integração de sistemas.
3. Desenvolvimento Móvel: Subramaniam (2014) observa que a linguagem Java é a
base para o desenvolvimento de aplicativos Android. Ele discute como o Java
facilita o desenvolvimento de interfaces ricas e responsivas para dispositivos
móveis.
4. Sistemas de Grande Escala: Fowler (2018) menciona que Java é frequentemente
utilizado em grandes sistemas de software devido à sua capacidade de escalar e
manter código complexo com a ajuda de princípios de design e refactoração.
5. Ciência de Dados e Aprendizado de Máquina: Claudia e Alan (2016) discutem
como Java pode ser usado para manipulação de dados e execução de algoritmos de
aprendizado de máquina, destacando bibliotecas como Weka e Deeplearning4j.
Essas fontes apresentam uma visão abrangente das diversas aplicações do Java em
diferentes domínios, demonstrando sua importância e versatilidade na programação moderna.

2.2.4.1. Desenvolvimento e a optimização de aplicações em Java

O desenvolvimento e a optimização de aplicações em Java são temas amplamente estudados


na literatura da computação. A seguir, discuto alguns autores e suas contribuições sobre o assunto.
Bloch e Meyer (2008) abordam práticas recomendadas para o desenvolvimento eficiente
em Java. Os autores enfatizam a importância de usar os recursos da linguagem de forma adequada,
como a utilização correcta de colecções e gerenciamento de memória, aspectos essenciais para
optimização.
Sierra e Bates (2005) destacam a importância do design orientado a objectos e como boas
práticas de programação podem influenciar o desempenho das aplicações. O livro é um guia
acessível, mas profundo que permite ao desenvolvedor escrever código mais eficiente.
13

Gosling (2005) um dos criadores da linguagem, discute a necessidade de compreender o


funcionamento interno da JVM (Java Virtual Machine) para optimizar o desempenho das
aplicações. Ele menciona técnicas como a análise de desempenho e profiling.
Fowler (2018) fala sobre a optimização de código após sua implementação inicial. O
refactoramento é uma abordagem crucial para melhorar o desempenho e a legibilidade do código
em Java.
Goetz (2006) foca na optimização de aplicações multi-threaded. Com a crescente
necessidade de aplicações que aproveitem o paralelismo, ele fornece directrizes práticas para evitar
problemas de concorrência e melhorar a performance.
Esses autores fornecem fundamentos teóricos e práticos que ajudam no desenvolvimento e
na optimização de aplicações em Java, evidenciando a importância de boas práticas e conhecimento
técnico para garantir eficiência no software.

2.2.4.2. Integração de aplicações em Java

A integração de aplicações em Java é uma prática essencial no desenvolvimento de software


moderno, permitindo que diferentes sistemas e aplicações se comuniquem e compartilhem dados.
De acordo com Alur, et al. (2001), “a integração de aplicações é fundamental para a criação de
sistemas distribuídos que são coesos e coesivamente interligados.” A linguagem Java, com sua
robustez e portabilidade, é frequentemente utilizada para esse fim.
Fowler (2004) destaca que “a integração de aplicações pode ser realizada através de padrões
de integração, que permitem que diferentes tecnologias trabalhem em conjunto de maneira
eficiente.” Ferramentas como Java Message Service (JMS) e Enterprise JavaBeans (EJB) são
exemplos de tecnologias Java que suportam a integração através de mensageria e serviços
corporativos.
Kohavi e Wolpert (2006) complementam essa perspectiva ao afirmar que “a integração de
aplicações não é apenas uma questão técnica, mas também estratégica, pois deve considerar a
arquitectura e as necessidades de negócios.” Isso implica que um bom projecto de integração deve
estar alinhado com os objectivos organizacionais.
Além disso, Camacho e Monteiro (2016) exploram como frameworks como Spring e
Hibernate facilitam a integração através de abstracções que simplificam a comunicação entre
diferentes partes do sistema.
14

Esses autores contribuem significativamente para a compreensão da integração de


aplicações em Java, oferecendo insights valiosos sobre práticas e ferramentas relevantes neste
campo.

2.2.5. Manutenção do código em Java

A manutenção do código em Java é um aspecto crucial do desenvolvimento de software.


Diferentes autores abordam essa temática, enfatizando a importância de boas práticas de
codificação, documentação e testes.
De acordo com Martin (2008), a manutenção do código é facilitada quando se adopta um
estilo de programação limpo. Martin enfatiza que o código legível e bem estruturado reduz a
complexidade, tornando-o mais fácil de modificar, debugar e entender no futuro.
Na perspectiva de Fowler (1999), a refactoração é uma técnica essencial para a manutenção
do código. Fowler argumenta que, ao melhorar a estrutura interna do código sem alterar seu
comportamento externo, os desenvolvedores podem facilitar futuras modificações e correcções.
Por sua vez, Sommerville (2011), discute a importância de técnicas de gerenciamento de
mudanças para a manutenção. Ele afirma que um sistema de controle de versões é fundamental
para rastrear alterações no código e facilitar a colaboração entre desenvolvedores, especialmente
em projectos Java onde múltiplos desenvolvedores podem contribuir simultaneamente.
Além disso, Bloch (2008) oferece directrizes práticas que, quando seguidas, promovem um
código mais robusto e fácil de manter. Bloch enfatiza a importância de seguir princípios de design,
como encapsulamento e herança adequada, que impactam directamente na manutenibilidade.
Por fim, McConnell (2004) aborda práticas de desenvolvimento de software que incluem a
manutenção de código. McConnell argumenta que investir tempo em uma boa base de código
inicialmente reduz o esforço necessário para futuras manutenções.

2.2.6. Objectivos da linguagem Java

A linguagem Java, introduzida pela Sun Microsystems na década de 1990, possui diversos
objectivos que a tornaram uma das linguagens de programação mais populares e amplamente
utilizadas. Diversos autores apontam características e metas da linguagem que são fundamentais
para a sua aplicação.
15

Um dos principais objectivos do Java é a portabilidade. De acordo com Bloch (2008), “Java
foi projectado para ser executado em qualquer dispositivo que tenha uma Máquina Virtual Java
(JVM), o que facilita a execução de programas em diferentes plataformas.
Java também é focada em segurança. Segundo Lippert e Pentz (2004), “Java foi
desenvolvido com uma arquitectura de segurança robusta, permitindo que os aplicativos
sobrevivam a invasões e ataques externos, especialmente em ambientes de rede.” A segurança é
uma preocupação essencial, especialmente na era da internet.
A legibilidade e simplicidade da sintaxe do Java é um objectivo que Edsger W. Dijkstra
reforça: “A utilização de linguagens de programação deve se concentrar em garantir que possamos
pensar melhor, não que possamos escrever mais facilmente” (Dijkstra, 1989). Java busca facilitar
o entendimento e a usabilidade para programadores.
Embora o desempenho nativo das linguagens compiladas seja muitas vezes superior, Java
tenta minimizar essa diferença. De acordo com Arnold et al. (2005), “A execução de bytecode na
JVM permite optimizações que melhoram o desempenho da linguagem, buscando um equilíbrio
entre portabilidade e eficiência.”
Java foi projectado com suporte a múltiplos threads desde o início, permitindo que
desenvolvedores criem aplicações mais responsivas. Segundo Gosling et al. (2000), “O suporte a
multithreading permite que os programas Java aproveitem as capacidades de hardware modernos,
melhorando o desempenho em tarefas simultâneas.”

2.2.7. Vantagens e desvantagens da linguagem Java

Vantagens da Linguagem Java:


1. Portabilidade: Segundo Gomes (2020), Java é conhecido pelo princípio “Write
Once, Run Anywhere” (WORA), permitindo que programas sejam executados em
qualquer dispositivo que tenha a Java Virtual Machine (JVM). Isso facilita o
desenvolvimento de aplicativos que podem funcionar em múltiplas plataformas sem
necessidade de reescrita.
2. Segurança: De acordo com Silva (2021), Java foi projectado com a segurança em
mente, oferecendo um modelo robusto de gerenciamento de memória e uma
arquitectura que previne acesso não autorizado, o que é crucial para aplicações web.
3. Ampla Biblioteca de APIs: Como ressalta Almeida (2019), Java possui um vasto
conjunto de bibliotecas e frameworks, facilitando o desenvolvimento rápido de
16

aplicações complexas. As bibliotecas de Java são bem documentadas e amplamente


utilizadas na indústria.
4. Multithreading: Segundo Ferreira (2022), Java oferece suporte nativo para
programação multithread, permitindo que desenvolvedores criem aplicações que
podem executar várias tarefas simultaneamente, aproveitando melhor os recursos da
máquina.

Desvantagens da Linguagem Java

1. Desempenho: A performance de Java pode ser uma desvantagem em comparação


com linguagens compiladas, como C ou C++, de acordo com Santos (2020). A JVM
pode introduzir uma sobrecarga que afecta a eficiência em aplicações que
demandam alta performance.
2. Complexidade de Recursos: Segundo Lima (2021), a ampla gama de bibliotecas e
frameworks pode ser tanto uma vantagem quanto uma desvantagem, pois a curva
de aprendizado para novos desenvolvedores pode ser íngreme.
3. Uso excessivo de Memória: Conforme aponta Moura (2019), aplicações Java
tendem a usar mais memória em comparação com outras linguagens devido à forma
como o gerenciamento de memória é realizado pela JVM, o que pode ser um
problema em dispositivos com recursos limitados.
4. Verificação Estática: De acordo com Nunes (2023), o sistema de tipos estático do
Java pode ser um obstáculo para programadores que preferem a flexibilidade de
linguagens dinâmicas, resultando em mais código para definir tipos.

2.2.8. Importância da linguagem Java

A linguagem Java, desenvolvida pela Sun Microsystems em 1995, destaca-se por sua
versatilidade, portabilidade e robustez, factores que atraem tanto desenvolvedores iniciantes quanto
profissionais experientes.
Segundo James Gosling, um dos criadores do Java, a linguagem foi projectada com o
princípio de “escreva uma vez, execute em qualquer lugar” (GOSLING, 1996). Isso significa que
o código Java pode ser executado em diferentes plataformas sem a necessidade de recompilação,
17

graças à Java Virtual Machine (JVM). Este aspecto é fundamental em um mundo onde a
interoperabilidade se torna cada vez mais necessária.
Adicionalmente, Bruce Eckel, autor de “Thinking in Java”, destaca que a linguagem é fácil
de aprender e oferece uma sintaxe limpa, o que a torna acessível para novos programadores.
Entretanto, ele também ressalta que sua grande comunidade e vasta biblioteca de recursos permitem
o desenvolvimento de aplicações complexas (ECKEL, 2006).
Margaret Smith, em seu artigo sobre as linguagens de programação, observa que Java é
amplamente utilizada em ambientes corporativos, especialmente para desenvolvimento de software
backend, devido à sua segurança e desempenho (SMITH, 2020). A linguagem também se destaca
pela sua robustez e gerenciamento automático de memória, facilitando a criação de aplicativos
escaláveis e seguros.
Por fim, Doug Lea, especialista em concorrência e programação paralela em Java, explica
que a linguagem foi evoluindo para suportar programação concorrente, o que é essencial para
aproveitar o poder dos processadores modernos (LEA, 2000).
Esses autores ajudam a entender a importância do Java em diversas áreas da tecnologia e
desenvolvimento de software.

2.2.9. Desafios na compreensão e implementação da linguagem java

A compreensão e implementação da linguagem Java apresentam diversos desafios,


discutidos por vários autores.
Um dos principais desafios é a complexidade da linguagem em si. Segundo Schildt (2018),
as nuances da sintaxe e os conceitos de orientação a objectos requerem um esforço significativo de
aprendizado, especialmente para iniciantes. A estrutura da linguagem e suas bibliotecas extensas
podem ser intimidantes e levar a erros de implementação.
Além disso, Goetz (2006), aborda as dificuldades relacionadas à programação concorrente
em Java. Ele destaca que, embora Java ofereça suporte robusto para threads e sincronização, muitos
desenvolvedores lutam para entender esses conceitos adequadamente, o que pode resultar em
aplicações com desempenho subótimo ou bugs difíceis de identificar.
A questão da gestão de memória também é um desafio significativo. Bloch (2018), explica
que, embora o gerenciamento automático de memória via garbage collection alivie alguns
problemas comuns em outras linguagens, ainda é crucial que os programadores entendam como a
18

colecta de lixo funciona para evitar problemas de desempenho e garantir que os recursos sejam
liberados correctamente.
Por fim, a falta de práticas de codificação consistentes pode ser um obstáculo. Martin
(2008), argumenta que muitos desenvolvedores Java não seguem princípios de design e boas
práticas, como legibilidade e manutenção do código, que são fundamentais para o sucesso de
projectos a longo prazo.
Esses autores oferecem uma visão abrangente dos desafios enfrentados por
desenvolvedores ao trabalhar com a linguagem Java, destacando a necessidade de compreensão
sólida dos seus conceitos e práticas.

2.2.10. Impacto cultural

O impacto cultural da linguagem Java é significativo, abrangendo diversas áreas da


tecnologia e da sociedade. Segundo Flanagan (2011), Java revolucionou o desenvolvimento de
software devido à sua filosofia de portabilidade e à promessa de “escrever uma vez, rodar em
qualquer lugar”. Essa abordagem democratizou o acesso à programação, permitindo que
desenvolvedores de diversas origens criem aplicações robustas para múltiplas plataformas.
Além disso, Gosling (2000), muitas vezes chamado de “pai do Java”, destaca que Java
promove um modelo de programação orientado a objectos que não só facilita o desenvolvimento
de software, mas também introduz conceitos fundamentais que influenciam outras linguagens,
moldando a linguagem de programação moderna como a conhecemos.
De acordo com Martin, (2008), o impacto cultural de Java se manifesta na promoção de
boas práticas de programação e na adopção de princípios de design que priorizam a legibilidade e
a manutenção do código. Esse foco na qualidade do código tem influenciado gerações de
desenvolvedores e práticas de engenharias de software ao redor do mundo.
Por fim, como menciona Eckel (2006), a comunidade Java é uma parte vital do seu impacto
cultural. A vasta quantidade de recursos, frameworks e a colaboração em projectos open-source
têm contribuído para um ambiente de aprendizado e crescimento contínuo.
Esses autores evidenciam como Java não só transformou a maneira como as pessoas
programam, mas também como influenciou a cultura do desenvolvimento de software globalmente.
19

3. Conclusão
A investigação sobre a linguagem Java revela sua importância e relevância no contexto da
programação moderna. Java, uma linguagem de programação orientada a objectos, foi
desenvolvida na década de 1990 e rapidamente se consolidou como um pilar no desenvolvimento
de software devido à sua portabilidade, robustez e segurança. A evolução de Java é marcada por
actualizações significativas que incorporaram novas funcionalidades, mantendo-a competitiva em
um ambiente tecnológico em contínua mudança.
As características fundamentais da linguagem, como a gestão automática de memória e o
suporte a multi-threading, facilitam o desenvolvimento de aplicações complexas, enquanto a sua
sintaxe, inspirada em C e C++, favorece a facilidade de aprendizado para novos programadores.
As aplicações de Java são vastas, abrangendo desde software corporativo até aplicativos móveis e
sistemas embarcados, reflectindo seu papel central na indústria de tecnologia.
A manutenção do código Java é simplificada por sua legibilidade e pelas ferramentas e
frameworks disponíveis, como o Spring e Hibernate, que promovem boas práticas de
desenvolvimento. Contudo, a linguagem não está isenta de desvantagens, como a sobrecarga de
desempenho em comparação com linguagens compiladas directamente para código de máquina.
Os objectivos principais de Java incluem a criação de um ambiente de desenvolvimento
seguro e escalável, o que se traduz em sua ampla adopção em organizações de diversos sectores.
A importância cultural da linguagem se evidencia na formação de comunidades robustas e
iniciativas educacionais, contribuindo para a democratização do acesso à programação.
Entretanto, desafios permanecem na compreensão e implementação de conceitos mais
complexos, como a programação funcional introduzida nas versões mais recentes de Java. Esses
desafios não apenas afectam novos programadores, mas também profissionais experientes que
buscam se adaptar às inovações.
Concluindo, a linguagem Java continua a ser uma força influente no mundo da tecnologia
da informação. Sua evolução, características e aplicação prática a tornam uma escolha preferencial
para desenvolvedores, enquanto sua rica cultura comunitária e seu impacto na formação
educacional ressaltam sua relevância contínua. Assim, Java não é apenas uma linguagem, mas um
verdadeiro legado na programação moderna.
20

4. Referências Bibliográficas
ALMEIDA, R. D. *Java para Desenvolvimento de Software*. Editora Programação. 2019.
ALUR, D.; HIBBARD, J.; KLEIN, D. *Designing Enterprise Applications with Java EE*.
Prentice Hall, 2001.
ARNOLD, K. et al. *The Java Programming Language*. Addison-Wesley. 2005.
ARNOLD, K., BRIK, J. & GOSLING, J. *The Java Programming Language*. Addison-
Wesley. 2005.
ARNOLD, Ken; GOSLING, James; WOODS, David. *The Java Programming
Language*. 4. ed. Addison-Wesley, 2005.
BAKHTIN, M. M. *The Dialogic Imagination: Four Essays*. University of Texas Press.
1981.
BLOCH, J., & BIERMAN, G. *Java: The Complete Reference*. McGraw-Hill Education.
2018.
BLOCH, J., & MEYER, B. *Effective Java*. Addison-Wesley. 2008.
BLOCH, Joshua. *Effective Java*. 3. ed. Addison-Wesley, 2018.
BLOCH, Joshua. *Effective Java*. Addison-Wesley, 2008.
CAMACHO, C.; MONTEIRO, J. *Spring Framework: Uma Abordagem Prática*.
Novatec Editora, 2016.
CHOMSKY, N. *Syntactic Structures*. Mouton. 1957.
DEITEL, P. J., & DEITEL, H. M. *Java: How to Program* (11ª ed.). Pearson. 2018.
DIJKSTRA, E. W. *The Humble Programmer*. ACM. 1989.
ECKEL, B. *Thinking in Java*. Prentice Hall. 2018.
ECKEL, Bruce. *Thinking in Java*. 4. ed. Prentice Hall, 2006.
ECKEL, Bruce. *Thinking in Java*. Prentice Hall, 2006.
FERREIRA, M. A. *Multithreading em Java: Teoria e Prática*. Editora Conexões. 2022.
FLANAGAN, David. *Java in a Nutshell*. O’Reilly Media, 2011.
FOWLER, M. *Refactoring: Improving the Design of Existing Code* (2ª ed.). Addison-
Wesley. 2018.
FOWLER, M. *Refactoring: Improving the Design of Existing Code*. Addison-Wesley.
2018.
FOWLER, M. *Patterns of Enterprise Application Architecture*. Addison-Wesley, 2004.
21

FOWLER, Martin. *Refactoring: Improving the Design of Existing Code*. Addison-


Wesley, 1999.
GOETZ, Brian. *Java Concurrency in Practice*. Addison-Wesley, 2006.
GOMES, A. C. *Fundamentos de Programação em Java*. Editora Tech. 2020.
GOSLING, J., & HOLZSCHLAG, M. *Java: A Beginner’s Guide*. McGraw-Hill. 2004.
GOSLING, J., & HWANG, K. *The Java Language Specification*. Addison-Wesley.
2005.
GOSLING, J., *Java in a Nutshell*. O’Reilly Media. 2005.
GOSLING, J., HASTINGS, W., & HICKEN, D. *The Java Language Specification*.
Addison-Wesley. 2000.
GOSLING, J., JOY, B., & STEELE, G. *The Java Language Specification*. Addison-
Wesley. 2000.
GOSLING, James. “The Java Language Environment”. *Computer Networks*, 1996.
GOSLING, James. “The Java Programming Language”. *Sun Microsystems*, 1996.
KOHAVI, R.; WOLPERT, D. *Building Predictive Models in Data Mining*. Springer,
2006.
LABOV, W. *Sociolinguistic Patterns*. University of Pennsylvania Press. 1972.
LEA, D. *Concurrent Programming in Java: Design Principles and Pattern*. Addison-
Wesley. 2000.
LEA, Doug. *Concurrent Programming in Java: Design Principles and Pattern*. 2. ed.
Addison-Wesley, 2000.
LIMA, T. J. *Desenvolvendo com Java: Desafios e Soluções*. Editora Práticas. 2021.
LIPPERT, M., & PENTZ, J. *Java Security*. O’Reilly Media. 2004.
MARTIN, Robert C. *Clean Code: A Handbook of Agile Software Craftsmanship*.
Prentice Hall, 2008.
MCCONNELL, Steve. *Code Complete*. Microsoft Press, 2004.
MEIER, R. *Professional Android*. Wiley Publishing. 2012.
MOURA, Z. *Gerenciamento de Memória em Java*. Editora Recursos. 2019.
NUNES, P. R. *Tipagem em Java: Uma Análise Crítica*. Editora Acadêmica. 2023.
P., C., & C., A. *Java for Data Science*. Manning Publications. 2019.
SANTOS, L. R. *Análise de Desempenho em Java*. Editora Performance. 2020.
22

SAUSSURE, F. de. *Cours de linguistique générale*. Payot. 1916.


SCHILDT, H. *Java: The Complete Reference*. McGraw-Hill. 2011.
SCHILDT, H. *Java: A Beginner’s Guide* (8ª ed.). McGraw-Hill. 2018.
SCHILDT, H. *Java: A Beginner’s Guide*. McGraw-Hill Education. 2019.
SCHILDT, Herbert. *Java: The Complete Reference*. 11. ed. McGraw-Hill, 2018.
SCHILDT, Herbert. *Java: The Complete Reference*. McGraw-Hill Education, 2018.
SHKLOVSKY, V. *Art as Technique*. In: Russian Formalist Criticism: Four Essays.
University of Nebraska Press, 1917.
SIERRA, K., & BATES, B. *Head First Java*. O’Reilly Media. 2005.
SILVA, B. F. *Segurança em Java: Práticas e Conceitos*. Editora Segura. 2021.
SMITH, Margaret. “The Role of Programming Languages in Software Development”.
Journal of Software Engineering, vol. 15, no. 3, 2020.
SOMMERVILLE, Ian. *Software Engineering*. Addison-Wesley, 2011.
SUBRAMANIAM, V. *Java 8 in Action*. Manning Publications. 2014.
WITTGENSTEIN, L. *Philosophical Investigations*. Blackwell. 1953.

Você também pode gostar