Nuovo libro (in Inglese): GnuCash 2.4 Small Business Accounting

GnuCash 2.4 small business accounting

Il gruppo di sviluppo di GnuCash ha ricevuto una notifica riguardante la pubblicazione di un nuovo libro edito da PacktPub (Regno Unito):

GnuCash 2.4 Small Business Accounting, di Ashok Ramachandran (libro in lingua inglese).

Si tratta di una guida per i nuovi utenti sulla gestione dei propri conti.

Il nostro sviluppatore Christian Stimming ha contribuito al libro in qualità di revisore, e non possiamo che raccomandare il frutto di questa collaborazione. Per dare un'occhiata a questo libro dirigersi su packtpub.com e, tra l'altro, l'editore si è impegnato a versare una piccola percentuale sulle vendite direttamente al progetto GnuCash. Quindi buona lettura!

Dimensioni

Può rivelarsi interessante studiare le statistiche del codice sorgente relativamente a un progetto di sviluppo di un programma. Niente di originale: dopotutto si tratta di contabilità. GnuCash è cresciuto nel corso degli anni da un piccolo e pratico registro degli assegni elettronico, fino a divenire un'applicazione desktop relativamente estesa e con molte caratteristiche.

GnuCash attualmente consiste di oltre un terzo di milione di linee di codice distribuite in oltre un migliaio di file. È stato tradotto in 23 lingue e allo sviluppo hanno contribuito oltre 139 persone fra autori e collaboratori.

[code size graph]

Nel caso non ci si rendesse conto del volume di codice sorgente, lo si può immaginare in questo modo: stampato su carta, e rilegato in volumi, ammonterebbe a diverse dozzine di copie di "Guerra e pace" di Tolstoy, circa la larghezza di una libreria di codice sorgente!

Si sottolinea che questo è codice sorgente (e documentazione) realizzato e corretto da umani; NON si tratta di codice generato automaticamente. Alcuni strumenti (quali glade o g-wrap) sono in grado di generare un'enorme quantità di di righe di codice automaticamente; queste non sono state conteggiate. Ogni singola riga conteggiata in questa sede, è stata più volte scritta, modificata, ordinata, regolata dal lavoro umano.

Dato che sono segnalati su bugzilla circa 400 bug non risolti, significa che che mediamente è presente un bug per ogni centinaio di linee di codice, o anche un bug ogni 50 pagine stampate. Questo numero di bug è tutt'altro che atipico per i progetti di sviluppo di programmi: si può affermare che è nella norma.

La tabella seguente mostra i dati storici relativi al numero di linee di codice e al numero di file per il progetto di sviluppo di GnuCash. Non sono contabilizzate tutte le linee di codice: per esempio, i file Makefiles, configure.in e autogen.sh non sono contati. Anche i file generati automaticamente non sono stati considerati, come anche i file "presi in prestito" da altri progetti. Non sono contati neanche i file sperimentali, i vari script di perl, gli addon e le utility. Infine, non sono contabilizzati nemmeno i file glade anche se buona parte dell'interfaccia grafica è descritta nei file di questo tipo.

Si noti anche che le KLOC non rappresentano una misura attendibile della produttività di un programmatore, e anche che wc non è il modo più adatto per conteggiare le KLOC. Misurazioni migliori derivano da conteggi complessi che, per esempio, esaminano il numero e la dimensione di tutti i blocchi, o il numero di operatori matematici per espressione. Forse un giorno il codice di GnuCash verrà analizzato con uno di questi strumenti; per ora questo è quello che si ha a disposizione. D'altra parte, si è cercato di conteggiare solamente quei file che contengono codice elaborato esclusivamente da umani. Questo è stato fatto per evitare di aumentare il valore delle KLOC includendo anche il codice generato automaticamente (per questo motivo i file di glade non sono computati: sono molto grandi e generati in automatico).

Tabella 1. Statistiche storiche di sviluppo

