Editorial Mundo Pauta

Bem vindos ao Mundo Pauta.

Este é um editorial de jornalismo que preza o cuidado por informações, em muitos casos seremos cautelosos em criar um conteúdo que gere valor em nossos leitores. Para isso estamos sempre com compromisso de investigar e buscar fontes que sejam legítimas. Isso significa que seremos capazes de trazer informações em tempo real e também manter a consistência.

PROGRAMA DE AFILIADOS:

Junca Games e Mundo Pauta fazem parte do programa de afiliados do Mercado Livre, portanto muitos artigos (14/02/2026) em diante terão links de recomendação. Sempre pedimos que ao irem ao link, leiam cada detalhe, pois não somos nós os responsáveis pela logística e o produto, e sim por recomendação, pesquisamos sempre pela reputação para garantir uma boa experiência, mas não o façam por “impulso”, leiam atentamente e tomem a decisão calmamente.

ACESSEM NOS DIRETÓRIOS:

Junca Games

SOBRE O AUTOR

Ciência da Computação (1) – História do Java

GIT HUB – REPOSITÓRIO (Java e Javascript \ Desktop \ Web – FullStack)

Seu lançamento oficial foi em 1995 pela Sun MicroSystems empresa norte-americana que teve enorme importância no desenvolvimento de estações de trabalho, servidores e tecnologias voltadas à computação em rede.

Um pequeno grupo de engenheiros da Sun, liderado por James Gosling, iniciou um projeto chamado Green Project. A intenção original não era criar uma linguagem especificamente para a internet. O grupo estudava como desenvolver programas capazes de funcionar em diferentes equipamentos eletrônicos, especialmente dispositivos domésticos inteligentes e sistemas embarcados.

O grande problema era a diversidade de processadores e sistemas existentes.

Um programa desenvolvido especificamente para determinada arquitetura normalmente precisava ser recompilado ou adaptado para funcionar em outra.

Era necessário criar alguma coisa mais portátil.

Foi nesse contexto que James Gosling começou a desenvolver uma nova linguagem.

Inicialmente ela recebeu o nome de Oak, em referência, segundo a história tradicionalmente associada à linguagem, a um carvalho que Gosling podia observar próximo ao seu escritório.

Oak recebeu influências de linguagens como C e C++, mas procurava eliminar ou simplificar alguns elementos considerados perigosos ou excessivamente complexos.

A linguagem adotava uma sintaxe que seria relativamente familiar para programadores de C++, mas introduzia conceitos que ajudariam a construir programas mais seguros e portáveis.

Um dos elementos fundamentais dessa arquitetura foi a utilização de uma máquina virtual.

Em vez de transformar diretamente o código escrito pelo programador em instruções específicas de determinado processador, o Java passaria a utilizar uma etapa intermediária.

O código-fonte:

HelloWorld.java

é compilado e normalmente transformado em bytecode:

HelloWorld.class

Esse bytecode pode então ser executado pela Java Virtual Machine — JVM.

Assim, diferentes sistemas operacionais poderiam possuir suas próprias implementações da JVM, enquanto o mesmo programa Java continuaria essencialmente independente da plataforma.

Dessa filosofia nasceu uma das frases mais famosas associadas à linguagem:

“Write Once, Run Anywhere” — escreva uma vez, execute em qualquer lugar.

No início da década de 1990, entretanto, o mercado de dispositivos domésticos inteligentes ainda não estava suficientemente desenvolvido para tornar o projeto comercialmente atraente.

Ao mesmo tempo, outra revolução começava.

A World Wide Web crescia rapidamente.

Os desenvolvedores da Sun perceberam que a característica de portabilidade da nova linguagem poderia ser extremamente útil em uma internet composta por computadores utilizando diferentes sistemas operacionais e arquiteturas.

Oak, porém, não poderia continuar usando esse nome por questões relacionadas a marca registrada.

A linguagem passou então a se chamar Java.

