¿Cuándo usar las colas de transacciones?


7

¿Hay alguna razón por la que tan pocos paquetes parecen usar colas de transacciones ( tq-enqueueetc.) para comunicarse con procesos externos? La mayoría de los paquetes que he visto parecen preferir el mecanismo de filtro normal.


Sospecho que una combinación de personas simplemente omite esa parte del manual o simplemente lee acerca de los filtros y las colas de transacciones que se ven raras y no son lo suficientemente potentes / flexibles.
wasamasa

1
No para ser quisquilloso, pero el cuerpo y el título son preguntas algo diferentes aquí. :-)
Malabarba

Para mantenerlo en línea con mi sentimiento y responder a la pregunta titular: Nunca. A menos que esté manteniendo el código heredado usándolo.
wasamasa

44
Porque nunca ? (Eso es todo lo que tengo que decir.)
politza

Respuestas:


3

Una cosa que debes saber sobre Emacs es que hay muchas bibliotecas oscuras que vienen con él. Y, lejos de ser una rareza histórica, más entran en el árbol todo el tiempo. Muchas veces estos fueron escritos para un solo uso.

No hay una sola razón por la cual esas cosas no se reutilicen. Tal vez no sirvió para algunos usos, tal vez algunos autores no lo sabían, etc. En su caso, tq.ella respuesta es la misma: úsela si es adecuada para su problema. A mí me parece un poco poco general; por ejemplo, no hay forma de poner en cola una expresión regular sin también enviar una cadena. También es un poco anticuado con los argumentos de "cierre"; estos son innecesarios ahora que Emacs tiene enlace léxico.

También hay alguna duplicación de la biblioteca en Emacs. Entonces, por ejemplo, hay dos ewoc.ely tabulated-list.eldos maneras diferentes de lograr una especie de tarea MVC-ish.


De hecho, ¡no tenía idea de que esta biblioteca existía! Emacs realmente tiene demasiadas cosas incorporadas: el plan actual para extraer cosas en ELPA es definitivamente una buena idea.
Tianxiang Xiong
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.