ScalaConf 2019 - John Preacher, Holy Grail y Professor Haskell

El 26 de noviembre, ScalaConf 2019 , una conferencia profesional para desarrolladores de Scala, tendrá lugar en Infospace . Quizás el primero en Rusia. En la víspera del evento, le pedimos a Vadim Chelyshov ( dos65 ), el jefe de ScalaConf 2019 PC, que hablara sobre los informes y el concepto de la conferencia.



Esto es lo que aprendimos: en la conferencia, estamos esperando a un predicador de programación funcional, cuatro informes en inglés, una nueva herramienta que resolverá los problemas de los ingenieros de datos, un informe sobre por qué Scala Plugin es incompatible con el compilador de Scala, el profesor Haskell, y mucha programación funcional. También hablamos sobre los límites de desarrollo del desarrollador de Scala, por qué no hay jones entre ellos, sobre el "holivar" entre Scala y Haskell, y sobre la "burbuja" informativa de la comunidad. Detalles debajo del corte.

Concepto


Hola Vadim! Pregunta cero: cuéntanos sobre el concepto de la conferencia.

Soy decepcionante: no hay un concepto general. No estamos saciados con las conferencias de Scala en Rusia. No hay muchos eventos de este tipo que tengan lugar ante la organización para pensar en lo inusual que es sorprender. Esta es una conferencia de Scala, y hay mucha.

¿Significa esto que la comunidad que asiste a la conferencia no tiene expectativas?

Hay expectativas Estas son las expectativas de que habrá buenos informes y oradores, y eso es según Scala. Estas son las expectativas de que no tendrá que ir a informes relacionados sobre Haskell o Java para asistir a las dos presentaciones y media a las que asistí.

¿Es porque hubo pocas conferencias Scala en Rusia?

Podemos decir que las conferencias fueron cero . Cuando escribí artículos de investigación sobre el movimiento Scala, encontré información de que un par de eventos tuvieron lugar en San Petersburgo. La gente lo llamó una conferencia, pero fue un mitap: una pista para 3-4 oradores. En septiembre, se celebró una reunión, en la que se declararon 400 personas y se consideró una conferencia. No hay nada mas. El resto son mitaps en San Petersburgo, Moscú, algo en Novosibirsk y cerca de cero en otras ciudades.

La conferencia de Scala en Rusia ya es un evento.

Nota La primera y segunda parte de la investigación. El último llegará pronto, estad atentos.

¿Resulta que ScalaConf 2019 es la primera conferencia profesional sobre Scala?

Sí, con algunas suposiciones. La peculiaridad es que antes de eso no había sitios específicamente para Scala. Por lo general, estas eran conferencias de Java, donde la gente rocosa era una oveja negra, eventos mixtos sobre FP y mitaps. Si esto no es Moscú o San Petersburgo, entonces los mitaps también se mezclan.

ScalaConf 2019 es la primera plataforma rocosa para rockies.

En manifestaciones o conferencias mixtas, los oradores de Scala deben adaptarse a la audiencia, descartar muchos temas y reducir la complejidad del informe. Las presentaciones hardcore aparecen en las conferencias de FP, pero no se puede hablar solo de Scala.

No habrá restricciones en ScalaConf 2019. Solo Scala, solo hardcore.

Scala.js


Scala domina dos áreas: Big Data y backend. Por lo tanto, no había una tarea fundamental para preparar N secciones con un cierto número de hablantes en cada una. Partimos de los informes que fueron, seleccionamos los geniales y los etiquetamos: algo más sobre el backend, algo sobre el FP. La división en secciones es nominal, y los informes del bloque Language / Tuning serán tan claros como los de Big Data. Los oradores hablarán por todos.

La única excepción es Scala.js, en la que pocas personas escriben, así como en la interfaz. Más a menudo esto es un experimento, menos a menudo una decisión significativa para lograr ciertas ventajas. Scala.js es adecuado para la base de código complejo en Scala si desea usarlo dentro del navegador. Vi un buen ejemplo de compilador para el lenguaje blockchain usando esta herramienta. Los desarrolladores pudieron agregarlo interactivamente directamente al navegador: usted escribe en el idioma, el compilador verifica la validez y resalta.