Versione engine backend register ledger motif gnome applicazioni varie import-export reports scheme business test docs txt interni Totale Lingue Ringraziamenti
xacc-0.9 Sept 97 - - - - 34 files (7.5+0.9) - - - - - - - 5 files (0.4) 1 file (0.1) 40 files (8.8) 1 1
xacc-0.9w Dec 97 - - - - 51 files (13.8+1.5) - - - - - - - 9 files (0.8) 1 file (0.1) 61 files (16.2) 1 2
xacc-1.0.17 Feb 98 - - - - 52 files (14.8+1.8) - - - - - - - 12 files (1.4) 4 files (0.3) 68 files (18.3) 1 7
gnucash-1.1.15 Aug 98 24 files (6.2+1.5) - 31 files (6.1+1.7) 5 files (1.4+0.4) 30 files (7.4+0.7) 17 files (3.4+0.5) - - - 3 files (0.3) - - 16 files (1.9) 17 files (1.8) 159 files (34.7) 1 (0.17) 25
gnucash-1.2.2 Aug 99 41 files (10.2+3.6) - 28 files (5.5+1.7) 14 files (2.4+0.6) 26 files (8.7+0.5) - - - - 14 files (1.4) - - 30 files (2.6) 15 files (1.8) 168 files (39.0) 3 (0.54) 41
gnucash-1.3.6 April 2000 41 files (12.9+4.0) - 32 files (6.8+2.1) 19 files (4.0+0.8) - 78 files (32.2+3.0) - - - 74 files (4.0+0.7+12.3) - - 33 files (7.8) 25 files (4.5) 302 files (95.1) 5 (4.3) 61
gnucash-1.4.6 Sept 2000 43 files (13.0+3.6) - 27 files (5.9+2.0) 24 files (5.4+1.8) - 82 files (33.8+3.0) - - - 68 files (4.0+0.7+15.5) - - 36 files (9.3) 36 files (4.8) 316 files (101.9) 7 (6.0) 82
gnucash-1.4.12 April 2001 43 files (13.1+3.6) - 27 files (5.9+2.0) 24 files (5.4+1.8) - 82 files (33.5+3.0) - - - 73 files (4.0+0.7+17.7) - - 43 files (11.5) 39 files (6.0) 331 files (108.2) 12 (17.8) 97
gnucash-1.5.2 Sept 2000 46 files (14.9+3.7) - 29 files (6.3+2.0) 25 files (5.7+1.8) - 83 files (35.8+2.9) - - - 73 files (4.6+0.8+16.8) - - 37 files (10.7) 48 files (8.2) 341 files (114.2) 8 (7.8) 89
gnucash-1.6.0 June 2001 139 files (42.8+8.3) - 28 files (5.7+2.0) 23 files (10.1+1.5) - 132 files (60.0+4.2) - - - 102 files (6.2+0.8+27.3) - - 64 files (12.1) 69 files (12.9) 455 files (193.9) 11 (18.7) 123
gnucash-1.7.2 November 2002 104 files (28.7+7.8+3.3) 89 files (30.0+3.3) 34 files (5.2+2.0)
29 files (10.5+1.2)
17 files (9.4+0.7) - 143 files (56.0+4.7+0.9) 75 files (17.0+2.5+5.1) 78 files (11.1+1.5+7.3) 38 files (2.4+0.1+14.2) 17 files (3.4) 94 files (19.9+1.9+4.5) 72 files (7.9+0.1+0.7) 83 files (22.2) 62 files (11.6) 935 files (297.1) 21 (56.1) 130
gnucash-1.8.4 June 2003 100 files (29.7+8.3+3.4) 89 files (30.1+3.3) 35 files (5.3+2.0)
31 files (10.7+1.2)
17 files (10.2+0.8) - 151 files (58.7+5.1+1.1) 71 files (16.9+2.6+5.2) 86 files (13.3+1.8+7.5) 52 files (2.4+0.2+15.1) 17 files (4.1) 98 files (21.5+2.0+5.1) 76 files (8.6+0.2+0.7) 24 files (13.8)
199 files (80.3)
69 files (14.3) 1115 files (385.5) 23 (62.4) 139

Ogni cella visualizza:

numero di file *.c, *.h e *.scm (KLOCS in *.c + KLOCS in *.h + KLOCS in *.scm). Se non sono presenti nella directory dei file di tipo *.scm, allora sono visualizzati solamente (KLOCS in *.c + KLOCS in *.h). Se tra le parentesi è presente un solo numero, questo rappresenta il conteggio KLOC appropriato per quella statistica.

