Además de los puntos de las respuestas anteriores, vale la pena aclarar las diferencias entre estos dos productos desde la perspectiva de las elecciones realizadas en su desarrollo.
Sublime es binario compilado para la plataforma. Su núcleo está escrito en C / C ++ y varias de sus características se implementan en Python, que también es el lenguaje utilizado para extenderlo. Atom está escrito en Node.js / Coffeescript y se ejecuta en webkit, siendo Coffeescript el lenguaje de extensión. Aunque similar en UI y UX, Sublime se desempeña significativamente mejor que Atom, especialmente en "trabajo pesado", como trabajar con archivos grandes, SnR complejos o complementos que realizan un procesamiento pesado en archivos / buffers. Aunque espero mejoras en Atom a medida que madura, el diseño y las opciones de plataforma limitan el rendimiento.
La parte "cerrada" de Sublime incluye la API y la interfaz de usuario. Además de máscaras / temas y colores, la API actualmente dificulta la modificación de otros aspectos de la interfaz de usuario. Por ejemplo, los complementos Sublime no pueden interactuar con la barra lateral, controlar o dibujar en el área de edición (excepto en algunas formas limitadas, por ejemplo, en la canaleta) o manipular la barra de estado más allá del texto básico. La parte "cerrada" de Atom es desconocida en este momento, pero tengo la sensación de que es más pequeña.Atom tiene una API más rica (aunque actualmente está poco documentada) con el objetivo de diseño de permitir un mayor control de su interfaz de usuario. Al estar estrechamente asociado con webkit, se ofrecen numerosas capacidades para mejorar las características de la interfaz de usuario que actualmente no es posible con Sublime. Sin embargo, las extensiones de Sublime funcionan más cerca de las nativas, por lo que aquellas que realizan manipulaciones de texto intensivas en cómputo, altamente repetitivas o complejas en grandes buffers son factibles en Sublime.
Como habrá más Atom abierto, Atom de código abierto de Github el 6 de mayo. Como resultado, es probable que el apoyo y el ritmo de desarrollo sean rápidos. Por el contrario, el desarrollo de Sublime se ha desacelerado significativamente en los últimos tiempos, pero no está muerto . En particular, hay una serie de errores, muchos bastante triviales, que el desarrollador no ha solucionado. Ninguno es espectacular, pero si quieres algo en rápido desarrollo con corrección de errores y mejoras regulares, Sublime te frustrará. Dicho esto, los paquetes instalables de Atom para Windows y Linux aún no se han lanzado y la actividad en la base de código parece haberse enfriado en las semanas anteriores y posteriores al anuncio, según las estadísticas de Github.
En términos de funciones IDE, desde una perspectiva webdev, Atom permitirá extensiones hasta el punto de acercarse a productos como Webstorm, aunque todavía no ha aparecido ninguno. Queda por ver cómo funcionará Atom con tales extensiones "pesadas", ya que el editor de forma nativa se siente lento. Debido a restricciones en la API y la falta de un kit web subyacente, Sublime no permitirá este nivel de personalización de la interfaz de usuario, aunque el desarrollador puede extender la API para admitir tales características en el futuro. Nuevamente, el rendimiento subyacente de Sublime permite cosas que involucran gruñidos computacionales; La indexación de símbolos de ST3 es un ejemplo que funciona bien incluso con grandes proyectos. Y aunque la interfaz de usuario de Atom ciertamente se basa en Sublime, faltan notablemente algunos refinamientos, como Sublime '
Veo estos productos como complementarios. El hecho de que compartan imágenes y pulsaciones de teclas similares se suma al hecho. Habrá situaciones en las que el uso de cualquiera tiene ventajas. Actualmente, Sublime es un producto maduro con paridad de características en las tres plataformas y un rico conjunto de complementos. Atom es el chico nuevo cuyas características crecerán rápidamente; todavía no se siente listo para la producción y existen preocupaciones en el área de rendimiento.
[Actualización / Edición: 18 de mayo de 2015]
Una nota sobre las mejoras a estos dos editores desde el momento de escribir lo anterior.
Además de las correcciones de errores y las mejoras en su núcleo, Atom ha experimentado un rápido crecimiento en extensiones de terceros, con el autocompletado plus convirtiéndose en parte de la distribución estándar de Atom. La calidad de la extensión varía ampliamente y una irritación particular es la frecuencia con la que los paquetes de terceros inestables pueden bloquear el editor. En el último año, Atom se movió al uso de React mediante el cambio de la actividad de reflujo / repintado a la GPU por razones de rendimiento, mejorando significativamente la capacidad de respuesta de la interfaz de usuario para acciones de edición típicas (desplazamiento, movimiento del cursor, etc.). Si bien esto ha mejorado notablemente la sensación del editor, todavía se siente engorroso para las tareas intensivas de CPU como se describió anteriormente, y aún es lento en el inicio. Además de las mejoras de rendimiento, Atom se siente significativamente más estable en todos los ámbitos.
El desarrollo de Sublime se ha reanudado desde enero de 2015, con correcciones de errores, algunas características nuevas menores (API de información sobre herramientas, mejoras del sistema de compilación) y un desarrollo importante en forma de una nueva definición de sintaxis .sublime basada en yaml (para eventualmente reemplazar la antigua xml .tmLanguage). Junto con un motor de expresiones regulares personalizado que reemplaza a Onigurama, el nuevo sistema ofrece más potencial para una coincidencia precisa de expresiones regulares, es significativamente más rápido (hasta 4x) y puede realizar múltiples coincidencias en paralelo. Además de la sintaxis de coloración, Sublime usa estos componentes para la indexación de símbolos (ir a la definición, etc.) y otras características compatibles con el lenguaje. Además de acelerar aún más Sublime, particularmente para archivos de gran tamaño, esta característica debería abrir el potencial para características específicas del lenguaje, como la refactorización de código, etc. Se prometen más "grandes desarrollos",