ScalaConf 2019 - John Preacher, Holy Graal et Professor Haskell

Le 26 novembre, ScalaConf 2019 , une conférence professionnelle pour les développeurs Scala, aura lieu dans l' Infospace . Peut-être le premier en Russie. À la veille de l'événement, nous avons demandé à Vadim Chelyshov ( dos65 ), le responsable de ScalaConf 2019 PC, de parler des rapports et du concept de la conférence.



Voici ce que nous avons appris: lors de la conférence, nous attendons un prédicateur de programmation fonctionnelle, quatre rapports en anglais, un nouvel outil qui résoudra les problèmes des ingénieurs de données, un rapport expliquant pourquoi Scala Plugin est incompatible avec le compilateur Scala, le professeur Haskell et beaucoup de programmation fonctionnelle. Nous avons également parlé des limites de développement du développeur Scala, pourquoi il n'y a pas de jones parmi eux, de l'holivar entre Scala et Haskell et de la «bulle» informationnelle de la communauté. Détails sous la coupe.

Concept


Bonjour, Vadim! Zéro question - parlez-nous du concept de la conférence?

Je suis décevant - il n’existe pas de concept général. Nous ne sommes pas rassasiés des conférences Scala en Russie. Il n'y a pas beaucoup d'événements de ce genre qui ont lieu devant l'organisation pour réfléchir à la façon inhabituelle de surprendre. Il s'agit d'une conférence Scala, et il y en a beaucoup.

Est-ce à dire que la communauté qui participe à la conférence n'a aucune attente?

Il y a des attentes. Ce sont les attentes qu'il y aura des rapports et des conférenciers sympas, et c'est selon Scala. Ce sont les attentes que vous n'aurez pas à consulter les rapports sur Haskell ou Java pour assister aux deux présentations et demie pour lesquelles je suis venu.

Est-ce parce qu'il y a eu peu de conférences Scala en Russie?

On peut dire que les conférences étaient nulles . Lorsque j'ai écrit des articles d'enquête sur le mouvement Scala, j'ai trouvé des informations selon lesquelles deux événements avaient eu lieu à Saint-Pétersbourg. Les gens l'appelaient une conférence, mais c'était un mitap - une piste pour 3-4 orateurs. En septembre, une réunion a eu lieu, au cours de laquelle 400 personnes ont été déclarées et cela a été considéré comme une conférence. Il n'y a rien d'autre. Le reste est mitaps à Saint-Pétersbourg, Moscou, quelque chose à Novossibirsk et proche de zéro dans d'autres villes.

La conférence Scala en Russie est déjà un événement.

Remarque Première et deuxième parties de l'enquête. Le dernier arrive bientôt - restez à l'écoute.

Il s'avère que ScalaConf 2019 est la première conférence professionnelle sur Scala?

Oui, avec quelques hypothèses. La particularité est qu'avant cela, il n'y avait pas de sites spécifiquement pour Scala. Il s'agissait généralement de conférences Java, où le peuple rocheux était un mouton noir, des événements mixtes sur la PF et des mitaps. Si ce n'est pas Moscou ou Saint-Pétersbourg, les mitaps sont également mitigés.

ScalaConf 2019 est la première plateforme rocheuse pour les Rocheuses.

Lors de rassemblements ou de conférences mixtes, les intervenants Scala doivent s'adapter au public, abandonner de nombreux sujets et réduire la complexité du rapport. Les présentations hardcore apparaissent lors des conférences FP, mais vous ne pouvez pas parler uniquement de Scala.

Il n'y aura aucune restriction sur ScalaConf 2019. Seulement Scala, seulement hardcore.

Scala.js


Scala domine deux domaines: le Big Data et le backend. Par conséquent, il n'y avait pas de tâche fondamentale pour préparer N sections avec un certain nombre d'orateurs dans chacune. Nous avons procédé à partir des rapports qui ont été sélectionnés avec soin et étiquetés: quelque chose de plus sur le backend, quelque chose sur le FP. La division en sections est nominale et les rapports du bloc Langue / Réglage seront aussi clairs que ceux du Big Data. Les orateurs parleront au nom de tous.

La seule exception est Scala.js, sur lequel peu de gens écrivent, ainsi que sur le frontend. Le plus souvent, il s'agit d'une expérience, moins souvent d'une décision significative pour obtenir certains avantages. Scala.js convient à la base de code complexe de Scala si vous souhaitez l'utiliser dans le navigateur. J'ai vu un bon exemple de compilateur pour le langage blockchain en utilisant cet outil. Les développeurs ont pu l'ajouter de manière interactive directement au navigateur: vous écrivez dans la langue, le compilateur vérifie la validité et met en évidence.

