Atom, editorien aatelia?

Atom on jännä editori. Joillekin, kuten arvata saattaa, editorin valinta on pyhä asia. Vähän kuin se oma suosikki lätkäjoukkue!

Editorit ovat keskeisimpiä työkaluja monelle “asiakaskunnalle”, joten niihin liittyy dogmaattista kiihkoa. Sanon ihan suoraan, että niin kauan kuin olen itse koodaillut, editorit ovat olleet aina keskeinen kiihkoilun ja lahkoilun keskiöitä. Erilaisia vaihtoehtoja on tullut (myös mennyt). Qedit, Emacs, vim, Sublime Text, monet eri Notepad:it, ja nyt esimerkiksi Atom. Unohdin varmaan tästäkin tusinan kohtuullisen tuttua editoria. Kaikenkaikkiaan tekstieditoreita on luultavasti ainakin tuhatkunta.

Aikoinaan editoreihin tuli tehtyäkin kaikenlaista pientä, ja jopa kokonaisia yksinkertaisia editoreita koodattiin ihan puhtaalta pöydältä. Kun paljolti tekstipohjaisessa MS-DOSissa ei voinut kovin paljoa vaikuttaa suoraan editorin käyttämän fontin ulkonäköön, kääräisimme hakkerituttavan kanssa assemblerilla taustaohjelman, joka pakotti fontin uuteen haluaamme uskoon (SFONT). Kylkiäisiksi tietysti tarvittiin apuohjelma, jolla fontteja oli kiva suunnitella – siis pieni piirto-ohjelma. Itse syntyi sekin.

Tosin kokonainen tekstieditori on sen verran monimutkainen ohjelma, että mitenkään kädenkäänteessä tällaista uutta ei tule tehtyä. Siksi Atom ja moni muu hyvä editori on open source -hanke, jossa on mukana vähintään useampi keskeinen kehittäjä.

Sublime Text sen sijaan syntyi perimätiedon mukaan siten, että varsin mukavassa positiossa Googlella työskennellyt koodaaja sai vision ja mission tehdä maailman paras tesktieditori. Visio vei mukanaan, hän lopetti työt Googlella ja on käsittääkseni siitä asti toteuttanut unelmaansa. Sublimen ympärille on syntynyt myös rikas ekosysteemi, ‘packages’ eli paketit sallivat editorin laajentamisen samaan tyyliin kuin Atomissa.

Tuolle aiemmin mainitulle MS-DOSille muuten löytyi tosi tehokkaita puhtaita tekstieditoreita sekä IDEjä. Kaikki merkkipohjaista, joka on tietyllä tapaa uudestaan ‘in’ –– samoin kuin oman editorin räätälöinti. “Your mileage may vary” – osa haluaa päästä nopeasti hommiin, ilman kustomointeja; toiset ovat sitä mieltä että editorin pitää tuntua kotoisalta ja olla tehokas kaikkine virityksineen.

Editorin loputon virittely varsinkin projektin alkuvaiheessa voi olla tuskainenkin kokemus joskus, varsinkin jos itse projektin koodin tekeminen alkaa jo polttelemaan. Editoria kannattaa nyplätä hieman kuin bonsai-puuta – ei täyspäiväisesti.

Atomin synty

No niin, pakollinen hirnahdus alkuun:

Q-taso on ytimestä katsottuna etäisin, jossa minkään nykyisin tunnetun alkuaineen atomilla on perustilassa elektroneja.

Anteeksi. Oikea konteksti alla:

Atom ja Electron sinänsä ovat softapuolellakin pari.

Palataan askel historiaan:

Aivan alussa oli jotain epämääräistä pitkätukkapsykedeelihippiä 1960-luvulla. Internetiä ei vielä ollut. No pian oli.

Sitten tuli kasarikorporaatiokoodaajat; nämä eivät kiinnostaneet ketään. You know: diskettejä, myöhemmin kovalevyt; PC:eitä, kirjanpitoa, toimistohiki, vesiputousmalli ja liukuhihnakoodaus; nipin napin 16 väriä, winkkari. Kasarikorporaatiokaudesta on kuitenkin syntynyt eräs eeppinen teos: Mike Judgen elokuva “Office Space” (Konttorirotat).

Sen jälkeen tuli IT-buumi vuosituhannen vaihteessa, jonka jälkeen kultainen hipsterismin aikakausi. Hipsterismin aikakauteen liittyy myös Githubin synty. Hipsterismin periaatteisiin kuuluu: jos voit modata jotain, modaa. Jos jonkun voi kirjoittaa Javascriptillä tai sen johdannaisella, tee se!

Kiva idea: yksi koodikanta, Electron hoitaa loput

Electron tarjoaa alustariippumattoman kuoren ohjelmille. Atom on rakennettu oikeastaan aika puhtaasti webistä tutuilla jauhoilla: HTML, CSS, Javascript. Tuo pyörii omassa “koneessaan” eli prosessissa. Lopputulos Electronin avulla näyttää samalta eri alustoilla. Etuna siis klassinen: ei tarvitse ylläpitää niin montaa koodikantaa kuin on eri käyttöjärjestelmiä. Vastapainona tälle on se, että Chromen päälle rakennetun Electronin “paino” on aika suuri. Pienikin tyhjä sandbox-prosessi on yli 100 megatavun kokoinen pala RAM-muistia. Tosin, eipä tuo haittaa, monestikaan, koska RAMia on kuitenkin yleensä kaikissa koneissa tarjolla vapaana riittävästi. Aivan pienimmissä 2 GB:n keskusmuistin koneissa voi olla merkitystä sillä, paljonko ohjelmat vievät.

Atomin historia on itsessään mielenkiintoinen. Se on Github:n porukan alullesaattama, Github:n “virallinen editori”. Vapaus ja muokattavuus ovat olleet esillä voimakkaasti. Atom on teknisesti rakennettu Electron-shellin päälle, jolloin saadaan alustariippumattomuus. Electron on hieman kuin Java grafiikkakirjastoineen, tai C++ ja Qt. Idea kaikissa cross-platform silloissa on se, että yhden kerran hyvin tehty tarjoama vähentää huomattavasti sillan päällä ajettavan koodin sovitustyötä. Tällöin siis kerrostetaan kehitystä: luotetaan siihen, että “joku hoitaa yksityiskohdat”.

Electron toi alkuun myös penaltya nopeudessa; Atom ei ollut tunnettu nopeudestaan. Alkuaikoina editori myös kaatuili varsin usein. Näistä lastentaudeista on päästy huomattavasti eteenpäin. (Ajan tällä hetkellä 1.24.1 versiota ja en muista nyt suoraan että editori olisi viime aikoina kaatunut)

Entä päivitys? Helppo!

Atomin päivitys ainakin Linuxissa on varsin suoraviivainen prosessi. Uusi .deb paketti ajetaan dpkg -i :llä vanhan päälle – that’s it. Homma on hoidettu! Olemassaolevat asetukset ja kustomoinnit säilyvät, kuten pitääkin.

Kaikki Atomin kustomointi on tallennettu hakemistoon:

~/.atom

 

3 thoughts on “Atom, editorien aatelia?

    1. Hi,
      some of the content on Jukkasoft is in Finnish. This blog post about Atom he text editor, is one of those.
      I might experiment with multilingual support. English would be probably the best?
      Thanks for Your feedback! 🙂
      Jukka

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.