Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jorelali/elm-brainfuck-ide
A Brainfuck IDE written in Elm
https://github.com/jorelali/elm-brainfuck-ide
brainfuck elm
Last synced: 6 days ago
JSON representation
A Brainfuck IDE written in Elm
- Host: GitHub
- URL: https://github.com/jorelali/elm-brainfuck-ide
- Owner: JorelAli
- License: mit
- Created: 2019-11-03T03:21:11.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2019-12-07T16:37:04.000Z (about 5 years ago)
- Last Synced: 2024-11-17T08:49:38.546Z (2 months ago)
- Topics: brainfuck, elm
- Language: HTML
- Homepage: http://www.jorel.dev/Elm-Brainfuck-IDE/
- Size: 682 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Elm-Brainfuck-IDE
Elm-Brainfuck-IDE is a Brainfuck IDE that's written in Elm.
## Why?
The creation of an IDE for developing Brainfuck has always been an interest of mine.
In June 2015, I began working on a [Brainfuck IDE in Java](https://github.com/JorelAli/Brainfuck-IDE). It used Java's Swing library to create a desktop application, and used [fabianishere's brainfuck-java project](https://github.com/fabianishere/brainfuck-java) as the brainfuck interpreter (since I was not smart enough to implement a brainfuck interpreter at the time).
After some time, (in September 2017), I decided to rewrite the IDE and have it as an online service, so you can edit brainfuck online. This became my [Brainfuck_IDE_Online](https://github.com/JorelAli/Brainfuck_IDE_Online), which used NodeJS ([express](https://expressjs.com/) and [socket.io](https://socket.io/)). Unfortunately, that never really took off (it had code formatting and code unformatting, but no evaluation).
Now, in 2019, I decided to redo the project in [Elm](http://elm-lang.org/), as I am currently learning Elm for web development.
## Outcomes
The list of things that I believe to have gained by doing this project:
- Use of [`Browser.document`](https://package.elm-lang.org/packages/elm/browser/latest/Browser#document) to gain full control over the entire webpage and interact by using `Cmd` and `Sub`
- Use of [elm-css](https://github.com/rtfeldman/elm-css) to style the webpage in a typed environment
- Use of Elm's `Cmd` system to request to load URL pages and gain a better understanding of the Elm architecture
- Use of multiple files to modularize the project## Acknowledgements
The Elm-Brainfuck-IDE took inspiration from the following projects:
- [copy's brainfuck interpreter](https://copy.sh/brainfuck) - Primarily the idea to parse the entire input to the program in one go
- [fatiherikli's brainfuck visualizer](https://fatiherikli.github.io/brainfuck-visualizer) - UI inspiration## Screenshots (or it never happened)
![screenshot](./screenshot.png)