views:

47

answers:

2

When I see a small program which is written for some students, I often see something like this: (haskell, german):

ueber = "What the haeck!"

instead of

über = "What the häck!"

As many modern languages are specified to allow non-standard charactes in declaration names via UTF-8, is there a special reason for avoiding these in a project, which is sure to be only for people who are able to input these characters (say for a team of german students?) or is this just a historical reason?

I know, that you should keep names in a-zA-Z_0-9 if you develop an applicaio internationally, but are there any reason for avoiding this in a "local" project?

+3  A: 

is there a special reason for avoiding these in a project, which is sure to be only for people who are able to input these characters

That is certainly the main reason. Other reasons that come to mind is that many development tools, search functions, editors, parsers, documentors, code search engines etc. will not expect non-ASCII input in code.

Also, you never know where your code may be used one day! The smallest innocent school project can grow into a nice Open-Source tool that gets used around the globe one day. In that case, ASCII is the smallest common denominator, at least at the moment.

Pekka
+1  A: 

I've had to work on a project started by French developers. They had to spend quite a bit of time translating their program to English when more people joined the project. Teach your German students this lesson up front, and not only will they be able to share their code with others, they'll no longer need an über or ueber variable either.

BTW, ü is an alphabetic character. + and - are non-alphanumeric, and I'd say it's obvious why they're disliked in function names.

MSalters
The problem is actually, that the teacher **forces** the student to use german varnames :(
FUZxxl
BTW: Is there another term to say what I wanted to express? (Characters like ü?)
FUZxxl
@FuZxxl what you mean is non-ASCII characters.
Pekka