Plankalkül for example was out a decade earlier and used →. EX:
P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) → R0[:8.0]
https://en.wikipedia.org/wiki/Plankalk%C3%BClSo, there really was a lot of languages out there, but := was fairly common because it was easy to parse and type.
As far as := is concerned having to use the shift key for an assignment is less than ideal but there really aren't any better options on a modern keyboard. I think C's use of = is a bit braindamaged but it is nice and quick to type.
Rutishauser was, at least.
And most BASICs, though some (most?) required the keyword LET to introduce an assignment, as well.
But most BASIC versions would accept 'let a = 1'
Personally, I don't see why the big fuss. If your assignment and comparison operators are the same the only thing you lose is doing x = (y == 2); kind of expressions (since you would disambiguate from conditional expressions).
Now, assignments are done more frequently than comparisons, hence why it makes sense for it to be the simpler/shorter one.
LET was virtually always optional; an expression by itself on a line (like 'X <> 10') is a syntax error anyway, so removing LET doesn't introduce any ambiguity.
> Looking at this as a whole, = was never “the natural choice” the assignment operator. Pretty much everybody used := for assignment instead, possibly because = was so associated with equality. Nowadays most languages use = entirely because C uses it, and we can trace C using it to CPL being such a clusterfuck.
Articles, like desserts, aren't always right. I am sorely tempted to pull out Sammet's book tonight and start counting.
Results:
ν = ε 18 (AMTRAN, BASIC, COLASL, CPS, FORTRAN, FORTRANSIT, JOSS, JOVIAL, Klerer-May, Laning & Zierler, MAD, MADCAP, MAP, MATH-MATIC, MIRFAC, PL/I, QUICKTRAN, UNICODE)
ν ← ε 4 (APL, DIALOG, IT, LISP2)
ε → ν 2 (MADCAP, NELIAC)
ν := ε 1 (ALGOL)
ε * ν 1 (BACIAC)
So pretty much everybody used ‘=’. ALGOL was an outlier, though admittedly more influential than BACIAC.