Em 1995, a Sun Microsystems apresentou oficialmente a tecnologia Java ao mercado.

Um dos elementos que inicialmente chamaram atenção foram os applets Java.

Eles permitiam que pequenos programas fossem carregados e executados dentro de páginas da internet por navegadores compatíveis.

Hoje os applets são uma tecnologia completamente ultrapassada, mas naquele período representavam uma possibilidade impressionante: páginas da Web poderiam deixar de ser apenas documentos relativamente estáticos e executar aplicações interativas.

Em 1996, foi lançado o JDK 1.0, consolidando a primeira versão pública da plataforma Java.

Entretanto, seria um erro imaginar que Java se tornou importante apenas por causa da Web.

Na realidade, sua influência mais duradoura ocorreu principalmente no desenvolvimento de sistemas corporativos e aplicações de servidor.

Durante o final dos anos 1990 e início dos anos 2000, Java passou a ocupar um espaço enorme dentro de bancos, empresas de telecomunicações, seguradoras, órgãos públicos e grandes sistemas empresariais.

A linguagem oferecia orientação a objetos, gerenciamento automático de memória por meio do Garbage Collector, tratamento estruturado de exceções, extensa biblioteca padrão e uma plataforma projetada para funcionar em ambientes diferentes.

Em 1998, a Sun apresentou o Java 2, reorganizando a plataforma em diferentes edições.

Entre elas estavam:

J2SE — Java 2 Standard Edition, voltada ao desenvolvimento geral;

J2EE — Java 2 Enterprise Edition, destinada principalmente a grandes aplicações corporativas e servidores;

J2ME — Java 2 Micro Edition, criada para dispositivos com recursos computacionais mais limitados.

A J2ME teria posteriormente enorme importância no período anterior à popularização dos smartphones modernos.

Durante muitos anos, milhões de celulares executaram jogos e pequenos aplicativos desenvolvidos em Java.

Quem utilizou telefones da Nokia, Motorola, Sony Ericsson, Siemens e diversas outras marcas durante os anos 2000 provavelmente teve contato com aplicações Java ME, mesmo sem perceber.

Outro capítulo fundamental aconteceu no universo dos smartphones.

Quando o Android surgiu comercialmente no final dos anos 2000, Java tornou-se a principal linguagem utilizada para o desenvolvimento de aplicativos para a plataforma.

Embora o Android não utilizasse simplesmente a JVM tradicional dos computadores — possuindo sua própria arquitetura de execução, inicialmente com a Dalvik Virtual Machine e posteriormente com o Android Runtime — a linguagem Java teve papel decisivo na formação do ecossistema Android.

Milhões de programadores passaram a aprender Java justamente para desenvolver aplicativos móveis.

A trajetória empresarial da linguagem também sofreu uma grande transformação.

Em 2010, a Oracle Corporation concluiu a aquisição da Sun Microsystems.

Com isso, Java passou a ser administrado pela Oracle.

A mudança gerou discussões dentro da comunidade, especialmente relacionadas ao modelo de desenvolvimento, licenciamento e evolução da plataforma.

Entretanto, Java já havia ultrapassado havia muito tempo os limites de uma única empresa.

Boa parte da plataforma passou a ser desenvolvida também por meio do OpenJDK, implementação aberta do Java que conta com contribuições da Oracle e de diversas outras empresas e desenvolvedores.

Ao longo dos anos, a própria linguagem continuou evoluindo.

Java deixou de ser apenas aquela linguagem extremamente associada aos grandes sistemas corporativos dos anos 2000.

Recursos modernos foram sendo incorporados.

O Java 5, por exemplo, trouxe mudanças importantes como Generics, Enums e Annotations.

O Java 8, lançado em 2014, tornou-se outra versão histórica ao introduzir recursos como expressões lambda e Stream API, aproximando a linguagem de paradigmas de programação funcional.

