Exploring biphasic programming: a new approach in language design

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • Singeli

    High-level interface for low-level programming

  • 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.

    InfluxDB logo
  • browser-express

    Fast, unopinionated, minimalist browser framework

    I like the term biphasic! The prior terms for this with Javascript web development were "isomorphic" or "universal". I don't think these ever really caught on.

    I've been rendering the same React components on the server and browser side for close to decade and I've come across some really good patterns that I don't really see anywhere else.

    Here's the architectural pattern that I use for my own personal projects. For fun I've starting writing it in F# and using Fable to compile to JS:

    https://fex-template.fly.dev

    A foundational element is a port of express to the browser, aptly named browser express:

    https://github.com/williamcotton/browser-express

    With this you write not only biphasic UI components but also route handlers. In my opinion and through lots of experience with other React frameworks this is far superior to approaches taken by the mainstream frameworks and even how the React developers expect their tool to be used.

    It keeps a focus on the request itself with a mock HTTP request created from click and form post events in the browser. It properly architects around middleware that processes an incoming request and outgoing response. It uses web and browser native concepts like links and forms to handle user input instead of doubling the state handling of the browser with controlled forms in React. I can't help but notice that React is starting to move away from controlled forms, a design mistake from the very beginning.

    Because the code is written in this biphasic manner and the context is injected it avoids any sort of conditionals around browser or server runtime. In my opinion it is a leaky abstraction to mark a file as "use client" or "use server".

    Anyways, I enjoyed the article and I plan on using this term in practice!

  • xbyak

    a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header

    I'm going to hijack the mention of ML to share xbyaku, a c++ library presenting a DSL for assembling machine code at runtime (useful for JIT).

    It's used by some of the pytorch back ends.

    https://github.com/herumi/xbyak

    Example use: https://github.com/oneapi-src/oneDNN/blob/main/src/cpu/aarch...

    I learned about these through a blog post about speeding up pytorch on ARM: https://pytorch.org/blog/optimized-pytorch-w-graviton/

  • oneDNN

    oneAPI Deep Neural Network Library (oneDNN)

    I'm going to hijack the mention of ML to share xbyaku, a c++ library presenting a DSL for assembling machine code at runtime (useful for JIT).

    It's used by some of the pytorch back ends.

    https://github.com/herumi/xbyak

    Example use: https://github.com/oneapi-src/oneDNN/blob/main/src/cpu/aarch...

    I learned about these through a blog post about speeding up pytorch on ARM: https://pytorch.org/blog/optimized-pytorch-w-graviton/

  • kita

    Inline infrastructure in application code (by gsuuon)

    My toy language project is also built around multi-stage (though the way it's formed it's more like literate programming) and partly motivated by writing cloud-native applications. I played around with a sketch of this idea implemented using F# computation expressions[1] and partly implemented an Azure backend, at a high level it appears pretty similar to Winglang. When run at "comptime" / CLI, it spins up those resources if necessary and then produces artifacts via msbuild task for servers that run the "runtime" part of the code. The computation expression handles exposing a client and forming the ARM template based on the context. It gets around the inflight/preflight distinction by including the entire app (including provisioning stuff) in each runtime instance, so references outside of route scopes work (instance-globally, not app-globally).

    Very excited for multi-stage - especially it's potential to provide very good LSP/diagnostics for library users (and authors). It's hard to provide good error messages from libraries for static errors that are hard to represent in the type system, so sometimes a library user sees vague/unrelated errors.

    [1] https://github.com/gsuuon/kita/blob/d741c0519914369da9c89241...

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: Self hosting x86-64 assembler

    1 project | news.ycombinator.com | 17 Jun 2023
  • VAS; Writing an Assembler in Vlang

    1 project | /r/coding | 2 Apr 2023
  • x86-64 Assembler written in V programming language.

    1 project | /r/vlang | 30 Mar 2023
  • Assembler Written in V

    1 project | news.ycombinator.com | 30 Jan 2023
  • Benchmarking Division and Libdivide on Apple M1 and Intel AVX512

    1 project | news.ycombinator.com | 5 Jun 2024