PDA

View Full Version : [OT?] Gravi dilemmi esistenziali....


ashram
13-06-2010, 23:49
Premetto che lavoro nella IT come sistemista generico *nix/windows,nessun linguaggio di programmazione richiesto,faccio gestione enterprise di server (conosco giusto lo scripting bash essenziale per la gestione).
Non ho mai avuto una grande spinta a imparare linguaggi di programmazione...all'università ho ricevuto una piccola infarinatura di C.

Adesso mi sono messo nel tempo libero a studiare (solo per cultura personale si intende)...ed è sorto un grande problema :

- a casa sono MacOS dipendente (macbook pro,imac 27 i5,iphone etc etc ahah)
- al lavoro ovviamente postazione con Windows

Grave problema.Svilupperei al 50% in ufficio e al 50% a casa,per cui ho bisogno di un ambiente di programmazione multiplatform.
In queste settimane ho fatto moltissimi test ed eccovi i risultati:

1 - Framework web (se non è crossoplatform quello hahah).Php e soprattutto Ruby on Rails,che reputo veramente eccezionale.Il fatto è che voglio un linguaggio di programmazione con GUI standalone....

2 - QT + python o c++. Non esistono libri decenti che non siano dell'anteguerra (ne ho visto uno per la parte c++ e uno per la parte python con codice ormai inusabile),c++ veramente troppo complesso per un uso for fun come il mio,pyqt veramente ininstallabile tra 10000000 errori di compilazione sempre diversi ,sistema signal/slot che non mi piace molto,come il raggruppamento grafico nel disegnare la gui,nessun ambiente veramente integrato per linguaggio che non sia c++

3 - RealBasic...a pagamento,veramente multiplatform,10 mb anche per un hello world,poco usato,interamente proprietario,conoscenza praticamente inusabile in ambito lavorativo

4 - Wxpython/Wxruby....nessun ambiente integrato,ottimi linguaggi e veloci.Col cavolo che mi metto a posizionare oggetti a mano e a scrivere ogni cosa anche al di là della logica dell'applicazione(data una letta veloce alla prima parte di wxpython in action).peccato

5 - Java.Immenso,fa paura.Con netbeans la progettazione di una interfaccia è comoda e veloce...peccato non esistano libri o documentazione per lo sviluppo specifico di programmi con gui con swing...ogni libro che ho visto se ne occupa per mezzo capitolo...duro

Sono nella indecisione più totale,un consiglio ? :) Scusate il wall of text

Ah vi dico cosa vorrei fare per iniziare così vi fate una idea :

1- collegamento a un db mysql esterno via rete con conseguente visualizzazione in textfield o tabelle con possibilità di CRUD classiche.

2 - elenco telefonico interno sempre su db esterno (non ci crederete ma non lo abbiamo ahahaha)

3 - con l'aumentare della conoscenza un client ssh remoto che lanci script e raccolga in un log locale i risultati.....

Non riesco a capire perchè in nessun libro di nessun linguaggio che non sia web si parli di connessioni a db esterni quando ormai è la prassi del 99,99% del software..

PGI-Bis
14-06-2010, 00:18
Sulla piattaforma Java girano 240 linguaggi diversi. Tra questi ci sono sia Ruby che Python. Il fatto che girino sulla piattaforma Java ti permette di usare le librerie (e la documentazione) di Java.

Pigli, crei la tua GUI con Netbeans e la "controlli" usando jython o jruby (o jhaskell, o scala, o fortress, clojure, fan, javascript, lisp, pascal, tcl, scheme e via dicendo).

Su Swing, c'è un bel libro di O'Reilly (Java Swing) ma è un malloppone. Ci sono i tutorial di Sun, che sono più snelli.

http://java.sun.com/docs/books/tutorial/uiswing/

Si tratta comunque di una libreria voluminosa, ci vuole un po' per digerirla.

Circa le connessioni, non se ne parla probabilmente perchè non ci si connette più "direttamente". Tutte le piattaforme hanno uno o più framework che gestisce la persistenza, il cui primo scopo è proprio quello di evitare di "fissare" nel codice sorgente l'atto di stabilire una connessione con una base dati, per ragioni di portabilità.

PS: in ogni caso la via esteticamente più gradevole per creare una GUI Java è usare un editor SVG. Bisogna però avere un minimo di dimestichezza con il linguaggio prima di addentrarsi in queste paludi.