Nous avons ajouté le rapport « Scala.js - l'outil vous convient-il? "Pour que les gens voient un exemple d'utilisation. Les développeurs Fullstack qui écrivent aussi bien le backend que le frontend n'existent pas. Le développeur moyen écrit rarement front-end et il ne veut pas prendre JS ou TypeScriprt. Il pense: «Puis-je essayer Scala.js? Oui, pas que ce soit moi, personne ne me comprendra. »

Il n'est pas nécessaire d'utiliser Scala.js lorsqu'il existe des outils et des bibliothèques du monde du frontend. Par conséquent, peu de gens expérimentent Scala.js et le sujet est extrêmement intéressant. Alexander Sharikhin va juste raconter son expérience de l'utilisation de Scala.js dans eLama.

La technologie de niche de Scala.js est mature, fonctionne et a une communauté spécifique. Il y a quelques problèmes avec l'intégration des bibliothèques JS populaires, mais tous ceux qui ont utilisé Scala.js dans de vrais projets répondent positivement.
Evgeny Tokarev, membre du PC ScalaConf 2019 .

Backend


Il y a deux rapports dans ce bloc - sur la recherche et l'indexation et sur Akka. Le premier rapport d' Andrei Korzinev - y aura-t-il quelque chose comme un «cas» sur la méthode de travail avec les index dans Auto.ru?

Historiquement, ils ont d'abord utilisé Apache Lucene en Java, puis l'ont jeté et ont écrit leur YoctoDB en Java. Maintenant, ils font la troisième itération sur Scala pour plus de contrôle sur les résultats de la requête.

Scala est utilisé pour la distribution, dans les applications multi-thread et très rarement pour des projets similaires. Les développeurs Scala sont plus susceptibles de se concentrer sur l'exactitude et de se soucier peu des performances. Pour une tâche moyenne, le développeur obtient déjà de hautes performances sans faire aucun effort.

Le projet Avto.ru est l'un de ceux qui combine à la fois l'exactitude et la performance. Par conséquent, le rapport d'Andrei est unique. Il parlera des index pour lesquels les performances sont importantes: tampons d'octets, varhandless. Les rapports de ce format sont rares. Le moteur de recherche est une tâche d'un niveau différent et très différent de la moyenne.

Peu écrivent leur propre moteur de recherche, encore moins le font sur Scala.

Nikita Melkozerkov parlera "en général" d'une des approches pour travailler avec Akka?

Il parlera d'Akka Persistence et de FoundationDB . Akka Persistence est une bibliothèque configurée pour Akka et vous permet de stocker facilement tous les événements, de les enregistrer, de les récupérer et de ne pas vous en soucier. Pour elle, des bibliothèques supplémentaires sont écrites qui lient Akka Persistence à n'importe quelle base de données.

Akka Persistance ne peut fonctionner qu’avec LevelDB. Tous les autres backends de stockage sont des plugins de la communauté. Ils ne sont pas souvent mis à jour et on craint de les intégrer dans un projet sérieux. Par conséquent, il est difficile de choisir avec quoi utiliser Akka Persistance.

Il y a un an, Apple a ouvert la bibliothèque Foundation Source OpenDB, et tout le monde était excité. Il est cool, distribué, super-correct et fiable car les développeurs simulent tous les soirs un billion de tests. Tout le monde a été inspiré par l'événement et Nikita a écrit le plugin Akka Persistance pour FoundationDB.

Dans 40 minutes, Nikita expliquera FoundationDB et ses avantages, pourquoi Cassandra n'a pas fonctionné, Event Sourcing, les principales étapes et fonctionnalités de l'écriture de plugins dans Akka Persistance. J'espère que Nikita sera en mesure de convaincre tout le monde que réparer ou écrire un plugin pour le stockage nécessaire n'est pas effrayant et pas difficile, et le problème des problèmes de stabilité disparaîtra.

Développement développeur Scala et programmation fonctionnelle


Le rapport d'Olga Makhasoeva est le seul en soft skills et il est dans le bloc FP. Comment cela s'est-il produit: les compétences générales ne sont pas aussi importantes que les compétences techniques ou la communauté n'est pas prête pour de tels rapports?

Lors de la première conférence Scala, nous ne pouvons pas nous permettre de faire de nombreuses conférences sur les compétences générales. Ce sera une perte de temps et de ressources. Il s'avère que nous pouvons remplacer les personnes qui peuvent nous parler de quelque chose de technique et d'utile par des rapports que nous pouvons écouter lors d'autres conférences.

