Troberg
Sinister eater
- Joined
- 27 Jun 2001
- Messages
- 17,659
I min jakt på den perfekta programmeringsfonten så har jag kommit fram till följande önskemål:
* Utgå från något i stil med en halvfet MS Sans Serif.
* Gör specialtecken (/ \ ( ) [ ] { } + - * ^ , . : ; < > | " # $ % & ! ? = ' ) extra tydliga, eftersom de definierar koden, så gör dem extra feta (typ dubbelt så fet som en vanlig fet) och även lite supersizade i höjdled. De får gärna sticka ut lite från basraden, dvs vara lite högre och lägre än andra tecken, allt för att synas bättre och gruppera koden. De ska också vara bredare än normalt, ungefär samma bredd som en siffra.
* Gör versaler anning oversized, återigen för att tydligare gruppera koden så att varje enhet tydligare separeras från andra.
* Gör mellanslaget bredare, typ 1,5 vanliga mellanslag. En variant där mellanslaget markerades på något sätt, tex med en pytteliten punkt (i normal storlek, bara en pixel) i mitten av raden i höjdled skulle också vara bra.
* Även om resten av fonten inte ska vara fixvidd, gör siffrorna lika breda.
Tanken är att, speciellt i dagens objektorienterade språk med ramverk med djupa hierarkier, så får man ofta rader i stil med (jag skulle inte löst det specifika exemplet på det sättet, men kod brukar få en liknande look):
LabelStatus.Caption = "Working: " & ((ListboxDone.ListItems.Count / (ListboxNotDone.ListItems.Count + ListboxDone.ListItems.Count)*100).ToString & "%"
Det blir en myrstack av lång text där allt ser lika ut, men skulle man förstärka vissa delar så att det blir något i stil med följande (nu fejkar jag bara med de möjligheter forumet ger, men ni fattar nog poängen) så blir det mycket tydligare vad som är enheter, och därmed enklare för gärna att tolka:
LabelStatus.Caption = "Working: " & ( ( ListboxDone.ListItems.Count / ( ListboxNotDone.ListItems.Count + ListboxDone.ListItems.Count ) * 100 ).ToString & "%"
Visst, det kanske inte är lika vackert ur en typografisk synvinkel, men ser ni hur mycket bättre man lyfter fram strukturen? Enheterna (jag använder det ordet för en odelbar enhet, tex ett objektnamn) blir tydligare avdelade, och strukturen lyfts fram.
Detta är ett simpelt exempel, det är inte ovanligt att man har rader som är 3-4 gånger så långa, speciellt när man håller på med användargränssnitt som ska skala vettigt efter fönsterstorleken. Nyttan av en sådan font ökar drastiskt med radlängden.
Varför tar jag upp det här?
* Dels vet jag att det finns folk som säkert har åsikter och idéer kring ämnet, som kan tillföra mycket.
* Dels vet jag att det finns folk som kan göra fonter. Det här är er chans att göra en font som kommer att bli en av de stora fonterna. Ingen har hittills gjort någon vettig font för modern programmering (de försök som gjorts är fula gammaldags fixviddstypsnitt med någon mindre tydlighetsvariant, typ en genomstruken nolla). Så, det finns en vit fläck på kartan som ni kan sätta ert namn på.
* Utgå från något i stil med en halvfet MS Sans Serif.
* Gör specialtecken (/ \ ( ) [ ] { } + - * ^ , . : ; < > | " # $ % & ! ? = ' ) extra tydliga, eftersom de definierar koden, så gör dem extra feta (typ dubbelt så fet som en vanlig fet) och även lite supersizade i höjdled. De får gärna sticka ut lite från basraden, dvs vara lite högre och lägre än andra tecken, allt för att synas bättre och gruppera koden. De ska också vara bredare än normalt, ungefär samma bredd som en siffra.
* Gör versaler anning oversized, återigen för att tydligare gruppera koden så att varje enhet tydligare separeras från andra.
* Gör mellanslaget bredare, typ 1,5 vanliga mellanslag. En variant där mellanslaget markerades på något sätt, tex med en pytteliten punkt (i normal storlek, bara en pixel) i mitten av raden i höjdled skulle också vara bra.
* Även om resten av fonten inte ska vara fixvidd, gör siffrorna lika breda.
Tanken är att, speciellt i dagens objektorienterade språk med ramverk med djupa hierarkier, så får man ofta rader i stil med (jag skulle inte löst det specifika exemplet på det sättet, men kod brukar få en liknande look):
LabelStatus.Caption = "Working: " & ((ListboxDone.ListItems.Count / (ListboxNotDone.ListItems.Count + ListboxDone.ListItems.Count)*100).ToString & "%"
Det blir en myrstack av lång text där allt ser lika ut, men skulle man förstärka vissa delar så att det blir något i stil med följande (nu fejkar jag bara med de möjligheter forumet ger, men ni fattar nog poängen) så blir det mycket tydligare vad som är enheter, och därmed enklare för gärna att tolka:
LabelStatus.Caption = "Working: " & ( ( ListboxDone.ListItems.Count / ( ListboxNotDone.ListItems.Count + ListboxDone.ListItems.Count ) * 100 ).ToString & "%"
Visst, det kanske inte är lika vackert ur en typografisk synvinkel, men ser ni hur mycket bättre man lyfter fram strukturen? Enheterna (jag använder det ordet för en odelbar enhet, tex ett objektnamn) blir tydligare avdelade, och strukturen lyfts fram.
Detta är ett simpelt exempel, det är inte ovanligt att man har rader som är 3-4 gånger så långa, speciellt när man håller på med användargränssnitt som ska skala vettigt efter fönsterstorleken. Nyttan av en sådan font ökar drastiskt med radlängden.
Varför tar jag upp det här?
* Dels vet jag att det finns folk som säkert har åsikter och idéer kring ämnet, som kan tillföra mycket.
* Dels vet jag att det finns folk som kan göra fonter. Det här är er chans att göra en font som kommer att bli en av de stora fonterna. Ingen har hittills gjort någon vettig font för modern programmering (de försök som gjorts är fula gammaldags fixviddstypsnitt med någon mindre tydlighetsvariant, typ en genomstruken nolla). Så, det finns en vit fläck på kartan som ni kan sätta ert namn på.