Agregamos el informe " Scala.js: ¿es la herramienta adecuada para usted? "Para que la gente vea un ejemplo de uso. Los desarrolladores de Fullstack que escriben tanto backend como frontend por igual no existen. El desarrollador promedio rara vez escribe front-end y no quiere tomar JS o TypeScriprt. Él piensa: "¿Puedo probar Scala.js? Sí, no es que sea yo, nadie me entenderá ".

No es necesario usar Scala.js cuando hay herramientas y bibliotecas del mundo de frontend. Por lo tanto, pocas personas están experimentando con Scala.js, y el tema es extremadamente interesante. Alexander Sharikhin solo contará sobre su experiencia al usar Scala.js en eLama.

La tecnología de nicho de Scala.js es madura, funciona y tiene una comunidad específica. Hay algunos problemas con la integración de las bibliotecas JS populares, pero todos los que usaron Scala.js en proyectos reales responden positivamente.
Evgeny Tokarev, miembro de la PC ScalaConf 2019 .

Backend


Hay dos informes en este bloque: sobre búsqueda e indexación y sobre Akka. El primer informe de Andrei Korzinev : ¿habrá algo así como un "caso" sobre el método de trabajar con índices en Auto.ru?

Históricamente, primero usaron Apache Lucene en Java, luego lo tiraron y escribieron su YoctoDB en Java. Ahora están haciendo la tercera iteración en Scala para tener más control sobre los resultados de la consulta.

Scala se usa para distribución, en aplicaciones de subprocesos múltiples y muy raramente para proyectos similares. Es más probable que los desarrolladores de Scala se centren en la corrección y se preocupen poco por el rendimiento. Para una tarea promedio, el desarrollador ya obtiene un alto rendimiento sin hacer ningún esfuerzo.

El proyecto Avto.ru es uno de los que combina la corrección y el rendimiento. Por lo tanto, el informe de Andrei es único. Hablará de índices para los que el rendimiento es importante: búferes de bytes, sin varhand. Los informes de este formato son raros. El motor de búsqueda es una tarea de un nivel diferente y es muy diferente del promedio.

Pocos escriben su propio motor de búsqueda, incluso menos lo hacen en Scala.

Nikita Melkozerkov le dirá "en general" sobre uno de los enfoques para trabajar con Akka?

Hablará sobre Akka Persistence y FoundationDB . Akka Persistence es una biblioteca que está configurada para Akka y le permite almacenar convenientemente todos los eventos, guardarlos, recogerlos y no preocuparse por ello. Para ella, se escriben bibliotecas adicionales que vinculan la persistencia de Akka a cualquier base de datos.

Akka Persistance solo puede funcionar fuera de la caja con LevelDB. Todos los demás backends de almacenamiento son complementos de la comunidad. A menudo no se actualizan, y se teme llevarlos a un proyecto serio. Por lo tanto, es difícil elegir con qué utilizar Akka Persistance.

Hace un año, Apple abrió la biblioteca Foundation Source OpenDB y todos estaban entusiasmados. Es genial, distribuido, súper correcto y confiable debido al hecho de que todas las noches los desarrolladores simulan un billón de pruebas. Todos se inspiraron en el evento, y Nikita escribió el complemento Akka Persistance para FoundationDB.

En 40 minutos, Nikita contará sobre FoundationDB y sus ventajas, por qué Cassandra no funcionó, sobre Event Sourcing, sobre las principales etapas y características de los complementos de escritura en Akka Persistance. Espero que Nikita pueda convencer a todos de que arreglar o escribir un complemento para el almacenamiento necesario no da miedo ni es difícil, y el problema de la estabilidad desaparecerá.

Scala Developer Development y programación funcional


El informe de Olga Makhasoeva es el único en habilidades blandas y está en el bloque FP. ¿Cómo sucedió: las habilidades blandas no son tan importantes como las técnicas o la comunidad no está lista para tales informes?

En la primera conferencia de Scala, no podemos darnos el lujo de hacer muchas conferencias sobre habilidades blandas. Será una pérdida de tiempo y recursos. Resulta que podemos reemplazar a las personas que nos pueden contar algo técnico y útil con informes que podemos escuchar en otras conferencias.

Al mismo tiempo, queríamos agregar una nota clave al programa y Olga nos ayudó. Su conferencia sobre habilidades blandas, "El arte de hacer preguntas " , salió a la perfección. Se destaca con informes sobre FA, porque no hay forma de crear un bloque separado para ello.

Me gustaría proponer una hipótesis de que los desarrolladores de Scala están más orientados técnicamente.

