Esittelin pari postausta sitten Soulver-kloonin raakileen, SumItUpin. Nyt se on GitHubissa kaikkien pällisteltävänä ja sellaisella raakileasteella, jotta sitä voi jo käyttää johonkin. Alustavat sc-näpräilyt esimerkiksi tulevan lukuvuoden kurssivalinnoistani on helppo siirtää joustavampaan muotoon, koska teksti (kurssien nimet) ovat kuitenkin dominoivassa asemassa. SumItUp Githubissa. (Huom. SumItUp vaihtui nätimmäksi Summer-projektiksi.)
Tällä voi nyt viritellä kaikenlaista pientä, mutta kovin yhtenäinen kokemus ei tämä vielä ole. Asiaa parannettaisiin kovasti hävittämällä nuo kulmasulkeet pois. Regex-pohjaisen hutun sijaan kunnon jäsennys voisi tehdä hyvää.
Puutteita on toki kovasti. Suurin probleema on akkumulaattorin täyttämisessä, eli mitkä luvut kelpuutetaan lisättäväksi ja mitkä jätetään rannalle. Ehkä asiaa voisi lähestyä nimetyillä akkumulaattorimuuttujilla. Todennäköisesti jokin eksplisiittinen syntaksi on pakko lisätä mukaan. Esimerkiksi muuttujien esittelyt eivät todellakaan aina sovi kerrytettäväksi. Esimerkiksi:
@puu 5 e/m listaa <@puu*8> m kattoa <@puu*31> m yht. <@sum> euroa
Tässä esimerkissä puun yksikköhinta “5” lisätään summaan, vaikka näin tuskin toivotaan. Mutta toisaalta kaikkia muuttujanesittelyjä ei oikein osaa jättää summaamatta. Mutta minkälainen syntaksi olisi mahdollisimman selkeä ja vähäroskainen? Pallotellaan:
Tätä ei lasketa: 50~ e Eikä tätä: 12_ e ; entäs jos kommentoidut rivit suoritettaisiin, mutta ei summata? <12*3 = 36> ! tai joku vastaava merkki riville merkkaamaan asiaa? 4 Merkki, tai merkit, voisi(vat) olla rivin lopussakin, tietysti. -- Huutomerkki on liian yleinen rivin lopussa!
Hmm… rivimerkit voisivat tuoda jonkilaisen ratkaisun asiaan, jos ja kun data edelleen säilyttää yksi-numeerinen-tieto-per-rivi -ominaisuutensa. Minähän voin elää sen kanssa, mutta mitenköhän muut?
Vielä ideana voisi olla tuo tulevaisuustoiveista lainattu jatkoajatus: tavalliset numerot lasketaan mukaan, kulmasulkeissa olevia laskuja ei.
Tulevaisuuden toiveet
Pari ideaa, joilla tämä nousisi ykköseksi:
- Kulmasulkeiden hävittäminen, eli jos on laskettavaa, niin ohjelma osaa laskea ilman lisäsyntaksia. Tavallisilla suluilla tietysti selkeyttä peliin.
- Lisäyksiköt ja muut suureet: esimerkiksi päivämäärien ja kellonaikojen tukeminen. 1:20+0:40 = 2:00 tuntia. Irkissä vitsailtiin joukoillakin: miksipä ei?
- Soulverista tuttu prosenttioperointi: 100 + 20% = 120
- Laskee yksiköt mukaan. Valmiita kirjastojahan tähän onkin olemassa. Silloin voisi onnistua seuraava ihan ohjelman puolesta:
@hinta 5 e/kpl @kpl 12 kpl yhteensä <@kpl*@hinta = 60 e>
Ampukaahan kommenttiloita joko tänne tai napatkaa githubista klooni itsellenne ja kokeilkaa ja editoikaa.
Lisäilyä: SumItUp on nyt nätti Summer, ja projekti alkaa olla siinä hyytymävaiheesas, että jäljellä on vain hieman vaikeampia ongelmia sekä buginmetsästystä. Ylläolevasta tulevaisuustoivelistasta saattaa muutama kiva ominaisuus vielä eksyä projuun…