# [OT] Programma linux <-> windows

## DGilmour

Ho bisogno del vostro consiglio!!!

Prologo

La ditta per cui lavoro, mi ha chiesta la realizzazione di un programma OPENSOURCE di contabilità modulare a norma della 196/2003 (credo che si facciano pagare l'assistenza e l'installazione). Per la norma ho tutto ben chiaro. Io pensavo di farmi il programma per Gentoo Linux (magari in un futuro un bel emerge) con interfaccia GTK (almeno che un povero cristo sia disposto ad aiutarmi con c++ e qt). Per lo storage dei dati ho pensato a MySQL. Tutto questo lo trovo abbastanza ottimo a parte due piccoli problemi: la stampa e la gestione dei codici a barre.

Fase 1 - Piccole briciole

In una piccola ditta si installrebbe linux e il programma e fino a qui non ci sono problemi di sorta, almeno per ora. Chi ha windows non licenziato gli si fà il corso per linux, chi ha windows licenziato e vuole continuare ad usarlo gli facciamo il doppio boot.

Fase 2 - Le grandi prospettive

In un azienda dove il programma lavora in rete. Tutto ok se nei computer si può installare linux. Il database rimane o nel loro server o in un pc che funge da MySQL server.

Fase 3 - Gli irreducibili

In un azienda in cui usano windows e non ne vogliono sapere di migrare a linux. Come faccio???

3.a - Ho pensato di installare vmware su tutti i computer e di far girare un linux ad-hoc (che dopo la login presenta subito l'interfaccia del programma) per far girare il programma e per mantenermi un solo codice sorgente da gestire. Idea non male, funziona abbastanza bene se il computer è recente e ha abbastanza ram.

3.b - Creare un doppione del programma per windows. Ma a questo punto come si fà? Ho bisogno di comprarmi una suite di programmi per lo sviluppo o posso fare tutto con software opensource?

Fase 4 - Dove non vorrei arrivare

Se non riesco ad avere un idea ben precisa di come andare avanti (magari con un semplice programma tipo una finestra: "hello world!" che giri sia su linux che su windows) entro un paio di settimane lo sviluppo di questo progetto passa a CLOSEDSOURCE sviluppato con VisualBasic solo per windows...

C'è qualche personaggio di questo forum che può indicarmi qualche strada da prendere per poter vedere un po' di luce?

C'è qualche personaggio di questo forum che gli può interessare lo sviluppo di questo programma?

Grazie della vostra attenzione, ciao a tutti, Keres.

----------

## RexRocker

uhm io non ho molta esperienza di codice multi-piattaforma, di solito sviluppo in java  :Smile: 

cmq per il tuo problema direi che con le GTK sei più o meno a posto nel senso che è possibile creare programmi Linux/Windows che con vari accorgimenti (del tipo non usare primitive tipiche di un sistema o di un altro) possono essere compilati per essere eseguiti su entrambi i sistemi. Anche con le QT puoi fare questo ma li è una scelta tua.

Certo se l'alternativa è passare a sviluppo closed con VB tanto vale perdere un attimo di più tempo e fare il tutto in java con le swing o le awt e sei a posto per la portabilità, non devi nemmeno ricompilarlo. Magari fornisci il file jpnl (o simile non ricordo bene l'estensione) e cosi i clienti ogni volta che lo fanno partire possono controllare in automatico se ci sono degli aggiornamenti.

Ora cmq sono pronto per ricevere pomodori, verdura cotta, riso scotto e quant'altro vogliano tirarmi addosso chi è più esperto di me nella programmazione GTK, potrei anche aver detto una stron**** con l'affermazione di sopra  :Smile: 

ciao

Rex

----------

## Sparker

Le librerie gtk sono multipiattaforma, ci sono anche per windows.

Per il porting a win32 probabilmente la cosa migliorè è programmare sotto cygwin.

So che su cygwin gira anche kde, quindi immagino anche kdevelop.

Per facilitarti la vita puoi usare le librerie di cygwin: ad esempio clamav per windows si appoggia a cygwin.

Per i codice a barre esiste barcode della gnu

P.S. sono solo spunti, non chiedermi altre info, non ho mai effettivamente fatto un porting per windows   :Embarassed: 

----------

## ogeidix

Ciao,

sebbene esistano diversi tool per cose del genere,

vedi le GTK sotto WIN e http://www.cygwin.com/

ti consiglierei di valutare molto attentamente l'opzione

WebApplication ovvero di far gestire l'intera applicazione nel browser (PHP, Perl ecc)

Valutando attentamente la possibilità di utilizzare

AJAX e XUL (x info chiedi a wikipedia)

:: Ogeidix

----------

## DGilmour

Domani voglio provare a fare un accrocchio in linux con GTK, una semplice finestra con una label e un button. Ho trovato devc++ per windows, ma le librerie gtk sono un po' vecchiotte...

Credo che mi installerò le cygwin e vedrò poi cosa posso fare. Farò un aserie di tentativi...

Sparker, posso contattarti se avessi qualche problema con il GTK?

Ciao, Keres.

----------

## randomaze

 *DGilmour wrote:*   

> Se non riesco ad avere un idea ben precisa di come andare avanti (magari con un semplice programma tipo una finestra: "hello world!" che giri sia su linux che su windows) entro un paio di settimane lo sviluppo di questo progetto passa a CLOSEDSOURCE sviluppato con VisualBasic solo per windows...

 

