Terminal WG Operational Doubts
[ I wrote these notes about half a year ago. I publish them now unchanged (except for this very paragraph) in the hope that it's useful, but – as per an announcement I'm just about to make in VTE's issue tracker – I won't be following the comments or engaged in discussions. ]
Upon seeing several successful ad-hoc cooperations behind the scenes, we thought it would be a good idea to have a dedicated, public forum. What we didn't think of (or at least I didn't think of) is that this opens it up to less experienced people, or developers of terminals with much smaller market share, who want to have their equal share of decision making. And that's apparently not good.
After almost a year, hardly anything great (if at all) came out of this platform, and somehow all five initial creators seem to have lost interest.
I cannot comment in the name of the four other guys. As for myself, it's partially lack of time and mental capacity (there were suddenly too many things happening here), and partially that I find it absolutely pointless, counterproductive, and not fun at all to argue about principles with apparently significantly less experienced developers who obviously (to me) only see one side of a greater picture, which I see more sides of.
I've been intensively working on terminal emulation for 6 years now. Sure I made mistakes here and there, but overall I believe that I could contribute a lot. There is one thing though which I'm afraid was a big mistake and I should not have supported. And that is this Terminal WG forum. I'm not sure if this mistake of mine can still be fixed, if the following dilemmas can be addressed, and if so then how.
There's an enormous thread, at around 150 comments. Some experienced developers who can show up a lot of prior work (including developers of iTerm2, tmux, xterm.js, and VTE) argue that it needs to be done a certain way, presenting a clear proof that it would break existing properties of terminals if done differently. Some other developers, who have much less prior work to show in the area of terminals, and whose work has only reached a magnitudes smaller user base, argue against it. At one point the topic fades away, apparently there's a silent consensus, but then dozens of comments and several months later it's again an active discussion topic, one camp trying to convince the other, and vice versa. It could go around in circles for another thousand comments and still get nowhere.
I develop VTE because I have a great time doing so. Engaging in such discussions, where a solid proof, and the vote of the majority of obviously senior people cannot convince the apparently less experienced and smaller camp, and the discussion never seems to settle, is just utter pain, and is extremely unlikely to result in a great outcome.
I have another document for the technical bits, this one is about my operational dilemmas about Terminal WG.
No ladder, seniorship
In every sane organization, designing is mostly the task of seniors. It's especially the case if the organization truly wishes to do something despite prior unsuccessful attempts: it staffs that project with senior people.
We need people who have enough experience that they see the entire ecosystem (e.g. have experience with multiple terminals, terminal-based apps etc.). We need people who can foresee if a new feature would break something existing. We need people who can foresee when something would become so complex that presumably terminals or applications wouldn't implement it. We need people who have a realistic vision about the entire terminal ecosystem. We need people who can make reasonable calls what to include and what not to, rather than trying to shoehorn every incompatible idea.
It's okay for everyone to have the opportunity to speak up and share their opinion. But when it results in endless discussions without any outcome, junior people (wrt. terminal emulation) should step aside and accept what seniors say.
I know it's tricky because supposedly everyone thinks they are the ones who know the most. Who am I assuming from anyone else that they are less experienced? Who am I implicitly suggesting here that I'm one of the senior folks? Maybe it's time to look at prior contributions and alike and somehow try to quantify? I'm not sure how to address this.
No technical leadership
Strongly related to the previous point, if there's no technical leadership then it seems we can't make decisions.
Maybe we need to build up some formal procedure, elect a leader (per issue?), or a voting system, or I don't know what (I don't have any experience in such things).
No principles
Hopefully this one I could address in another document.
Healthy competition?
At this moment I have serious doubts about the usefulness of Terminal WG, and tend to think that a behind the scene cooperation among some leader terminal emulators and their experienced developers could result in better outcome, in shorter time and less effort.
Maybe successful things don't arise from full cooperation, but from a healthy competition? Maybe cooperative efforts cannot evaluate what is a good design and what is a bad one? Maybe the way is to have an implementation (or multiple concurrent ones) and see if it (or which one) becomes popular?