Ziverge
Ziverge
  • 330
  • 503 551
Zymposium - Building Better Open Source series part II
In this new weekly series, join host John De Goes to learn how to build better open source!
Bring your own open source project, or come to watch John pair with open source contributors from all around the world.
Using innovation, static types, and attention to pain points and developer experience, learn how to create award-winning open source that changes the way we build software!
zhlédnutí: 367

Video

Zymposium - How to Build an OSS Library that Provides Golden Testing
zhlédnutí 216Před dnem
In this new weekly series, join host John De Goes to learn how to build better open source! Bring your own open source project, or come to watch John pair with open source contributors from all around the world. Using innovation, static types, and attention to pain points and developer experience, learn how to create award-winning open source that changes the way we build software!
Zymposium - Learn How to Build Better Open Source with John A. De Goes
zhlédnutí 901Před měsícem
In this new weekly series, join host John De Goes to learn how to build better open source! Bring your own open source project, or come to watch John pair with open source contributors from all around the world. Using innovation, static types, and attention to pain points and developer experience, learn how to create award-winning open source that changes the way we build software!
How To Catch Graphs With Linked Lists And Generics by Aleksandr Novikov at Functional Scala Conf
zhlédnutí 262Před 2 měsíci
How To Catch Graphs With Linked Lists And Generics by Aleksandr Novikov at Functional Scala Conference. Aleksandr Novikov's talk, 'How To Catch Graphs With Linked Lists And Generics', at #FunScalaConf23. This session goes into the world of graph processing, showcasing Novikov's expertise in leveraging linked lists and generics within Scala to enhance data structure manipulation and processing e...
Exploring Language Design with 'Flappy' by Satoshi Ogasawara at Functional Scala Conference
zhlédnutí 145Před 2 měsíci
Exploring Language Design with 'Flappy' by Satoshi Ogasawara at Functional Scala Conference Join Satoshi Ogasawara for details about programming language creation with his talk, 'Flappy - Flexibility From Home-Made Language,' at the #FunScalaConf23. Discover the journey of developing Flappy, a language crafted from scratch, expressing the challenges and innovations encountered along the way. Th...
The Pain Of Engineering Management by Roksolana Diachuk
zhlédnutí 192Před 2 měsíci
"The Pain Of Engineering Management" by Roksolana Diachuk at Functional Scala 2023. As an engineering manager, Roksolana shares her insights on balancing product features with technical improvements and enhancing team performance. She'll tackle common challenges like library upgrades, code style, build tools, redesigning pipelines, and mentoring in Scala. A must-watch for engineering leaders an...
Releasing Kyo: When Performance Meets Elegance In Scala by Flavio Brasil
zhlédnutí 1,5KPřed 2 měsíci
"Releasing Kyo: When Performance Meets Elegance In Scala" by Flavio Brasil at Functional Scala 2023. In this presentation, Flavio introduces Kyo, a next-gen effect system for Scala, offering a fresh approach with algebraic effects. Kyo stands out by avoiding complex Category Theory and cryptic symbols, making development intuitive yet robust. It extends ZIO's effect rotation for greater flexibi...
Pathodental Complexity by Alexander Ioffe
zhlédnutí 309Před 2 měsíci
"Pathodental Complexity" by Alexander Ioffe at Functional Scala 2023. Dive into the distinction between intrinsic, accidental, and the proposed 'pathodental' complexities. Alexander challenges long-held assumptions with examples that blur the lines of complexity in programming. This talk will provoke thought and encourage you to question what you accept as intrinsic complexity ➡️ Join us for an...
Durable Computing For Scala by Adam Fraser
zhlédnutí 661Před 2 měsíci
"Durable Computing For Scala" by Adam Fraser at Functional Scala 2023 In this presentation, Adam explores the concept of durable computing in Scala, addressing the challenge of ensuring software resilience against hardware failures, especially in cloud deployments. He questions the prevalent practice of building durability at the application level and suggests a shift towards integrating durabi...
Solid & Flexible: The Tour Of Temporal Workflows by Vitalii Honta
zhlédnutí 163Před 2 měsíci
"Solid & Flexible: The Tour Of Temporal Workflows" by Vitalii Honta at Functional Scala 2023. Vitalii Honta showcases how Temporal Workflows blend solidity with flexibility using ZIO, simplifying the creation of robust applications. Discover patterns for application development and the advantages of ZIO-Temporal in leveraging Scala and ZIO to improve the engineering experience. This talk is Vit...
Observability With ZIO-Telemetry by Pierangelo Cecchetto
zhlédnutí 199Před 2 měsíci
Watch Pierangelo's talk on using ZIO-Telemetry for enhanced observability in applications. Learn how meaningful logs and end-to-end tracing can boost productivity in error handling, support, bug investigation, and performance tuning. Gain insights into building tracing instrumentation for any service boundary with ZIO-Telemetry. Contents in the video: 1:43 Observability 4:15 Logging 6:30 Tools ...
The Ubiquity Of Functional Programming Concepts In Latest Tech by Afsal Thaj
zhlédnutí 410Před 2 měsíci
"The Ubiquity Of Functional Programming Concepts In Latest Tech" by Afsal Thaj at Functional Scala 2023. Hear Afsal's journey with Functional Programming in Scala and its empowering effect on navigating the tech industry's evolving paradigms. This presentation delves into the integration of FP concepts across various programming languages, with a focus on Rust, and extends to frontend technolog...
Practical Codegen: Metaprogramming For Pragmatists by Devon Stewart
zhlédnutí 121Před 2 měsíci
"Practical Codegen: Metaprogramming For Pragmatists" by Devon Stewart at Functional Scala 2023. Explore the power of scalameta for practical metaprogramming with Devon Stewart. This talk will guide you through developing a custom sbt code generation plugin, enhancing your Scala projects with scalameta's robust capabilities. ➡️ Join us for an ultimate functional experience at LambdaConf 2024 in ...
Grandmaster: Multi-Modal Heterogeneous Build Tool For Scala by Pavel Shirshov
zhlédnutí 71Před 2 měsíci
"Grandmaster: Multi-Modal Heterogeneous Build Tool For Scala" by Pavel Shirshov at Functional Scala 2023. Learn about the need for a more efficient Scala toolchain with Pavel Shirshov. Explore Grandmaster, a new build tool blending elements from DIStage, Nix, and Gentoo Portage, aimed at improving Scala's developer experience. Pavel discusses the motivation behind Grandmaster and invites commun...
Elevating API Design With Smithy: A Close Look At Smithy IDL And Smithy4s by Yisrael Union
zhlédnutí 110Před 2 měsíci
"Elevating API Design With Smithy: A Close Look At Smithy IDL And Smithy4s" by Yisrael Union at Functional Scala 2023. This talk introduces the Smithy IDL and Smithy4s, showcasing their role in enhancing Scala API design through a contract-first approach. Discover how these tools aid in defining service contracts, ensuring backward compatibility, and transforming contracts into actionable Scala...
FS 23 Zoom Samson Kamau Muiruri
zhlédnutí 60Před 2 měsíci
FS 23 Zoom Samson Kamau Muiruri
ZIO-HTTP In Comparison by Nabil Abdel-Hafeez
zhlédnutí 313Před 2 měsíci
ZIO-HTTP In Comparison by Nabil Abdel-Hafeez
Letting Go Of Data Encapsulation: Unlocking New Possibilities by Michael Perucca
zhlédnutí 124Před 2 měsíci
Letting Go Of Data Encapsulation: Unlocking New Possibilities by Michael Perucca
Using Testcontainers For Testing by Jasper van Zandbeek
zhlédnutí 80Před 2 měsíci
Using Testcontainers For Testing by Jasper van Zandbeek
Harnessing The Power Of ZIO Schema: Beyond The Limits Of Common Techniques by Jaroslav Regec
zhlédnutí 198Před 2 měsíci
Harnessing The Power Of ZIO Schema: Beyond The Limits Of Common Techniques by Jaroslav Regec
The Cross-Compile Challenge: Is It Still Worth The Effort? by Filip Michalski
zhlédnutí 192Před 2 měsíci
The Cross-Compile Challenge: Is It Still Worth The Effort? by Filip Michalski
Specification-First HTTP Services With Guardrail by Devon Stewart
zhlédnutí 51Před 2 měsíci
Specification-First HTTP Services With Guardrail by Devon Stewart
Izumi Framework: Reinvent Your Productivity With Modern Pure Functional Scala by Kai
zhlédnutí 216Před 2 měsíci
Izumi Framework: Reinvent Your Productivity With Modern Pure Functional Scala by Kai
Beyond Chatbots: Using Large Language Models In Enterprise Application Environments
zhlédnutí 44Před 2 měsíci
Beyond Chatbots: Using Large Language Models In Enterprise Application Environments
Mind the Gap: Bridging The Gap Between ZIO Code & Legacy Frameworks & Libraries by Dmitry Karlinsky
zhlédnutí 58Před 2 měsíci
Mind the Gap: Bridging The Gap Between ZIO Code & Legacy Frameworks & Libraries by Dmitry Karlinsky
Building Reactive Application Using Scala by Bhavya Aggarwal
zhlédnutí 54Před 2 měsíci
Building Reactive Application Using Scala by Bhavya Aggarwal
A Year With Scala-CLI As Our Build-Tool by Alexis Hernandez
zhlédnutí 104Před 2 měsíci
A Year With Scala-CLI As Our Build-Tool by Alexis Hernandez
Going Beyond Business Rules With Morphir by Damian Reeves
zhlédnutí 76Před 2 měsíci
Going Beyond Business Rules With Morphir by Damian Reeves
Making ZIO-Kafka Safer And Faster by Erik van Oosten
zhlédnutí 165Před 2 měsíci
Making ZIO-Kafka Safer And Faster by Erik van Oosten
Full-Stack ZIO by Daniel Ciocîrlan
zhlédnutí 424Před 2 měsíci
Full-Stack ZIO by Daniel Ciocîrlan

