View Full Version : [Riscrittura da C ad altro linguaggio] costo.
Vorrei sapere quanto può costare far riscrivere un programma di una decina di migliaia di righe di codice (circa) scritto in C, in altri linguaggi di programmazione che effettuano più controlli sui tipi e sul flusso delle informazioni, (ad esempio Java).
Purtroppo è praticamente impossibile rispondere a questa domanda se non si ha sottomano il progetto, il numero di righe non è un dato che conta, la stessa funzione può essere scritta anche in una riga, ma essere molto molto complessa.
Vedasi i maniaci del "One Line Code" :sofico:
Purtroppo è praticamente impossibile rispondere a questa domanda se non si ha sottomano il progetto, il numero di righe non è un dato che conta, la stessa funzione può essere scritta anche in una riga, ma essere molto molto complessa.
Vedasi i maniaci del "One Line Code" :sofico:
Intendevo un programma scritto con uno stile "normale": una istruzione per riga.
Intendevo un programma scritto con uno stile "normale": una istruzione per riga.
rimane comunque non fattibile come preventivo, è come chiedere ad un tassista quanto viene la corsa senza dirgli dove devi andare.
rimane comunque non fattibile come preventivo, è come chiedere ad un tassista quanto viene la corsa senza dirgli dove devi andare.
Non proprio: è come chiedere ad un tassista quanto viene una corsa di 10 km, senza dirgli la destinazione, l'importante è che non torni al punto di partenza (o che torni indietro in parte del percorso). Chiedo un costo medio, della riscrittura di un programma che non effettua istruzioni inutili e che non sono riducibili (ad esempio usa il ciclo for, e non contiene migliaia di righe per inizializzare i singoli elementi di un array), tenendo conto che le 10000 righe di codice sono effettive, esclusi i commenti.
Per il codice tout-cout un migliaio di euro mi sembrerebbe un prezzo onesto. Poi c'è il costo delle eventuali librerie di terze parti.
Perchè il problema non è la trasposizione del codice - quella te la fa anche mio nonno. Sono le librerie che il programma usa. A seconda della piattaforma di destinazione potrebbero essere integrate, non integrate ma disponibili gratuitamente, non integrate ma disponibili a pagamento, non integrate e non disponibili.
Shinnok.Exor
28-01-2011, 19:56
Non proprio: è come chiedere ad un tassista quanto viene una corsa di 10 km, senza dirgli la destinazione, l'importante è che non torni al punto di partenza (o che torni indietro in parte del percorso). Chiedo un costo medio, della riscrittura di un programma che non effettua istruzioni inutili e che non sono riducibili (ad esempio usa il ciclo for, e non contiene migliaia di righe per inizializzare i singoli elementi di un array), tenendo conto che le 10000 righe di codice sono effettive, esclusi i commenti.
Se il tassista deve fare 10Km a Roma paghi di più di una corsa a Udine.
Sai tutto dipende, dipende dalla complessita' del progetto.
Io non conosco un programmatore che si fa pagare a linee di codice :D
Spiega meglio
Non proprio: è come chiedere ad un tassista quanto viene una corsa di 10 km, senza dirgli la destinazione, l'importante è che non torni al punto di partenza (o che torni indietro in parte del percorso). Chiedo un costo medio, della riscrittura di un programma che non effettua istruzioni inutili e che non sono riducibili (ad esempio usa il ciclo for, e non contiene migliaia di righe per inizializzare i singoli elementi di un array), tenendo conto che le 10000 righe di codice sono effettive, esclusi i commenti.
Per avere una risposta concreta dovresti fare anche una domanda concreta.
Non hai nemmeno specificato il tipo di linguaggio target.
Non ha senso dire il numero di righe, pensi che ci sia una fatturazione di N cent/riga?
Dipende dal tipo di software.
Potresti provare magari a descrivere il tipo di software in oggetto e le features che ha. Di solito a riscrivere un software in un'altro linguaggio si sfruttano anche le features di questo linguaggio (tralasciando il fattore uomo insito tra la sedia e il pc). Se passi ad un linguaggio che offre un paradigma OOP il numero di righe potrebbe essere piuttosto differente da una soluzione strutturata.
Se il tassista deve fare 10Km a Roma paghi di più di una corsa a Udine.
Sai tutto dipende, dipende dalla complessita' del progetto.
Io non conosco un programmatore che si fa pagare a linee di codice :D
Spiega meglio
Senza dubbio che a Roma si paga di più. Un programmatore si fa pagare a ore, pertanto mi servirebbe sapere quante ore ci vogliono per tradurre un programma di quella dimensione in media: mi serve saperlo per un progetto che deve effettuare la valutazione dei costi di alcune contromisure: una di queste è la riscrittura del programma in un linguaggio tipato (ad esempio il Java), che evita i buffer overflow (a meno che non ci siano errori nella JVM). Non conosco il codice del progetto, è stato specificato soltanto che il programma deve ricevere dei dati da alcuni sensori, li deve elaborare e li deve inviare ad un altro PC che si trova in un'altra rete.
Senza dubbio che a Roma si paga di più. Un programmatore si fa pagare a ore, pertanto mi servirebbe sapere quante ore ci vogliono per tradurre un programma di quella dimensione in media: mi serve saperlo per un progetto che deve effettuare la valutazione dei costi di alcune contromisure: una di queste è la riscrittura del programma in un linguaggio tipato (ad esempio il Java), che evita i buffer overflow (a meno che non ci siano errori nella JVM). Non conosco il codice del progetto, è stato specificato soltanto che il programma deve ricevere dei dati da alcuni sensori, li deve elaborare e li deve inviare ad un altro PC che si trova in un'altra rete.
Appunto si paga ad ore, e non c'è nessun legame tra numero di righe di codice e ore impiegate per buttarle giù.
Per riscrivere quel codice da C a java(ad esempio) potrebbe essere necessario molto tempo come molto poco, quindi la tua domanda non ha senso, a meno che non ti vada bene una risposta del tipo: può costare 1000€ come 15000€.
Si propone il lavoro a qualcuno, quello valuterà il tempo che ci impiegherà, e ti farà un preventivo, easy. Se il lavoro lo devi fare tu e stai chiedendo consigli su come quantificare basati solo sul tempo che pensi di metterci.
ingframin
29-01-2011, 10:05
56€ lordi all'ora + 20% di iva per un totale di 67,2€ all'ora
Appunto si paga ad ore, e non c'è nessun legame tra numero di righe di codice e ore impiegate per buttarle giù.
Per riscrivere quel codice da C a java(ad esempio) potrebbe essere necessario molto tempo come molto poco, quindi la tua domanda non ha senso, a meno che non ti vada bene una risposta del tipo: può costare 1000€ come 15000€.
Si propone il lavoro a qualcuno, quello valuterà il tempo che ci impiegherà, e ti farà un preventivo, easy. Se il lavoro lo devi fare tu e stai chiedendo consigli su come quantificare basati solo sul tempo che pensi di metterci.
Il lavoro non lo devo fare io: avevo già specificato il motivo della richiesta in un post precedente:
"mi serve saperlo per un progetto che deve effettuare la valutazione dei costi di alcune contromisure: una di queste è la riscrittura del programma in un linguaggio tipato (ad esempio il Java), che evita i buffer overflow (a meno che non ci siano errori nella JVM). Non conosco il codice del progetto, è stato specificato soltanto che il programma deve ricevere dei dati da alcuni sensori, li deve elaborare e li deve inviare ad un altro PC che si trova in un'altra rete."
Supponiamo per semplicità che il linguaggio di programmazione in cui tradurre sia proprio il Java, versione >= 1.5 (perché prima i thread e i socket erano implementati in modo diverso).
Non è specificato altro nel testo del progetto: solo il numero di righe di codice. Immagino che il programma preveda la creazione di un thread che interroga ciascun sensore e che effettua dei calcoli (semplici: dovrebbero essere un paio di prodotti e una proporzione, quindi quattro operazioni aritmetiche che non vengono modificate nella traduzione da C a Java). L'unica cosa che dovrebbe essere modificata pesantemente è la gestione dei thread e dei socket: per il resto non ci sono grosse differenze, dato che le differenze di sintassi tra C e Java per il resto sono trascurabili (a parte l'intestazione delle classi in Java e la possibilità in Java di dichiarare variabili per l'indice del for nella guardia del for:
for (int i = 0; i < NVOLTE; i++)).
56€ lordi all'ora + 20% di iva per un totale di 67,2€ all'ora
Nel caso in cui venga fatto riscrivere ad un professionista con partita IVA, se invece venisse fatto riscrivere ad un dipendente interno costerebbe 3300 € /mese (comprese tasse): supponendo 165 ore di lavoro mensile si arriverebbe ad un costo di 20 €/all'ora, se invece venisse riscritto da un dipendente dell'altra azienda, il lavoro potrebbe costare 25 €/ora (25% di guadagno dell'altra azienda).
Ovviamente non voglio una stima precisa, vorrei avere una stima con un'incertezza del 20%.
A questo punto vorrei porre un'ulteriore domanda: esistono software anche a pagamento che convertono il codice dal linguaggio di programmazione C al Java? Se sono a pagamento, vorrei sapere quanto costano, in modo da prendere in considerazione l'ipotesi di farlo riscrivere senza aver bisogno di un intervento umano.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.