Versões posteriores continuaram acrescentando funcionalidades, melhorias de desempenho, segurança e simplificações de sintaxe.

Também houve uma mudança importante no próprio ritmo de evolução.

Em vez de esperar vários anos por grandes versões, Java passou a seguir um ciclo de lançamentos muito mais frequente, acompanhado periodicamente por versões de suporte prolongado, conhecidas como LTS — Long-Term Support.

Apesar de já possuir mais de três décadas de história, Java continua extremamente presente na computação.

Ele pode ser encontrado em sistemas bancários, serviços financeiros, grandes plataformas corporativas, APIs, aplicações Web, processamento de dados, infraestrutura de servidores, sistemas distribuídos e inúmeros softwares utilizados diariamente.

Frameworks como Spring e Spring Boot também contribuíram para manter Java extremamente relevante no desenvolvimento de aplicações modernas de backend e arquiteturas baseadas em serviços.

A linguagem ainda possui outra característica histórica importante: ela se transformou não apenas em uma linguagem, mas em um verdadeiro ecossistema computacional.

A JVM tornou-se uma plataforma capaz de executar inclusive outras linguagens, como Kotlin, Scala, Groovy e Clojure.

Isso significa que parte do legado técnico criado para Java ultrapassou a própria linguagem.

Talvez essa seja uma das maiores razões de sua longevidade.

Java conseguiu mudar sem abandonar completamente aquilo que havia sido construído anteriormente.

Um programa criado décadas atrás pode, em muitos casos, continuar funcionando em ambientes muito mais modernos.

Essa preocupação com compatibilidade ajudou empresas a construir sistemas destinados a permanecer em operação durante muitos anos.

Java certamente não é a linguagem mais nova.

Também não é necessariamente a melhor escolha para todos os projetos.

Mas poucas linguagens conseguem apresentar uma combinação semelhante de história, portabilidade, ecossistema, documentação, bibliotecas, ferramentas e presença no mercado profissional.

Da experiência conhecida como Green Project, iniciada em 1991, aos modernos servidores e serviços executados atualmente em ambientes de computação em nuvem, Java atravessou várias gerações da Ciência da Computação.

E continua sendo desenvolvido.

Para quem começa a estudar programação, conhecer Java significa mais do que aprender comandos, classes, métodos e objetos.

Significa também conhecer uma parte importante da própria história da evolução do desenvolvimento de software.

Em programação, tecnologias surgem e desaparecem rapidamente. Java é uma das exceções que conseguiu atravessar gerações.

Java – Como usar outros pacotes (método manual)?

Em Java você tem uma forma de usar os pacotes definitivamente mais fácil do que outras tecnologias. Em C por exemplo é uma volta enorme só para configurar. Em Javascript e Python basta colocar o .js e o .py na mesma pasta. E normalmente é feito usando um gerenciador, sem necessidades alguma de integrar e ir direto para o código. Acontece que Java e particularmente fácil. No entanto pode confundir uma vez que respostas em Fóruns ou mesmo o uso da IA, passam a informação (acreditem) errada. Vamos lá.

Se você perguntar para IA como usar pacotes de terceiros. Ele vai responder – “Baixe o .jar”. Acontece que o .jar não é o seu objetivo. Aliás ninguém disponibiliza em repositórios o .JAR. E sim o .JAVA. Por que? Na prática esse códigos ou são encapsulados em pacote ou são a classe final para simplesmente instancia-la em seu código fonte. E sendo legível, podendo ser abertos para serem lidos. .JAR está em Bytecode. Você e nem eu iremos ler isso. Não é possível entender nada. E consiste não termos a devida ideia como instanciar as classes sem poder identificar quais são.

Então se você for leigo(a) vai dar mais voltas do que pensa. Até descobrir que vai precisar ter um código fonte .JAVA e então compilá-lo para .class. E dai importar no cabeçalho ou instanciar (se estiver na mesma pasta). Vou trocar por míudos.

