|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#41 | |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
Quindi dove ho davvero necessità di spingere al max (ma quel punto ti fai anche parti in assembler) o dove le risorse sono troppo limitate ed anche un 1.5x più lento (o l'uso di 10MB di ram in più) sarebbe troppo vado di C++ Altrimenti va benissimo Java perché farlo in C++ è facile che:
Quindi alla fine (nei casi in cui Java o altro va bene) una società con i soldi di sviluppo che risparmia (o con i soldi dei maggiori incassi dovuti all'arrivare magari un mese prima sul mercato con il proprio prodotto) si compra HW che va al doppio e compensa le deficienze di Java vs C++ e probabilmente avanzando anche dei soldi. E senza contare che questo gap di prestazione è molto calato negli anni, quindi non è anche escluso che le JVM che ci saranno nei prossimi anni siano in grado di pareggiare sempre di più. Esempio Java 7 dicono che sarà 2 volte più veloce su alcune librerie del framework (ora non ricordo su cosa). Prendi il codice binario (bytecode) del tuo software oggi e lo esegui (domani) sulla Jvm7 e magari il tuo 2.5x più lento del C++ si riduce solo a 1.5x. Senza cambiare una riga di codice e senza ricompilare nulla (nessun sviluppatore necessario e non devi neanche possedere i sorgenti dell'applicativo). Ultima modifica di FabryHw : 15-11-2010 alle 18:56. |
|
|
|
|
|
|
#42 | |
|
Senior Member
Iscritto dal: May 2006
Città: London
Messaggi: 5380
|
Quote:
__________________
www.marcosero.com
about.me ● Trattative [29] ![]() "Computer science is no more about computers than astronomy is about telescopes." Edsger Dijkstra. |
|
|
|
|
|
|
#43 |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Non vedo cosa ci trovi di strano.
E' sempre andato così e probabilmente tranne nei mercati di nicchia andrà sempre così. Già negli anni 90, io che sono un estimatore delle prestazioni max possibili, venivo ribatutto con argomenti del tipo "ma chi se ne frega se la tua implementazione gira 5 volte più veloce e va bene anche sul 386. Se poi ci metti 6 mesi a finirla. Scusa ma prefisco l'altra implementazione pronta in un mese ed al più mi compro un 486 pompato o i nuovi pentium. Ricordati che quello che costa davvero nel mondo informatico è il costo del programmatore non il costo dell'HW" Basta vedere che linguaggi come Python (che sinceramente a me piace molto), Ruby, ...ecc prendono sempre più piede. Questo nonostante spesso siano da 20 a 50 volte più lenti del già lento per voi Java. Solo che se raggiungono la velocità minima che serve (o al più esiste HW su cui poterli far girare abbast. velocemente) e ti permettono di essere più produttivi (leggi fare in 2 mesi quello che in java ce ne impiegheresti 6) all'azienda spesso va bene così Ultima modifica di FabryHw : 15-11-2010 alle 20:01. |
|
|
|
|
|
#44 | |
|
Messaggi: n/a
|
Quote:
Però questa frase tua non è per niente bella, è una delle filosofie fortemente criticate dagli ingegneri di software e analisti. Si deve far spendere il giusto al cliente e quindi fornirgli il software giusto che deve girare sulle macchine giuste o peggio ancora in quelle già presenti che spesso, anche nelle aziende più moderne, sono macchine vecchie e lente o secondo te le aziende si mettono ad aggiornare i calcolatori così come farebbe un smanettone col computer di casa?! Diciamo che hai parlato esattamente come un programmatore puro, che sa solo buttare codici e basta, senza un minimo di conoscenza di analisi ed ingegneria (lascio chiaro che non ti sto dando dell’incompetente ma sottolineo soltanto il tono del tuo intervento) e spesso legato a quel linguaggio che lo conosce benissimo e quindi non tantissimo bravo a programmare a prescindere dal linguaggio scelto. |
|
|
|
|
#45 | |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
Se tu gli fai spendere 100.000E senza cambiare le macchine (che magari hanno già 3 anni) ed un'altra ditta gli fa spendere 80.000E (divisi in 50.000E di sviluppo e 30.000E di nuove macchine) chi è che gli ha fatto spendere il giusto ? E secondo te a chi commissionano il progetto ? E' ovvio che io non intedevo con il mio esempio casi in cui risparmi 30.000E di sviluppo ma poi hai bisogno di 50.000E di HW o di altri costi nascosti. E cmq nessuno ti obbliga a cambiare l'HW magari per la tua applicazione anche le prestazioni più lente (diciamo 3 volte più lente) di Java sono sufficienti. Se riesci (per ipotesi) a fare un gioco in Java che tiene 70 fps come minimo sull'hw esistente, sai cosa gliene frega alla software house che se lo fai in C++ ti fa 300 fps. Quando nel primo caso ti paga 6 mesi e nel secondo 1 anno di lavoro. |
|
|
|
|
|
|
#46 | |
|
Messaggi: n/a
|
Quote:
|
|
|
|
|
#47 | |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
Anche ammesso di costare solo poco di più come costi di sviluppo (perché magari fai buoni prezzi) e di non richiedere cambi di HW, ma in compenso consegnare a Dicembre un progetto commissionato a Gennaio, mentre il concorrente glielo fornisce a Giugno. All'azienda magari quei 6 mesi di NON utilizzo del nuovo sw costano molto di più che cambiarsi l'intero HW. Poi certo che se facendo un'analisi completa viene fuori che C++ è meglio COME COSTI di una implementazione Java. Allora dico, se hai le conoscenze per farlo vai di C++ |
|
|
|
|
|
|
#48 |
|
Messaggi: n/a
|
ops
Ultima modifica di WillianG83 : 15-11-2010 alle 20:02. |
|
|
|
#49 | |
|
Messaggi: n/a
|
Quote:
E se cerchi di fare altri esempi ti ricordo che man mano che la tecnologia è andata avanti sono migliorati anche i software portando con loro un incremento dei calcoli (ovviamente non ai livelli dei giochi) quindi il discorso è dinamico. PS: non puoi voler tirare fuori adesso il discorso "ah ma facevo una ipotesi" perchè sarebbe troppo facile sparala grossa per poi ritrattare Ultima modifica di WillianG83 : 15-11-2010 alle 20:04. |
|
|
|
|
#50 | |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
Penso che alle software house interessi più il profitto che la fama in sé (anche se quella aiuta). Ed in alcuni casi 4Milioni di copie vendute di un gioco di medio livello (e prezzo budget), a volte possono fare più profitto di 3Milioni di copie vendute di un gioco costoso sia come prezzo di vendita che come costi di sviluppo (e quindi meno ricavi per copia), salvo veri best seller che vengono comprati a tutti i costi nonostante il prezzo iniziale. Io ho detto che se Java mi permette per il mio target di gioco di tenere 70 fps MINIMI (e facendo tutto quindi anche il resto oltre la grafica, alias fisica, AI, ...ecc), perdere più tempo a farlo in C++ per avere prestazioni maggiori (ma poi di quanto ? sognamoci i 10 o 20x, perché non è sempre così) NON SERVE ed è controproducente causa costi di sviluppo maggiori (che la sw house non è interessata a sostenere di solito). Poi se tu parti dal presupposto che un gioco per essere vendibile (e molto profittevole per la società) deve avere X caratteristiche (ma alla fine non fai anche tu come gli architetti che cercano lo chic a tutti i costi ?) e quelle X caratteristiche le puoi avere solo in C++ è un altro discorso. Ma siamo sicuri che sia del tutto vero ? Magari hai fatto l'analisi corretta o magari parti anche tu tal presupposto "C++ è enormemente più veloce o ha altre mille fantastiche possibilità che Java non ha". E quindi sei fan C++ come altri sono fan Java. PS "Ingegneria del software" Ultima modifica di FabryHw : 16-11-2010 alle 13:19. |
|
|
|
|
|
|
#51 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12883
|
Quote:
Anche perché qualsiasi analista, programmatore, ingegnere di medio livello ti farebbe notare che le prestazioni non sono tutto, anzi in alcuni contesti sono l'ultima cosa (a meno di non avere vincoli di progetto particolari). L'obiettività passa anche nell'analizzare pregi e difetti delle varie soluzioni e un qualsiasi analista, programmatore, ingegnere di medio livello ti farebbe notare che C++ non è di certo esente da difetti, anzi (il mio giudizio al riguardo è pessimo, in particolare vedo il C++ come un male di cui purtroppo non possiamo fare a meno). E' chiaro che la lentezza dello sviluppo di Java possa rappresentare un problema, ma non mi sembra che lo standard C++ stia evolvendo così rapidamente, anzi. D'altro canto non è detto che debba essere necessariamente un difetto, anche perché ad ogni nuova revisione di un linguaggio bisogna tenere conto dei tempi di apprendimento. Per fare un esempio, credo che la maggior parte del software scritto in .NET sfrutti in maniera nulla o parziale le ultime features della piattaforma, probabilmente la maggior parte di esso è scritto tenendo a mente la versione 2.0 del framework anche e soprattutto per motivi di compatibilità. L'ingegneria è l'arte del compromesso, tuttavia mi sento di lanciare uno spunto di riflessione: possibile che nel 2010 dobbiamo affidarci a linguaggi e compilatori vetusti e loro evoluzioni francamente poco convincenti? Possibile che non riusciamo a fare di meglio? Ecco direi che il caso di riflettere su questo. Ultima modifica di WarDuck : 15-11-2010 alle 20:43. |
|
|
|
|
|
|
#52 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 1499
|
.
Ultima modifica di litocat : 16-11-2010 alle 13:03. |
|
|
|
|
|
#53 | |
|
Bannato
Iscritto dal: Apr 2006
Messaggi: 5857
|
Quote:
E fino a 2 anni fa Windows 2000 Server lo trovavi ancora facilmente in molte aziende, anzi io stesso conosco aziende che fino a non molto fa lo installavano ancora su macchine nuove (rimuovendo 2003/2008 server) per essere sicuri della compatibilità con alcuni sw in loro possesso. Ritrovandosi poi però il lato DOT.NET limitato a max v2.0, ma non avendo contemporaneamente nessun limite per il lato JAVA invece Ultima modifica di FabryHw : 16-11-2010 alle 19:02. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:54.





















