Ask HN: Differences in Programming Style by Nationalities
In mathematics some people say that there are three different styles of doing mathematics: the French style, the Russian style, and the American style. Each one has its own peculiarities and stereotypes. For instance, French-style mathematics tends to be very abstract compared with Russian-style. Of course, these are all generalizations.
Does something like this exist in the programming world? Example: programmers trained in X tend to be more Y compared to those trained in Z.
37 comments
[ 4.2 ms ] story [ 86.3 ms ] threadanother fun with languages happens when coders for whatever reason insist on naming their variables using fusion of english and other language, such as "HornyWidget" (horny means upper in my language)
But that was around 2002 or so. IDK if it is so today. Probably not.
Having worked at companies in both languages I didn't notice much difference in style. One thing that was pointed out to me is that trends and practices (TTD, agile etc.) take longer to reach the francosphere and that French companies are always X years behind their Silicon Valley contemporaries.
Back then, I thought it was idiotic; how could a professional sit there and copy from others.
I now view it as genius - save your effort for the hard problems.
What probably matters a lot is how programming was learned (self taught, at school, availability of resources from the country / in the language of the person…) as well as the variety of code which the person read / contributed to.
No, that does not answer the question at all because I have no idea :-)
With respect to naming, English being a Germanic language rooting a good part of its vocabulary to the French language, it would be interesting to compare German code and French code both written in English and find out whether German (resp. French) people tend to use more words rooted from the German (resp. French) language.
Take a look around the repo; it'll look odd to a western programmer. There is a lot of duplication. And the tests don't have names, they are numbered.
https://github.com/alibaba/fastjson/blob/master/src/test/jav...
This was several years ago. I did end up choosing it since it really was the fastest.
I think this is the reason for that duplication and numbering
It's a double-edged sword as it can yield more correct code but also spend time in things that a formatter/linter would do.
Or implement requirements very literally without trying to second-guess them, or ask for clarification.
http://www.durgasoft.com/
I have seen some people apply similar techniques to code (eg identify authorship of malware) and I assume what you're asking would be a pretty simple variation of that.
I think California developers tend to be more forward-thinking, and embrace a “move fast and break things” style. Whereas East Coast devs tend to be more academic, structured and top-down.
Speculatively, I’d attribute this to the lack of non compete enforceability in California. Innovation tends to diffuse a lot faster, and that’s rewarded more of a forward-thinking culture. Then again, if there was a piece of code that could kill me if it fails, I’d go with an engineer in Boston before one from Palo Alto.
The East coast was very opinionated about handling every single error case with case-specific logic, deviated very little from plain-old-C / non-threaded implementations and had copious operational input and tools/insight, etc.
Both had their strengths and could get caught up in cultural blindness to the others. It was an interesting challenge.
He said that even to this day, programmers in Romania still have a deep emphasis on book learning and an intolerance for bugs or mistakes.
This is undoubtedly due to a self-selection bias in developed countries, where there are a million opportunities, wherein only those deeply interested in programming choose (and stick with) it as a career.
Those in less developed countries don't have the same privilege, with many choosing programming as an easy ticket out of poverty.
If you live in a less developed country and you choose to work for outsource companies you have to be careful about choosing good quality projects, otherwise you could spend years learning bad practice after bad practice.
- always additive, never proactively refactoring
- a proclivity towards reaching for SO rather than reading the manual
- inconsistent formatting, number of line breaks, ordering of identifiers, etc
My sample size is infinitesimal, so YMMV.
Unfortunately, seems like more people share your opinion that this post is a bad idea. Les than 30 min ago this post was in the second page of HN but now I cannot find it anywhere.
And on a further tangent, I read the following (from a 'frustrated' dev) on a discussion about micro-services.
>Micro-services allow us to push our org chart to production.
I still think about that from time to time.