I've already found some arguments in favor of programming in English, instead of programming in Portuguese, and we already have a # wondering which would be the recommended way.
I happened to think about it from the point of view of Domain Driven Design. In this development methodology a very large focus is placed on the construction of a ubiquitous language. This means that the code must speak the same language as the domain.
This means that we encode using the terms of the domain. The construction of ubiquitous language is what allows us to construct the model and identify the objects and behaviors. The code ends up mirroring the ubiquitous language that has been established.
It turns out that if we program in English, we're going to have a break, apparently. After all, the code will use other terms, different from the terms of the deal. Now, if the business is from a country where Portuguese is spoken, its terms will be in Portuguese. From there, there is a translation layer between the code and the business.
In this sense, does programming in English conflict with the construction of a ubiquitous language? To establish a ubiquitous language and use it in development should we "do everything in one language"?