toad.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server operated by David Troy, a tech pioneer and investigative journalist addressing threats to democracy. Thoughtful participation and discussion welcome.

Administered by:

Server stats:

335
active users

#scaladays

0 posts0 participants0 posts today
Continued thread

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.

#Scala #ScalaDays #ScalaDaysMadrid2023

24/🧵

Continued thread

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/🧵

Continued thread

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/🧵

Continued thread

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/🧵

Continued thread

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/🧵

Continued thread

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…)

#Scala #ScalaDays #ScalaDaysMadrid2023
17/🧵

Continued thread

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

#Scala #ScalaDays #ScalaDaysMadrid2023
16/🧵

Continued thread

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/🧵

Continued thread

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/🧵

Continued thread

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/🧵

Continued thread

Transition to Monad tutorials (The joke is there). 3 Monad tutorails (3rd is the one I wrote back in 2015: andreikucharavy.com/L3Cache/un) 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/🧵

andreikucharavy.comUnderstanding the M-word – Increasing information density
Continued thread

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/🧵