Cross language discussion
On 1 July 2015 at 14:37, Benjamin Gruenbaum <benjamingr at gmail.com> wrote:
So, this is something that has been bothering me for a while now.
The TC, and the mailing list is full of some really smart people. However, smart people can overlook things too and smart people can spend months in a debate that other people already thought about.
Other languages have open processes too, other languages have mailing lists and working groups and much of the same discussions we do.
I think it would be really awesome if a small subgroup of the TC could do a monthly or bi-monthly chat (hangouts, skype, in person, whatever) with working groups from other languages.
I have talked to several PHP-Internals people and they are generally in favour. Knowing some of these people they have a ton to contribute - if we could save just a single debate or understand a domain better it'd be worth it IMO.
What do you guys think?
Quite a few members of TC39 are already deeply involved in various other language communities, although I don't know about PHP in particular. That has often proved helpful. In general, anybody on a language committee ought to have a certain degree of knowledge and interest in a broader variety of languages. OTOH, I believe that individual cross involvement is far more fertile than unfocussed group meetings.
An HTML attachment was scrubbed... URL: esdiscuss/attachments/20150701/efe1387c/attachment
The problem is that it's not always that the case that the individual working on a particular feature has all the context about the feature in other languages.
What I had in mind is a 3 v 3 with languages where you come in with a set of questions about details and design choices in the language with regard to new ES features and get answers from people who've spent months solving or debating these issues in other languages as well as perspective on the outcome.
I think a mailing list or a discourse could also be a good alternative. I already have some positive feedback from PHP, Python and C#. Where in PHP I've actually got a tentative OK by two PHP internals people.
anybody on a language committee ought to have a certain degree of
knowledge and interest in a broader variety of languages.
I agree, let me quote what one of those PHP internals people told me:
"When people propose stuff they research implementations of other languages, but usually the details, which are all that is ever important, usually do not end up in any documentation ^^"
I think that's an extremely valuable point (also in reply to Alex's email).
On Wed, Jul 1, 2015 at 9:22 AM, Alex Kocharin <alex at kocharin.ru> wrote:
People regularly suggest borrowing concepts from different languages here (we got arrow functions from coffee, generators are from python I believe).
And @@species
is from smalltalk. (More or less.)
Lots of smalltalk influence, actually.
On Jul 1, 2015, at 5:37 AM, Benjamin Gruenbaum wrote:
So, this is something that has been bothering me for a while now.
The TC, and the mailing list is full of some really smart people. However, smart people can overlook things too and smart people can spend months in a debate that other people already thought about.
Other languages have open processes too, other languages have mailing lists and working groups and much of the same discussions we do.
I think it would be really awesome if a small subgroup of the TC could do a monthly or bi-monthly chat (hangouts, skype, in person, whatever) with working groups from other languages.
I have talked to several PHP-Internals people and they are generally in favour. Knowing some of these people they have a ton to contribute - if we could save just a single debate or understand a domain better it'd be worth it IMO.
It sounds to me that a better fit would be a small annual conference whose attendees are primarily working language designers and implementors. Today most conferences either are exclusively academic (most ACM conferences) or are commercial (or at least semi-commercial) performance venues where "experts" talk to a non-expert audience. This hasn't always been the case, once upon a time there were subject area conferences where (mostly) non-academic practitioners in some computing subject area could gather to talk about recent experiences and share knowledge that advanced the practical state of the art of the subject area.
There probably are still some conferences like this, but the only one I can think of relating to programing languages is Microsoft's Lang.net/lang.next (channel9.msdn.com/Events/Lang-NEXT ). I helped organize the first lang.net conference and one of it's goals was to try to working language designers/implementors. While I recommend attending a lang.next, if the opportunity arises, I think it's organization is a bit too Microsoft-centric, the conference a bit too small, and its occurrence a bit too infrequent (will there be a lang.next 2016??). But perhaps it could be liberated from Microsoft's dominance if there were additional interested sponsor organizations.
An annual conference sounds like a great opportunity to discuss design goals of languages and long term goals - I am a much less ambitious man than you. I'm just thinking of small scope examples, to name 3 on top of my head:
- The iteration protocol (PHP had a similar lengthy discussion about
something like our
return
- talking to the relevant people there would have helped). - RegExp.escape's escape set, other languages had to make that choice and speaking to people involved could help bring in insights.
- async functions, C#, Hack, Dart and Python all had to solve similar design issues to what ES does and probably have a lot of interesting insights.
Most of the new features we're discussing have other language parallels. I'm aware that champions and other people involved do a lot of research and it takes a lot of time - but as Bob from PHP internals said, very often the delicate detail is lost in the documentation and speaking to the people involved is immensely useful.
I think setting up a conference is a lot more work then getting 3 people from each side on IRC every now and then, but I'm not very experienced with either.
Another alternative brought up is a closed mailing list or discourse board.
Benjamin Gruenbaum wrote:
An annual conference sounds like a great opportunity to discuss design goals of languages and long term goals - I am a much less ambitious man than you. I'm just thinking of small scope examples, to name 3 on top of my head:
- The iteration protocol (PHP had a similar lengthy discussion about something like our
return
- talking to the relevant people there would have helped).
I know Rasmus Lehrdorf and saw him in Taipei in May. But I think you may be missing the long history, going back to ES4, of the iteration protocol that went into ES6. I based it on Python 2.5, and then Igor Bukanov (at the time a peer on SpiderMonkey) worked hard to improve the Pythonic design to eliminate GeneratorExit. Here is Igor in the python-dev list:
mail.python.org/pipermail/python-dev/2006-August/068499.html
Here is Phillip J. Eby replying to Guido and giving a nod of approval to Igor's solution of forcing a return instead of throwing GeneratorExit:
mail.python.org/pipermail/python-dev/2006-August/068450.html
See, we did actually do our homework and get into the guts of the other language. :-P
(In the end, what got the iteration protocol buy-in across TC39 was Dave Herman's elimination of StopIteration. So Igor and I should have worked harder to eliminate exception singletons (a smell for sure). :-P to me too :-D. I'm still waiting for the {value, done} record object to be optimized away in modern engines, so :-P to them.)
I agree that this kind of diligence is required. I don't see how a gab-fest helps, though. It can help forge social bonds across communities, and it doesn't hurt for other reasons, but it is not the place for detailed grunt-work.
So, this is something that has been bothering me for a while now.
The TC, and the mailing list is full of some really smart people. However, smart people can overlook things too and smart people can spend months in a debate that other people already thought about.
Other languages have open processes too, other languages have mailing lists and working groups and much of the same discussions we do.
I think it would be really awesome if a small subgroup of the TC could do a monthly or bi-monthly chat (hangouts, skype, in person, whatever) with working groups from other languages.
I have talked to several PHP-Internals people and they are generally in favour. Knowing some of these people they have a ton to contribute - if we could save just a single debate or understand a domain better it'd be worth it IMO.
What do you guys think?