Oltre ai punti delle risposte precedenti, vale la pena chiarire le differenze tra questi due prodotti dal punto di vista delle scelte fatte nel loro sviluppo.
Sublime è compilato binario per la piattaforma. Il suo core è scritto in C / C ++ e alcune delle sue funzionalità sono implementate in Python, che è anche il linguaggio usato per estenderlo. Atom è scritto in Node.js / Coffeescript e funziona sotto webkit, con Coffeescript come lingua di estensione. Sebbene simile nell'interfaccia utente e in UX, Sublime offre prestazioni significativamente migliori rispetto ad Atom, soprattutto nel "sollevamento di carichi pesanti" come lavorare con file di grandi dimensioni, SnR complessi o plugin che eseguono elaborazioni pesanti su file / buffer. Anche se mi aspetto miglioramenti in Atom man mano che matura, le scelte di progettazione e piattaforma limitano le prestazioni.
La parte "chiusa" di Sublime include l'API e l'interfaccia utente. Oltre a skin / temi e coloranti, l'API attualmente rende difficile modificare altri aspetti dell'interfaccia utente. Ad esempio, i plug-in Sublime non possono interagire con la barra laterale, controllare o disegnare nell'area di modifica (tranne che in alcuni modi limitati, ad es. Nella grondaia) o manipolare la barra di stato oltre il testo di base. La parte "chiusa" di Atom al momento è sconosciuta, ma ho la sensazione che sia più piccola.Atom ha un'API più ricca (sebbene attualmente scarsamente documentata) con l'obiettivo di consentire un maggiore controllo dell'interfaccia utente. La stretta collaborazione con webkit offre numerose funzionalità per i miglioramenti delle funzionalità dell'interfaccia utente attualmente non possibili con Sublime. Tuttavia, le estensioni di Sublime si comportano più vicino al nativo, quindi quelle che eseguono manipolazioni di testo complesse, altamente ripetitive o ad alta intensità di calcolo in buffer di grandi dimensioni sono fattibili in Sublime.
Poiché la maggior parte di Atom sarà aperta, Github sarà open source da Atom il 6 maggio. Di conseguenza è probabile che il supporto e il ritmo dello sviluppo siano rapidi. Al contrario, lo sviluppo di Sublime ha rallentato significativamente negli ultimi tempi, ma non è morto . In particolare ci sono una serie di bug, molti piuttosto banali, che non sono stati corretti dallo sviluppatore. Nessuno sta mostrando un imo incredibile, ma se vuoi qualcosa in rapido sviluppo con correzioni e miglioramenti regolari, Sublime sarà frustrante. Detto questo, i pacchetti Atom installabili per Windows e Linux devono ancora essere rilasciati e l' attività sulla base di codice sembra essersi raffreddata nelle settimane prima e dopo l'annuncio, secondo le statistiche di Github.
In termini di funzioni IDE, dal punto di vista webdev Atom consentirà di estendere al punto di avvicinarsi a prodotti come Webstorm, sebbene nessuno sia ancora apparso. Resta da vedere come Atom si esibirà con estensioni così "pesanti", dal momento che l'editore si sente nativamente pigro. A causa delle restrizioni nell'API e della mancanza del webkit sottostante, Sublime non consentirà questo livello di personalizzazione dell'interfaccia utente, anche se lo sviluppatore potrebbe estendere l'API per supportare tali funzionalità in futuro. Ancora una volta, le prestazioni sottostanti di Sublime consentono cose che implicano grugnito computazionale; L'indicizzazione dei simboli di ST3 è un esempio che funziona bene anche con grandi progetti. E sebbene l'interfaccia utente di Atom sia certamente modellata su Sublime, alcuni perfezionamenti sono notevolmente mancanti, come Sublime '
Vedo questi prodotti come complementari. Il fatto che condividano elementi visivi e sequenze di tasti simili non fa che aumentare il fatto. Ci saranno situazioni in cui l'uso di uno dei due ha dei vantaggi. Attualmente, Sublime è un prodotto maturo con parità di funzionalità su tutte e tre le piattaforme e un ricco set di plugin. Atom è il nuovo bambino le cui caratteristiche cresceranno rapidamente; non ritiene ancora pronta la produzione e ci sono preoccupazioni nell'area delle prestazioni.
[Aggiorna / Modifica: 18 maggio 2015]
Una nota sui miglioramenti apportati a questi due editor dal momento in cui abbiamo scritto quanto sopra.
Oltre a correzioni di bug e miglioramenti al suo core, Atom ha registrato una rapida crescita delle estensioni di terze parti, con il completamento automatico più che fa parte della distribuzione Atom standard. La qualità dell'estensione varia ampiamente e una particolare irritazione è la frequenza con cui pacchetti di terze parti instabili possono causare il crash dell'editor. Nell'ultimo anno, Atom ha iniziato a utilizzare React spostando l'attività di reflow / ridipingere alla GPU per motivi di prestazioni, migliorando in modo significativo la reattività dell'interfaccia utente per le azioni di modifica tipiche (scorrimento, spostamento del cursore ecc.). Sebbene ciò abbia notevolmente migliorato la sensazione dell'editor, sembra comunque complicato per le attività ad alta intensità di CPU come descritto sopra ed è ancora lento all'avvio. Oltre ai miglioramenti delle prestazioni, Atom si sente significativamente più stabile su tutta la linea.
Lo sviluppo di Sublime è ripreso da gennaio 2015, con correzioni di bug, alcune nuove funzionalità minori (API tooltip, miglioramenti del sistema di compilazione) e un importante sviluppo sotto forma di una nuova definizione di sintassi .sublime basata su yaml (per sostituire eventualmente la vecchia xml .tmLanguage). Insieme a un motore regex personalizzato che sostituisce Onigurama, il nuovo sistema offre maggiori potenzialità per una corrispondenza precisa dei regex, è significativamente più veloce (fino a 4x) e può eseguire più corrispondenze in parallelo. Oltre alla sintassi della colorazione, Sublime utilizza questi componenti per l'indicizzazione dei simboli (definizione di goto, ecc.) E altre funzioni sensibili al linguaggio. Oltre ad accelerare ulteriormente Sublime, in particolare per file di grandi dimensioni, questa funzione dovrebbe aprire il potenziale di funzionalità specifiche della lingua performanti come il refactoring del codice, ecc. Sono promessi ulteriori "grandi sviluppi",