dark mode light mode Search Menu
Search

Forks

Ewen Roberts on Flickr

Forks are used in software programming. Seriously. You might wonder how a programmer manages to get a real fork into their code but it’s simpler than you think.

Forks happen when source code is copied and a new seperate development project is made from the copy. It’s common in open source software projects, in part because the forked code is publicly available for anyone to work on.

While forks happen in software projects, they’re not always successful. The number and timing of forks also can reveal the health or strength of the original project.

For example, members of an open source project could fork the source code if the larger development team decides not to add functionality they want. The risk of a fork helps open source software project developers to work together to debate and resolve problems within their team.

Forks also happen with proprietary software projects, for example, when different versions of software are needed for different groups or new technology. However, today, software developers try to maintain one set of code and treat new requirements as extensions that work off the original code. DRY, or Don’t Repeat Yourself, is a concept to help developers avoid duplicate code which is difficult to maintain.

When a fork happens, the seperate sets of code are called branches. The idea of forks as branching dates back to at least the 1400s. Software forks date back to around 1980.

Finally, when a software process runs, it can split or fork when the original process clones (forks) itself. The parent and its child process share the same data but can be identified as seperate processes. Forking a process is an important part of the Unix and Linux operating systems. It allows the computer to process data faster than if it had to wait for the parent process to execute.

And, don’t forget: What do you do when you walk up to a fork in the road? Why, pick it up, of course. Unless it is this fork which is 35 feet tall and firmly planted in the ground.

concepts-fork-largest-spookyamd
The World’s Largest Fork (spookyamd on Flickr)

Learn More

Fork (Software Development)

https://en.wikipedia.org/wiki/Fork_%28software_development%29
https://en.wikipedia.org/wiki/List_of_software_forks
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

Fork (Software Process)

https://en.wikipedia.org/wiki/Process_%28computing%29
http://www.python-course.eu/forking.php

To Fork or Not to Fork

https://mako.cc/writing/to_fork_or_not_to_fork.html

10 Interesting Open Source Software Forks and Why They Happened

http://royal.pingdom.com/2008/09/11/10-interesting-open-source-software-forks-and-why-they-happened/

A Comprehensive Study of Software Forks: Dates, Reasons, and Outcomes

http://flosshub.org/sites/flosshub.org/files/paper_0.pdf

Fork (Utensil)

https://en.wikipedia.org/wiki/Fork

Why Open Source Software

http://www.dwheeler.com/oss_fs_why.html#forking