{"slug": "notes-for-cs51-guest-lecture", "title": "Notes for CS51 guest lecture.", "summary": "Notes for a CS51 guest lecture comparing OCaml and Elm, highlighting Elm's common uses in web apps, data visualization, and 3D graphics with specific library examples. It also discusses Elm's advantages in performance, asset size, security, and reliability, while noting Haskell's strong concurrency support but lack of a simple server library for beginners.", "body_md": "You can try online and check out some examples\nKeep this OCaml vs Elm syntax doc open!\nCommon Uses are web apps (code), data visualization, and 3D Graphics.\n- Html - example, docs, elm-ui (examples)\n- Svg - example, more fun example, elm-charts (examples)\n- WebGL - example, more fun example, elm-3d-scene (examples)\n- Performance - framework comparison\n- Asset Size - dead code elimination\n- Security - JS vulnerabilities, easy event logger\n- Reliability - see typical bug tracker volume (150k/month, 50k/month)\n- elm/parser + terezka/elm-charts\n- Stat 110 + charts\nCommon uses include servers, terminal apps, and compilers.\nHere is the Elm compiler and an example of how ADTs make writing compilers quite nice!\nI think there is still lots of opportunity for creating a simpler server library for Haskell. There is not currently one that I would unreservedly recommend for someone getting started. Haskell’s support for concurrency is really great though, so once you learn enough, it can be really nice and performant. Here is some server code and some other server code in case you want some examples of what can be improved upon!", "url": "https://wpnews.pro/news/notes-for-cs51-guest-lecture", "canonical_source": "https://gist.github.com/evancz/368c6a660b127ab28948a6684a8dce83", "published_at": "2022-04-21 14:33:29+00:00", "updated_at": "2026-05-22 11:39:32.242716+00:00", "lang": "en", "topics": ["developer-tools", "open-source"], "entities": ["OCaml", "Elm", "Haskell", "WebGL", "Stat 110"], "alternates": {"html": "https://wpnews.pro/news/notes-for-cs51-guest-lecture", "markdown": "https://wpnews.pro/news/notes-for-cs51-guest-lecture.md", "text": "https://wpnews.pro/news/notes-for-cs51-guest-lecture.txt", "jsonld": "https://wpnews.pro/news/notes-for-cs51-guest-lecture.jsonld"}}