Sviluppo software su Linux
Moderatore: Staff
Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Sviluppo software su Linux
Salve a tutti ho aperto questo thread con l'intenzione di poter raccogliere opinioni ed utili informazioni circa l'adozione di un linguaggio o un insieme di strumenti per sviluppare applicazioni orientate al desktop.
Mi chiedevo attualmente quali strumenti potrei adottare per sviluppare
applicazioni di software gestionale, front-end per database ed altri programmi windowed.
Sono parecchio indeciso sul tipo di linguaggio da adottare visto che al momento non trovo una scelta multipiattaforma da utilizzare per questo genere di applicazioni.
Ogni consiglio e ben accetto.
Grazie e buon lavoro.
Mi chiedevo attualmente quali strumenti potrei adottare per sviluppare
applicazioni di software gestionale, front-end per database ed altri programmi windowed.
Sono parecchio indeciso sul tipo di linguaggio da adottare visto che al momento non trovo una scelta multipiattaforma da utilizzare per questo genere di applicazioni.
Ogni consiglio e ben accetto.
Grazie e buon lavoro.
secondo me la scelta migliore, per quanto impopolare su questo forum (vè useless? :P) è java. ti permette, usando le swt, di poter usare le librerie grafiche del s.o. su cui gira l'applicazione (potresti scegliere di usare le gtk o le api di uindos) mantenendo la stessa interfaccia di programmazione. inoltre a mio parere è piuttosto facile programmare applicazioni web-oriented e che si interfaccino cn i dbms.
ciao, rob
ciao, rob
- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
be' sì, se vuoi un'applicazione pesante java è una scelta ottima :P. se già lo conosci io consiglio il c++. prendi un eccellente toolkit multipiattaforma quale è qt e usalo. la portabilità è ottima, e la qualità delle applicazioni anche.
un altro approccio ottimo e forse + semplice potrebbe essere quello di un'applicazione web-bases usando php. in questo caso la portabilità è intrinseca.
un altro approccio ottimo e forse + semplice potrebbe essere quello di un'applicazione web-bases usando php. in questo caso la portabilità è intrinseca.
auhauhahuahu, e come te sbaji :P
allora, inizio flame
: che java sia pesante, dipende anche dal programmatore :P... un linguaggio interpretato quale è java, si è visto che perde tempo principalmente nei cicli, perchè ogni riga va ritradotta in linguaggio macchina comportando perdite di tempo assurde... meno male che hanno inventato l'hot spot xò, che si salva la traduzione in binario delle righe di codice + frequentemente utilizzate risultando un bel po' + veloce. inoltre una connessione a un dbms cn java richiede 3 (tre) righe di codice e un package da importare... cn il c++ sinceramente nn ci ho mai provato, ma ci ho provato in c ad interfacciare un'applicazione a un dbms: ho dovuto usare il pro-c che generava codice del cavolo x funziare, inoltre snaturava il linguaggio orientandolo agli oggetti... a sto punto xchè nn utilizzare un linguaggio a oggetti nativo?
per quanto riguarda php... occhio alla sicurezza!
<diplomazia>non che il c++ sia + brutto, ma java mi sembra migliore cm scelta</diplomazia>
ihihihihihih, rob
allora, inizio flame
per quanto riguarda php... occhio alla sicurezza!
<diplomazia>non che il c++ sia + brutto, ma java mi sembra migliore cm scelta</diplomazia>
ihihihihihih, rob
Bhe PHP lo conosco e sviluppo applicazioni web ma vorrei fare il salto verso altre tecnologie e iniziare a sviluppare con linguaggi con un raggio d'azione più ampio come il Java oppure il C++.
Personalmente credo che i linguaggi tipizzati siano più istruttivi rispetto ai linguaggi di scripting almeno é quello che noto quando leggo due righe di C.
:D
L'unico problema che ho al momento é che comunque devo tirare a' campa con PHP ed in background scegliere una tecnologia da iniziare a studiare.
P.S: Ci fai vedere come fai una query con C++ io ci metto 2 sec ^^
Personalmente credo che i linguaggi tipizzati siano più istruttivi rispetto ai linguaggi di scripting almeno é quello che noto quando leggo due righe di C.
L'unico problema che ho al momento é che comunque devo tirare a' campa con PHP ed in background scegliere una tecnologia da iniziare a studiare.
P.S: Ci fai vedere come fai una query con C++ io ci metto 2 sec ^^
- Sari
- Linux 3.x

