Uma atualização sobre o compromisso contínuo do MongoDB com Swift
Kaitlin Mahar, Rachelle Palmer4 min read • Published Feb 04, 2022 • Updated Jul 12, 2024
Avalie esse Artigo
Recentemente, Rachelle Palmer, gerente de produto sênior da MongoDB Drivers, conversou com Kaitlin Mahar, engenheiro-chefe dos motoristas
Swift
e Rust
para discutir alguns dos desenvolvimentos empolgantes na Swift
área . Este artigo detalha essa conversa.O Swift é uma linguagem bem documentada, fácil de usar e conveniente com foco no desenvolvimento de aplicativos para iOS. Como uma das dez principais linguagens, é mais popular do que Ruby, Go ou Rust, mas mantém um perfil bastante discreto - é a base subestimada de milhões de aplicativos, do Airbnb ao LinkedIn. Com sua sintaxe simples e forte perfil de desempenho, o Swift é versátil o suficiente para ser usado em muitos casos de uso e aplicativos, e observamos com grande interesse o crescimento do número de clientes que usam o Swift com o MongoDB.
O Swift também pode ser usado para mais do que dispositivos móveis, e vimos um número crescente de desenvolvedores em todo o mundo usar o Swift para desenvolvimento de back-end - os engenheiros de software podem facilmente ampliar suas habilidades com essa linguagem concisa e de código aberto. Kaitlin Mahar e eu decidimos que gostaríamos de compartilhar mais sobre o compromisso e o envolvimento do MongoDB com a comunidade Swift e como isso influencia algumas das iniciativas em nosso roteiro de motoristas do Swift.
Rachelle (RP): Quero ir direto ao grande anúncio! Parabéns por fazer parte do Swift Server Working Group (SSWG). O que é o SSWG e quais são algumas das coisas em que o grupo está pensando no momento?
Kaitlin (KM): O SSLWG é uma equipe de direção focado em promover o uso do Swift no servidor. Inscrever-se no SSLWG é uma honra e um privilégio para minha vida pessoal - por meio do meu trabalho no driver e na participação em conferências como Serverside.swift, tornei-me cada vez mais envolvido na comunidade nos últimos dois anos e estou interessado no grande potencial que eu veja Swift no servidor, e fazer parte do grupo é uma ótima oportunidade para se envolver mais profundamente nessa área. Há representações no grupo da Apple, Vapor (um popular framework web do Swift) e Amazon. No momento, o grupo está focado principalmente em orientar o desenvolvimento de um ecossistema robusto de bibliotecas e ferramentas para o Swift do lado do servidor. Executamos um processo de inibação para esses projetos, focado em fornecer orientação técnica geral, garantir compatibilidade entre bibliotecas e promover as melhores práticas.
Para isso, uma coisa em que estamos pensando agora é o pooling de conexões. A capacidade de agrupar conexões é muito importante para vários casos de uso do lado do servidor e, no momento, os desenvolvedores que precisam de um pool têm de implementá-lo do zero. Uma biblioteca generalizada tornaria muito mais fácil, por exemplo, escrever um novo driver de banco de dados em Swift. Muitos membros do SSWG, bem como a comunidade em geral, estão interessados nesse projeto, e estou muito animado para ver onde ele vai dar.
Várias outras bibliotecas e ferramentas fundamentais também estão sendo trabalhadas pela comunidade, e temos passado muito tempo pensando e discutindo sobre elas: por exemplo, APIs padronizadas para dar suporte ao rastreamento e uma nova biblioteca chamada Swift Service Lifecycle, que ajuda os aplicativos de servidor a gerenciar suas sequências de inicialização e desligamento.
RP: Quando conversamos com clientes sobre usar o Swift para desenvolvimento de backend, perguntamos como eles fizeram essa escolha, parece que as respostas são bastante diretas: com tempo e recursos limitados, era a maneira mais rápida de executar um aplicativo da web com um equipe de desenvolvedores iOS. No entanto, você acha que Swift é tentador aprender se você não é um desenvolvedor iOS? Tipo, como uma primeira linguagem em vez do Python?
KM: Com certeza! Minha primeira linguagem foi Python, e vejo muitas coisas queadoro em Python no Swift: é sucinta e expressiva, e é fácil aprender rapidamente o básico. Ao mesmo tempo, o Swift tem um sistema de tipos realmente poderoso e rigoroso, semelhante ao que você pode ter usado em linguagens compiladas como Java antes, o que torna muito mais difícil introduzir bugs em seu código e força você a resolver casos extremos (por exemplo , valores nulos) antecipadamente. As pessoas costumam dizer que Swift pega emprestada as melhores partes de várias outras linguagens, e eu concorda com isso. É uma ótima opção, seja seu primeiro idioma ou o quinto idioma, independentemente de você estar interessado em desenvolver para iOS ou não.
RP: Sem dúvida, acho que há uma ótima combinação aqui - temos o MongoDB, que é realmente fácil e rápido de começar a usar, e você tem o Swift, que é uma grande vitória para a produtividade do desenvolvedor.
RP: Qual é um dos seus recursos favoritos do Swift?
KM: Enums com valores associados estão definitivamente lá em cima para eu. Nós os usamos muito no driver. Elas fornecem uma maneira muito sucinta de expressar que valores específicos estão presentes sob certas condições. Por exemplo, o MongoDB permite que os usuários especifiquem uma string ou um documento como uma "dica" sobre o índice a ser usado ao executar uma query. Nossa API comunica explicitamente essas opções aos usuários definindo nosso tipo
IndexHint
assim:1 public enum IndexHint { 2 /// Specifies an index to use by its name. 3 case indexName(String) 4 /// Specifies an index to use by a specification `BSONDocument` containing the index key(s). 5 case indexSpec(BSONDocument) 6 }
Isso exige que o usuário especifique explicitamente qual versão de uma dica deseja usar e exige que ele forneça um valor do tipo correspondente correto junto com ela.
RP: Só gostaria de dizer que o meu é do tipo
MemoryLayout
. Ser capaz de ver o passo a passo de memória de uma classe que você definiu é realmente ótimo. Também estamos muito satisfeitos em anunciar que nossa principal prioridade para os próximos 6a9 meses é reescrever nosso driver para ser exclusivamente Swift. Para todos que estão se perguntando, por que nosso motorista oficial do Swift não era "all Swift" inicialmente? E por que mudar agora?KM: Inicialmente, optamos por envolver a libmongoc, pois ela fornecia um núcleo sólido e confiável e nos permitia oferecer uma ótima experiência no nível da API à comunidade mais cedo. A desvantagem disso, é claro, para cada recurso que queremos fazer, o driver C teve que implementá-lo primeiro, às vezes, o que atrasou nossa cadência de lançamento. Também achamos que escrever componentes internos do driver em Swift puro melhorará o desempenho e melhorará a segurança da memória - por exemplo, não precisaremos gastar tanto tempo tentando liberar a memória adequadamente quando terminarmos de usá-la.
Se você estiver interessado em saber mais sobre o Swift e como usar o Swift para seus projetos de desenvolvimento com o MongoDB, aqui estão alguns recursos para conferir:
Kaitlin também estará em um próximo episódio do MongoDB Podcast para falar mais sobre como trabalhar com Swift, então certifique-se de se inscrever e ficar ligado!
Se você tiver dúvidas sobre o Swift Driver ou apenas quiser interagir com outros desenvolvedores usando este e outros drivers, visite-nos na MongoDB Community e certifique-se de se apresentar e dizer olá!