Scala tiene muchas cosas técnicas para hablar y descubrir. En los idiomas principales, puede aprender rápidamente un idioma, familiarizarse con el ecosistema y alcanzar el límite técnico. Desarrollar aún más en la gestión, en habilidades blandas o en el trabajo de estudio en un nivel bajo. En Scala y FP, hay mucho espacio para profundizar: cómo lograr más garantías del código, cómo escribirlo más correctamente, en resumen, más rápido y de manera más confiable, para expresarlo de manera más concisa.

Scala tiene muchas técnicas y enfoques que nunca terminan.

Puede estudiar campos relacionados, leer otros idiomas y agregar lo mejor a Scala. Ampliamos nuestros horizontes para encontrar más probablemente algo útil e interesante. No hubo conferencia el año pasado donde hablaron de Tagless Final. Ha pasado un año, todos se han enfriado y están mirando el enfoque que se utiliza en ZIO. El flujo de nuevos y frescos para estudiar en FP y Scala nunca termina. Si mira lo suficientemente profundo, incluso en el marco de una solicitud de extracción Scala, puede excavar durante todo el día.

El principal recurso de noticias son los chats especializados, las cuentas públicas de Twitter como Scala Center y los blogs individuales, como el equipo de Akka o Scala-lang , que publican publicaciones sobre soluciones importantes de idiomas. Sin embargo, hay una cantidad increíble de información, es difícil seguir todo. El único recurso que ahorra es el Scala Times . Estos son boletines semanales con un resumen de publicaciones, lanzamientos, tweets y noticias en el mundo y la comunidad de Scala. Me he suscrito al Scala Times durante tres años. Pero voy muy raramente, miro los encabezados y una breve descripción. Cuando es necesario, puedo recordar que una vez vi esto y busqué, pero no más.

En un momento, intenté desarrollar el resumen de Scalanews.org . Intentamos trabajar con información como periodistas: estudiamos varias fuentes, y no solo el Scala Times, leía, desarmaba, escribía delineadores. Queríamos que el lector se beneficiara del artículo y recordara algo. Pero la información es marítima y el proyecto se desvanece gradualmente.

En Scala, puedes estudiar todo indefinidamente, pero ¿hay pasos para el crecimiento?

Durante mucho tiempo ha habido un sistema de gradación para Scala. No se sabe quién lo inventó, pero describe los niveles del desarrollador: un usuario seguro, escritor de la biblioteca y más. En una página especial de la conferencia John LambdaConf , se pintaron niveles de dominio de conceptos de 6 a 8 niveles. Hay niveles, pero no estoy seguro de que estén en uso.

También tuve en cuenta la gradación en junio, medio, senior. ¿Hay tal cosa?

Sí, pero no es común. Si en vacantes escriben una etiqueta, entonces este es el superior. Raramente es un medio o incluso un junior. A menudo, los desarrolladores que ya escribieron en otros idiomas van a Scala. Se cambiaron a Scala con experiencia en desarrollo, y esto claramente no es junio.

Los desarrolladores avanzados se mudan a Scala.

De ahí la alta edad promedio del desarrollador.

Informes en inglés: escándalos, recursividad, API


Hay cuatro altavoces extranjeros en el bloque de programación funcional. Comencemos con John A. De Hus.

Todos conocen a John.


John es muy activo: asiste a todos los eventos, participa en su biblioteca ZIO y lo promueve activamente, recientemente actuó en Scala Meetup. John promueve la FA y tiene éxito. Es un maestro de la atención.

Como resultado, participó en muchos escándalos. Por ejemplo, en 2019, ocurrieron varios dramas mundiales: ZIO y Scalaz fueron eliminados de la construcción de Scala, Typelevel.scala le prohibió a John participar en sus proyectos y Skills Matter cerró la entrada a todos sus eventos. Travis Brown, quien está asociado con Typelevel.scala, lanzó una publicación en la que acusó a John de todos los pecados. Estos eventos fueron discutidos incluso por personas alejadas de Scala, por ejemplo, en el podcast Radio-T.

En cierto sentido, John está haciendo todo bien: está a la vista y puede predicar AF a las masas. Actualmente está organizando su conferencia Scala en Londres a finales de 2019 y ya ha invitado a muchos oradores interesantes. En ScalaConf 2019, actuará con la nota clave de Snake Oils & Elixirs .