- Messaggi: 584
- Iscritto il: mer 16 feb 2005, 0:00
- Slackware: 12.1
- Kernel: 2.6.24
- Desktop: Gnome
- Località: Verona
io dalla mia esperienza di C/C++ e Java ritengo Java più semplice e immediato, C/C++ più pulito e veloce. Non si può a mio parere sviluppare un'applicazione con entrambi e pretendere di paragonarla, cioè ogni applicazione o software ha per me il suo linguaggio giusto. Per rimanere nel mio campo, sviluppare un Mud in Java sarebbe una pazzia, i cicli (che superano le milioni di iterazioni nel caso delle liste) sarebbero talmente lenti da prevaricare la velocita' del server irrimediabilmente. Daltro canto se si vuole sviluppare un programma gestionale con accesso a db il java è sicuramente più consigliato. Il mio parere e' quindi : "prima si deve sapere cosa sviluppare e poi si decide che Codice usare"
x kioto: incollo un pezzo di un progetto che avevo fatto... nn aggiungo commenti che mi sembra self-explaining.. purtroppo nn ho il codice pro-c, ma vi assicuro che faceva un po' + schifo di questo...
sono assolutamente d'accordo cn sari.
rob
Codice: Seleziona tutto
import java.util.Vector;
import java.sql.*;
public class Fattura {
public Fattura( int id ) throws Exception {
/* bla bla */
Connection connection;
Statement statement;
try {
Class.forName( "com.mysql.jdbc.Driver" );
connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/e_commerce" );
statement = connection.createStatement();
} catch( ClassNotFoundException cnfe ) {
System.err.println( "Driver non trovato" );
connection = null;
statement = null;
throw new ClassNotFoundException( "Driver non trovato" );
} catch( SQLException sqle ) {
System.err.println( "Connessione al db non riuscita" );
connection = null;
statement = null;
throw new SQLException( "Connessione al db non riuscita" );
}
ResultSet rs = statement.executeQuery( "select t.ID_CLIENTE, f.DATA, t.ID_PRODOTTO, t.QUANTITA, f.PREZZO_TOTALE from fattura f, transazione t where f.ID=t.ID_FATTURA and f.ID=" + id + ";" );
if( rs.next() ) {
this.id = id;
data = rs.getDate( "DATA" );
cliente = new Cliente( rs.getInt( "ID_CLIENTE" ) );
fatturaVector.addElement( String.valueOf( id ) );
fatturaVector.addElement( data.toString() );
fatturaVector.addElement( String.valueOf( cliente.getId() ) );
} else {
throw new Exception( "Fattura numero " + id + " inesistente" );
}
do {
this.addProdotto( rs.getInt( "ID_PRODOTTO" ), rs.getInt( "QUANTITA" ) );
} while( rs.next() );
fatturaVector.addElement( String.valueOf( prezzoTotale ) );
try {
statement.close();
connection.close();
} catch( SQLException sqlex ) {
sqlex.printStackTrace();
} finally {
statement = null;
connection = null;
}
}
/* eccetera... */
}
rob
- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
ma non era compilato a tempo di esecuzione??!!rob ha scritto: un linguaggio interpretato quale è java,
c/c++ fino alla morte (*) se la cosa è limitata ad applicazioni residenti su un'unica architettura!!!!
java non lo conosco ho provato a leggere robe tipo "java for idiots" ma quando vedevo i codici per fare l'"hallo world!" mi cascavano le braccia ed ho smesso...
M.
----------------------------------------------------------------------------------
(*) nel senso che se non trovi le librerie ci muori prima di aver finito il software
compilato a tempo di esecuzione vuol dire interpretato 
comunque funzia così: il compilatore java prende il sorgente (.java) e genera il bytecode (.class), che è il codice multipiattaforma multiarchitettura ecc che viene interpretato dalla java runtime environment (jre). la jre genera dal bytecode generico codice binario tipico dell'architettura su cui deve girare.
ho programmato un sacco e continuo a programmare in c/c++ (soprattutto in c ultimamente) e, da ciò che ho visto, ogni linguaggio ha pro e contro. nn è granchè sensato preferirne uno all'altro solo x simpatia xsonale... cm giustamente diceva sari, guarda prima che deve fare il programma, poi fai la tua scelta.
ciao, rob
comunque funzia così: il compilatore java prende il sorgente (.java) e genera il bytecode (.class), che è il codice multipiattaforma multiarchitettura ecc che viene interpretato dalla java runtime environment (jre). la jre genera dal bytecode generico codice binario tipico dell'architettura su cui deve girare.
ho programmato un sacco e continuo a programmare in c/c++ (soprattutto in c ultimamente) e, da ciò che ho visto, ogni linguaggio ha pro e contro. nn è granchè sensato preferirne uno all'altro solo x simpatia xsonale... cm giustamente diceva sari, guarda prima che deve fare il programma, poi fai la tua scelta.
non mi sembrano tanto diversi c++ e java :Pquando vedevo i codici per fare l'"hallo world!" mi cascavano le braccia
ciao, rob
- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
dunque dunque:

questo è vero, ma java non è così! non ho idea di come sia implementata la JVM, ma comunque legge il bytecode, che è il suo linguaggio macchina. se fosse interpretato il bytecode non avrebbe senso crearlo. credo comunque che alla fine il bytecode sia tradotto in codice macchina nativo just-in-time (jit).compilato a tempo di esecuzione vuol dire interpretato
su questo non sono minimamente d'accordo. il paradigma ad oggetti è, in quando paradigma, un'idea astratta, implementabile in un linguaggio qualsiasi (o quasi, in C comunque si può fare comodamente). a me gli oggetti in sé non dispiacciono, anzi... usati propriamente contribuiscono sicuramente alla "pulizia" del programma e alla leggibilità. quel che mi fa schifo è LA PERVERSIONE con cui java usa gli oggetti. TUTTO è un oggetto, e questo spesso e volentieri complica la vita (vedi il famoso the march of progress), pensa anche solo al dover creare una public static main... quanto casino x niente, senza contare che tutto ciò ha chiaramente il precco della velocità. insomma, xké usare gli oggetti in c? x fare un programma ad oggetti veloce!inoltre snaturava il linguaggio orientandolo agli oggetti... a sto punto xchè nn utilizzare un linguaggio a oggetti nativo?
sacrosanta verità... ma bisogna conoscere molti linguaggi x fare la scelta migliore.Il mio parere e' quindi : "prima si deve sapere cosa sviluppare e poi si decide che Codice usare"
vabbè io di programmazione non ci capisco praticamente niente, ma ho letto un po le basi del python e ho provato a fare cose molto elementari, dalla mia esperienza posso dire che il python è un linguaggio piuttosto semplice da imparare, se dopo è un linguaggio "migliore" o "peggiore" di altri come java o c++ non ne ho proprio idea 
- gioco
- Packager

- Messaggi: 900
- Iscritto il: dom 19 giu 2005, 0:00
- Slackware: last stable
- Località: in the court of the Wesnoth king
- Contatta:
Il bytecode viene creato per ottenere la portabilità su le altre piattaforme. In questo modo ogni JVM viene implementata per una specifica architettura, ma tutte le JVM eseguono lo stesso bytecode.questo è vero, ma java non è così! non ho idea di come sia implementata la JVM, ma comunque legge il bytecode, che è il suo linguaggio macchina. se fosse interpretato il bytecode non avrebbe senso crearlo.
Si è esattamente così.credo comunque che alla fine il bytecode sia tradotto in codice macchina nativo just-in-time (jit).
comunque io sto con useless. Java mette a disposizione delle caratteristiche molto interessanti, ma a un costo abbastanza elevato. Sono tutte caratteristiche che si possono ottenere anche in C, se il C uno lo sa scrivere (perchè lì non c'hai mica i try/catch e le strutture dati già pronte). Il java è utile se uno deve scrivere un programma in 2 giorni, perchè è davvero troppo semplice (e noioso) . :twisted:
- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
d'accordo, ma non sarebbe strettamente necessario solo x questo, potrebbero benissimo leggersi il sorgente. probabilmente il motivo è che è molto + veloce fare il jit di uno pseudolinguaggio macchina +ttosto che di uno umanamente comprensibile.gioco ha scritto:Il bytecode viene creato per ottenere la portabilità su le altre piattaforme. In questo modo ogni JVM viene implementata per una specifica architettura, ma tutte le JVM eseguono lo stesso bytecode.
- gioco
- Packager

- Messaggi: 900
- Iscritto il: dom 19 giu 2005, 0:00
- Slackware: last stable
- Località: in the court of the Wesnoth king
- Contatta:
Probabile. Il bytecode viene anche controllato e ottimizzato dal compilatore. Vengono fatti ad esempio dei controlli sugli upcasting, per vedere se possono essere risolti in esecuzione (sebbene il compilatore non sappia nulla sul tipo di oggetto che si trova davanti).
Dai useless che forse troviamo anche qualcosa di buono in questo folle linguaggio
Dai useless che forse troviamo anche qualcosa di buono in questo folle linguaggio
- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
boia... ma se tutti rompevano col fatto che compilato a tempo di esecuzione è diverso dall'interpretato, che java non è come il basic... ma allora sono stato gabbato...rob ha scritto:compilato a tempo di esecuzione vuol dire interpretato
non mi sembrano tanto diversi c++ e java :Pquando vedevo i codici per fare l'"hallo world!" mi cascavano le braccia
ciao, rob
comunque quello che mi son letto io come "compilato a tempo di esecuzione" voleva dire grosso modo quello che ha scritto useless ovvero che non c'era la diretta interpretazione delle righe del codice sorgente ma una prima rielaborazione in un linguaggio + rapido da interpretare....
o forse no? boia mi è cascato ilmondo...
il discorso sul "hallo world" era riferito al fatto che in c/c++ basta un
int main (int argc, char** argv)
{
...
return quel_che_vuoi_basta_che_non_abbia_i_decimali;
}
di là ci sono classi dappertutto... o mio dio ci hanno assediato...nooooooooooooooo
comunque scegli cosa vuoi fare e poi bla,BLA,BLA... incontestabile: io per fare prima a volte mi faccio gli script matlab per i calcoli
e poi se deve essere un passatempo e non una professione prendi il linguaggio che ti attira di + e provalo: a cambiare sei in tempo!
M.

