I think proc is a good keyword. Note that in older languages like Pascal,
Modula, Oberon PROCEDURE was used, which is too long.
def is not that nice, because we can not only define code procedures, but other
symbols like variables, types, constants...
fun may be ok if the code only returns a result but does not modify internal
state. But note that programming can be fun, but not always is, so fun keyword
is a bit silly.
No keyword for callable code as in C/C++ makes searching in editor for start of
function more difficult.
So Nims proc and func keywords are fine for me, as I can not imagine something
better currently.
And finally, if your post has serious intent and you really have a mental
problem with proc, you may consider using Nim's source code filters -- I have
considered using it for allowing tabs, but never really used.
Source code filters are a bit restricted, seems that the have to be placed at
the top of a file, only one can be used, they don't work with regular
expressions, and they work on all input data, also for strings. So it is no
serious solution, but maybe helps you starting with Nim, as it did for me in
early Nim days for using tabs. (I still miss them...)
#? replace(sub="def ", by="proc ")
proc test1 =
echo "Hello 1."
func test2 =
debugecho "Hello 2." # as echo can have side effects
def test3 =
echo "Hello 3, def "
test1()
test2()
test3()
Run