My Projects > TurtleShell
TurtleShell is a not especially good Linux shell written entirely in Golang. This project is a coding experiment, and isn't actually meant for use by anyone.
One of the best ways I've found to learn a programming language is to create a passion project in it, and learn the language as you write and iterate the codebase for that project.
TurtleShell is a coding experiment to create a full Linux shell in Go, as a way to learn Go and at the same time scratch an itch that I've had for some time -- to learn how to write a Linux shell. Two figurative birds, one project.
TurtleShell is nominally based on the functionality (not the design) of BASH, however I've made changes to the workflow and functionality to fit my own preferences. Changes include:
My primary purpose in creating TurtleShell was to better learn Golang, because I find that it is much easier to learn a language when you're actively engaged in a codebase involving that language. By learning Golang through coding TurtleShell I am able to actively make mistakes, seek out the more correct ways of doing things, and continuously iterate TurtleShell into something I can be proud of.
Please note: while I am willing to entertain issues and enhancement / feature requests, I am not willing to accept merge requests for this project. I will happily read your code to improve my understanding and credit you accordingly, but the merge request will be deined and my own interpretation of your code will be committed.