Tars: Tencent's microservice RPC framework, open-sourced to Linux Foundation
tarscloud.org
tarscloud.org
I wouldn't care if the project is targeted to China. But it is donated to The Linux Foundation. The Linux Foundation should have not accepted such projects at the beginning.
I'm Korean and there is nothing to do with China itself. But the more we accept projects like this, the more they like to write in their language. What's worst is that their Github issue page will be full of Chinese that other people will not understand. I don't want to see the programming culture get fragmented just because of the language.
> shouldn't be a big deal as they will get translated.
The problem is nobody guarantees they will get translated or the translation will have the same quality.
I think it would be great with some more language diversity. It would reduce the barrier for a lot of people to enter the programming world.
(and remember, it is commonplace many places to speak 2, 3, 4 languages).
I.e I remember working with localized Excel. Some of the names made no sense. What was worse, depending on localization, '0.5' could be displayed as '0,5', and that kept tripping me up.
And I do speak three languages (and if push comes to shove, I can somewhat understand another two) ... and with <15 million understanding my mother tongue, yeah, I will do my programming in English.
If you choose other language, it might make sense for you, and I don't feel entitled to understand you, but I probably won't learn your language just to participate, even if your project is really cool ... (unless it is one of those two that I have been neglecting ...)
If the translation services are great it wouldn't matter but I personally have never seen an useful service that translates technical talks well.
https://element.eleme.io/#/en-US/component/installation
The initial error/validation messages in the dialog box being in Chinese first caught me off guard, plus the website used to default to cn before that added geo filters later on, but a simple config change when you import element and set language to 'en' wasn't a big deal. And I never ran into problems otherwise communication wise. English is still very much the default communication language.
My first reaction was that it was awesome to have so much OSS coming out of China and it was top-tier UX/design level stuff using modern JS like react/Vue. If it helps their communities to be able to communicate in their own language while they contribute to the wider world of software with top-notch software than we all ultimately win in the end.
Localization is largely a solved problem.
The solution is incredibly simple. Hire professionals or invite volunteers to provide an English version of the documentation. There is no need to force developers to learn an entire new language to be useful to the community as a whole. At the end of the day, it is the code that matters.
"I'm not a nice person, and I don't care about you. I care about the technology and the kernel — that's what's important to me." - Linus Torvalds
"It's the code that matters" is a nice soundbite, but in software engineering it's absolutely critical to be able to communicate and understand others' code, as well as reason and communicate about what the code should do. Having a working binary that's decoupled from any human language is only the end result you get after this process.
Maybe Mandarin will be the lingua franca of computer technology in 30 years, if China becomes the dominant player in technology development. But that's not the world we have today, and this is really a decision between trying to include Chinese developers in the international community of technologists, or being stuck with two separate communities for the forseeable future.
[Edit: Of course, since Tencent has 75 open-source projects and there's presumably a thriving community of Chinese technologists, we will most likely end up with the latter result anyway. So you may actually end up in the position where you'll have to learn Chinese to contribute instead, because the Chinese developers will be similarly disinclined to use English as long as they are able to get things done in their native language].
And how do you think this can change but by having projects whose main language is not English?
But yes, as you say, the way for this to change is by having the majority of software projects written and documented in Chinese instead of English. This might eventually happen, but I think the more likely outcome is that we will have (at least) two disparate communities of developers, with a high communications overhead between them. This is sub-optimal with regards to international cooperation, but the most likely outcome.
Might even turn out to be the most efficient way of moving the world forward, I wouldn't know. I'd bet against it, but not at any odds.
You know, it doesn't change anything if while you steal something you are yelling "it's not theft". It works the same in other situations too, like when you argue all other cultures should speak the same language as you.
Language barriers are inconvenient, but they can be overcome in well known ways, so they are certainly not the cause of breakdowns in international cooperation as all that is mostly done by multilingual people anyway.
Indeed, and some of those multilingual people are developers bridging between the world of international software where English is the lingua franca and their own local communities where company-internal code doesn't need to have all documentation in English, even if that's the case for the open-source software it relies on.
The bridge also works in the opposite direction, such that if you want to contribute your internal code to the international community, it's appropriate to provide them with English documentation. The TARS developers evidently realize that, their translation is just not fully done yet.
That's why most international institutions, wether private or not, define 'official languages'.
When it isn't, it often involves translators, in numbers ranging from a few to armies.
Most software out there being freely supported by at most one person, do you really think any of them have the resources, time, to find multiple translators willing to work for free on translating their project? Or, heck, pay them on their own dime for it?
No. So most developers know that if they do not work in a language that will be understood by most other developers, their work will essentially be useless to everyone, no matter how great it may be.
Honestly, we're lucky to even have a lingua franca. It could be Egyptian hieroglyphs, for all I care. It just happens to be English. And that is fine by me.
I had fellow students in my Russian classes that were there, in part, because they wished to pursue math PhDs, and it was crucial to have competency in one of the other major languages for math publications.
A software engineering community with multiple large active language communities is inevitable, and doubly so for software's ubiquity. Math is at least an ivory tower discipline with a small community that can tolerate limited language diversity. The broader software community using English only would be akin to HVAC professionals exclusively using Italian to discuss their work.
Other crafting disciplines don't have super-complex tooling that goes through massive paradigm shifts every 5 years, with work on the same tools and products happening across continents, and where learning the inner workings of each iteration of these tools can be career in itself. Things move much slower in the physical world, and it's likely that other rules apply to such a domain.
Computers could be in Latin, Esperanto, or Mandarin (which ironically in this case names itself 普通话 “pu tong hua”, the common tongue) for all I care, as long as it’s consistent. Right now it’s English.
A great example is Clickhouse. Russian product, build by an all-Russian team. Yet their docs are in English and they track issues on github in English. I could read them if they were in Russian, but then I would never advocate for the use of Clickhouse in any commercial projects.
If Tencent is unable to cross that bar, then the project should absolutely be rejected from the Linux foundation.
>If Tencent is unable to cross that bar, then the project should absolutely be rejected from the Linux foundation.
I could bet $100 dollar the result of that would then be politics.
Weird how you think Tencent should perfect the project before the LF accepts it. Why can't the LF support the English documentation effort? To me, it sounds like you not only don't you want to be involved in a non-English project, but you don't want anyone else to be, and my question is "Why?"
LF translating documentation for them is a one-shot effort that's ultimately going to be useless as time goes on without someone on their side dedicated to keeping it updated and keeping github issues in English.
It's not too much of an ask. Again, see Clickhouse for an example of how to do international open source correctly.
Your implicit assumption is that the Chinese-speaking development community is not sufficient to sustain the project. I don't think that scenario would be fragmentation but the addition of a new developer segment (net addition).
I would rather we go with having more translators and encourage more translators to work on technical projects.
People should have the option of learning English vs. waiting for a translation and we should strive to have translations done relatively quickly.
“The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.”
For reference I'm a mechanical engineer and have heard endless stories of delays, critical failures, and manufacturing errors due to confusion with units. Either they weren't specified and were incorrectly assumed, or a single part out of hundreds is in a different unit and overlooked, or tests were performed incorrectly due to this confusion. It's no good and if it can be avoided then it should.
I'm not sure to fully understand your position.
If we want to be purely pragmatic, asking Tencent to document all its code in English will probably never happen, even if they can surely improve the coverage in the future. From there if we find their projet valuable enough we'll have to contribute English (I don't think they are opposed to it, far from that)
That is for me the pragmatic approach.
From another angle, is it a "must" for Tencent to adapt to bring a contribution to the table ? If there were actually in a imperialistic approach I could get the frustration, but here the predominance of Chinese is an consequence of their developper base and I wonder if they even planned to expose that code to the greater world from the start. Would we bash them for open sourcing their next mature project on the basis of the quality of the English documentation ? I surely hope not.
My comment was meant more generally: I strongly believe that in a domain that's as communication-heavy and global as computer software, adhering to a professional lingua franca will yield better results for the field as a whole than having each country write code in their own language, translating only when the benefits of cooperation become obvious.
This has been the case in every (Norwegian-speaking) company I've worked in. Separate documentation has indeed been mostly in Norwegian, but with almost no exceptions, code, configuration and commit messages have been written in English, even though none in the company actually spoke English as their primary language. Ditto for software configurations and OS installs. This has made it painless to search debug messages, ask contextual questions online, get outside help and has ensured zero interoperability issues in libraries and dependencies.
It also turned out to make it almost effortless to introduce foreign-language developers in our teams, a strategic advantage. If we were doing open-source software, these advantages would have been compounded. You don't know what you would lose by using a more obscure language, and the effects compound the bigger the impact your software turns out to have.
Much of this is probably a foreign idea to someone who has only spoken English from birth, but I've seen similar phenomena in other fields that are highly international. E.g. an acquaintance of mine works with biotech sales across much of Scandinavia, and although most people there will be able to understand each other using their mother tongue, using English in common communications greatly reduces the time required to sort out misunderstandings. The access to talent is increased by a multiple, and communications overhead is greatly decreased.
But of course there are nuances to this. E.g. in the case of China, there is probably a developer base in the millions that doesn't know English, and the world will probably be a better place if they are able to contribute anyway. And of course, the laws of physics don't care, it's not like there's some authorization board that will prevent their compiler from working if they do everything in Mandarin.
The domain of computer software will probably move faster if these developers are able to seemlessly communicate with the rest of the world than otherwise. But it's also likely that it will move faster with them contributing with a higher communications overhead, than not at all.
Is it that much different than for native German/French/Spanish/etc. speakers?
> There is no need to force developers to learn an entire new language to be useful to the community as a whole. At the end of the day, it is the code that matters.
This might be controversial, but I think being able to understand english will help a lot in better code. Why? Because most of the article in the field are in english, open source projects are in english, etc. The more you can read those and the more you can learn from them, the better your own code will be.
This is open-source software, if you are not happy with the language choice of other developers, send a pull request with your own translation.
Why not also translate classes', functions' and variables' names too?
I am not a native English speaker. I also really don't have any resources, wether time, money or mental bandwidth to waste on translation.
Nearly all code and documentation out there is in one single language, that happens to be English, so I work in English, and I wouldn't have it any other way.
English is pretty important. It's not really possible to collaborate effectively with people that you can't communicate with.
As a non-native English speaker, I do not agree with your argument. When it is profitable for Chinese people to speak English, they seem to be doing just fine. For the rest of the world, it is easier to learn English than Mandarin.
But we adapt. Why wouldn't they? The internet was invented in English-speaking persons .
It's the most logical "standard" in development.
It used to be French, German, and others with one dominating for a period. What’s so bad about this? It ensures everyone can communicate.
Lastly, this emerged naturally. No central community said, “hmmm we’ve had enough French in business, time to move to X”
English's not my first language, and I do not care about Chinese developers' feelings, nor do I expect you to care about mine. In fact I'd prefer it if you did not care about mine.
It's not _just_ that the Chinese people's alleged feelings is exploited by the Communist Party of China to justify their oppression of Tibetans or denying Taiwan their place among nations. It's that you seem to be making a lot of assumptions as to how other people "feel." Take a minute to consider how your attitude could be seen as patronizing.
> Have you considered how Chinese developers feel when they must not only browse English documentation, but learn English keywords present in every major programming language? How accessible do you think StackOverflow is to Mandarin speakers?
and then
> "I'm not a nice person, and I don't care about you. I care about the technology and the kernel — that's what's important to me." - Linus Torvalds
Based on those two quotes, it doesn't matter how the Chinese feel, what matters is the technology as you said yourself.
An established standard is in place. Why should it be changed to make Chinese devs feel better? What about middle eastern developers or south American developers?
Everything changes, the world changes. Nowadays you write Korean but your ancestors had been using Chinese as your country's official languages for many hundred years; Now we all learn English to communicate internationally but a few hundred years ago they use France.
No one knows how the world will change but there is one thing we can be sure of - no one can force the world to change at his own will - the only thing s/he can do is to adopt it - just as what we human beings have been doing for millions of years.
also, chinese software engineering community was a closed up one until a few years ago. now they're actively contributing, rolling up their home brew libraries and applications for the world wide usage. there is simply nothing wrong with them using their own language. we might have a problem when they try pushing that but almost all the popular chinese libs have english documentation.
Since the project is mainly done by Tencent, a Chinese company, it just make since for the project to use Chinese. I see no point for their team members to communicate with one and other by writing documents in a second language everyday.
Also, they've provided English document if you want to read, and the document is not bad. If you don't like the document, then send them some PR.
The point being, if it is accepted by the Linux Foundation, we should be expecting documentation in English. Otherwise it is fine for maintainers to use whatever language they feel is good for them to use.
LF has no mandate to dictate any specific language to projects.
> Otherwise it is fine for maintainers to use whatever language they feel is good for them to use.
Yes.
Maybe it doesn't, maybe it does. Maybe it should and maybe Tencent is creating precedents. Plenty of questions. All I see is: Linux Foundation is based in San Francisco, key people are all perfectly well speaking English and LF should do anything what is possible to make the projects accessible globally, using a lingua franca of technology.
If entrusting it to the Linux Foundation leads to more internationalization of the project, that can only be a win for the LF and Chinese OSS as a whole.
Personally, I’d much rather Chinese developers operate within the global community than outside of it. And things like this are just another bullet point in that.
May be because most programming language are English alike?
Here you can see what looking at issues is like: https://github.com/ant-design/ant-design/issues
There is still too much software around today which breaks when presented with anything else than ASCII.
0. https://github.com/apache/incubator-brpc
1. https://github.com/weibocom/motan
2. https://github.com/sofastack/sofa-rpc
I see:
-seems to be implemented as a library and not a sidecar?
-a protobuf type protocol
-client side load balancing with a name server
-a consistent request queuing strategy
-a web console for your services
-unlike a service mesh, the scope seems to dip
into things like service config
-end to end request flow tracking?
Hopefully someone familiar with it will flesh out the details."Ten years sharpening the sword" is a line from a Tang dynasty poem by Jia Dao. The Wikipedia article on him has a translation of the complete stanza: https://en.wikipedia.org/wiki/Jia_Dao
I'm curious if someone can tell more about:
(1) what the value proposition is in a succinct manner,
(2) the specific advantages of this technology versus other RPC frameworks like gRPC or Thrift,
(3) some details about the serialization protocol, in particular is it attempting to be low memory overhead like Cap'n Proto or to have interesting features like Flatbuffers?
However there are still differences in writing / vocabulary even if you disregard the existence of simplified and traditional versions. It's similar to US and British English. Books are are often translated to both versions and it's similar for (Mainland) Chinese, Hong Kong Chinese or Taiwanese Chinese text with even more extreme differences.
Is there a document somewhere in english or source code? What is the serialization protocol behind it? Advantages vs. JSON RPC, gRPC, etc?
There appears to be a benchmark table in docs/performance.md but I hope some native speaker can translate for the English speaking folks among us.
https://github.com/TarsCloud/Tars/blob/master/Introduction.m...
At a glance, not everything is translated yet, but it seems a good deal of it is.
PS:gRPC is using HTTP2
Created in seastar-framework (scylladb's core) created at Akamai , used in Redpanda (https://vectorized.io/) that is doing scylladb for apache kafka.
One quote in the article “Industrial fragmentation and decoupling of technology will harm the long-term interests of mankind.” affected me because for a long time I believed in individual effort, the efficacy of small teams, etc. Now I think as much about society as technology, where we are headed, and what does the most good for the most people. I see massive loss of privacy freedoms but I also see the need for getting every bit of productivity from all resources: human and environmental. I have a rosy and optimistic view for the future, but it will involve what I expect to be radical changes in societies, increasing power of elites in general and tech companies in particular. Huge companies sharing technology and affecting standards is one way to squeeze maximum efficiency out of the systems that support the world’s population.
on the other hand, human langues (like programming languages) are just a tool in the box right? Dont hold on to your old tool just because.
https://en.wikipedia.org/wiki/List_of_companies_involved_in_...
Prisoners of conscience are herded in concentration camps and ready to be salvaged as soon as someone is willing to pay for their bodies worth. The Nazi Party thought of the Jews as lesser humans. The Chinese Communist Party thinks of the Uyghurs as cattle to be slaughtered.
EDIT: I created this account because of my ethnic background. In China (thanks to the CCP) I am guilty by birth.
—
TARS : [as Cooper repairs him] Settings. General settings. Security settings.
TARS : Honesty, new setting: ninety-five percent.
TARS : Confirmed. Additional settings.
Cooper : Humor, seventy-five percent.
TARS : Confirmed. Self destruct sequence in T minus 10, 9...
Cooper : Let's make that sixty percent.
TARS : Sixty percent, confirmed. Knock knock.
Cooper : You want fifty-five?