Beh, "hello world" dovrebbe essere semplice.

A parte quello, al discorso Qt e GTK dai un occhiata anche a questi due:

http://www.fox-toolkit.org/

http://www.wxwidgets.org/

che dovrebbero essere multipiattaforma entrambi. E, come alternativa, python.

Certo, nel tuo post manca il punto fundamentale: quali sono le tue conoscenze attuali  :Rolling Eyes: 

----------

## shogun_panda

Aggiungo anche, non sparatemi, C#/GTK# (ovviamente C# di Mono)...

A suo tempo feci una applicazione che si appoggiava a SQLite andava da dio sotto entrambe le piattafomre...

Ciriciao!

----------

## CarloJekko

ma non si può sviluppare in c# con mono ed esportarlo su una piattaforma .net?

ho detto una castroneria?

Edit: non avevo letto su scusate!

----------

## assente

Anch'io sono pro gtk, il supporto per Windows è buono, programmi come gimp(funzia anche la stampa) e inkscape funzionano bene, quindi x me lasciar perdere le wxwidgets.

Riguardo il db hai una scelta incredibile, sqlite, mysql, firebird(funzia anche su un solo file), se sei indeciso DBI è un'astrazione che c'è per un po' tutti i linguaggi.

Per il codice a barre alexandria.rubyforge.org supporta lettore, puoi darci uno sguardo; se scegli le gtk alla fine scegli il linguaggio che più ti piace, interpretato o non, tanto non cambia molto

----------

## ProT-0-TypE

ma java l'avete escluso a priori?

Per le applicazioni multipiattaforma dovrebbe dare il meglio di se..

----------

## Sasdo

 *ProT-0-TypE wrote:*   

> ma java l'avete escluso a priori?
> 
> Per le applicazioni multipiattaforma dovrebbe dare il meglio di se..

 

Tempo fa ho avuto modo di usare java per un programma simile, indubbiamente è molto comodo ma la gestione della stampa è secondo me quanto di più indegno la mente umana abbia mai concepito, senza contare che su linuccio bisogna usare diversi accorgimenti in più.

----------

## DGilmour

Perdonatemi, è vero, ho tralasciato la cosa fondamentale.

Java ho provato più di una volta ad impararlo, ma non ho mai avuto stimoli. In quei tempi mi avevano chiesto un programma che gestiva delle fatture per un acquedotto: qui passai a svilupparlo in visual basic visto che già lo conoscevo bene e linux non sapevo ancora cosa fosse...

Per Qt e C++ mi sono comprato u bal manuale di C++, ho un po' capito, ma quando vado a distrigarmi con gli esempi qt che trovo sul sito vado subito nel pallone... Forse mi ci vorrebbe un po' più di tempo da dedicargli e magari ancora qualche buon libro...

Per il C è il mio linguaggio preferito. Ho due manuali di C sul mio comodino al posto della Bibbia...  :Very Happy: 

Per le GTK+ Tempo addietro avevo inizato a sviluppare un programma e mi ci sono trovato molto bene. Comunque anche qui devo approfondire delle cose che mi sono rimaste oscure...

Comunque questa mattina voglio provare anche Gambas... giusto per vedere come è (appena il portatile finisce di compilare il kde).

Per quanto riguarda i database non sono un drago: mi destreggio abbastanza bene con MySQL e riesco a farci quello che mi serve. Magari MySQL fà molto più di quello che mi serve ma devo ancora imparare molte cose...

Ciao a tutti, Keres.

----------

## mouser

A mio avviso ti conviene scrivere una base di funzioni per il tuo programma scritte in ANSI-C.... in questo modo sono compilabili su entrambe le piattaforme;

Dopodiche', per i supporti grafici specifici puoi buttarti (come altri hanno gia' consigliato) sulle GTK......  (per avere un punto di partenza, puoi guardare sul mio sito, nella sezione Guide....  :Cool:  c'e' un tutorial sulle GTK in ANSI-C) e vedere se riesci a far girare le stesse cose da una parte e dall'altra.

Ciriciao

mouser  :Wink: 

----------

## DGilmour

 *mouser wrote:*   

> A mio avviso ti conviene scrivere una base di funzioni per il tuo programma scritte in ANSI-C.... in questo modo sono compilabili su entrambe le piattaforme;
> 
> Dopodiche', per i supporti grafici specifici puoi buttarti (come altri hanno gia' consigliato) sulle GTK......  (per avere un punto di partenza, puoi guardare sul mio sito, nella sezione Guide....  c'e' un tutorial sulle GTK in ANSI-C) e vedere se riesci a far girare le stesse cose da una parte e dall'altra.
> 
> Ciriciao
> ...

 

Ok, mi sembra giusto. Ma il link al tuo sito???

----------

## DevOne

 *DGilmour wrote:*   

> 
> 
> Prologo
> 
> ...
> ...

 

Personalmente preferisco le QT che sono molto veloci sui vari sistemi (almeno win e linux), mentre le GTK le ho viste moolto lente su sistemi windows!

Anche per i "piccoli problemi": con le QT penso che non ci siano problemi di stampa, nel senso che saranno previsti dei componenti che si

interfacciano ad alto livello; forse per la gestione del codice a barre, mi sa che dovresti cercare qualcosa di terze parti, o implementare

la gestione di I/O via seriale (immagino).

 *DGilmour wrote:*   