Interesante historia de John con Scalaz Sparta. Lanzó una maratón en la que ofreció tutoría, organización y ayuda para crear ecosistemas Scalaz para desarrolladores que no están involucrados en Open Source. Respondieron 300 personas, se formaron grupos de trabajo de intereses, se abrieron 30 repositorios. Casi nada disparó. Es poco probable que las personas se reúnan y permanezcan motivadas para escribir bibliotecas que pueden no ser necesarias en su trabajo actual.

Valentin Kassas también participó en la maratón. Quizás su proyecto se lanzará con éxito, todavía está involucrado en él. El " informe " de Valentine se ocupará de los patrones de recurrencia. Este es un tema avanzado, pero pocos los entienden. Durante años, los desarrolladores han estado tratando de superar los esquemas. Quizás Valentine finalmente ayude a entender este tema.

Conferencia de programación funcional sin mencionar esquemas de recursión: dinero por el desagüe.

El tercer orador es Adam Warski . Participa en proyectos de código abierto y comerciales, como cofundador de una empresa de desarrollo de software. El último año ha lanzado muchas bibliotecas, por API, por ejemplo. Él está trabajando en ellos cualitativamente, promoviendo en la comunidad. Todos los que siguen la vida de la comunidad Scala deberían conocerlo.

Su charla será sobre la biblioteca Tapir. Ayuda mucho con la documentación de Swagger. Por lo general, duele escribir Swagger. Lo mejor que obtuvimos de esto fue una construcción monstruosa y terrible en un montón de anotaciones, que aún pueden no corresponder a lo que escribiste allí.

Tapir resuelve este problema y da la descripción de Swagger de forma gratuita. El único proyecto similar es para Oleg Nizhnikov de la PC ScalaConf 2019. Pero Tapir tiene más relaciones públicas, porque Adam es experto en esto.

Pero la calidad del producto no se vio afectada. Tienes que hacer grandes compromisos, es conveniente organizar una API para cubrir todos los casos y tus dedos no se engancharán. Adam parece haber tenido éxito.

Después de aprender el idioma y resolver problemas prácticos, el desarrollador de Scala mira hacia el FP. En los últimos 4 años, la mayoría de los informes en conferencias extranjeras se han relacionado con la IF y sus enfoques para resolver problemas prácticos. Por lo tanto, estamos interesados ​​en hablantes extranjeros: hablan principalmente de FP.
Evgeny Tokarev, miembro de PC ScalaConf 2019


El último orador extranjero es Wojtek Pitula . Trabaja para Sony en el departamento de seguridad de la información. En el informe " Magia de integraciones: ecosistema mejor que cualquier marco ", contará cómo creó una aplicación en la que colocó todas las bibliotecas en funcionamiento.

Los informes extranjeros serán en inglés. ¿Habrá una traducción, subtítulos?

No, no pasará nada. El desarrollador se enfrenta constantemente a términos técnicos, lee documentación, manuales, estudios en inglés: hay todas las fuentes principales.

Asumimos que todos entendemos inglés.

Si es completamente incomprensible, habrá un código en la pantalla y desde allí es posible comprender lo que está sucediendo. Si no es así, siempre hay un informe alternativo en ruso en la sala de al lado.

Solo sobre la alternativa. ¿Daniil Smirnov también hablará sobre esquemas, como Valentin?

Casi. Ambos escriben bibliotecas relacionadas con esquemas. Ambos usan la misma fuente de inspiración: Xenomorph . Pero las bibliotecas son completamente diferentes, como un conjunto de características. La biblioteca de Daniel es más simple y funciona: toma y usa. Valentine tiene más campanas y silbatos, su propio DSL específico, más funciones y fue mucho más lejos de Xenomorph.

Daniel mostrará su proyecto Morphling. Pero el proyecto puede ahuyentar a una persona no preparada: difundir tipos con agujeros, frases extrañas como "HMutu" - horror. Por lo tanto, el propósito del informe es superar este miedo y descubrir la simplicidad y facilidad de uso de los esquemas, incluso en esta forma.

Con fines experimentales, redujimos deliberadamente el número de informes a 20 minutos. El informe de Daniel es uno de ellos. Asistí a una carrera reciente de Daniel, y puedo decir que hizo un buen trabajo con el informe debido a limitaciones de tiempo. Los temas de Daniel y Valentine se cruzan, pero van en diferentes momentos para cubrir todo el tema de las recursiones y los esquemas.

