aboutsummaryrefslogtreecommitdiff
path: root/index.md
blob: b63a7789e1a72eb708ea10db6fbeb76398208429 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Crowbar: the good parts of C, with a little bit extra.

**This is entirely a work-in-progress, and should not be relied upon to be stable (or even true) in any way.**

Crowbar is a language that is derived from (and, wherever possible, interoperable with) C, and aims to remove as many [footgun](https://en.wiktionary.org/wiki/footgun)s and as much needless complexity from C as possible while still being familiar to C developers.

Ideally, a typical C codebase should be straightforward to rewrite in Crowbar, and any atypical C constructions not supported by Crowbar can be left as C.

# Context

- [Rust is not a good C replacement](https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html)

# cactus's Blog Posts

- [Crowbar: Defining a good C replacement](https://www.boringcactus.com/2020/09/28/crowbar-1-defining-a-c-replacement.html)
- [Crowbar: Simplifying C's type names](https://www.boringcactus.com/2020/10/13/crowbar-2-simplifying-c-type-names.html)
- [Crowbar: Turns out, language development is hard](https://www.boringcactus.com/2020/10/19/crowbar-3-this-is-tough.html)

# Comparison with C

The [comparison with C](vs-c.md) is an informal overview of the places where Crowbar and C diverge.

# Syntax

[Read the Syntax chapter of the spec.](syntax.md)

# Semantics

TODO

# Discuss

- [announcement mailing list](https://lists.sr.ht/~boringcactus/crowbar-lang-announce)
- [permanent discussion mailing list](https://lists.sr.ht/~boringcactus/crowbar-lang-devel)
- ephemeral discussions via IRC: #crowbar-lang on freenode ([join via irc](ircs://chat.freenode.net/#crowbar-lang), [join via web](https://webchat.freenode.net/#crowbar-lang))

[![Creative Commons BY-SA License](https://i.creativecommons.org/l/by-sa/4.0/80x15.png)](http://creativecommons.org/licenses/by-sa/4.0/)