ashram
14-06-2010, 00:58
Quindi l'editor grafico di netbeans è il modo migliore per creare una gui in java ? jython o jruby vado a informarmi su come usarli :) spero in una grande collezione di esempi pratici

P.S. Il libro oreilly è del 2002......non tanto aggiornato mi sa

P.S.S. Ho letto che sia jython che jruby non supportano il disegno visuale della gui (con netbeans almeno)...PGI sapevi il contrario ? Non ci penso nemmeno a farmi una gui via codice :)

PGI-Bis
14-06-2010, 01:44
Direi che sia "adeguato allo scopo".

Siccome quando usi un GUI editor (qualsiasi, anche non java) lo scopo è il minimo sindacale, qualcosa che si agita nel brodo primordiale, è difficile parlare di "migliore". Lo stesso risultato lo ottieni nello stesso modo con l'editor visuale di eclipse o con quello di intellij o con quello di un qualsiasi altro IDE per un qualsiasi altro linguaggio.

Se vuoi esprimere qualcosa di un po' più osè devi passare ad altro. Il top ce l'hai con SVG. Usi un Inkscape piuttosto che un illustrator o un'altra diavoleria da grafici e importi il tutto con batik, codificando parte della dinamica dell'interfaccia.

E ottieni risultati più interessanti. Mi sembra comunque di capire dagli obiettivi immediati che il campo non ti interessi particolarmente, quindi vai tranquillo con matisse (il gui editor di netbeans).

Circa l'O'Reilly, è ancora aggiornato. Non ci sono state modifiche di rilievo a Swing dalla sua uscita. La perfezione non è migliorabile.

ashram
14-06-2010, 01:54
Il fatto è che essendo un principiante totale mi riesce difficile capire la relazione tra il codice autogenerato da matisse e il codice "vero" dell'applicazione...mi spiego meglio,fino a che si tratta di fare l'esempio del convertitore celsius-fahrenheit degli esempi tutto ok...ma quando si inizia a parlare di connessione mysql e visualizzazione dei dati anche solo in una tabella non saprei da che parte prendere la cosa :)

Rikiji
14-06-2010, 02:07
Se cerchi nei libri sui linguaggi riferimenti ai database non li troverai mai, se non appunto nei mattoni generici sulla programmazione web.

Nei libri dei linguaggi troverai sintassi, paradigma e libreria standard, per connetterti ad un db devi trovare una libreria adatta e leggerti la documentazione.

PGI-Bis
14-06-2010, 02:34
P.S.S. Ho letto che sia jython che jruby non supportano il disegno visuale della gui (con netbeans almeno)...PGI sapevi il contrario ? Non ci penso nemmeno a farmi una gui via codice :)

La gui la crei con l'editor come se fosse una normale libreria java e la usi in Jython o JRuby come se fosse un qualsiasi altro pezzo di programma jython o jruby.

Per jython c'è un plugin per Netbeans quindi puoi restare direttamente in Netbeans. Il principio è comunque lo stesso anche per JRuby (di cui non trovo il plug in per Netbeans ma da qualche parte c'era).

Per fare un esempio terra terra, se io in netbeans creo una libreria "pyui", e faccio la gui con matisse, poi creo un progetto python (usando il plugin e jython come piattaforma) e scrivo:

from pyui import PyFrame
from java.lang import Runnable
from java.awt import EventQueue

class Runner(Runnable):
def run(self):
f = PyFrame()
f.pack()
f.show()
EventQueue.invokeLater(Runner())

mi si apre la finestra. Se nella finestra aggiungo un'etichetta (JLabel) di nome "jLabel1" (che fantasia), "di là" posso dire:

f.jLabel1

(il tutto richiede che il "jar" della GUI sia incluso tra le librerie del jython usate dal programma python).

Circa le difficoltà, sarebbe anormale se non tu non le avessi.

Devi semplicemente andare avanti con calma e perseveranza, un pezzo per volta. Ricorda che per quanto astrusa una funzione possa sembrare c'è sempre un documento che la spiega. Basta avere la pazienza di cercarlo e leggerlo.

Vuoi connetterti ad un database?

http://java.sun.com/docs/books/tutorial/jdbc/basics/index.html

Un passo alla volta e via tranquillo.