featuring the equals sign]] The equals sign or equality sign ( ) is a mathematical symbol used to indicate equality. It was invented in 1557 by Robert Recorde. In an equation, the equals sign is placed between two (or more) expressions that have the same value. In Unicode and ASCII, it is .
The "=" symbol that is now universally accepted in mathematics for equality was first recorded by Welsh mathematician Robert Recorde in The Whetstone of Witte (1557). The original form of the symbol was much wider than the present form. In his book Recorde explains his design of the "Gemowe lines" (meaning twin lines, from the Latin See also and Gemini.):Recorde, Robert, The Whetstone of Witte … (London, England: Jhon Kyngstone, 1557), the third page of the chapter "The rule of equation, commonly called Algebers Rule."
And to auoide the tediouſe repetition of theſe woordes : is equalle to : I will ſette as I doe often in woorke vſe, a paire of paralleles, or Gemowe lines of one lengthe, thus: =, bicauſe noe .2. thynges, can be moare equalle.
And to avoid the tedious repetition of these words: is equal to: I will set as I do often in work use, a pair of parallels, or Gemowe lines of one length, thus: =, because no 2 things, can be more equal.
According to Scotland's University of St Andrews History of Mathematics website:
The symbol '=' was not immediately popular. The symbol  was used by some and æ (or œ), from the Latin word aequalis meaning equal, was widely used into the 1700s.
The first important computer programming language to use the equals sign was the original version of Fortran, FORTRAN I, designed in 1954 and implemented in 1957. In Fortran, "=" serves as an assignment operator: X = 2 sets the value of X to 2. This somewhat resembles the use of "=" in a mathematical definition, but with different semantics: the expression following "=" is evaluated first and may refer to a previous value of X. For example, the assignment X = X + 2 increases the value of X by 2.
A rival programminglanguage usage was pioneered by the original version of ALGOL, which was designed in 1958 and implemented in 1960. ALGOL included a relational operator that tested for equality, allowing constructions like if x = 2 with essentially the same meaning of "=" as the conditional usage in mathematics. The equals sign was reserved for this usage.
Both usages have remained common in different programming languages into the early 21st century. As well as Fortran, "=" is used for assignment in such languages as C, Perl, Python, awk, and their descendants. But "=" is used for equality and not assignment in the Pascal family, Ada, Eiffel, APL, and other languages.
A few languages, such as BASIC and PL/I, have used the equals sign to mean both assignment and equality, distinguished by context. However, in most languages where "=" has one of these meanings, a different character or, more often, a sequence of characters is used for the other meaning. Following ALGOL, most languages that use "=" for equality use ":=" for assignment, although APL, with its special character set, uses a leftpointing arrow.
Fortran did not have an equality operator (it was only possible to compare an expression to zero, using the arithmetic IF statement) until FORTRAN IV was released in 1962, since when it has used the four characters ".EQ." to test for equality. The language B introduced the use of "==" with this meaning, which has been copied by its descendant C and most later languages where "=" means assignment.
The equals sign is also used in defining attribute–value pairs, in which an attribute is assigned a value.
JavaScript has the same semantics for ===, referred to as "equality without type coercion". However, in JavaScript the behavior of == cannot be described by any simple consistent rules. The expression 0 == false is true, but 0 == undefined is false, even though both sides of the == act the same in Boolean context. For this reason it is sometimes recommended to avoid the == operator in JavaScript in favor of ===.
In Ruby, equality under == requires both operands to be of identical type, e.g. 0 == false is false. The === operator is flexible and may be defined arbitrarily for any given type. For example, a value of type Range is a range of integers, such as 1800..1899. (1800..1899) == 1844 is false, since the types are different (Range vs. Integer); however (1800..1899) === 1844 is true, since === on Range values means "inclusion in the range". Note that under these semantics, === is nonsymmetric; e.g. 1844 === (1800..1899) is false, since it is interpreted to mean Integer#=== rather than Range#===.
The Human Rights Campaign. ''HRC.org'', Retrieved 4 December 2018.
Most programming languages, limiting themselves to the ASCII character set and QWERTY, use ~=, !=, /=, or <> to represent their Boolean logic inequality operator.
For example, if one were finding the sum, step by step, of the numbers 1, 2, 3, 4, and 5, one might incorrectly write
This difficulty results from subtly different uses of the sign in education. In early, arithmeticfocused grades, the equals sign may be operational; like the equals button on an electronic calculator, it demands the result of a calculation. Starting in algebra courses, the sign takes on a relational meaning of equality between two calculations. Confusion between the two uses of the sign sometimes persists at the university level.