> 
> 
> Fase 2 - Le grandi prospettive
> 
> In un azienda dove il programma lavora in rete. Tutto ok se nei computer si può installare linux. Il database rimane o nel loro server o in un pc che funge da MySQL server.
> ...

 

Non vedo i problemi: mySQL gira sia su win che su linux...così come anche l'applicativo gira sia su win che su linux...

dov'è il problema delle piccole o grandi aspettative?!?!

usando gli odbc, si garantisce lo standard, anche se magari meno performante rispetto a quelli dedicati

 *DGilmour wrote:*   

> 
> 
> Fase 3 - Gli irreducibili
> 
> In un azienda in cui usano windows e non ne vogliono sapere di migrare a linux. Come faccio???
> ...

 

Che ti frega?!?! il software è gratuito, sia che linux o win o mac...software open non esclude di usare sistemi closed!!

 *DGilmour wrote:*   

> 
> 
> 3.b - Creare un doppione del programma per windows. Ma a questo punto come si fà? Ho bisogno di comprarmi una suite di programmi per lo sviluppo o posso fare tutto con software opensource?
> 
> 

 

Se usi le QT, non hai problemi di doppioni di codice...la versione 4 per altro ha esteso anche per win la licenza usata per linux!

----------

## Ic3M4n

 *DGilmour wrote:*   

> Ok, mi sembra giusto. Ma il link al tuo sito???

 nel profilo

----------

## DevOne

 *DGilmour wrote:*   

> 
> 
> Java ho provato più di una volta ad impararlo, ma non ho mai avuto stimoli. In quei tempi mi avevano chiesto un programma che gestiva delle fatture per un acquedotto: qui passai a svilupparlo in visual basic visto che già lo conoscevo bene e linux non sapevo ancora cosa fosse...
> 
> 

 

Personalmente java lo trovo ottimo per ambienti embedded e web based; ma scarso per programmi di tipo gestionale o altri progetti di una certa complessità. Questo semplicemente perchè è molto lento...

 *DGilmour wrote:*   

> 
> 
> Per Qt e C++ mi sono comprato u bal manuale di C++, ho un po' capito, ma quando vado a distrigarmi con gli esempi qt che trovo sul sito vado subito nel pallone... Forse mi ci vorrebbe un po' più di tempo da dedicargli e magari ancora qualche buon libro...
> 
> 

 

Le QT e il C++ sono il massimo che un "programmatore" può desiderare; l'unica cosa c'è bisogno di moolta pratica ed esperienza per essere in grado di sfruttare al pieno tutte le meraviglie che questo linguaggio ti da a disposizione.

 *DGilmour wrote:*   

> 
> 
> Per il C è il mio linguaggio preferito. Ho due manuali di C sul mio comodino al posto della Bibbia... 
> 
> 

 

Questo ragazzo lo adoro   :Laughing: 

Io li ho sostituiti a quello del dizionario della lingua italiana e della grammatica!

----------

## GiRa

Non ho letto tutto però le wxWidgets, wxGtk e simili girano anche sotto win.

----------

## Sparker

 *DGilmour wrote:*   

> 
> 
> Sparker, posso contattarti se avessi qualche problema con il GTK?
> 
> 

 

No, nel senso che non ti saprei aiutare, non ho mai programmato con le gtk

(mi tengo informato poiche' ho in programma di imparare gtk o qt prima o poi)

----------

## Frez

Anche io considererei le Qt. Non le conosco benissimo, ma ogni tanto faccio qualche programmetto in python+PyQT e mi ci trovo bene. E' molto veloce, visto che la parte di elaborazione grafica viene svolta dal codice scritto in C.

La documentazione e' ottima. Mi pare che la libreria comprenda anche moduli per accedere ai principali database (mysql e postgres ovviamente compresi) e per il networking. La cosa sembra superflua ma potrebbe aiutare a creare programmi piu' portabili.

Non mancano poi vari tool come qmake e designer.

Ho visto che dalla release 4.0 trolltech rilascia anche una versione per win con licenza analoga a quella per linux (intendo quella liberamente utilizzabile per progretti open), ma non ho ancora avuto occasione di provarla perche' non e' ancora disponibile pyqt per tale versione (sbavo gia' all'idea)

Ok,Ok ... qualcuno mi dara' del "cialtrone" perche' non uso il C o il C++  :Very Happy: 

E' vero, ma con python faccio prima e riesco a sistemare velocemente eventuali problemi (chi ha detto "toppe"  :Smile:  )

Non conosco molto le GTK, che rimangono ovviamente ottime giudicando i risultati.

----------

## LastHope

 *ogeidix wrote:*   

> Ciao,
> 
> sebbene esistano diversi tool per cose del genere,
> 
> vedi le GTK sotto WIN e http://www.cygwin.com/
> ...

 

E' quello che avrei proposto anche io (XUL non lo conosco di persona  :Wink: )...eviteresti magari il problema degli irreducibili --> il programma gira su un server Linux, gli utenti accedono mediante un'interfaccia Web uguale da qualunque piattaforma & browser...  :Wink: 

Senno' Java  :Wink: 

Ciao a tutti

LastHope

----------

## abaddon83

io ti consiglio java per la gestione della stampa  ti consiglio jasper è un po incasinato ma una volta che capisci come funziona è una bomba, io ci facevo le stampe per le bolle di un centro commerciale con tanto di logo e grafica varia...

secondo me java è l'ideale per le multi piattaforma

----------

## lopio

 *DevOne wrote:*   

> 
> 
> Personalmente java lo trovo ottimo per ambienti embedded e web based; ma scarso per programmi di tipo gestionale o altri progetti di una certa complessità. Questo semplicemente perchè è molto lento...
> 
> Le QT e il C++ sono il massimo che un "programmatore" può desiderare; l'unica cosa c'è bisogno di moolta pratica ed esperienza per essere in grado di sfruttare al pieno tutte le meraviglie che questo linguaggio ti da a disposizione.
> ...

 

ciao secondo me invece java e' una buona soluzione per le caratteristiche e i vantaggi che puo' apportare in un tale contesto:

1) e' multipiattaforma