Vá no GIT HUB e procure um repositório de Java. Entre em uma pasta SRC e vai encontrar todos os .JAVA. Entre e leia o código. Copie e cole, não precisa fazer um GIT CLONE para arquivos indivudais. Salve em um notepad como .JAVA e coloque o comando “javac -d. nome.java” se você for fazer um program MAIN na mesma pasta não precisa usar o import no cabeçalho (import com.example.code.Nome) senão basta instanciar a classe Nome e usa-la dentro da classe local.

Ciência da Computação – Rust (15 anos) vs C++ (45 anos), qual é o melhor?

Acho que é extremamente inútil comparar as linguagens deste artigo, muito embora eu tenha deixado bem claro em uma provocação no título ser este o objetivo. Mas não é o objetivo. Não tem como comparar C++ com Rust. Simplesmente porque um deles é uma sombra do cópia e cola do C. Sei disso muito bem, parece birra de criança. Mas vamos para o aspecto técnico. E não para o bate boca de um desenvolvedor com longa estrada em C e C++ que quer descontar a má sorte sobre Rust. Vamos lá.

Dias desses estava acompanhado o quanto as linguagens estão se assemelhando com as linguagens que sempre existiram antes delas. E como essa volta ao modo que sempre deu certo parecer ser um ciclo familiar. Em 1972, C ganhou vida para ser uma versão ‘menos’ Assembly do Assembly. É uma linguagem considerada complicada por quem é graduado e um monstro por quem não é. Dá para entender. Ela exige conhecimento de computador e matemática, afugentando a maioria dos devs que são em sua maioria, não se sinta ofendido(a), entusiasta da área de tecnologia.

A área de tecnologia é vista como muitos como uma extensão do picadeiro Geek. É Vibe ser TI. Não me entendam novamente a mal. É legal parece ser um desenvolvedor descolado. Sim, por quê não? Mas ser um dev em JS não é ser um Dev. Sei, não me xinguem. Você continua sendo um solucionador de problemas. Mas não está manipulando as coisas pela engenharia dela, e sim pela superfice. Você não tem controle do que a linguagem faz e não pode mudar isso. Precisa esperar que alguém lance uma lib para melhora sua vida. Você concorda comigo? Você concorda comigo.

Python é uma linguagem de prototipação, mas acho que ninguém parece entender o que é isso de fato. Muitos investiram seu tempo e dinheiro para aprender Python. Eu lembro quando estava na faculdade em 2008, e um evento na Semana de Ciência e Tecnologia trouxe um quadro chamado Pycon. Não me lembro da edição. Mas parecia ser uma revolução. Meus professores mais antiquados fecharam a cara para essa novidade. Mas apesar disso, não concordo 100% em olhar para tecnologia. Mas olhar com a visão técnica e não pela vibe. O segundo é perigoso.

Python não é uma linguagem de programação de construção, para a gente traduzir diretamente da palavra inglesa BUILD. Você não tem um .exe nativo. Tem uma coisa chamada Pyinstaller que é um falso positivo de .exe. Ele não gera um executável. Como o Java não gera executável. Cria uma coisa chamada .JAR. Mas ele precisa de um instalador criado normalmente em C ou C++ para gerar o binário. E .dlls necessárias. Sem isso, Python não existe como executável. Mas naturalmente você deve entender que não existe muitos programas em Python .exe. O que existe são software prototipados em Python e depois passados a limpo em outra linguagem e nela finalizado.

Eu não sou contra tecnologia. Mas contra a miopia de que muitas pessoas podem desenvolver ao adotá-las. Eu posso estar sendo míope ao adotar por tanto tempo C\C++? Talvez. Mas tudo que perdura por muito tempo, parece funcionar. E C foi criado há 50 anos, Assembly foi criado em 1940. E C++ nos anos 80. Eles estão mais tempo de vida do que a maioria dos devs tem de idade. E são os verdadeiros engenheiros de quase toda tecnologia que usamos hoje em dia. Então se está funcionando, por que mudar?

