SQL, a linguagem de consulta estruturada, continua sendo uma das linguagens de programação mais usadas, ficando em quarto lugar na pesquisa do Stack Overflow para 2023. Pouco mais da metade (51,52%) dos desenvolvedores profissionais usam SQL em seu trabalho, mas apenas cerca de um terço (35,29%) %) daqueles que aprendem a codificar usam SQL.

Para uma linguagem que permanece em uso há décadas, o SQL tem uma reputação mista entre os desenvolvedores. Por que o SQL permanece em uso quando tantas outras linguagens surgiram e desapareceram? E por que o SQL ainda tem um futuro brilhante?

Onipresença e estabilidade

Uma razão pela qual o SQL continua em uso é porque ele é onipresente. Conhecer SQL é uma habilidade básica para muitos desenvolvedores, resultando em um grande grupo de pessoas com as habilidades disponíveis. Por sua vez, isso incentiva mais pessoas a aprender SQL, pois podem ver a demanda por pessoas com essas habilidades e oferecer oportunidades de carreira das quais possam aproveitar.

Juntamente com essa onipresença, o SQL é estável. É um padrão eficaz no qual os desenvolvedores podem confiar e não muda de versão para versão. Isso torna o SQL adequado para o planejamento de suporte de longo prazo, e as equipes envolvidas podem planejar com antecedência sua infraestrutura de dados. Isso também simplifica a transição de projetos entre diferentes desenvolvedores à medida que os membros da equipe mudam de função.

Seguindo isso, o SQL torna mais fácil atender aos requisitos de compatibilidade em torno dos dados nos aplicativos. Usar SQL como sua abordagem para interrogar dados em um componente de dados facilita a transferência para outra opção se suas necessidades mudarem. Por exemplo, se você decidir mudar de um banco de dados para outro, não precisará editar o funcionamento da lógica do seu aplicativo ao usar termos SQL, pois eles são iguais em todos os lugares.

Como o SQL atua como um padrão, um benefício é que ele facilita a portabilidade dos seus dados. Em vez de estar vinculado a um banco de dados específico com linguagem e forma de armazenamento de dados próprios, o SQL garante que seus dados sejam seus e que você possa fazer o que quiser com eles. Efetivamente, você não precisa mais pensar especificamente nos seus bancos de dados e no que eles podem oferecer. Em vez disso, você pode considerar as ferramentas que existem na linguagem como o ponto de controle do seu processo de planejamento de infraestrutura.

Por exemplo, considere suas escolhas em relação à execução de um banco de dados como o MySQL e, em seguida, querer mudar para outra opção como o PostgreSQL. Esses bancos de dados seriam diferentes na forma como operam e gerenciam os dados ao longo do tempo. No entanto, do ponto de vista funcional, usar SQL para interrogar esses dados daria os mesmos resultados.

Apoiado pela ciência

Juntamente com a popularidade do SQL como linguagem, também vale a pena observar o que o SQL oferece do ponto de vista tecnológico. Nesse aspecto, o maior benefício é que seu design é lógico. Isso significa que, quando você entende como funciona, pode ser usado de maneira elegante e inteligente.

Como parte disso, precisamos observar a ligação entre SQL e bancos de dados relacionais. Para muitos desenvolvedores, o SQL está intimamente ligado ao modelo de banco de dados relacional, com todos os pontos fortes e fracos que isso pode ter. No entanto, o SQL como linguagem é separado dos bancos de dados relacionais e é importante não confundir os dois.

Hoje em dia, muitos bancos de dados não relacionais adotaram um modelo semelhante a uma tabela e uma linguagem SQL. Já faz muito tempo que SQL e modelo relacional eram sinônimos e, com o surgimento dos bancos de dados não relacionais, as fronteiras tornaram-se mais fluidas. Por exemplo, alguns armazenamentos de valores-chave e alguns bancos de dados de armazenamento de documentos adotaram uma estrutura semelhante a uma tabela para organizar seus dados, e alguns fornecem um subconjunto de SQL ou uma linguagem de consulta semelhante a SQL para maior acessibilidade e para facilitar aos desenvolvedores a trabalhar com seus produtos.

Ao longo dos anos, o modelo relacional provou ser extremamente eficaz para projetos de bancos de dados. A razão para isso é que o modelo é baseado em uma teoria matemática sólida e muito precisa. Esses fortes fundamentos teóricos são o motivo pelo qual os bancos de dados relacionais permaneceram tão populares na ciência da computação e na engenharia de software em geral. O SQL tornou mais fácil o acesso a esse poder lógico e de computação ao longo do tempo e a manutenção desses sistemas funcionando de maneira uniforme que todos possam entender.

Embora eu tenha mencionado que SQL é um padrão de fato, como qualquer outro padrão, ele evoluiu ao longo do tempo e pode ser estendido quando bem planejado. O melhor exemplo dessa evolução é a mudança no padrão que permite que fornecedores de bancos de dados suportem diferentes formatos JSON em 2016.

Por muitos anos, os desenvolvedores que queriam trabalhar com JSON tiveram a opção de usar bancos de dados orientados a documentos, como o MongoDB, para seu armazenamento de dados, enquanto outros bancos de dados seriam opções secundárias devido ao desempenho e à facilidade de uso. Hoje, esse não é o caso, já que muitos bancos de dados relacionais como o PostgreSQL implementaram suporte JSON que pode funcionar tão rápido ou até mais rápido do que bancos de dados orientados a documentos para determinadas cargas de trabalho. Esse suporte torna mais fácil para os desenvolvedores projetarem sistemas e infraestrutura que apoiem diretamente os objetivos de seus aplicativos, em vez de ficarem vinculados a uma abordagem específica.