2) da' la possibilita' di avere interfaccia uniforme nei vari s. o.

3) Ha ottimo  supporto a mysql via jdbc sneza contare soluzioni java pure 100% tipo hsql con possibilita' di dbms enbedded nell'applicazione stessa

4) supporto per semplice meccanismo client/server via rmi con ttti i vantaggi di centraliazzione (server) e distribuzione (gui).

5) ottima documentazione per chi deve imparare

Poi ognuno ha i suoi gusti e le sue preferenze e se  vuol fare tutto in C puo' farlo ma non si puo'  non sottolineare che i tempi di sviluppo non saranno gli stessi (parlando di persone normali ovviamente)

Non trovo giusto basarsi su luoghi comune tipo java lento o similia.Il compilatore jit rende paragonabili le prestazioni di java nei confronti del codice compilato.

Le swing oggi non sono quel mostro di lentezza di anni fa, tuttt'altro, offrono interfacce gradevoli senza i casini di librerie che mancano sul sistema A ma ci sono su B e non su C e soprattutto ora sono veloci.

Per quanto riguarda pacchetti di "supporto" ce ne sono a bizzeffe e per esempio  supporto per la stampa c'e' ed e' valido vedi soluzione di abaddon83  oppure per esempio tramite il paccheto jFreeReports

ciao

----------

## federico

 *Frez wrote:*   

> Non conosco molto le GTK, che rimangono ovviamente ottime giudicando i risultati.

 

Anche io come te programmo in python ma con l'ausilio delle gtk, e ho fatto programmi multipiattaforma con questo sistema.

Se qualcuno e' interessato sul mio sito c'e' qualche programma con codice, per dargli un occhio, oppure parecchi post in giro per il forum a proposito di python e gtk sono stati fatti da me e altri.

----------

## RexRocker

 *lopio wrote:*   

> 
> 
> Non trovo giusto basarsi su luoghi comune tipo java lento o similia.Il compilatore jit rende paragonabili le prestazioni di java nei confronti del codice compilato.
> 
> Le swing oggi non sono quel mostro di lentezza di anni fa, tuttt'altro, offrono interfacce gradevoli senza i casini di librerie che mancano sul sistema A ma ci sono su B e non su C e soprattutto ora sono veloci.
> ...

 

[OT]

Adoro quest'uomo!!!!

Sono stufo di sentire dire che java è lento e tutte le altre cose che si possono dir male su di un linguaggio di programmazione. Se facesse cosi schifo non sarebbe così sviluppato e aggiornato. Ovvio che se avete provato java 3-4 anni fa arrivate a quelle conclusioni, ma ora le cose sono un po' diverse.

[OT]

----------

## ProT-0-TypE

non è lento, ma "pesante" rispetto ad altri linguaggi (e ciò si traduce in una eccessiva lentezza nei pc vecchi  :Razz: ). Ma questo è ovvio per quello che offre..

----------

## DevOne

 *lopio wrote:*   

> 
> 
> ciao secondo me invece java e' una buona soluzione per le caratteristiche e i vantaggi che puo' apportare in un tale contesto:
> 
> 1) e' multipiattaforma
> ...

 

Ciao...

queste sono tutte caratteristiche che qualsiasi framework (QT, GTK, ecc..) possiedono!

Inoltre ti vorrei far notare che componenti java come i thread e altri hanno comportamenti molto diversi da sistema operativo a sistema operativo...

 *lopio wrote:*   

> 
> 
> Poi ognuno ha i suoi gusti e le sue preferenze e se  vuol fare tutto in C puo' farlo ma non si puo'  non sottolineare che i tempi di sviluppo non saranno gli stessi (parlando di persone normali ovviamente)
> 
> 

 

Infatti io non sto parlando dei tempi di sviluppo, ma dei tempi di esecuzione!!

 *lopio wrote:*   

> 
> 
> Non trovo giusto basarsi su luoghi comune tipo java lento o similia.Il compilatore jit rende paragonabili le prestazioni di java nei confronti del codice compilato.
> 
> 

 

Java, se non è lento ai giorni d'oggi, lo è semplicemente perchè è aumentata la capacità di calcolo dei computer.

E basta! E jit non è niente altro che un compilatore che i normali linguaggi hanno già!

 *lopio wrote:*   

> 
> 
> Le swing oggi non sono quel mostro di lentezza di anni fa, tuttt'altro, offrono interfacce gradevoli senza i casini di librerie che mancano sul sistema A ma ci sono su B e non su C e soprattutto ora sono veloci.
> 
> 

 

Ehm...dovresti installare la java virtual machine (mega e mega), per evitare quel casino di cui parli...in ogni caso, almeno con le QT, distribuite le 4-5 dll di supporto e l'eseguibile, funziona tutto senza problemi di dipendenze!

Tutto IHMO ovviamente   :Laughing: 

----------

## federico

