diff --git a/presentation/sections/01_introduction.typ b/presentation/sections/01_introduction.typ index 453194d..63935c0 100644 --- a/presentation/sections/01_introduction.typ +++ b/presentation/sections/01_introduction.typ @@ -7,7 +7,10 @@ #align(center, image("../figs/python-logo.svg")) -Python is a widely used language, especially in data science +Python is a widely used language, especially in data science: +- Easy to learn +- Simple syntax +- Vast and thriving ecosystem == It can bite diff --git a/presentation/sections/03_midas.typ b/presentation/sections/03_midas.typ index 259223d..1cabcbc 100644 --- a/presentation/sections/03_midas.typ +++ b/presentation/sections/03_midas.typ @@ -443,7 +443,7 @@ Steps: == Customization #{ - show raw: set text(size: 0.69em) + show raw: set text(size: 0.8em) item-by-item()[ - Domain Specific Types (e.g. units, scores, transformed data) ```midas diff --git a/presentation/sections/04_status_and_future.typ b/presentation/sections/04_status_and_future.typ index 0cd9a0a..24e1514 100644 --- a/presentation/sections/04_status_and_future.typ +++ b/presentation/sections/04_status_and_future.typ @@ -1,4 +1,55 @@ #import "../requirements.typ": * +#import codly: codly #focus-slide(theme: "neon")[Current Status and Future] -// = Current Status and Future \ No newline at end of file +// = Current Status and Future + +== What Midas offers + +- Working *static type checking* of a good subset of Python (including dataframes) + +- *Custom type* definition language for domain-specific usages (supports generics, method overloads, dependent types, frame schemas, named predicates and more) + +- Toolbox *CLI* with useful debug features + +- Generation of *runtime assertions* + +- Stubs for *seamless integration* with other type checkers + +== What needs work + +- Reference types (side effects) + ```python + def modify_column(df: pd.DataFrame): + df["col"] = df["col"].astype(float) + ``` +- Reverse operators + ```python + a = 1.0 + 1 # float.__add__(int) + b = 1 + 1.0 # float.__radd__(int) + ``` +- Logical short-circuit bypass + #codly( + highlights: ( + ( + line: 1, + start: 15, + tag: box(inset: (x: 0.5em))[_Always evaluated_ ], + fill: std.red.lighten(20%) + ), + ) + ) + ```python + value = v1 or cast(Type, v2) + ``` + +== Possible extensions + +- Visitor pattern $->$ easy to extend supported Python syntax + +- Multi-file projects (```python import``` statements) + +- Constraint solver + $ + v in [1; 6] => v > 0 + $