Então eu comecei a garimpar uma tecnologia que o autoset do Javascript, o tal do Typescript que compartilha algumas similaridades com a sitnaxe do Rust. E adivinham, eu experimentei e notei uma coisa estranha. Ambos batem numa tecla familiar. Typescript e praticamente JAVA. E RUST é praticamente C. Mas eu devo dizer algo, JAVA é mais completo que TYPESCRIPT e C é mais completo e legível que RUST. O comparativo alí no título não é do C e sim do C++. Mas o comparativo real é C vs RUST. Mas eu não dirai comparativo. Eu diria C = RUST. Você concorda?

RUST não é POO, assim como C não é POO. C possui STRUCT e sim você pode simular POO com ele. Não é como ter classes. E sim por um lado isso ajuda em muito. Mas C++ quando usa classes duplica o tamanho da memória. C por sua vez impede isso. As boas práticas em C permite ter os resultados do RUST. A diferença em minha opinião é que RUST parece complicar isso sem necessidade. Vou dar alguns exemplos de sintaxe:

Em RUST você não precisa fazer chamadas de libs como em JS. Eu acho isso nada legível e pode parecer, mas na hora de fazer manutenção o bicho costuma pegar porque você não sabe quais dependências estão em jogo ali. Mas em C e C++ você faz o #include e sabe o que está acontecendo no código. Em C++ você pode até em alguns casos dispensar, pois a linguagem faz isso por você. Mas C não tem desculpa, senão fizer declaração, simplesmente ele não roda o código. E isso nos permite uma sensação de ‘entendimento’ de mecanismo.

Em RUST você não precisa definir o tipo básico das variáveis, mas isso muda quando se trata de parâmetro de função e 8uando você precisa definir constantes. Para mim isso se torna um pouco confuso. Pois você tem regras que não parecem seguir uma lógica. Por que você precisa definir o tipo de dado aqui, mas ali não precisa? Em C\C++ você DEVE definir. Então você tem essas sintaxes.

RUST:

