When creating a server there are multiple different names you will come across. Each server software has its own uses.
Server Software is very often referred to as "Server Jar(s)".
A "Fork" is a modified version of server software. These often share the same codebase and will sometimes patch in their own changes on top of the previous projects' code. An example of "forks" is something such as "Bukkit > CraftBukkit > Spigot > Paper > Purpur".
There are hundreds (if not thousands) of different forks. This document will only include the recommended, stable, widely-used ones.
As the name suggests, it is a completely Vanilla server from Mojang itself without any modifications. Great for those who want to host a small server for a couple of friends without altering any mechanics, but definitely not good for large servers. It uses datapacks instead of plugins.
Paper is the most widely-used Server Jar nowadays. A fork of Spigot with its own API, numerous optimizations alongside tons of glitch/dupe fixes make Paper the main choice for most server owners.
A fork of Paper which provides numerous gameplay-enhancing features without having to download/create plugins. These include being able to adjust gameplay behaviors not seen in Paper, mob health, and more. Only has a couple of optimization options, but it does allow you to toggle some dupes.
Legacy 1.8 Jars
It is highly recommended that you do not use 1.8 or any of its other releases. However, if it's a requirement for whatever reason these are the better jars to use.
Forge is a modding API and server jar. It is most commonly used for servers with large modpacks. However, it is not very optimized and suffers from poor performance.
Fabric is similar to Forge (but not a fork) in the sense that it also supports mods. These mods can change practically any mechanic of the game. Fabric also has a great amount of optimization mods such as Lithium, Starlight, Phosphor etc. Take a look at this list
Any Jar that combines Plugins & Mods
Do not use any server software such as Magma or Mohist. These are generally unstable. Mohist also replaces EssentialsX jars with modified jars, which might not be safe.
Proxies are used to connect multiple regular servers (such as Paper servers) together. These are what power "networks" and are used by servers which have multiple gamemodes separated in their own subservers. I.E. Survival, Minigames, Prison, etc. all in one "server".
A more recent project, now run by the Paper developers. Velocity uses its own API, meaning it does not work with Bungeecord / Waterfall (Unless you use SNAP!, which allows you to use Bungeecord plugins on Velocity. Not recommended, though.)
Velocity is practically superior to Bungeecord / Waterfall unless you're hosting <1.13 servers. However, many developers haven't added Velocity support to their plugins.
A fork of Bungeecord run by the Paper developers, Waterfall supports most if not all Bungeecord plugins. It also comes with a couple of networking optimizations.