Alexandra Golubitskaya compara ZIO y Future. Este es el producto de John. ¿Están coordinados?

Si por supuesto. Alexandra participa activamente en la escritura de ZIO, se ayudan mutuamente con los informes. Cuando John muestra alguna característica en las conferencias, agradece a Alexander por la preparación. También es una de las organizadoras del evento en Londres. Ahora están preparando una nueva característica en ZIO: fragmentos. Si está listo para la fecha de la conferencia, Alexandra hablará sobre ellos .

El siguiente es Artem Seleznev y Scala Sin JDBC.

JDBC es un estándar antiguo que se usa en lenguajes JVM para trabajar con bases de datos relacionales. Se escribe una implementación específica para una base de datos específica. JDBC no se está desarrollando, es un estándar fijo y nadie puede rechazarlo. Todos escupen, se enojan, pero continúan masticando un cactus: no hay alternativa. Hay bibliotecas que ofrecen controladores asincrónicos, pero no son populares. Rob Norris ha escuchado la biblioteca de Skunk , pero ha estado en desarrollo durante más de un año y no está claro cuándo se lanzará.

Artyom le dirá cómo ponerse al día con JDBC. Para hacer esto, escribió a sus conductores "en la rodilla": las herramientas son suficientes para hacerlo usted mismo y con un estilo funcional. En el informe, mostrará cómo escribir conductores, y que "en la rodilla" no es más difícil ni peor de lo que todos están acostumbrados a pensar.

JetBrains, Holivars y Big Data


En el siguiente bloque "Language / Tuning", el primer informe de Andrey Kozlov y Mikhail Mutsianko. ¿Hablarán sobre uno de los productos JetBrains? En el programa, conté 3 informes de 18 de oradores de JetBrains. ¿Está conectado con algo?

También noté esto cuando comencé a hacer la cuadrícula de programación. Esto sucedió por casualidad y nadie promovió intencionalmente JetBrains. La compañía emplea a muchas personas cercanas a la FA, aunque sus principales productos no son sobre eso. Andrey Kozlov y Mikhail Mutsianko están trabajando en el complemento Scala, que todos usamos. Definitivamente no son superfluos aquí.

Hay un viejo problema de que el complemento de Scala no coincide con el compilador de Scala. Un compilador de código Scala alternativo está escrito en el complemento para que sus IDE funcionen. Por lo tanto, existe una discrepancia en el producto: en algunos lugares, el código es prácticamente válido, correcto, compilado por el compilador de Scala, pero en el IDE es rojo. Esto es frustrante, pero con el tiempo te acostumbras, hay menos zonas rojas.

Obviamente, la situación no es buena, pero el compilador Scala no es lo más fácil. La mayoría de los desarrolladores no son conscientes de los problemas y desafíos que enfrentan los desarrolladores de IDE. Lo más probable es que esta situación continúe aún más, pero Andrey Kozlov y Mikhail Mutsianko solo quieren decir su punto de vista. Quieren explicar por qué sucede esto, por qué debería ser, cuáles son los requisitos para el compilador, por qué escribirlo y por qué el complemento se escribe de esa manera. Hubo intentos de descubrir este secreto, vinieron a nosotros para grabar un podcast, pero aún no está claro.

Continuando con JetBrains y un pequeño salto a Big Data. «» - — , IDE. ?

, Big Data. . : , , , , . . , - .

JetBrains — . AppsConf . ScalaConf 2019 ?

, « Haskell» DOT — . DOT, . , «» Haskell Scala. , - , — .

?

, :)

, «» Haskell Scala?

, . Scala Java — . Haskell Scala. Haskell ( ), Scala , , .

. Scala Haskell .

«» . , - :)

, , Haskell, , , , Scala.

Scala?

, . . , , ensime, scalafix , fastparse. Scalafix .

, Open Source, . , , .

«» GraalVM. , ?

GraalVM . — Scala Native , Java . , JVM.

-, GraalVM — . , . . . GraalVM, , , . , GraalVM. , , , , . .

, GraalVM ?

. , GraalVM . . — GraalVM . .

, - GraalVM . . GraalVM « ». , , , . .

? , Big Data?

, . Big Data, , . , ..

Yupana — HBase time-series , . , . , — Yupana, , . Open Source .

ScalaConf 2019 . , -. 12 — . , . ScalaConf 2019!

Source: https://habr.com/ru/post/474322/


All Articles