Possuir a otimização

Outro benefício do SQL é que ele é uma linguagem declarativa. A programação declarativa funciona descrevendo o que você deseja que o programa faça, em vez de especificar as etapas que você deseja que o programa execute para fazer isso. Para desenvolvedores e bancos de dados, isso facilita a criação de consultas, pois você pode se concentrar no resultado que deseja alcançar, em vez de montar todo o cálculo. Na verdade, o SQL permite descrever o resultado e deixa a complexidade da execução do cálculo para o banco de dados.

Como qualquer linguagem poderosa, o SQL tem seus críticos. Por exemplo, uma reclamação comum é que os otimizadores SQL não são muito eficazes para melhorar o desempenho. Embora você possa querer melhorar seus resultados e a velocidade de resposta, essas ferramentas são tão poderosas quanto a quantidade de trabalho que você dedica no início. Às vezes enfrentamos um problema semelhante com compiladores de linguagem. Embora os compiladores geralmente consigam transformar o código do desenvolvedor em um binário menor e mais rápido, sabe-se que eles falham gravemente em algumas ocasiões, com o resultado oposto.

Como desenvolvedor, você pode precisar auxiliar o compilador ou otimizador para obter os resultados corretos. Às vezes esse conhecimento pode ser obscuro! Como disse o tio Ben do Homem-Aranha, grande poder vem com grande responsabilidade. Você deve otimizar sua abordagem SQL tanto quanto possível, em vez de depender apenas de ferramentas para fornecer melhorias.

Outra crítica comum ao SQL se deve à sua forte ligação com bancos de dados relacionais. Como algo tão profundamente enraizado no design de banco de dados tradicional pode ser adequado para o mundo moderno? É claro que a combinação de bancos de dados SQL e relacionais continua a atender centenas de casos de uso atualmente, proporcionando escalabilidade e desempenho que podem atender às necessidades dos aplicativos. O desafio é projetar sua abordagem com base na compreensão do que o SQL é bom em oferecer.

Atendendo às necessidades modernas dos desenvolvedores

À medida que a demanda por software, o ritmo de desenvolvimento de software e o número de desenvolvedores aumentaram, o desafio para o SQL é que menos desenvolvedores têm uma compreensão profunda de como o SQL funciona a partir de uma perspectiva teórica. Embora movimentos como devops e engenharia de confiabilidade de sites se concentrem em atender às demandas que as empresas têm em relação aos serviços de TI, as funções envolvidas tendem a abranger diversas partes da pilha de TI, em vez de funções específicas.

Embora essas funções teoricamente se concentrem no sistema total, não há foco suficiente em como alinhar a lógica de negócios, ou o que o cliente deseja alcançar, com as complexidades da infraestrutura. Por que isso é tão importante? Porque uma arquitetura de banco de dados não deve apenas atender aos requisitos funcionais, mas também estar alinhada aos objetivos de desempenho, escalabilidade e segurança. Sem ambos, você não terá uma base sólida para o desenvolvimento de software bem-sucedido.

Quando os aplicativos começam a escalar massivamente ou quando surgem problemas de desempenho, saber como o SQL funciona pode ser extremamente útil. Compreender o design da consulta, por exemplo, como selecionar dados de uma tabela maior em vez de analisar dados da mesma tabela várias vezes, pode ter um enorme impacto no desempenho. Essas habilidades de gerenciamento de dados dependem efetivamente da compreensão da teoria do banco de dados. Isso leva tempo para ser entendido e implementado na prática, mas é essencial para entregar melhores resultados.

Aprender qualquer idioma pode ser difícil e demorado. Muitos de nós não temos tempo para aprofundar os princípios e depois aplicar esse conhecimento em linguagens e aplicações. No entanto, isto leva a problemas como o mau desempenho, que se tornam mais difíceis de diagnosticar e tratar eficazmente. A implantação do tipo errado de banco de dados também pode afetar o sucesso do seu projeto. Você pode ficar muito satisfeito com um banco de dados que é ótimo para determinados casos de uso, mas pode não ser adequado para tudo. SQL torna mais fácil abstrair esses requisitos da infraestrutura subjacente. Mesmo se você cometer um erro na escolha do banco de dados, o SQL torna mais fácil mudar para uma opção melhor.

O SQL continua popular entre muitos usuários e continuará popular porque resolve alguns dos maiores desafios que existem em torno de como trabalhar com dados. Pode ter uma reputação assustadora para alguns, mas isso não diminui a enorme quantidade de tecnologia da informação que depende do SQL todos os dias para nos fornecer valor. Por muito tempo podemos SELECT SQL e CREATE valor com isso.

Charly Batista é líder técnico de PostgreSQL na Percona.

O New Tech Forum oferece um local para líderes de tecnologia – incluindo fornecedores e outros colaboradores externos – explorarem e discutirem tecnologias empresariais emergentes com profundidade e amplitude sem precedentes. A seleção é subjetiva, baseada na escolha das tecnologias que acreditamos serem importantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não aceita material de marketing para publicação e reserva-se o direito de editar todo o conteúdo contribuído. Envie todos consultas para [email protected].