Kysely: tabit vai välit?

Törmäsin joskus aiemmin tähän mielenkiintoiseen sivuun, jossa on analysoitu GitHubin eniten tähtiä saaneita repositorioita ja vertailtu tabien ja välilyöntien käyttöä niissä kielittäin.
https://ukupat.github.io/tabs-or-spaces/

Ajattelinkin tehdä kyselyn tänne foorumillekin aiheesta. Toki aina pitää noudattaa projektin tyyliä ja projekteissa koodin pitäisi noudattaa aina samaa tyyliä niin, että se näyttää yhden ihmisen kirjoittamalta. Ideana onkin kysyä nyt mitä sisennystapaa omissa projekteissa käytetään mieluiten. Vaihtoehdot on samat ja samassa järjestyksessä kuin tuolla sivulla. Saa toki myös perustella.

  • Tabit
  • 2 välilyöntiä
  • 3 välilyöntiä
  • 4 välilyöntiä
  • 8 välilyöntiä

0 äänestäjää

Aihe on ikivanha ja siitä on käyty pyhää sotaa netissä jo vaikka kuinka kauan. Esimerkiksi Linux-kernelin dokumentaatiosta löytyy tyyliopas, jossa todetaan hauskasti näin:

Tabs are 8 characters, and thus indentations are also 8 characters.
There are heretic movements that try to make indentations 4 (or even 2!)
characters deep, and that is akin to trying to define the value of PI to
be 3.

Tässä on huomioitava kielen ja ympäristön konventiot, joissakin tapauksissa vaan kannattaa käyttää tabeja, koska suurin osa muustakin samantapaisesta koodista käyttää tabeja. Mutta Pythonissa ja Rubyssä olen suosinut kahta välilyöntiä.

1 tykkäys

Mikäli käytettävä kieli ei muuta vaadi tai ei ole mitään käytännöllistä syytä muutoin sisentään, on 4 välilyöntiä ainoa tie pelastua ja muiden epäjumalien palvonta johtaa ikuiseen kadotukseen :imp:

2 väliä on jotenkin kuitenkin liian vähän. Haluan että sisäkkäiset lohkot on nopeasti erotettavissa toisistaan ja kahdella välilyönnillä tätä joutuu vielä ajattelemaan turhan kauan.

3 välilyöntiä nyt on sekasikiö kun ei ole edes parillinen tai kahdella jaollinen…

8 välilyöntiä on taas liian paljon, koska varsinkin paljon sisäkkäisiä lohkoja sisältävillä riveillä rivin pituus alkaa jo olemaan liian suuri ja rivin alussa katseella on turhan suuri matka hyppiä sisennysriviltä toiselle

tabi olisi periaatteessa paras vaihtoehto, mikäli vain oma editori tukee tabin leveyden vapaata säätöä, sitä nyt en vain ole tottunut käyttämään…

1 tykkäys

Tämä pätkä Silicon Valley -sarjasta valaisee asian vakavuutta: https://www.youtube.com/watch?v=SsoOG6ZeyUI

2 tykkäystä

Omastakin mielestä 2 välilyöntiä on turhan pieni väli sisentämiseen ja vaikeuttaa hahmottamista. Ihmettelin kun tuossa vertailussa 100% analysoiduista Ruby-repoista käyttää kahta välilyöntiä sisentämiseen. Kenties Rubyn standardi? Itselle Ruby ei ole ollenkaan tuttu kieli.

BSD:n tyylissä käytetään Linuxin tapaan standardikokoisia 8 merkin kokoisia tabeja ja jos rivi on liian pitkä mahtuakseen 80 merkkiin, sisennetään yli mennyt osuus neljällä välilyönnillä.

Indentation is an 8 character tab. Second level indents are four spaces. All code should fit in 80 columns.

while (cnt < 20) 
	z = a + really + long + statement + that + needs + 
	    two + lines + gets + indented + four + spaces + 
	    on + the + second + and + subsequent + lines;

“The nice thing about standards is that you have so many to choose from.” -Andrew S. Tanenbaum

Tutkin eri tyylioppaita ja tällaisiä löytyi:

1 tykkäys