Our great sponsors
-
Prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
MikroORM
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases.
-
Hasura
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
automerge
A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
Not really, it's just the respective functional design approaches are applicable everywhere (Java, Scala, Kotlin, Swift, C++, Rust, JS ... PHP) and there's a practical benefit to it in terms of the amount of code and overall cognitive complexity needed for the respective implementation.
For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.
On the contrary, switching to the functional mindset, with something like Typelevel Scala3 and respective cats and cats-effect fs2 frameworks, helps to rethink a lot of designs and development approaches.
On the contrary, switching to the functional mindset, with something like Typelevel Scala3 and respective cats and cats-effect fs2 frameworks, helps to rethink a lot of designs and development approaches.
For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.
For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.
On the contrary, switching to the functional mindset, with something like Typelevel Scala3 and respective cats and cats-effect fs2 frameworks, helps to rethink a lot of designs and development approaches.
For instance, practicing "local first web" using automerge with all it's Distributed Persistence Primitives on CRDT's and Vector Clocks - i.e. when the Browser View is treated like a Database replica, essentially; or adopting a real data mapper that's giving you an API from your database Schema, using Prisma or Hasura... or even implementing a custom codegenereted one, as a babel plugin, on top of TSED and Micro-ORM.
There are respective fantasy land and static land specs, with the law conformance checks.
There are respective fantasy land and static land specs, with the law conformance checks.
There are respective fantasy land and static land specs, with the law conformance checks.
JS by it's nature is neither functional nor OOP'ish - somewhere in between. For instance, promises do lack referential transparency and side-effect capturing guarantees, compared to something like IO Monad, although there are some wrappers in fpts with partial IO Monad support.
You don't need to understand all the details, and category theory, to get practical benefit out of it - it's fine just grabbing something like lodash-fp and getting acquainted with transducers.