dove KLOC == kilo-lines-of-code (migliaia di linee di codice), come riportato da wc. Come messo in evidenza in precedenza, wc non è un perfetto contatore di codice, ma è ciò che si ha a disposizione.

Legenda della colonna della tabella



engine
Contenuto della directory src/engine e delle sue sotto directory. Il motore è stato separato dal codice motif nella versione 1.1. Il backend per l'archiviazione dei dati (file-io, sql) è stato separato nel corso della versione 1.5.

backend
Contenuto della directory src/backend (versione 1.7 e successive) o di src/engine/file, src/engine/sql (versione 1.6 e precedenti)

register
Contenuto della directory src/register (versione 1.6 e precedenti) o src/register/register-core (versione 1.7 e successive) . Il registro è stato separato dal codice motif della versione 1.1. Come si può notare dalle statistiche, il codice del registro è piuttosto stabile. A partire dalla versione 1.7, questa cella mostra un secondo conteggio: il numero di linee di codice in src/register/register-gnome (prima conteggiate come parte di gnome)

ledger
file *.c, *.h nella sola directory src (versione 1.6 e precedenti) o src/register/ledger-core (versione 1.7 e successive)

motif
Contenuto della directory src/motif (versione 1.2 e precedenti). La versione in motif del codice è stata abbandonata dopo la versione 1.2, allorché la maggior parte del codice non relativo all'interfaccia grafica è stato spostato o al motore,o al registro o al libro mastro.

gnome
Contenuto della cartella src/gnome e src/register/gnome (versione 1.6 e precedenti). Per la versione 1.7 e successive, consiste di src/gnome, src/gnome-search e src/gnome-util

applicazioni varie
Contenuto delle directory relative ad applicazioni varie (versione 1.7 e successive): src/app-file, src/app-utils, src/calculation, src/core-utils, src/gnc-module, src/network-utils, src/tax/us

import-export
Codice per l'importazione e l'esportazione di file in vari formati: contenuto della directory src/import-export

reports
Codice per la generazione di resoconti e grafici: contenuto della directory src/reports

scheme
Codice in scheme e guile nelle directory src/scm e src/guile (versione 1.6 e precedenti). Nella versione 1.7 e successive, la maggior parte di questo codice è stato destinato ai resoconti, all'importazione ed esportazione e ai moduli individuali; di conseguenza rimane solamente del codice vario.

business
Codice per l'implementazione di funzioni dedicate alle piccole imprese: contenuto della directory src/business

test
Codice per l'esecuzione di test di regressione automatici: contenuto delle directory src/*/test.

docs
Documentazione dell'utente in lingua Inglese, inclusi l'aiuto in linea e il manuale (html, sgml o xml). Per la versione 1.8.4 e successive, il numero sotto alla barra si riferisce alla documentazione tradotta (attualmente de, es, fr, pt_PT). Entrambi questi valori sono abbastanza difficili da calcolare a causa dei vari formati e versioni.

txt interni
Il numero di documenti di progetto e di file README rivolti agli sviluppatori. Sono inclusi i file *.txt, *.texinfo e README.* in tutte le sotto directory. Per la versione 1.7 e successive, sono state contate solamente quelli nella sotto directory src (lasciandone fuori qualche mezza dozzina sparpagliata qua e là)

Lingue
Il numero di lingue in cui i messaggi dell'applicazione sono stati tradotti (il numero di file po/*.po ). Tra parentesi, è riportato il numero in migliaia di messaggi nei file dei messaggi (grep msgstr po/*.po |wc)

Ringraziamenti
Il numero di persone riportate nel file AUTHORS (versioni 1.6 e successive) o nel file README (versioni precedenti). Sono inclusi gli sviluppatori principali, coloro che hanno fornito delle patch e i traduttori i cui nomi sono riportati nel file docs/AUTHORS e non nel file principale gnucash/AUTHORS.

Valid XHTML + RDFa

Copyright © 2001-2014 The GnuCash Project

Segnalare i problemi relativi a server ed email a: gnucash-devel@gnucash.org

Problemi con la traduzione? contattare: gnucash-devel@gnucash.org