En même temps, nous voulions ajouter un discours au programme et Olga nous a aidés. Sa conférence sur les compétences générales, «L' art de poser des questions », était parfaite. Il se tient avec des rapports sur AF, car il n'y a aucun moyen de créer un bloc séparé pour lui.

Je voudrais proposer une hypothèse selon laquelle les développeurs Scala sont plus orientés techniquement.

Scala a beaucoup de choses techniques à raconter et à découvrir. Dans les langues traditionnelles, vous pouvez rapidement apprendre une langue, vous familiariser avec l'écosystème et atteindre la limite technique. Développer davantage que dans la gestion, dans les compétences non techniques ou le travail d'étude à un faible niveau. Dans Scala et FP, il y a beaucoup de place pour l'approfondissement: comment obtenir plus de garanties du code, comment l'écrire plus correctement, bref, plus rapide et plus fiable, pour l'exprimer de manière plus concise.

Scala a de nombreuses techniques et approches qui ne finissent jamais.

Vous pouvez étudier des domaines connexes, lire d'autres langues et ajouter le meilleur à Scala. Nous élargissons nos horizons afin de trouver plus probablement quelque chose d'utile et d'intéressant. Il n'y a pas eu de conférence l'année dernière où ils ont parlé de Tagless Final. Une année s'est écoulée, tout le monde s'est refroidi et regarde l'approche qui est utilisée dans ZIO. Le flux de nouvelles et fraîches à étudier dans le FP et Scala ne se termine jamais. Si vous regardez suffisamment en profondeur, même dans le cadre d'une demande de tirage Scala, vous pouvez creuser toute la journée.

La principale ressource d'information est les chats spécialisés, les comptes Twitter publics comme le Centre Scala et les blogs individuels, comme l'équipe Akka ou Scala-lang , qui publient des articles sur des solutions linguistiques importantes. Cependant, il y a une quantité incroyable d'informations, il est difficile de tout suivre. La seule ressource qui enregistre est le Scala Times . Ce sont des newsletters hebdomadaires avec un résumé des articles, des communiqués, des tweets et des nouvelles dans le monde et la communauté Scala. Je suis abonné au Scala Times depuis trois ans maintenant. Mais j'y vais très rarement, je regarde à travers les en-têtes et une brève description. En cas de besoin, je me souviens avoir déjà vu cela et cherché, mais pas plus.

À un moment donné, j'ai essayé de développer le condensé Scalanews.org . Nous avons essayé de travailler avec des informations en tant que journalistes: nous avons étudié diverses sources, et pas seulement le Scala Times, lu, démonté, écrit des eyeliners. Nous voulions que le lecteur profite de l'article et se souvienne de quelque chose. Mais l'information est mer et le projet s'estompe progressivement.

À Scala, vous pouvez tout étudier indéfiniment, mais y a-t-il des étapes pour la croissance?

Il existe depuis longtemps un système de gradation pour Scala. On ne sait pas par qui il a été inventé, mais il décrit les niveaux du développeur: un utilisateur confiant, un écrivain de bibliothèque, etc. Sur une page spéciale de la conférence John LambdaConf , des niveaux de maîtrise des concepts de 6 à 8 niveaux ont été peints. Il y a des niveaux, mais je ne suis pas sûr qu'ils soient utilisés.

J'avais aussi en tête la gradation en juin, moyen, senior. Y a-t-il une telle chose?

Oui, mais pas commun. Si dans les postes vacants, ils écrivent une étiquette, alors c'est l'aîné. Est rarement un milieu ou même un junior. Souvent, les développeurs qui ont déjà écrit dans d'autres langues vont à Scala. Ils sont passés à Scala avec une expérience dans le développement, et ce n'est clairement pas un mois de juin.

Les développeurs avancés passent à Scala.

D'où l'âge moyen élevé du développeur.

Rapports en anglais: scandales, récursivité, API


Il y a quatre locuteurs étrangers dans le bloc de programmation fonctionnel. Commençons par John A. De Hus.

Tout le monde connaît John.


John est très actif: assiste à tous les événements, est engagé dans sa bibliothèque ZIO et en fait la promotion active, il a récemment joué au Scala Meetup. John fait la promotion de la FA et il réussit. C'est un maître de l'attention.

