El software está vivo. Con esto no me refiero a la parte en la que ocasionalmente puede molestarte por cómo llega a un determinado estado. Eso probablemente se pueda explicar por un error en alguna parte.
Por vivo me refiero al hecho de que el software bien amado y bien utilizado crece y cambia constantemente en respuesta a los estímulos. A medida que cambia el entorno, cambia. A medida que cambian los objetivos, se amplía. Cualquier cosa que no se mantenga fiel a esto gana un nuevo apodo no deseado en nuestro mundo del software: legado.
Ampliando la metáfora, ¿hablamos de flora o de fauna? Sin duda, flora.
Las plantas se adaptan según cambian las estaciones, según cambia su entorno, para aprovechar la fauna cercana, etcétera. De hecho, las supervivientes responden incluso al ataque de los insectos (¡bichos!).
Crecimiento para nuevas funciones
En primer lugar, permítanme mencionar brevemente que de lo que estoy hablando aquí es de "SDK 3" con las comillas pertinentes. En la práctica, en lugar de intentar vincular artificialmente todos los SDKs de Couchbase Server a un número de versión común, siguen la norma Norma de facto de versionado semántico. Así, cuando actualizamos las características de una plataforma concreta, actualizamos la versión punto-menos y cuando introducimos una nueva plataforma, empieza en 1.0.
¿Qué significa entonces "SDK 3"? Es el nombre que damos a un conjunto de características comunes, respetando los modismos de la plataforma, a los SDK que incorporan importantes novedades y actualizan las interfaces a la última para la plataforma. No es tarea fácil.
Metafóricamente, llámelo planta con una mutación respecto a la generación anterior que le permitirá florecer en este nuevo entorno.
¿Qué ha cambiado en el entorno que provoca esta necesidad de mutar?
Cuando lanzamos el primer SDK de Node.JS, las librerías promises no existían y el movimiento hacia async-await ciertamente no había comenzado. Hay algunos cambios que podemos hacer en la firma para hacer este SDK más fácil de usar. Con Java, Couchbase ha sido un líder en la adopción de un modelo de programación reactiva. Fuimos precoces en RxJava, y el microclima que nos rodea es más propicio para Reactive Streams y Project Reactor. Para .NET, fuimos rápidos en portar a .NET Core y también añadimos el nuevo async-await, aunque un poco de poda y reorganización nos dará una planta más atractiva.
La lista continúa: Python 3, Scala cada vez más popular, PHP con un lanzamiento importante, etc.
Crecimiento de la cubierta
El crecimiento aquí en "SDK 3" no se aplica únicamente a la flora SDK. En las próximas semanas, habrá algún crecimiento en las áreas de características de Couchbase Server también. Aunque no quiero preanunciar las muchas características que verás allí, una cosa que verás es soporte para una característica de vista previa de colecciones. Hemos hecho esto de tal manera para asegurar la compatibilidad con versiones anteriores, por lo que todavía se puede utilizar una de esta nueva cosecha junto a su, ejem, el crecimiento maduro.
Vuelve pronto al blog de Couchbase para conocer los detalles de estos nuevos brotes...
Recorte para una mayor eficacia
Al igual que uno puede hacer un poco de adelgazamiento de la fruta para llegar a la cosecha más jugosa del resto, hemos eliminado algunos de los menos propensos a producir brotes. Aquí, eso significa que en adelante no vamos a soportar versiones anteriores de PHP 5, avanzando sólo con soporte para Python 3 y eliminando algunas plataformas Linux antiguas. Para Java, esto significa Java 8 en adelante solamente. Consulte la documentación para obtener más información sobre la compatibilidad y se aceptan comentarios sobre las cosas que le gustaría ver.
Plagas no deseadas
Con muchas, muchas... muchas versiones de mantenimiento, no teníamos muchos errores que aplastar de cara a la siguiente versión principal, pero había algunos que no podíamos arreglar sin romper la API. Uno de los favoritos es SDK El error del año 2038 de Java. Esté prevenido ahora, si usted está en Couchbase Java SDK 2.x, a medida que nos acercamos al 19 de enero de 2038, su aplicación probablemente podría romperse, ya que no puede expresar TTLs con suficiente vida.
Hay otras áreas que son un poco más sutiles. No tener disyuntores directamente en algunos SDK significaba que los desarrolladores de aplicaciones tenían que manejar esto a un nivel superior. Ahora estamos añadiendo esto donde es apropiado, aunque puede que no esté en todas las versiones alfa todavía.
Que florezcan un millón de flores
Permítanme invitarles a que consulten los blogs específicos de algunas de las versiones alfa y nos den su opinión. En Foros de Couchbase son la mejor área para canalizar los comentarios, aunque siempre agradecemos cuestiones archivadas también y estaremos encantados de colaborar en pull requests.
Jeff Morris ha un blog sobre .NET Alphahablando un poco más sobre versiones y ámbitos/colecciones. Michael Nitschinger sigue con Detalles de Cross SDK API en su blog sobre Java 3.0 Alpha. Brett Lawson habla de cómo este se aplica a los desarrolladores de Node.JS con promesas y ECMAScript6. Charles Dixon despega desde ahí con Go SDK 2.0 alfa (un error intencionado). Y con los blogs inaugurales, Ellis Breen muestra un fotocélulas incluidas Python 3.0 alpha mientras que Graham Pople presenta el nuevo y emocionante SDK alfa 1.0 de Scala (¡que incluye dos errores de uno en uno!).
Además de todos esos, hay alfas de PHP y libcouchbase en los lugares habituales, PECL y los enlaces de descarga y así sucesivamente.
Foto fuente original cortesía Imágenes de Wikipedia.