CfP for #ScalaDays closes TONIGHT at 23:30 UTC
We want to hear from you on Scala foundations
Libraries
Tooling
Industrial adoption
Community
…and more… PLUS all experience levels are welcome
Apply now
https://www.papercall.io/scaladays
CfP for #ScalaDays closes TONIGHT at 23:30 UTC
We want to hear from you on Scala foundations
Libraries
Tooling
Industrial adoption
Community
…and more… PLUS all experience levels are welcome
Apply now
https://www.papercall.io/scaladays
(2/2) For more information, check here: https://scala-lang.org/blog/2025/02/18/announcing-scala-days-2025.html
Don't miss out—stay tuned for ticket sales and the call for proposals in early March!
#VirtusLab #ScalaDays #Scala #TechConference #Developers
Last of the main track talks: safe SQL queries by Martin Kucera.
Pb from pure SQL (composition, safety, security).
- Type safety
- Row iteration
=> Libraries (throwback to GraphAlchemy).
Why new libraries?
- Scala 3 type operations
- Macros interference with typing structure
- => Structural Types (made for databases, unused until now).
Usage example: compare with prior and usage example.
We have t-shirts and pens we need to give away! Come and get yours at #scaladays
A core one for Scala: abstraction level that is being used at every level (abstarction overe execution).
purpuse and usabilitiy over abstraction elegance (actally a really good point).
Dependencies versionning was critical foror this work. Versions of dependencies => Toolkit versions (+ dependencies).
Libraries focused on LTS versions of Scala.
(overal, a good approach for time-evolution support).
#Scala #ScalaDays #ScalaDaysMadrid2023
23/
Pbs detected:
- installation is hard
- ecosystem is complicated
- looks like is for big projects
- no up-to-date answers
- libraries hard to find.
Definition of "simple": problematic definition. Experience description from experienced/newcomers/students-teachers.
=> Switch to the low cognitive load.
Framework to asses cognitive load, used for .NET and prog languauge design that was transferred to Toolkit.
#Scala #ScalaDays #ScalaDaysMadrid2023
22/
Next up: Szymon Rodziewicz of VirtusLabs talking about ScalaToolkit - an all-included Scala distribution for newcomers with libraries that are already popular. Bascally, standard library with batteries included.
Only `scala-cli` needs to be installed and configs are provided there. Q&A tutorials + template projects with Scala.
Based on a survey of experienced users/newcomers/teachers.
#Scala #ScalaDays #ScalaDaysMadrid2023
21/
- Vision of Scala as a languauge that is simple to read and write; hence more powerful code is not only unnecessary, it is often not desirable
- Spark focus on Python recently
- Suggestion from the room to blog about successes in Scala more
- Focus on more usability and readability (eg backends); more fun things to do as well.
#Scala #ScalaDays #ScalaDaysMadrid2023
20/
Q3: Path down the road into the Scala Land.
Q4: Community meetups: point by Roksalana about Scala meetups ongoing in Ukraine, but online.
Several points about funding the development of Scala and industry to step up contributions to Scala development and maintenance.
Questions from audience:
- growth of the community and battling perceptions of Scala from the outside, notably wrt it not being purely functional
#Scala #ScalaDays #ScalaDaysMadrid2023
20/
Next up: Roksolana Diachuk of Captify, Kyiv, talking about Productionizing big data.
Domain of Application: AdTech.
- Drop * query on prod DB that's used once a year - rebuilding it
- Balancing data coming from heterogeneous sources
- Data Cost attribution & refactoring
- Cleanup and refactoring
#Scala #ScalaDays #ScalaDaysMadrid2023
18/
4. Propagate signatures before starting parallel compiling
5. Start from code detection by line fingerprinting techniques
And from that point Optimus Code starts running.
Demo on 22M LoC 2000 scopes codebase
- 4s DB traversal
- 1 min compile time for a change affecting 2 scopes.
Full CI Job improvement:
- 80m > 30m core
- 60m > 10m single-scope app
All through build time…
Tested with fire on problems more central to development of platform, rather than apps.
2019: 5M LoC codebase, 800 modules, 100 PRs, but 1h build time
Development of internal build tool. Parallel, incremental, and deterministically repeatable wrt code (all else is inputs).
1. Optimize by parallelizing builds starting from signatures.
2. Multi-app compiles
3. Data types: Fingerprints (source, data, dependencies versions, flags…)
Next up - Daniela Sfregola and Valerie Sanders-Duncan of JP Morgan, talking about Optimus Cirrus Platform.
- Used by 1200 devs daily for financial applications
- Builr based on Referentially Transparent functions
- Side Effects might still be slightly problematic
- However RT functions are heavily optimizable
- Example with parallel calls; usage of Future[]s; caching; Optimus just uses the ‘@ decorators to roll it all in for readable code
Next: Wojciech Mazur explaining coroutines, fibers and threads in Scala Native.
- Stackless coroutines
- Boundary Suspend continuation
- Provides a really close coding experience to Pytorch
- While being idiomatically Scala
- Examples of pipelines; Running them
- The part that is interesting is the Tensor Safety thanks to Types. Leverage Scala 3's promotion rules to facilitate typing through additivity of types.
- Remaining: mutability, shapes safety, ...
#Scala #ScalaDays #ScalaDaysMadrid2023
14/
Next up: Soren Brunk (@soeren) USU AI services: storch (aka Pytorch for Scala).
- with generative ML, "AI" has gone mainstream
- AI is software, but it needs even more software to support it
- A lot of software in that ecosystem are writtein in Scala
- And even more apps integrating AIrun on JVM and need to integrate with it.
- With ML being Python-first, this creates a gap.
- Storch is to close it, and avoid context switching for developers.
#Scala #ScalaDays #ScalaDaysMadrid2023
13/
Third: Helping the newcomers to learn Scala more easily:
- Simpler Examples
- One-shot compilations
Fourth: Community Governance
- Reduce duplication
- Earlier warnings of change
- Tooling Summits
- Tooling Committees
- Communication with community
- Develop ways to provide moree feedback
Bonus: Fostering harmonious contributions
- Scala Sprees (OSS hackathons)
- Bridge: get programmers started with Scala
- Google Summers of Code
#Scala #ScalaDays #ScalaDaysMadrid2023
12/
Time for Scala Center Team's to od a conversation on topics the audience chooses.
First off: faster builds
- Pipelining (dependcies pre-resolutions)
- Parallel Compilation
- Incremental Compile
Next: Scala 3 migration.
- tool to do it better
- look at dependencies
- detect patch location
- compiler to help to build Scala 2 into Scala 3 code
- About 30% of mail libraries have already migrated to Scala 3.
#Scala #ScalaDays #ScalaDaysMadrid2023
11/
Transition to Monad tutorials (The joke is there). 3 Monad tutorails (3rd is the one I wrote back in 2015: https://andreikucharavy.com/L3Cache/understanding-the-m-word/) and is the most viewed.
=> Try to create more Eureka moments.
OOP-familiar people Moments: OOP Patterns are easy to implement and are powerful tend to get people going. Example: Maps (That I was aslo teaching back in 2015 as part of "Advanced Python")
#Scala #ScalaDays #ScalaDaysMadrid2023
10/
Next up, Daniel Ciocirlan, on the lessons learned from teaching Scala to 80 000 developers.
A general observation: Recursive breaking down to blocks of 30 minutes that can be learned one by one & have entry points for begineers and advanced engineers.
Example of a bad learning experience due to ordering of learning concepts from a game. Students need to understand a need for a concept before being given it.
#Scala #ScalaDays #ScalaDaysMadrid2023
9/