Show HN: The Oct Programming Language for scientific programming
Addresses frustrations with MATLAB and Python in scientific computing, specifically debugging large codebases, sharing code with less technical colleagues, and the 'Two-Language Problem' (prototyping in Python/MATLAB, rewriting in C++/Rust for performance). Positions itself as a statically typed, interpreted and compiled language that generates Go binaries, offering Go-level speed and ecosystem access, with built-in features for scientific computing (SI units, tensors, control systems) and an easy learning curve for those familiar with Rust/Go/C#/Swift.
View Origin LinkProduct Positioning & Context
- The entire Go ecosystem is available for Oct if you write a wrapper around it: Oct's `IO.Xlsx` library is `excelize`, Oct's builtin plot is `gonum/plot`, Oct's benchmark profiling is pprof, Oct's C interop is CGo.
- Boring syntax, easy to learn. If you know Rust/Go/C#/Swift, learning Oct would take a few hours at most. Vice versa, if you learn Oct, then you are halfway to knowing how to write Rust already;
- Octest, xUnit.NET style testing framework with `[Fact]/[Theory]` and various Asserts.
- Foundational SI unit built into the language and enforced by typechecker: you can't add Int and Int together. Units also propagate.
```oct
fn StiffnessForce(K: Matrix, u: Vector) -> Vector {
return K @ u
// Matrix @ Vector → Vector
}
```
- You can't ignore errors, Oct is exception free and `null`/`nil`-free, all errors must be handled explicitly: `?` for propagation, `!` for unwrap, or fallible `match`.
- Arrays and vector/matrix are separate but related concepts, with vectors/matrices explicitly defined as Rank 1 and 2 tensors, and Einstein notation for tensors is built into the language.
```oct
let c = a[i, k] * b[k, j]
```
- Octomata, Oct's own built in control system runtime, using explicit finite state machines and utility scoring as primitives for control systems.```oct
package Mainflow DoorControl(openCmd: Bool, closeCmd: Bool, blocked: Bool) -> String {
state Closed {
when {
case openCmd and blocked == false -> goto Opening
else -> return "closed"
}
} state Opening {
when {
case blocked -> goto Closed
case closeCmd -> goto Closing
else -> return "opening"
}
}
state Closing { return "closing" }
}
```
Oct is very much a work in progress, but enough jank/bugs has been fixed that hopefully it wouldn't be embarrassing to show it off now, although rough edges still expected. So, would love some feedback.
Related Ecosystem & Alternatives
Discover adjacent products, open-source repositories, and developer tools sharing similar technical architecture.
Deep-Dive FAQs
What is The Oct Programming Language for scientific programming?
Where did The Oct Programming Language for scientific programming originate?
When was The Oct Programming Language for scientific programming publicly launched?
How popular is The Oct Programming Language for scientific programming?
Which technical categories define The Oct Programming Language for scientific programming?
What are some commercial alternatives to The Oct Programming Language for scientific programming?
How does the creator describe The Oct Programming Language for scientific programming?
Community Voice & Feedback
No active discussions extracted yet.
Discovery Source
Hacker News Aggregated via automated community intelligence tracking.
Tech Stack Dependencies
No direct open-source NPM package mentions detected in the product documentation.
Media Tractions & Mentions
No mainstream media stories specifically mentioning this product name have been intercepted yet.
Deep Research & Science
No direct peer-reviewed scientific literature matched with this product's architecture.
SaaS Metrics