Skip to content

Commit

Permalink
Use DreamBerd 3 everywhere (#415)
Browse files Browse the repository at this point in the history
* Use DreamBerd 3 everywhere

* tag/v3.0
  • Loading branch information
mybearworld authored Sep 27, 2023
1 parent 5e65b4c commit 073b0bd
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 50 deletions.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Congratulations! You found the hidden examples page!

Here are some examples of DreamBerd 2 in action! Sorry - there aren't many.
Here are some examples of DreamBerd 3 in action! Sorry - there aren't many.

## Hello world

Expand Down
90 changes: 45 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@ Here it is: https://github.com/TodePond/DreamBerd/blob/main/res/res/Examples.md
But if you came here because you want to contribute to DreamBerd 2, here are some tips on how to get your PR successfully merged.
But if you came here because you want to contribute to DreamBerd 3, here are some tips on how to get your PR successfully merged.
- Always punch up.
- Only poke fun at things you respect + admire.
- Make us feel good.
-->

> **New!** Announcing [DreamBerd 2](https://github.com/TodePond/DreamBerd/releases/tag/v2.0)!
> **New!** Announcing [DreamBerd 3](https://github.com/TodePond/DreamBerd/releases/tag/v3.0)!
[<img align="right" height="100" src="shapes.png">](https://github.com/TodePond/DreamBerd/blob/main/examples/Examples.md "Click here for the examples page.")

# DreamBerd 2
# DreamBerd 3

![Coverage](badges/coverage-109.svg)

DreamBerd 2 is a perfect programming language. These are its features!<br>
DreamBerd 3 is a perfect programming language. These are its features!<br>
When you've finished reading through all the features, check out the [examples](https://github.com/TodePond/DreamBerd/blob/main/Examples.md).

## Exclamation Marks!
Expand All @@ -46,7 +46,7 @@ If you're unsure, that's ok. You can put a question mark at the end of a line in
print("Hello world")?
```

You might be wondering what DreamBerd 2 uses for the 'not' operator, which is an exclamation mark in most other languages. That's simple - the 'not' operator is a semi-colon instead.
You might be wondering what DreamBerd 3 uses for the 'not' operator, which is an exclamation mark in most other languages. That's simple - the 'not' operator is a semi-colon instead.

```java
if (;false) {
Expand Down Expand Up @@ -114,7 +114,7 @@ print(2 + 2 === 5)! //true

## Arrays

Some languages start arrays at `0`, which can be unintuitive for beginners. Some languages start arrays at `1`, which isn't representative of how the code actually works. DreamBerd 2 does the best of both worlds: Arrays start at `-1`.
Some languages start arrays at `0`, which can be unintuitive for beginners. Some languages start arrays at `1`, which isn't representative of how the code actually works. DreamBerd 3 does the best of both worlds: Arrays start at `-1`.

```java
const const scores = [3, 2, 5]!
Expand Down Expand Up @@ -145,7 +145,7 @@ when (health = 0) {

## Lifetimes

DreamBerd 2 has a built-in garbage collector that will automatically clean up unused variables. However, if you want to be extra careful, you can specify a lifetime for a variable, with a variety of units.
DreamBerd 3 has a built-in garbage collector that will automatically clean up unused variables. However, if you want to be extra careful, you can specify a lifetime for a variable, with a variety of units.

```java
const const name<2> = "Luke"! //lasts for two lines
Expand All @@ -167,7 +167,7 @@ const const name<-1> = "Luke"!

## Loops

Loops are a complicated relic of archaic programming languages. In DreamBerd 2, there are no loops.
Loops are a complicated relic of archaic programming languages. In DreamBerd 3, there are no loops.

## Installation

Expand Down Expand Up @@ -198,7 +198,7 @@ function isKeyDown(key) => {

## Arithmetic

DreamBerd 2 has significant whitespace. Use spacing to specify the order of arithmetic operations.
DreamBerd 3 has significant whitespace. Use spacing to specify the order of arithmetic operations.

```java
print(1 + 2*3)! //7
Expand All @@ -207,25 +207,25 @@ print(1+2 * 3)! //9

## Indents

When it comes to indentation, DreamBerd 2 strikes a happy medium that can be enjoyed by everyone: All indents must be 3 spaces long.
When it comes to indentation, DreamBerd 3 strikes a happy medium that can be enjoyed by everyone: All indents must be 3 spaces long.

```java
function main() => {
print("DreamBerd 2 is the future")!
print("DreamBerd 3 is the future")!
}
```

-3 spaces is also allowed.

```java
function main() => {
print("DreamBerd 2 is the future")!
print("DreamBerd 3 is the future")!
}
```

## Equality

JavaScript lets you do different levels of comparison. `==` for loose comparison, and `===` for a more precise check. DreamBerd 2 takes this to another level.
JavaScript lets you do different levels of comparison. `==` for loose comparison, and `===` for a more precise check. DreamBerd 3 takes this to another level.

You can use `==` to do a loose check.

Expand Down Expand Up @@ -406,30 +406,30 @@ print(score)! //3
Thanks to recent advances in technology, you can now give files names.

```java
======= add.db2 =======
======= add.db3 =======
function add(a, b) => {
return a + b!
}
```

## Exporting

Many languages allow you to import things from specific files. In DreamBerd 2, importing is simpler. Instead, you export _to_ specific files!
Many languages allow you to import things from specific files. In DreamBerd 3, importing is simpler. Instead, you export _to_ specific files!

```java
===== add.db2 ==
===== add.db3 ==
function add(a, b) => {
return a + b!
}

export add to "main.db2"!
export add to "main.db3"!

===== main.db2 ==
===== main.db3 ==
import add!
add(3, 2)!
```

By the way, to see DreamBerd 2 in action, check out [this page](https://github.com/TodePond/DreamBerd/blob/main/LICENSE.md).
By the way, to see DreamBerd 3 in action, check out [this page](https://github.com/TodePond/DreamBerd/blob/main/LICENSE.md).

## Classes

Expand Down Expand Up @@ -489,7 +489,7 @@ delete 3!
print(2 + 1)! // Error: 3 has been deleted
```

DreamBerd 2 is a multi-paradigm programming language, which means that you can `delete` the keywords and paradigms you don't like.
DreamBerd 3 is a multi-paradigm programming language, which means that you can `delete` the keywords and paradigms you don't like.

```java
delete class!
Expand Down Expand Up @@ -556,17 +556,17 @@ className Player {

In response to some recent criticism about this design decision, we would like to remind you that this is part of the JavaScript specification, and therefore - out of our control.

## DB2X
## DB3X

You can embed DB2X in DreamBerd 2. It's just DreamBerd 2, and it's also just HTML.
You can embed DB3X in DreamBerd 3. It's just DreamBerd 3, and it's also just HTML.

```java
funct App() => {
return <div>Hello world!</div>
}
```

**Warning:** As you know, `class` is already a keyword in DreamBerd 2, so you can't use it within DB2X.
**Warning:** As you know, `class` is already a keyword in DreamBerd 3, so you can't use it within DB3X.

```java
funct App() => {
Expand All @@ -575,7 +575,7 @@ funct App() => {
}
```

`className` is also a DreamBerd 2 keyword, so you can't use that either.
`className` is also a DreamBerd 3 keyword, so you can't use that either.

```java
funct App() => {
Expand All @@ -593,7 +593,7 @@ funct App() => {
}
```

**Please note:** Unlike JSX, you are free to freely use the `for` attribute - because DreamBerd 2 doesn't have loops.
**Please note:** Unlike JSX, you are free to freely use the `for` attribute - because DreamBerd 3 doesn't have loops.

```java
funct App() => {
Expand All @@ -606,7 +606,7 @@ funct App() => {

## Asynchronous Functions

In most languages, it's hard to get asynchronous functions to synchronise with each other. In DreamBerd 2, it's easy: Asynchronous functions take turns running lines of code.
In most languages, it's hard to get asynchronous functions to synchronise with each other. In DreamBerd 3, it's easy: Asynchronous functions take turns running lines of code.

```java
async funct count() {
Expand Down Expand Up @@ -644,7 +644,7 @@ const var score = use(0)!

When it comes to signals, the most important thing to discuss is _syntax_.

In DreamBerd 2, you can set (and get) signals with just one function:
In DreamBerd 3, you can set (and get) signals with just one function:

```java
const var score = use(0)!
Expand Down Expand Up @@ -679,19 +679,19 @@ const var [[[getScore, setScore], setScore], setScore] = use(0)!

## AI

DreamBerd 2 features AEMI, which stands for Automatic-Exclamation-Mark-Insertion. If you forget to end a statement with an exclamation mark, DreamBerd 2 will helpfully insert one for you!
DreamBerd 3 features AEMI, which stands for Automatic-Exclamation-Mark-Insertion. If you forget to end a statement with an exclamation mark, DreamBerd 3 will helpfully insert one for you!

```java
print("Hello world") // This is fine
```

Similarly... DreamBerd 2 also features ABI, which stands for Automatic-Bracket-Insertion. If you forget to close your brackets, DreamBerd 2 will pop some in for you!
Similarly... DreamBerd 3 also features ABI, which stands for Automatic-Bracket-Insertion. If you forget to close your brackets, DreamBerd 3 will pop some in for you!

```java
print("Hello world" // This is also fine
```

Similarly.... DreamBerd 2 also features AQMI, which stands for Automatic-Quotation-Marks-Insertion. If you forget to close your string, DreamBerd 2 will do it for you!
Similarly.... DreamBerd 3 also features AQMI, which stands for Automatic-Quotation-Marks-Insertion. If you forget to close your string, DreamBerd 3 will do it for you!

```java
print("Hello world // This is fine as well
Expand All @@ -707,39 +707,39 @@ addEventListener("click", (e) => {
// This is fine
```

Similarly..... DreamBerd 2 also features AI, which stands for Automatic-Insertion.<br>
If you forget to finish your code, DreamBerd 2 will auto-complete the whole thing!
Similarly..... DreamBerd 3 also features AI, which stands for Automatic-Insertion.<br>
If you forget to finish your code, DreamBerd 3 will auto-complete the whole thing!

```java
print( // This is probably fine
```

**Please note:** AI does not use AI. Instead, any incomplete code will be auto-emailed to Lu Wilson, who will get back to you with a completed line as soon as possible.

**Now recruiting:** The backlog of unfinished programs has now grown unsustainably long. If you would like to volunteer to help with AI, please write an incomplete DreamBerd 2 program, and leave your contact details somewhere in the source code.
**Now recruiting:** The backlog of unfinished programs has now grown unsustainably long. If you would like to volunteer to help with AI, please write an incomplete DreamBerd 3 program, and leave your contact details somewhere in the source code.

## Copilot

It's worth noting that Github Copilot doesn't understand DreamBerd 2, which means that Microsoft won't be able to steal your code.
It's worth noting that Github Copilot doesn't understand DreamBerd 3, which means that Microsoft won't be able to steal your code.
This is great for when you want to keep your open-sourced project closed-source.
## Ownership
Using the word 'DreamBerd 2' in your project name implies that the DreamBerd 2 Foundation does not own your project.
Using the word 'DreamBerd 3' in your project name implies that the DreamBerd 3 Foundation does not own your project.
However, **not** using the word 'DreamBerd 2' in your project implies that the DreamBerd 2 Foundation **does** own your project. If you would like to keep ownership of your work, please always use the word 'DreamBerd 2' in it.
However, **not** using the word 'DreamBerd 3' in your project implies that the DreamBerd 3 Foundation **does** own your project. If you would like to keep ownership of your work, please always use the word 'DreamBerd 3' in it.
Here are some examples:<br>
✅ DreamBerd 2Script (not owned by the DreamBerd 2 Foundation - you are free to use this name)<br>
❌ ECMAScript (owned by the DreamBerd 2 Foundation - please consider renaming)<br>
❌ Rust Foundation (owned by the DreamBerd 2 Foundation - please consider renaming)
✅ DreamBerd 3Script (not owned by the DreamBerd 3 Foundation - you are free to use this name)<br>
❌ ECMAScript (owned by the DreamBerd 3 Foundation - please consider renaming)<br>
❌ Rust Foundation (owned by the DreamBerd 3 Foundation - please consider renaming)
## Contributing
Contributions are welcomed to DreamBerd 2!
Contributions are welcomed to DreamBerd 3!
The most helpful way you can help is by donating to the [Stonewall charity](https://www.stonewall.org.uk/). This will help to prevent the DreamBerd 2 creator from losing their human rights, allowing maintenance of the project to continue.
The most helpful way you can help is by donating to the [Stonewall charity](https://www.stonewall.org.uk/). This will help to prevent the DreamBerd 3 creator from losing their human rights, allowing maintenance of the project to continue.
**Note:** The contributing guide also helps to shake off unwanted fans of the project.
Expand All @@ -756,7 +756,7 @@ If the compiler refuses at first, politely reassure it. For example:<br>
## Highlighting
Syntax highlighting is now available for DreamBerd 2 in VSCode. To enable it, install a [highlighting extension](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-highlight) and then use the [DreamBerd 2 configuration file](https://github.com/TodePond/DreamBerd/blob/main/.vscode/settings.json).
Syntax highlighting is now available for DreamBerd 3 in VSCode. To enable it, install a [highlighting extension](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-highlight) and then use the [DreamBerd 3 configuration file](https://github.com/TodePond/DreamBerd/blob/main/.vscode/settings.json).
This is what it looks like:
Expand Down Expand Up @@ -795,8 +795,8 @@ Lisp haters will also love it.
## Examples
For examples of DreamBerd 2 in action, check out the [examples page](https://github.com/TodePond/DreamBerd/blob/main/test/Examples.md)!
For examples of DreamBerd 3 in action, check out the [examples page](https://github.com/TodePond/DreamBerd/blob/main/test/Examples.md)!
![image](https://github.com/TodePond/DreamBerd/assets/15892272/1edf805c-a359-4cb0-b93d-5e3cd0ca4a9e)
![image](files/star-history.png)
DreamBerd 2 was made with 💔 by Lu Wilson, creator of the [Game of Living](https://youtu.be/WMJ1H3Ai-qs).
DreamBerd 3 was made with 💔 by Lu Wilson, creator of the [Game of Living](https://youtu.be/WMJ1H3Ai-qs).
2 changes: 1 addition & 1 deletion examples/Examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ First of all, the example could include some text explaining the example, like t
// And then some code here to show how to code the example
```

Please only read the actual examples after reading the [full specification of DreamBerd 2](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
Please only read the actual examples after reading the [full specification of DreamBerd 3](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
AFTER reading the specification, you can read the examples [here](https://github.com/TodePond/DreamBerd/blob/main/Examples.md).
Binary file added files/star-history.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion res/Examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

AGAIN!... You navigated to the examples in the _wrong order_.

First, please read all the features of DreamBerd 2 [here](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
First, please read all the features of DreamBerd 3 [here](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
ONLY AFTER learning all features, you can read the example code [here](https://github.com/TodePond/DreamBerd/blob/main/res/res/Examples.md).
2 changes: 1 addition & 1 deletion res/res/Examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

Did you really come here looking for the example code? I told you - you need to read the features first!

First, read the features of DreamBerd 2 [here](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
First, read the features of DreamBerd 3 [here](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
THEN... you can read the examples [here](https://github.com/TodePond/DreamBerd/blob/main/res/Examples.md).
2 changes: 1 addition & 1 deletion test/Examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ Did you just skip to the end of the features page? You just SKIMMED it? That mea
You should go back and learn all the features properly [here](https://github.com/TodePond/DreamBerd/blob/main/README.md).<br>
After doing that, you can check out the examples page [here](https://github.com/TodePond/DreamBerd/blob/main/res/Examples.md).

_If you found this file by exploring the source code of DreamBerd 2 - then please stop. There is nothing to find here, just silly little jokes!_
_If you found this file by exploring the source code of DreamBerd 3 - then please stop. There is nothing to find here, just silly little jokes!_

0 comments on commit 073b0bd

Please sign in to comment.