En conséquence, il a participé à de nombreux scandales. Par exemple, en 2019, plusieurs drames mondiaux se sont produits: ZIO et Scalaz ont été supprimés de la construction Scala, Typelevel.scala a interdit à John de participer à leurs projets et Skills Matter a fermé l'entrée de tous leurs événements. Travis Brown, qui est associé à Typelevel.scala, a publié un article dans lequel il accusait John de tous ses péchés. Ces événements ont été discutés même par des personnes éloignées de Scala, par exemple, dans le podcast Radio-T.

Dans un sens, John fait tout correctement - est bien en vue et peut prêcher la FA aux masses. Il organise actuellement sa conférence Scala à Londres fin 2019 et a déjà invité de nombreux intervenants sympas. Au ScalaConf 2019, il se produira avec la keynote Snake Oils & Elixirs .

Histoire intéressante de John avec Scalaz Sparta. Il a lancé un marathon dans lequel il a offert du mentorat, de l'organisation et de la création d'écosystèmes Scalaz pour les développeurs qui ne sont pas impliqués dans l'Open Source. 300 personnes ont répondu, des groupes de travail d'intérêts ont été formés, 30 référentiels ont été ouverts. Presque rien n'a été tiré. Il est peu probable que les gens se réunissent et restent longtemps motivés à écrire des bibliothèques qui ne sont peut-être pas nécessaires dans leur travail actuel.

Valentin Kassas a également participé au marathon. Peut-être que son projet sera publié avec succès - il y est toujours impliqué. Le « rapport » de Valentin traitera des modèles de récursivité. C'est un sujet avancé, mais peu les comprennent. Depuis des années, les développeurs tentent de surmonter les schémas. Peut-être que Valentin aidera enfin à comprendre ce sujet.

Conférence de programmation fonctionnelle sans mentionner les schémas de récursivité - l'argent dans les égouts.

Le troisième orateur est Adam Warski . Il participe à des projets Open Source et commerciaux, en tant que co-fondateur d' une société de développement de logiciels. L'année dernière, de nombreuses bibliothèques ont été publiées, par exemple par API. Il y travaille qualitativement, en faisant la promotion dans la communauté. Tous ceux qui suivent la vie de la communauté Scala devraient le connaître.

Son exposé portera sur la bibliothèque Tapir. Cela aide beaucoup avec la documentation Swagger. Cela fait généralement mal d'écrire Swagger. La meilleure chose que nous avons pu en tirer était une terrible construction monstrueuse sur un tas d'annotations, qui peut ne pas correspondre à ce que vous y avez écrit.

Tapir résout ce problème et donne gratuitement la description de Swagger. Le seul projet similaire concerne Oleg Nizhnikov de ScalaConf 2019 PC. Mais Tapir est plus PR, car Adam est compétent dans ce domaine.

Mais la qualité du produit n'a pas été affectée. Vous devez faire de gros compromis, il est pratique d'organiser une API pour couvrir tous les cas et vos doigts ne s'accrocheront pas. Adam semble avoir réussi.

Après avoir appris la langue et résolu des problèmes pratiques, le développeur Scala se tourne vers le FP. Au cours des 4 dernières années, la plupart des rapports présentés lors de conférences étrangères ont été liés à l'IF et à ses approches pour résoudre les problèmes pratiques. Par conséquent, nous nous intéressons aux locuteurs étrangers - ils parlent principalement de FP.
Evgeny Tokarev, membre de PC ScalaConf 2019


Le dernier locuteur étranger est Wojtek Pitula . Il travaille pour Sony dans le département de la sécurité de l'information. Dans le rapport « Magie des intégrations - un écosystème meilleur que n'importe quel framework », il racontera comment il a créé une application dans laquelle il a placé toutes les bibliothèques de travail.

Les rapports étrangers seront en anglais. Y aura-t-il une traduction, des sous-titres?

Non, rien ne se passera. Le développeur est constamment confronté aux termes techniques, lit la documentation, les manuels, les études en anglais - il y a toutes les sources principales.

Nous supposons que nous comprenons tous l'anglais.

Si c'est complètement incompréhensible, alors il y aura un code à l'écran et à partir de là, il est possible de comprendre ce qui se passe. Sinon, il y a toujours un autre rapport en russe dans la pièce voisine.

À peu près l'alternative. Daniil Smirnov parlera-t-il également de stratagèmes, comme Valentin?

Presque. Ils écrivent tous les deux des bibliothèques liées aux schémas. Les deux utilisent la même source d'inspiration - Xenomorph . Mais les bibliothèques sont complètement différentes, comme un ensemble de fonctionnalités. La bibliothèque de Daniel est plus simple et en état de marche - prendre et utiliser. Valentine a plus de cloches et de sifflets, sa propre DSL spécifique, plus de fonctionnalités et elle est allée beaucoup plus loin de Xenomorph.

