O software está vivo. Com isso, não estou me referindo à parte em que ele pode ocasionalmente incomodá-lo com a forma como chega a um determinado estado. Isso provavelmente pode ser explicado por um bug em algum lugar.
Por vivo, estou me referindo ao fato de que um software bem amado e bem usado está em constante crescimento e mudança em resposta a estímulos. À medida que o ambiente muda, ele muda. À medida que os objetivos mudam, ele se expande. Qualquer coisa que não se mantenha fiel a isso ganha um apelido novo e indesejado em nosso mundo de software: legado.
Estendendo a metáfora, estamos falando de flora ou fauna? Definitivamente, de flora.
As plantas se adaptam conforme as estações mudam, conforme o ambiente muda, para tirar proveito da fauna próxima e assim por diante. De fato, os sobreviventes respondem até mesmo ao ataque de insetos (insetos!).
Crescimento para novos recursos
Primeiro, deixe-me mencionar brevemente que o que estou falando aqui é "SDK 3" com as aspas relevantes. Na prática, em vez de tentar vincular artificialmente todos os SDKs do Couchbase Server a um número de versão comum, eles seguem o padrão Padrão de versionamento semântico de fato. Assim, quando atualizamos um recurso de uma plataforma específica, atualizamos a versão ponto-menor e, quando introduzimos uma nova plataforma, ela começa na versão 1.0.
Então, o que significa "SDK 3"? É o nome que damos a um conjunto de recursos comuns, respeitando os idiomas da plataforma, para os SDKs que estão trazendo novos recursos importantes e atualizando as interfaces para o que há de mais recente na plataforma. Essa não é uma tarefa fácil!
Metaforicamente, chame-a de uma planta com uma mutação em relação à geração anterior que permitirá que ela floresça nesse novo ambiente.
O que mudou no ambiente que leva a essa necessidade de mutação?
Quando lançamos o primeiro SDK do Node.JS, as bibliotecas de promessas ainda não existiam e a mudança para o async-await certamente não havia começado. Há algumas mudanças que podemos fazer na assinatura para tornar esse SDK mais fácil de usar. Com o Java, o Couchbase tem sido um líder na adoção de um modelo de programação reativa. Fomos os primeiros a adotar o RxJava, e o microclima ao nosso redor é mais propício ao Reactive Streams e ao Project Reactor. Em relação ao .NET, fomos rápidos na portabilidade para o .NET Core e também adicionamos o async-await mais recente, embora um pouco de poda e reorganização nos dê uma planta mais atraente.
A lista de fato continua: Python 3, Scala se tornando mais popular, PHP com uma versão principal e assim por diante.
Crescimento do dossel
O crescimento aqui no "SDK 3" não se aplica somente à flora do SDK. Nas próximas semanas, haverá algum crescimento nas áreas de recursos do Couchbase Server também. Embora eu não queira anunciar previamente os muitos recursos que você verá lá, uma coisa que você verá é o suporte para um recurso de visualização de coleções. Fizemos isso de forma a garantir a compatibilidade com versões mais antigas, para que você ainda possa usar uma dessa nova safra junto com o seu, aham, crescimento maduro.
Volte ao blog do Couchbase em breve para obter detalhes sobre esses novos lançamentos...
Aparar para obter eficiência
Assim como se faz um desbaste de frutas para obter uma safra mais suculenta do restante, removemos alguns dos brotos com menor probabilidade de produção. Aqui, isso significa que, daqui para frente, não ofereceremos suporte a versões mais antigas do PHP 5, avançando apenas com o suporte ao Python 3 e removendo algumas plataformas Linux mais antigas. Para Java, isso significa apenas Java 8 em diante. Consulte a documentação para obter detalhes sobre compatibilidade, e aceitamos de bom grado comentários sobre o que você gostaria de ver.
Pragas indesejadas
Com muitas, muitas... muitas versões de manutenção, não tínhamos muitos bugs para eliminar na próxima versão principal, mas havia alguns que não podíamos corrigir sem quebrar a API. Um dos favoritos é Bug do ano 2038 do SDK Java. Esteja avisado: se você estiver usando o Java SDK 2.x do Couchbase, à medida que nos aproximamos de 19 de janeiro de 2038, seu aplicativo provavelmente poderá falhar, pois não poderá expressar TTLs com vida útil suficiente.
Há outras áreas que são um pouco mais sutis. Não ter disjuntores diretamente em alguns SDKs significava que os desenvolvedores de aplicativos tinham que lidar com isso em um nível mais alto. Agora estamos adicionando isso onde for apropriado, embora possa não estar em todas as versões alfa ainda.
Deixe um Milhão de Flores Florescer
Gostaria de convidá-lo a conferir os blogs específicos de alguns dos lançamentos alfa e nos dar um feedback. A Fóruns do Couchbase são a melhor área para encaminhar o feedback, embora sempre apreciemos questões registradas também e teremos prazer em colaborar com as solicitações pull.
Jeff Morris tem um blog sobre o .NET Alphafalando um pouco mais sobre controle de versão e escopos/coleções. Michael Nitschinger continua com Detalhes da API do Cross SDK em seu blog sobre o Java 3.0 Alpha. Brett Lawson fala sobre como esse aplica-se a desenvolvedores de Node.JS com promessas e ECMAScript6. Charles Dixon decola a partir daí com Go SDK 2.0 alfa (um erro intencional). E com os blogs inaugurais, Ellis Breen mostra uma fotocélulas incluídas Python 3.0 alpha enquanto Graham Pople apresenta o novo e empolgante Scala SDK alpha 1.0 (o que inclui dois erros de um por um!).
Além de tudo isso, há alfas do PHP e da libcouchbase nos locais habituais, PECL e os links de download e assim por diante.
Cortesia da fonte original da foto Imagens da Wikipédia.