Non capisco questa smania di ottimizzare col C quando la contabilita' modulare non e' proprio quel che si dice un applicazione cpu consuming..

----------

## RollsAppleTree

ho sviluppato in java un'applicazione multipiattaforma, interfacciata con un db mysql, e che fa una mole di calcoli non indifferente (ottimizzazione orario accademico), e mi renderizza i risultati in html in un panel che è praticvamente un browser web,  e fa tutto tranquillamente, e senza questa eccessiva lentezza o pesanteza...

Certo, su un 486 nn lo si può far girare, ma su qualsiasi sistema con i requisiti giusti per la JRE java, va che è una meraviglia...

L'unica accortezza per fare tutto mulripiattaforma è IL DIVISORE DI CARTELLA (" \ " in linux, ma " / " in winzozz)...

Possibilità di sviluppo della GUI  in maniera <completamente> grafica (NETBEANS(TM)), sviluppo assistito (se si vuole) o "normale (preferisco) ... cosa vuoi di più dalla vita ??? (a parte un lucano ....  :Laughing:   )

----------

## lopio

 *DevOne wrote:*   

> 
> 
> Ciao...
> 
> queste sono tutte caratteristiche che qualsiasi framework (QT, GTK, ecc..) possiedono!
> ...

 

Cioe' tu mi dici che con la stessa semplicita' di installazione di un jre ottieni la possibilita' di avere un qualcosa che gira indifferentemente su hp,windows,linux,solaris, sul tuo telefonino siemens e il tostapane di casa. Sai bene che non e' vero...

Se mi dici dove trovi meccanismo semplice come rmi lo provo subito.  Per ambito c++ le soluzioni Corba sono molto piu' complesse... 

Per quanto riguarda il discorso dei thread stiamo cercando il pelo nell'uovo.Voglio vedere  se in una applicazione normale ti accorgi che i thread sono implementati in maniera diversa su HP rispetto a win...

 *DevOne wrote:*   

> 
> 
> Java, se non è lento ai giorni d'oggi, lo è semplicemente perchè è aumentata la capacità di calcolo dei computer.
> 
> E basta! E jit non è niente altro che un compilatore che i normali linguaggi hanno già!
> ...

 

E qui sta il punto le preformance di un linguaggio compilato sono migliori non di molto rispetto a java vuoi per il jit vuoi per la capacita' dei pc modermi.

Serve impelagarsi in soluzioni raffinate che richiedono molto tempo di sviluppo , test, installazione per guadagnare poca velocita'? A mio parere no 

Alla fine quello che importa e' il risultato.

Oggi  anche applicazioni interpretate dal tcl al python funzionano egregiamente in termini di velocita' e responsivita'  e coprono una vasta gamma di esigenze e se questo e' spiegato in gran parte dalle nuove tecnologia allora ben venga il progresso

 *DevOne wrote:*   

> 
> 
> Ehm...dovresti installare la java virtual machine (mega e mega), per evitare quel casino di cui parli...in ogni caso, almeno con le QT, distribuite le 4-5 dll di supporto e l'eseguibile, funziona tutto senza problemi di dipendenze!
> 
> Tutto IHMO ovviamente  

 

Se abbiamo paura di sprecare un po di mega sul disco oppure di specare RAM allora java non va bene ma la realta' OGGI e' diversa.Se il pc e' vecchio java non va bene ma noi parliamo della realta' di oggi 2005 o preferiamo parlare al passato per sempre?

Oggi il mio pc (non un server) ha 1G di RAM e 240GB di spazio e te lo tirano dietro per poco

In produzione abbiamo dei PA-RISC dell'HP che fanno girare un server java di gestione apparati di telecomunicazioni. Il progetto e' abbastanza complesso con parti in tcl,java, shell, con tecnologie diverse (corba,rni) e protocolli diversi (snmp,...) ma il fatto di avere il core in java ha accelearato di molto i temi di sviluppo e permesso all'azienda (sigh) di ridurre il personale dedicato al progetto di decine di unita'.

