Forks

Ewen Roberts on Flickr

Forks are used in software development to describe how projects and software work.

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

Author

  • Tim Slavin

    Tim is an award-winning writer and technologist who enjoys teaching tech to non-technical people. He has many years experience with web sites and applications in business, technical, and creative roles. He and his wife have two kids, now teenagers, who are mad about video games.

Also In The February 2021 Issue

Low code and no code software makes it possible for non-technical people to create software.

Learn how to program through a series of fun and dynamic activities in Patricia Foster's book!

Learn how to make a contact microphone for picking up the vibrations in your sonic experiments!

If you can't go out to an art museum, then bring the art museum to you using Sketchup!

Find out how people are saving classic games through restoration and archiving!

Find out what a giant wooden horse and your cyber security have in common!

Learn about some of the ways people use to communicate before the internet!

An interview with Solderpunk about the inspiration and the creation of Gemini!

Forks are used in software development to describe how projects and software work.

Computer science unplugged teaches how computers and computer science works, without the use of computers.

Links from the bottom of all the February 2021 articles, collected in one place for you to print, share, or bookmark.

Interesting stories about science and technology for February 2021.

Interested but not ready to subscribe? Sign-up for our free monthly email newsletter with curated site content and a new issue email announcement that we send every two months.

No, thanks!