let nome = “Mundo Pauta” ou let nome : String \ nome : &str (o primeiro caso permite alteração do valor e o segundo caso é mutável. No entanto o let mut nome já muda isso. Já const nome não permite a devida mudança. Não sei se vocês compreendem o que isso de fato ajuda em gerenciar memória. Mas são regras para impedir ‘alocação indevida’. Os chamados valores vazios. Pois bem. Em C você tem um tipo de STRING que é definido como const char, normalmente declarado como um ponteiro e referenciado com a variável precedida de &. Até aqui você pode entender o seguinte, este const char permite alteração de variável sem precisar definir que ela é uma variável.

A pergunta fica, porque let é na prática constante, let mut é a variável e o const é uma constante? Em RUST isso existe para garantir que você só mude um valor mediante uma regra de liberação de memória. O problema é que você precisa entender cada mecanismo para não errar. E o debug dificilmente te impede de errar. Pois ela impede de compilar se estiver errado. Em C se estiver errado, ele vai compilar assim mesmo. E se você não tiver um IDE, ele vai executar assim mesmo com o erro. Porque depende de você entender isso por consciência.

C:

const* char nome = “Mundo Pauta”;

C++:

std::String nome = “Mundo Pauta”;

Em RUST a mudança de valor de String segue uma regra um pouco complexa. Ela precisa referenciar o valor da seguinte forma String::from(“value”); para um tipo de let mut nome : String. Perceberam o quanto isso é ilegível? O que está acontecendo ali? Bem, em C você pode ter estouro de pilha se você fizer um char ler uma string. Por isso uma const char permite um char se tornar um vetor. Em Rust você não tem contato com essa informação. Ele está mais para um ‘protetor’ dos problemas de memória. E para isso faz um caos na sintaxe.

Eu estudei RUST e pensei que ele fosse uma GRANDE REVOLUÇÃO. Fora ele ser uma combinação sintática de PYTHON, JAVA, JAVASCRIPT E C e funcionar como se fosse uma JVM do JAVA e que não gera um .exe. Me faz pensar que talvez as pessoas estejam aplaudindo uma tecnologia que é um JAVA ++? Seria uma evolução da tecnologia da Sun? O Cargo é uma espécie de gerenciador de pacotes + compilador. Ele funciona como o vcpkg do C, pip do python e o npm do Javascript. A diferença é que o compilador dele em console fora do IDE é bem completo. Seria o meu único elogio. Ele dispensa o uso do IDE. É o depurador mais completo que eu já vi usando instaladores simples.

Depois de um tempo você mesmo consegue depurar códigos de C\C++ sem muitas dicas. Mesmo eu já fiz códigos em notepad em C executei ele usando o gcc++ 8ue é um comando de build e run do compilador do C\C++. E já corrigir problemas sem precisar de um depurador. Mas o RUST atende a regra de controle para garantir memória e não vazamento, por uma única razão e não é inédita. Ela faz igual ao C#. Ela impede a execução se alguma regra estiver fora do escopo. Por exemplo, se você escrever nomeCompleto como variável, ele acusa erro. Fala de algo chamado snake. Em C, C++ isso não existe. Ele obriga você a escrever em caixa baixa nomes de variáveis variáveis e em caixa alta nome de constantes, o padrão do C.

C:

#define PI 3.14156

Mas tem uma diferença. Em Rust definir uma constante é alocar memória em uma variável. Em C você definia a constante em um comando para o processador. Ele não usava um espaço de memória. E isso poupava o uso dela. Em C++ isso também não existe e funciona igual ao RUST. Usando inclusive o const na frente.

Já li que muitos dizem que RUST tem problema de memória. Na realidade eu preciso discordar de uma coisa. Ele tem controle máximo de memória. Para isso ele criou regras rigidas de como um código precisa ser escrito. Lá você cria um src com o comando de cargo new <nomedoprojeto> e então vai criar um main.js e em cargo.toml ele vai criar o nome do pacote. E reconhecer que o main.rs é o comando de programa principal. Igual tem no C. O int main(). Mas tem uma diferença. Você não pode criar o seu int main, você tem que criar funções (fn) e elas erem chamadas no int main. Em C, você pode criar libs com int main própriop. E isso ser executado como um CORE (núcleo próprio) de libs.

Neste caso, RUST é seguro porque ele LIMITA os seus passos. E não porque ele é SUPER SEGURO. C já tem como assegurar. MALLOC. A maioria tem problemas porque desconhece totalmente como um computador funciona. Ao meu ver, RUST parece aquele carinha seguro, gente boa. Mas o problema dele é justamente outro. Ele é o cara comportado, com sapatos lustrados. Mas se sair a exceção, ele cai por terra. Esse tipo de código é engessado e como não sabemos que includes estão envolvidos, precisando ir no toml para ver, isso torna o código com dificuldade de manutenção e ESCALABILIDADE. Não se enganem não estou falando que não é, mas que será complicado atualizar esses códigos no futuro.

E POR FIM, se C tem problemas. Por quê RUST foi escrito em C?

Resident Evil – A ilha da Morte (Mangá, volume único)

Resident Evil Ilha da Morte.

Reúne Leon Kennedy, Claire Redfield, Chris Redfield, Jill Valetine e Rebecca Chambers na Ilha histórica de Alcatraz. Impressão ao ler é de estar jogando um título da Capcom. Onde as histórias se entrelaçam. Dylan Blake desenvolve uma arma moderna (Bio Drones) para espalhar o vírus T pelo mundo, segundo ele, reconstruir a humanidade que julga corrupta. Mangá com leitura oriental, direita para esquerda. Volume único.

Parceria: 😃 @arcadanostalgia

#juncagames #garimpogeek #residentevil #capcom #manga