Ebbene tali HP (dal costo all'epoca spropositato) fanno girare il tutto un carico di cpu del 30-50%

Con un server opteron da 1000 euro con red hat la cpu sta sotto 1% e la macchina si gira i pollci

ciao

scusate l'otLast edited by lopio on Thu Oct 13, 2005 9:07 pm; edited 10 times in total

----------

## faber

ARGH! Spero di non esser arrivato troppo tardi!

1. Architettura. Quella che hai descritto, a mio avviso, é la situazione ideale per una web application. Supporto multipiattaforma automatico (va con i browser), librerie per ogni cosa (stampa, pdf, etc). Puoi usare php+mysql, o qualsiasi altro server. O jsp.

A tal proposito, puoi anche prendere in considerazione l'idea di adattare GAzie (gazie.sourceforge.net), che é un gestionale italiano parecchio ben fatto.

2. Se proprio la web application ti schifa, con Java puoi usare le librerie SWT. Sono librerie IBM, che in pratica tu le usi, e poi a seconda della libreria che linki va sulla piattaforma che desideri. In pratica su Linux ci linkerai un .la, su win un .dll, su mac os x l'equivalente.

Io l'ho usato per un nostro programma, e mi ha lasciato soddisfatto.

In piú Java é Java.. puoi usare Eclipse con tutte le sue lucine e le funzioni automatiche, e il paradigma ad oggetti é oggettivamente piú facile del C.

3. Se avessi optato per la Web Application, avendo tutti i miei complimenti  :Smile: , puoi prendere in considerazione Ajax, un framework in javascript per far aggiornare parti di pagina web senza ricaricare la pagina intera (es. quando passi il codice a barre di un oggetto ti aggiorna la parte della lista senza aggiornare tutta la pagina). E' una figata pazzesca.

4. Per il codice a barre. Per la lettura ti puoi non preoccupare: i lettori sono emulatori di tastiera, ovvero in pratica é come se tu digitassi i numeri nella tastiera. Puoi anche aggiungere caratteri in postambolo al lettore, quindi puoi fare battere invio dopo aver letto il numero.

Per la stampa dei codici a barre, tutti i linguaggi hanno i binding per svariate librerie che dato un numero sputano fuori il jpg con il codice a barre.

Guarda GAzie prima, non conosco la legge a cui ti devi conformare, ma al 90% fa al caso tuo con poche modifiche.

Se devi fare una tua app.. fai una web application.

Mi rendo pienamente disponibile a consigli, info, insulti.

Il mio contatto icq é 13361450, o la mia email é fabbri00 at gmail.com

Marco

----------

## federico

 *lopio wrote:*   

> 
> 
> Se abbiamo paura di sprecare un po di mega sul disco oppure di specare RAM allora java non va bene ma la realta' OGGI e' diversa.Se il pc e' vecchio java non va bene ma noi parliamo della realta' di oggi 2005 o preferiamo parlare al passato per sempre?
> 
> Oggi il mio pc (non un server) ha 1G di RAM e 240GB di spazio e te lo tirano dietro per poco
> ...

 

Questo non e' un ragionamento corretto secondo me.

Occorre fare un calcolo dei costi per ottimizzare il programma e il calcolo dei costi per sistituire i pc se questi sono un pochino datati. Nel caso in cui costasse meno lavorare un po' di + sul software per consumare meno menoria e quindi evitare di cambiare le macchine, andrebbe svolto il lavoro in questa ottica.

Inoltre ricordiamoci che qui non siamo alla microsoft e non abbiamo bisogno che i nostri clienti cambino hardware ogni anno, trovo sbagliato sprecare le risorse solo perche' se ne dispone.

Infine, di client con 1 giga di ram e 240 giga di hd se ne vedono ben pochi in giro, e le aziende che possono vantare un parco macchine del genere non sono tante (ma neanche di privati con 1 giga di ram ne ho visti molti).

PS: non iniziate a postare reply con "io ce l'ho" perche' posso capire che in una comunita' di informatici ci sia gente con hardware buono, ma nella realta' di tutti i giorni le cose sono ben diverse, ci sono posti dove neanche sanno cosa sono i p4 (e certi dove ancora trovo p2 quando giro)

----------

## lopio

 *federico wrote:*   

> 
> 
> Questo non e' un ragionamento corretto secondo me.
> 
> Occorre fare un calcolo dei costi per ottimizzare il programma e il calcolo dei costi per sistituire i pc se questi sono un pochino datati. Nel caso in cui costasse meno lavorare un po' di + sul software per consumare meno menoria e quindi evitare di cambiare le macchine, andrebbe svolto il lavoro in questa ottica.
> ...

 

vero ma java memoria ne consuma, ogni applicazione hai il suo bel jre quindi da questo punto di vista non puoi fare molto. Sono completamente d'accordo nel dire che tu sviluppattore DEVI programmare tentando di evitare gli sprechi

ma qui puoi agire solo a livello di programma.SE il jre ha bisogno di RAM  puoi farci poco  e la devi mettere in preventivo e a questo punto il fatto che tu abbia risorse e' una cosa positiva che va sfruttata.

Spesso i clienti che citi hanno investito centinaia di milioni per macchine HP che oggi sono obsolete rispetto al mio portatile...

Ma questo e' il passato, che vuoi che ti dica, rimaniamo all'assembly allora.

La mia premessa e' stata quella di considerare un hardware oggi normale, se  per te non lo e' allora il discorso non ha senso. La segretaria del mio ufficio ha schermo piatto e IBM con pentium4 3 ghz perche' se no XP non gira...

Poi so benissimo che la ditta del cliente  non cambiera' mai il suo server HP a 4 vie perche' lo ha pagato 1 miliardo  ma se la spesa e' di 1000 euro per avere un server piu' veloce non vedo lo scandalo. Lo spreco e' stato gia' fatto.

Chiusa la parentesi io NON ho mai detto che sia obbligatorio cambiare hardware per installare e usare java sia chiaro, il mio era solo un esempio limite di applicazione complessa...

ciaoLast edited by lopio on Fri Oct 14, 2005 9:42 am; edited 1 time in total

----------

## federico

A questo punto penso che in qualche modo stiamo mancando il colpo. Non ho capito bene con precisione su quali macchina e' previsto che giri questo software e che calcoli faccia questo software, perche' se ho letto bene dovrebbe elaborare modulistica, e a meno che siano cartelle delle tasse  :Smile:  di solito i moduli non hanno in gioco conti che richiedono macchine particolarmente potenti...

PS: Proprio i motivi che espone lopio io nella mio quotidiano scelgo se possibile di non utilizzare mai java, e' un legno  :Smile: 

----------

## lopio

 *federico wrote:*   

> 
> 
> PS: Proprio i motivi che espone lopio io nella mio quotidiano scelgo se possibile di non utilizzare mai java, e' un legno 

 

Se e' un legno sul tuo pc fai bene ma sul fatto che i tuoi siano pregiudizi non ci piove.

Saremmo rimasti al linguaggio macchina allora...   :Wink: 

----------

## n3m0

Come già hanno fatto in due o tre, consiglio Web Application. Un solo computer che fa da server con la WebApp e tutti gli altri che la usano.

In alternativa, Java + SWT di IBM (e non Swing).

Ma preferisco la webapp.

----------

## federico

 *lopio wrote:*   

>  *federico wrote:*   
> 
> PS: Proprio i motivi che espone lopio io nella mio quotidiano scelgo se possibile di non utilizzare mai java, e' un legno  
> 
> Se e' un legno sul tuo pc fai bene ma sul fatto che i tuoi siano pregiudizi non ci piove.
> ...

 

Non solo sul mio... Ho provato ultimamente su un centrino 1.8 con 1 giga di ram, e una interfaccia con 2 bottoni in croce e basta ci ha messo 10 secondi la prima volta a prtire, meno le successive. Se questo voi lo chiamate veloce...

----------

## federico

 *n3m0 wrote:*   

> Ma preferisco la webapp.

 

Saggio  :Smile: 

----------

## DGilmour

Cosa dire??? Per ora grazie mille a tutti voi che avete risposto e postato le vostre singole opinioni.

Ho preso la mia decisione... Faccio la WebApp con apache, php, mysql...

Appena posso, posto sul mio sito il primo codice...

Ciao a tutti!!!

Keres.

----------

## federico

Buon lavoro allora !   :Cool: 

----------

## n3m0

MySQL, brrrrrrrr!

W PostgreSQL. Se puoi, usalo.

----------

## federico

 *n3m0 wrote:*   

> MySQL, brrrrrrrr!
> 
> W PostgreSQL. Se puoi, usalo.

 

Ah si giusta osservazione, conviene postgresql perche' e' migliore sia come licenza  :Smile:  sia soprattutto come implementazione sql rispetto al mysql.

----------

## makoomba

 *lopio wrote:*   

> Se e' un legno sul tuo pc fai bene ma sul fatto che i tuoi siano pregiudizi non ci piove.

 

non si tratta di pregiudizi, quanto di valutazioni sul campo che sono anche mie: ogni volta che ho utilizzato java per un qualsiasi motivo, mi sono trovato di fronte a richieste hardware spropositate rispetto allo scopo.

Il top l'ho raggiunto sviluppando la tesi su Poseidon... un pachiderma mostruoso a cui non bastavano 768Mb di ram per gestire un centinaio diagrammi UML.

Pregiudizio è scartare una soluzione a priori, non trovare un'alternativa che ti permetta di ottenere lo stesso risultato in metà del tempo e utilizzando un quarto delle risorse.

Già, perchè il fatto che un client abbia 1Gb di ram o un server ne abbia 4Gb, non ti autorizza ad utilizzarla tutta: quella che non ti ciucci perchè il "jre ha bisogno di RAM" non è sprecata, ma resta a disposizione di altre applicazioni e/o del SO che la sfrutta interamente (quelli seri, almeno)

 *lopio wrote:*   

> Saremmo rimasti al linguaggio macchina allora...  

 

Cioè l'alternativa a java sarebbe l'assembly ?

----------

## lopio

 *makoomba wrote:*   

> 
> 
> Il top l'ho raggiunto sviluppando la tesi su Poseidon... un pachiderma mostruoso a cui non bastavano 768Mb di ram per gestire un centinaio diagrammi UML.
> 
> 

 

hai detto bene un pachiderma d programma, quel programma

 *makoomba wrote:*   

> 
> 
> Pregiudizio è scartare una soluzione a priori, non trovare un'alternativa che ti permetta di ottenere lo stesso risultato in metà del tempo e utilizzando un quarto delle risorse.
> 
> 

 

Ma per questo  vai di compromessi spesso. E' facile dire voglio un qualcosa facile da imparare,veloce,che non consuma...

Il compromesso in questo caso e' la ram

 *makoomba wrote:*   

> 
> 
> Già, perchè il fatto che un client abbia 1Gb di ram o un server ne abbia 4Gb, non ti autorizza ad utilizzarla tutta: quella che non ti ciucci perchè il "jre ha bisogno di RAM" non è sprecata, ma resta a disposizione di altre applicazioni e/o del SO che la sfrutta interamente (quelli seri, almeno)
> 
> 

 

non farmi ripetere cose ovvie questo e' un prezzo (piccolo grande decidi tu) da pagare per avere innegabili vantaggi in molti casi applicativi.

Se metti in dubbio questo allora accusi milioni di programmatori  che usano java di  essere solo una massa di idioti, masochisti che vogliono creare applicazioni mastodontiche che gireranno solo su computer del MIT.

Per fare un discorso generale se tra 10 anni potrai progammare dettando il codice a voce in 1/10 del tempo in un   nuovo linguaggio di alto livello lo farai a discapito di un po' di ram occupata sfruttando i vantaggi che la tecnologia ti offre.

Hai detto bene si deve programmare anche velocemente quindi se per esempio devo lavorare ad alto livello e dei puntatori non me ne frega un tubo (nel senso che non sono utili) faccio in modo di non usarli visto che mi fanno solo perdere tempo

Non me ne frega niente di promuovere java o cos'altro ma mi spiace osservare che spesso non si propongono soluzioni migliori piu' veloci ed efficienti perche' ci si radica su posizioni immutabili

Se in python e wxpython proponi qualcosa di valido in 2 minuti , veloce ecc usa quello 

Forse i linguaggi interpretati tra poco soppianteranno il resto nel 90% delle applicazioni, chi lo sa. A me sembra ci si muova verso strade di questo tipo per trarne il massimo dei vantaggi e grazie al fatto  che hardware sempre piu' potente  lo consente.

Se poi uno vuol sempre programmare in C, o in assembly (again) perche' e' abituato cosi' sono fatti suoi ma non venga a dire che per ogni contesto puo' proporre soluzioni vicino a quelle migliori per affidabilita',velocita'prerequisiti,usabilita'...

ciao

----------

## makoomba

 *lopio wrote:*   

> hai detto bene un pachiderma d programma, quel programma

 

ho detto "in tutti i casi in cui ho"

 *lopio wrote:*   

> Ma per questo  vai di compromessi spesso. E' facile dire voglio un qualcosa facile da imparare,veloce,che non consuma...
> 
> ..
> 
> e' un prezzo (piccolo grande decidi tu) da pagare per avere innegabili vantaggi in molti casi applicativi.
> ...

 

Che tu come sviluppatore possa preferire un particolare linguaggio apprezzandone determinati aspetti a discapito del costo in termini di risorse, non implica che l'utilizzatore sia disposto a sottostare agli stessi vincoli.

E' un dato di fatto che una maggiore richiesta di risorse si traduca in un aumento di costi, non lo è dimostrare come il passaggio ad un sistema di sviluppo  "meno esoso" produca lo stesso effetto.

 *lopio wrote:*   

> Non me ne frega niente di promuovere java o cos'altro ma mi spiace osservare che spesso non si propongono soluzioni migliori piu' veloci ed efficienti perche' ci si radica su posizioni immutabili
> 
> Se in python e wxpython proponi qualcosa di valido in 2 minuti , veloce ecc usa quello 
> 
> Forse i linguqggi interpretati tra poco soppianteranno il resto. A me sembra ci si muova verso strade di questo tipo poi se uno vuol sempre programmare in C sono fatti suoi ma non venga a dire che partendo da 0 ci mette la meta' del tempo in tutte le situazioni

 

Nessuna posizione immutabile o pregiudizio di sorta, solo constatazioni pratiche di certo più attendibili rispetto a generici spec sheets.

Ci sono valide alternative a java, anche nei linguaggi interpretati.

Nella mia esperienza e in quella di molti altri utenti, l'alternativa si è sempre dimostrata migliore e questo è un fatto incontestabile.

Che java possa soddisfare determinate esigenze lo accetto, che si cerchi di imporla come soluzione "a prescindere" perchè "è portabile, bla, bla, etc" no.

----------

## lopio

 *makoomba wrote:*   

> 
> 
> Ci sono valide alternative a java, anche nei linguaggi interpretati.
> 
> Nella mia esperienza e in quella di molti altri utenti, l'alternativa si è sempre dimostrata migliore e questo è un fatto incontestabile.
> ...

 

Questo e' incontestabile per te. Non puoi dire di aver sempre fatto scelte migliori a priori ne' di aver sempre trovato soluzione ottimali per ogni problema visto che spesso a posteriori si scopre che quello che si e' fatto poteva essere fatto meglio e diversamente.

Se tu escludi sempre una soluzione java o non hai trovato soddisfazione sono tue opinioni (e di molti altri senza dubbio) ma allo stesso modo ci sono altri migliaia di sviluppatori che la pensano diversamente

 *makoomba wrote:*   

> 
> 
> Che java possa soddisfare determinate esigenze lo accetto, che si cerchi di imporla come soluzione "a prescindere" perchè "è portabile, bla, bla, etc" no.

 

non e' una soluzione a prescindere ma una buona soluzione in molte applicazioni (soppessi i vantaggi e gli svantaggi).

 Io ho citato post sopra un mio caso a grandi linee e in quel contesto java si e' rivelato un buona soluzione.Con altre soluzioni probilmente saremmo ancora li' a risolvere complicazioni su complicazioni dovute ai diversi so in gioco e all'uso di diversi protocolli.

PS chiedo scusa a tutti per l'ot che credo non porti da nessuna parte 

Chi ha le sue teorie se le tiene e chi ha avuto esperienze negative rimane scottato.

----------

## makoomba

 *lopio wrote:*   

> PS chiedo scusa a tutti per l'ot che credo non porti da nessuna parte 

 

concordo, tanto vale finirla qui.

----------

## lopio

 *makoomba wrote:*   

>  *lopio wrote:*   PS chiedo scusa a tutti per l'ot che credo non porti da nessuna parte  
> 
> concordo, tanto vale finirla qui.

 

spero senza rancore per una eventuale discussione piu' cosruttiva in un'altra occasione pero'   :Wink: 

ciao

----------

## makoomba

 *lopio wrote:*   

> spero senza rancore per una eventuale discussione piu' cosruttiva in un'altra occasione pero'   

 

/me che ha superato da un pezzo la fase "non gioco più e mi porto via il pallone"

non pensavi mica di avermi convinto, no ?  :Wink: 

----------

## lopio

 *makoomba wrote:*   

> 
> 
> non pensavi mica di avermi convinto, no ? 

 

devo essere sincero? per nulla   :Wink: 

alla prox

----------

## gutter

Moved from Italian to Off Topic.

----------