Daniel montrera son projet Morphling. Mais le projet peut effrayer une personne non préparée: répandre des types avec des trous, des phrases étranges comme "HMutu" - horreur. Par conséquent, l'objectif du rapport est de surmonter cette peur et de découvrir la simplicité et la facilité d'utilisation des régimes, même sous cette forme.

À des fins expérimentales, nous avons délibérément réduit le nombre de rapports à 20 minutes. Le rapport de Daniel en fait partie. J'ai assisté à une récente tournée de Daniel, et je peux dire qu'il a fait du bon travail avec le rapport en raison de contraintes de temps. Les thèmes de Daniel et Valentine se croisent, mais vont à des moments différents pour couvrir tout le sujet des récursions et des schémas.

Alexandra Golubitskaya compare ZIO et Future. Ceci est le produit de John. Sont-ils coordonnés?

Oui bien sûr. Alexandra est activement impliquée dans la rédaction de ZIO, ils s'entraident pour les rapports. Lorsque John montre une fonctionnalité aux conférences, il remercie Alexander pour la préparation. Elle est également l'une des organisatrices de l'événement à Londres. Maintenant, ils préparent une nouvelle fonctionnalité dans ZIO - des morceaux. S'il est prêt pour la date de la conférence, alors Alexandra en parlera .

Ensuite, Artem Seleznev et Scala Without JDBC.

JDBC est un ancien standard utilisé dans les langages JVM pour travailler avec des bases de données relationnelles. Une implémentation spécifique est écrite pour une base de données spécifique. JDBC ne se développe pas, c'est un standard fixe et personne ne peut le refuser. Tout le monde crache, s'énerve, mais continue de mâcher un cactus - il n'y a pas d'alternative. Il existe des bibliothèques qui fournissent des pilotes asynchrones, mais elles ne sont pas populaires. Rob Norris a entendu la bibliothèque Skunk , mais elle est en développement depuis plus d'un an et ne sait pas quand elle sera publiée.

Artyom dira comment descendre avec JDBC. Pour ce faire, il a écrit ses pilotes "à genoux" - les outils sont suffisants pour le faire vous-même et dans un style fonctionnel. Dans le rapport, il montrera comment écrire des pilotes, et que «à genoux» n'est ni plus difficile ni pire que tout le monde a l'habitude de penser.

JetBrains, Holivars et Big Data


Dans le bloc suivant «Language / Tuning», le premier rapport d'Andrey Kozlov et Mikhail Mutsianko. Vont-ils parler d'un des produits JetBrains? Dans le programme, j'ai compté 3 rapports sur 18 de conférenciers de JetBrains. Est-ce lié à quelque chose?

J'ai également remarqué cela lorsque j'ai commencé à créer la grille des horaires. Cela s'est produit par hasard et personne n'a intentionnellement promu JetBrains. L'entreprise emploie de nombreuses personnes proches de la FA, bien que leurs principaux produits ne soient pas à ce sujet. Andrey Kozlov et Mikhail Mutsianko travaillent sur le plugin Scala, que nous utilisons tous. Ils ne sont certainement pas superflus ici.

Il y a un vieux problème que le plug-in Scala ne correspond pas tout à fait au compilateur Scala. Un autre compilateur de code Scala est écrit dans le plugin pour que leurs IDE fonctionnent. Par conséquent, il existe une différence dans le produit - à certains endroits, le code est pratiquement valide, correct, compilé par le compilateur Scala, mais dans l'IDE, il est rouge. C'est frustrant, mais avec le temps, on s'y habitue, il y a moins de zones rouges.

Évidemment, la situation n'est pas bonne, mais le compilateur Scala n'est pas la chose la plus simple. La plupart des développeurs ne sont pas conscients des problèmes et des défis auxquels sont confrontés les développeurs IDE. Très probablement, cette situation se poursuivra, mais Andrey Kozlov et Mikhail Mutsianko veulent juste donner leur point de vue. Ils veulent expliquer pourquoi cela se produit, pourquoi cela devrait être, quelles sont les exigences pour le compilateur, pourquoi l'écrire et pourquoi le plugin est écrit de cette façon. Il y a eu des tentatives pour découvrir ce secret, ils sont venus nous voir pour enregistrer un podcast, mais ce n'est toujours pas clair.

Poursuivant sur JetBrains et un petit saut aux 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 ?

C'est possible. , 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/fr474322/


All Articles