もし歴史がやりなおせるなら統一したいプログラム言語の慣習

文字結合演算子

おそらく最も利用頻度が高い、各言語でバラバラな仕様になっている要素。
プラス記号でも文字列結合できるという考え方排除してなにか一つに文字結合演算子を統一すべきだった。
(とは言え、空いている記号が存在しないんだが……)
デファクトな流れを作りうる立場にあったC++が、文字列をクラスとして実装して演算子のオーバーライドで文字列結合を実装してしまったのもまずかった。

foreachの構文

foreachの概念が言語構文として取り入れられたとき、各自がバラバラの構文で実装しているので、使うキーワードが in だったり as だったり of だったりする。
これもC++が言語構文としてforeachを取り入れていてば、後発は全部それに従ったであろうと考えられる。
ただC++の時代にはまだイテレータパターンはあっても、それをforeachという言語構文にしようという考え方はメジャーでなかったので仕方ないところはある。

リテラル文字列に含まれる変数の自動展開

リテラル文字列に含まれる変数を自動展開する構文も各言語でバラバラである。
これはC++C言語にその言語構文が無いことを責めることは難しいので、awkperlが場当たり的なものではなく、将来を見越した構文を採用してくれていれば、みんなそれに従った気がする。

クラス構文の細かい部分

継承やコンストラクタに使うキーワードが言語ごとにバラバラである。
これもC++が「改良の余地がある」と思わせる構文を採用しちゃったのが不味かった気がする。

その他

あと、linqはクエリ構文を採用すべきでなかったと思う。
filterやmapのメソッド名を、SQLと似た構文で書けるようにするという目的のもとwhereやselectという慣習に従わないものに変えられてしまったが、これは変えるべきではなかった。