Komentáře

  • @MaxChistokletov
    @MaxChistokletov Před 6 dny

    Scala value prop (for me at least): write reliable concurrent code on the JVM, easily.

  • @MrDejvidkit
    @MrDejvidkit Před 11 dny

    This is great! I like seeing things process.

  • @Swoogles
    @Swoogles Před 11 dny

    Excellent stuff, Nabil. I appreciate seeing the progression of the DSL and how it reached its awesome current state.

  • @carlosverdes
    @carlosverdes Před 11 dny

    What you describe with "you say what you want to do" is actually a command on CQRS, as I said you can apply your Flows as an abstraction that behind the scenes use CQRS + ES (each flow step is one command that generates 1 to n events)

  • @carlosverdes
    @carlosverdes Před 11 dny

    Some comments related with your comments on event sourcing: - you never retry events, you retry a command (and if the command fails 0 events are generated), events are always facts that happened in the past and hence there is no need to retry anything (commands are actions that produce events) - I do agree in most cases it's true using ES is accidental complexity and that is a new paradigm, but I dont agree that makes you change ALL your application. If you follow DDD it will only affect a part of your application, normally a bounded context where CQRS + ES is justified - Also you don't mention that once you have the events stored is super easy to reply them and create new views or feed other aggregates, in a super natural way compared with a traditional "store snapshot" approach with CRUD - Kafka is not a good fit for event sourcing as it doesn't have optimistic locks, I saw super good implementations using Postgres, event sourcing is NOT event streaming, it's a style of how you store your events - The example of the shopping cart is actually a good fit for event sourcing, for example when you need information for analytics it's super easy to replay all events from our users and create different views, but if you read from transactional tables you miss lot of information relevant for data science models - I actually think you can apply durable computing on top of event sourcing, they are compatible things solving different concerns, event sourcing is used to reflect business (it's linked to domain) where durable computing is about fixing non-functional issues like failures, hardware retries, etc. You can apply both together

  • @Datababble
    @Datababble Před 11 dny

    Really enjoying this series - thank you both, Nabil and John!

  • @alphabeta3029
    @alphabeta3029 Před 27 dny

    Probably the most convoluted implementation of tic tac toe I've ever seen 😅

    • @michaelperucca4707
      @michaelperucca4707 Před 5 dny

      Oh yeah. It definitely balloons when trying to be precise, and we’ve probably surpassed the point of “is it worth it?”

  • @Datababble
    @Datababble Před 29 dny

    Thanks Daniel, great session!

  • @MrDejvidkit
    @MrDejvidkit Před měsícem

    Here he goes! 💪💪

  • @Heater-v1.0.0
    @Heater-v1.0.0 Před měsícem

    Pragmatist here: Correct me if I am wrong but as far as I can tell Scala has the following to learn from Rust: 1) It has to learn to work with out the JVM (or any kind of run-time system). Requiring the JVM implies bloat and poor performance. That excludes use of Scala from much of the work I do. 2) It has to learn to work without a garbage collector. A garbage collector introduces unpredictability in performance. It also excludes use of Scala from much of the work I do. 3) It has to learn to run in only kilobytes of code space on micro-controllers and the like. 4) It has to learn that maths is great and all, but maths is limited. Maths does not have a solution for the many body problem, for example. As for monoids, I had them surgically removed as a child.

  • @TJ-hs1qm
    @TJ-hs1qm Před měsícem

    Scott Wlaschin - Designing with capabilities czcams.com/video/RqlnWv6NZos/video.html

    • @michaelperucca4707
      @michaelperucca4707 Před 5 dny

      Interesting video! One advantage of this over the capability approach is the ability to define the move validity at the method definition, forcing the implementer to check the game is in a valid state before applying a user’s request.

  • @kaktusdono
    @kaktusdono Před měsícem

    My bald angel <3

  • @hubstrangers3450
    @hubstrangers3450 Před měsícem

    Thank you, truth was expressed!!!!

  • @MrDejvidkit
    @MrDejvidkit Před měsícem

    why another parsing library?

  • @i-am-the-slime
    @i-am-the-slime Před měsícem

    Thanks for the nice talk 😊. I have a question: What about doing the final approach with union types? I tend to favour polymorphic variants for type errors so you don't need to create useless wrappers for each error you want to "rethrow". Is that possible in Scala 3?

  • @mariobroselli3642
    @mariobroselli3642 Před měsícem

    What would you learn as First language for absolute Beginners? I found another functional lang called Racket.

  • @odiiibo
    @odiiibo Před měsícem

    0:17 In this talk I’m going to cover a number of topics. Here is my short plan. First, I’m going to convince you that graphs are important. Next, I’ll present to you a data structure that I’ve come up with for graphs. In the end, you’ll see how a domain can be modeled using Scala generic types. I use this approach in my current project. 0:47 So, let’s begin. Why do I think graphs are important for us? 0:57 It's pretty obvious that we rely on associations in our mental processes. And associations build a sort of a graph. Our concepts too build an interconnected graph of definitions. Wikipedia is a vivid example of it. In communication though we transform internal representation into a sequence of sounds. 1:28 These boys are testing a new communication line. The boy on the right wants to pass a message to his friend. We can’t know what he is about to say. This information is present only in his mind. 1:49 Now he articulates some words. These words come sequentially, one after the other. The relations between words are hidden. They are encoded in a form that is specific to a particular natural language. 2:10 The boy on the left knows this language. That’s why he is able to decode the message. And a network of associations lights up in his mind. 2:24 So, what is the novelty of the project, that I’m working on? The goal is to keep and to send information in the form of a graph. 2:40 Here I listed the features of the project. 2:43 As I’ve shown you, the format is native to human mind. We sometimes borrow inventions of the nature, and it brings new, often unexpected, opportunities. In this project, we explore what we can get. 3:03 A crucial decision was to represent all connections explicitly. There is no need to reconstruct them on receiving a message. A machine can compare it to the graph it has already accumulated. 3:21 Multiple channels of perception get recorded in one go. Relations between their parts provide meaning to each channel over its bounds. It can solve the problem of naming one thing different names. 3:40 It is expected that the amount of data will grow gradually. Fresh data will emerge at a number of unrelated locations. And with time passing these scattered databases will begin contacting each other. There is no centralized board of experts creating an ontology that should be useful for everyone. 4:12 You would agree, the denser the connections between pieces of data the more value it gives us. Possible applications range from creating a new variety of sites on the Internet to robotics. 4:30 To illustrate what a multimodal graph is, I took textual modality and visual modality. 4:40 In this slide you encounter some text about a cat and a picture of this cat. In your mind you associate the letters in the word “cat” to the collection of pixels in the center of the image. In the multimodal graph below we find the word as a red vertex in a yellow pyramid. The collection of pixels is the vertex in a green pyramid. An explicit red edge connects both vertices. 5:23 What does a multimodal graph look like? As an example, let’s take the textual modality. This modality keeps connections between letters, words and phrases. 5:42 At the top, we have the root vertex of the binary layer. Its first edge means zero. Its second edge means one. The root vertex is the starting point when writing any word. Binary character codes spring off the root vertex. This layer of a graph is idempotent. Character codes don’t get duplicated. 6:07 At the bottom of the slide, we have a type vertex. All word clusters get connected to it. The type vertex helps when a vertex ID needs to be converted back into a string. IDs not connected here are not words and must not be processed. 6:18 I have drawn a blue line around clusters that represent the letter c. Its ASCII code is ninety-nine. In binary form it’s one, one. Then three zeros. And again one, one at the end. A binary cluster usually consists of two vertices. Zero is encoded by following the edge of the first vertex. One is encoded by following the edge of the second vertex. 6:54 This time, the blue line goes around the letter “a”. You might have noticed that the final digits zero and one are close to the root vertex. This arrangement of digits removes the need to reverse them on reading 7:13 The last letter of the word “cat” is “t”. Please have a look at the cluster located at the bottom. It still belongs to the binary layer of the graph. But it has three vertices instead of two. It’s because the cluster lies at the border of the binary layer. It needs an extra vertex to build a connection to the adjacent layer. 7:45 Here we are on the other side of the border that separates the two layers of the graph. This area is inhabited by words that consist of a single letter. 8:00 We climb the pyramid one level up and discover here words that have two letters. These words reference the simplest words we saw on the level below them. This way, we traverse actual letter combinations that were present in the texts that we cared to put into the graph. Comparing the pyramids enables detection of similar words. 8:22 One level up in the pyramid of words, we encounter words with three letters. It is not shown in the picture, but the cluster must actually have four vertices instead of three. An additional vertex is needed in order to build a connection to the layer of phrases. 8:44 Let's move on from this example to the operations that can be performed with multimodal graphs. 8:53 Multimodal graphs can be added. It is easy to do because they possess one special vertex where the process must start. The graph on the left gets missing vertices and edges from the graph on the right. But this doesn’t have be the end of the addition process, because new generalizing vertices may become apparent. 9:22 Multimodal graphs may be searched with a query. Overlapping vertices in the query and the original data produce a result. The algorithm for obtaining a result can get quite complex if it involves generalizations. 9:44 We have concluded the section on the significance of graphs. In the next section, we will discuss the relationship between graphs and linked lists. 9:58 Let’s compare drawing a graph and building a list. In the beginning, both sides are blank. We put the first vertex on the dark surface. It is also at the head of the list. We draw another vertex near the first one. It is at the head of the list now. We connect A and B with a directed edge. Into the list we put a record of it. Let’s add one more vertex to this graph. And one more edge. So, drawing graphs is inherently a sequential process. A list suits best for describing it.

  • @odiiibo
    @odiiibo Před měsícem

    11:00 A graph should not only be created. It should also provide all vertices that are connected to a particular one that is of interest. And these edges are certain to be scattered in all possible places of a graph. Linked lists are notoriously not good for the task. A mutable array would be much faster, as it is most close to hardware. But because of its mutability it cannot be used within concurrent functional frameworks. What could be a solution? 11:41 One possible solution is to embed the list into a tree of vectors. It has all the good properties. Reads and updates by index are effectively constant time. This structure can increase or drop in size. It is immutable and can be put into concurrent frameworks. For example, into the Ref of ZIO. 12:10 Let’s now have a close look at the graph elements. 12:16 Let’s start with the vertices. Vertices of a graph are often called dots or nodes. As you see, a vertex has 6 parts. 12:31 On the left side you see two arrows. They point to the vertex and represent references from other elements of a graph. 12:42 The first part of a vertex contains its own address. It shows that next 5 parts belong to a vertex, and not to an edge. The address of this part serves as the identifier of a vertex for all client code. 13:01 The second part of a vertex references its neighbor within a cluster. Vertices of a cluster build a ring. 13:13 These two parts of a vertex count incoming and outgoing connections. These numbers are useful when checking if two vertices are already connected. 13:27 The last two parts of a vertex lead to incoming and outgoing edges. Each kind of edges forms a doubly linked list. 13:42 Now, let’s turn to edges. 13:46 An edge connects one source vertex to one target vertex. An edge is simultaneously present in two lists of edges. An edge has 6 parts. It’s as many as in a vertex. 14:03 Again, you see two arrows on the left. All references to an edge go to its first part. 14:11 The first three parts of an edge relate to its source vertex. 14:17 The last three parts of an edge relate to its target vertex. Traversing this list of edges one collects all sources leading to a target. 14:32 As I’ve already mentioned, vertices and edges occupy equal space in memory. They both consist of six parts. We can put them into a sequence like this. 14:50 The sequence can be split into six ones. Please note that the addresses have changed. 15:00 Each of the six sequences is an address store. It is called so because it keeps its own addresses as values. It is embedded into its own tree of vectors. A cursor tracks the next position that is available. 15:27 Let’s look at the operations that an address store offers. The append operation starts at the address zero. This address is reserved for metadata. It’s the only place with no restrictions. Any number can be written here. 15:50 Next, the cursor moves to the address one. This time we can’t write a number that is greater than the address. 16:00 When the cursor moves further, we have a broader choice of values. At address two, we can write zero, one or two. 16:10 This process can continue on and on. 16:14 Let’s now have a look at the update operation. Suppose we want to replace the value that is kept at the address one. We can place here zero, one or two. 16:30 Finally, we’ve come to the delete operation. The deleted element of an address store gets replaced with the last one. 16:41 The code implementing deletions is most intricate. It is roughly two thirds of the code base. 16:55 We have finished the section about the data structure and arrived at modeling it with Scala generic types. 17:05 I have devised a way of organizing Scala code. It is unusual but it has its merits. What is normally called a class occupies a whole directory. Class fields reside in a dedicated file. Each method has its own file too. 17:30 Every class of a business-domain is a generic type. Its type parameters define the field types. Here we’ve got a database entry. It contains some content. And it can be found on some path within a certain address store. 17:57 All methods are implemented as type classes. A concrete implementation is summoned at the call site. 18:06 The IsLoop method checks if an entry contains its own address. It is a class type with one function “f”. 18:18 Below it we find an implementation as a given. Methods of the content and the path are summoned from their respective companion objects. 18:34 One final ingredient is needed to make abstract types concrete. It’s a factory. It has lots of methods that create business objects of a domain. 18:46 Here we have one of such methods. It creates instances of type Content. The arrow shows how the type parameter is translated into a concrete type. 19:00 Such peculiar design allows writing tests a bit differently. 19:06 If a class is required in a test, it gets declared with just one line. Here we declare the class ContentStub. 19:17 And here we add a method to it by creating a given instance. An entry under test will call this method when it checks if there is a loop. 19:30 Now, that you’ve seen some code, I’d like to emphasize two advantages of this approach. 19:38 Test stubs are easy to create. No reflection is needed. You depend less on a testing library. 19:47 Another advantage is call-site driven development. It means a shift in focus when writing code. You do not create things that can perform certain actions. Instead, you discover actions that things you to have at hand must perform. 20:10 Finally we arrive at the end of the presentation. I believe that multimodal graphs will be used extensively in the future. And I hope that you can see the benefits besides those that I have mentioned.

  • @calvinfernandes1054
    @calvinfernandes1054 Před měsícem

    Amazing work Erik, thank you for pushing the boundaries and making all Kafka clients better ❤

  • @calvinfernandes1054
    @calvinfernandes1054 Před měsícem

    Amazon work Alex, I was on the edge of my seat till the very end

  • @MrDejvidkit
    @MrDejvidkit Před měsícem

    Nice talk. I agree wiht scala-js. We use it for everything in the frontend. And it is soo useful and no context switching between backend and frontend.

    • @Nojipiz
      @Nojipiz Před měsícem

      That sounds like a pretty good idea, i will try that in my new project!

  • @mariobroselli3642
    @mariobroselli3642 Před měsícem

    I guess it will be F# then😮

  • @slack128
    @slack128 Před měsícem

    These are well made slides, very interesting talk

  • @user-bb2lo9gd2o
    @user-bb2lo9gd2o Před 2 měsíci

    I have never seen that much tech in 1 talk ! AI, webassembly, frontend backend, java, haskell, Rust! Inspiring, and out of words! Really useful!

  • @MrDejvidkit
    @MrDejvidkit Před 2 měsíci

    Awesome looks great! and easy to use.

  • @vasiliybondarenko7196
    @vasiliybondarenko7196 Před 2 měsíci

    Just curious, how long did it take for transitioning from JS to FP Scala?

  • @michaelnedokushev6731
    @michaelnedokushev6731 Před 2 měsíci

    Wow, great talk! I've been maintaining zio-telemetry for the last almost two years. I hope soon we will finally release the stable 3.0 version of the library.

  • @ZelenoJabko
    @ZelenoJabko Před 2 měsíci

    Why are the angle brackets the other way around compared to the docs?

  • @ZelenoJabko
    @ZelenoJabko Před 2 měsíci

    Very nice, much improved compared to ZIO in terms of maintainability and simplify. But unfortunately, it is (like ZIO) slow like a dog compared to a hand-written mutable code.

  • @MartinMauch
    @MartinMauch Před 2 měsíci

    Amazing work Flavio!! I've been digging through the code and checking out the LLM features. I must admit, I haven't fully understood how to use them yet, but I hope I can dig a little further in the next weeks.

  • @hubstrangers3450
    @hubstrangers3450 Před 2 měsíci

    Thank you.....

  • @MrDejvidkit
    @MrDejvidkit Před 2 měsíci

    Where was the pool?

  • @fb-gu2er
    @fb-gu2er Před 2 měsíci

    I don’t think zio actors are worth learning given the fact that the ZIO actors library hasn’t been maintained anymore. The latest release was in 2022

  • @fb-gu2er
    @fb-gu2er Před 2 měsíci

    That’s just gonna make ZIO more confusing

  • @linhe6729
    @linhe6729 Před 2 měsíci

    This is actually very useful to what I'm trying to do on my job now. Thanks!

  • @Datababble
    @Datababble Před 2 měsíci

    Excellent as always - thanks, Adam!

  • @Argcz
    @Argcz Před 2 měsíci

    Great - lambda conf had a huge impact on my career. I would highly recommend attending

  • @romankonovalov2588
    @romankonovalov2588 Před 2 měsíci

    nice talk

  • @che5ari
    @che5ari Před 2 měsíci

    John hits the nail on the head: "A good IDE is extremely important to attract that commercial software developer..." at 36:33. Over the years I've been using Scala, I could never get any development environment working properly 100% of the time. With C/C++, Rust, Haskell, I can fire up vi or emacs and be productive in no time at all. That's got to be one of the greatest weaknesses of the Scala ecosystem (and not the Scala language itself).

  • @Jankoekepannekoek
    @Jankoekepannekoek Před 3 měsíci

    Could this also be used for test data generation, much like property-based testing?

  • @nafg613
    @nafg613 Před 3 měsíci

    Can you please make separate channels for golem vs zio

  • @ZelenoJabko
    @ZelenoJabko Před 3 měsíci

    Why is Ziverge promoting golang?

    • @jeremiahxlee
      @jeremiahxlee Před 2 měsíci

      It's not Golang. It's anything that can run as WASM.

  • @sakesun
    @sakesun Před 3 měsíci

    Is it a new programming language with center alignment formatting ?

  • @heartly4u
    @heartly4u Před 3 měsíci

    for now atleast, tapir looks better than endpointshtt4s czcams.com/video/0r0vy_elKys/video.html

  • @MrDejvidkit
    @MrDejvidkit Před 3 měsíci

    Wonderful talk! Makes me inspired!

  • @basmeesters4150
    @basmeesters4150 Před 3 měsíci

    Thanks for the talk! Though it is a bit unclear to me why something like this wouldn't work? type SafeZIO[L, R, E, A] = ZIO[L & R, E, A]

  • @alexeyrykhalskiy2185
    @alexeyrykhalskiy2185 Před 3 měsíci

    probably, now it the moment we need to explain that Monad is just a monoid in category of [endo]functors, and everything depends how this monoid is defined

  • @hubstrangers3450
    @hubstrangers3450 Před 3 měsíci

    impressive.....!!!, can't beat the "Academics", evolution to a knowledge space is a walk about.....

  • @aliassoum9
    @aliassoum9 Před 3 měsíci

    @JosePaumard your opinions on this ?

  • @SeriousWorm
    @SeriousWorm Před 3 měsíci

    Amazing presentation! I really love the new compile time type level capabilities added in Scala 3.