Newsgroup: it.comp.os.linux.development
Titolo: Ide ?

Ciao a tutti,
premetto che sono nuovo della programmazione linux, anche se ho passate 
esperienza con Delphi/Kylix.
Ho letto la FAQ del newsgroup, ma se possibile vorrei qualche altro 
chiarimento sugli IDE disponibili per linux.
Per il momento ho solo Windows XP installato e quindi ho provato Visual 
Studio 2005 Express (sia C# che 
VB.NET
). Sono rimasto ottimamente 
impressionato. Stabilità e completezza dell'ide, enorme quantità di 
documentazione anche in italiano, incredibile facilità di programmazione 
grazie al framework, ed è anche gratis.
Vorrei trovare per Linux qualcosa che si avvicini il più possibile perché io 
e alcuni miei amici avremmo diverse idee da realizzare ma poco tempo per 
domare un ide non facile da utilizzare o un linguaggio complesso come C++ 
(Kylix lo eviterei perché è ormai abbandonato).
Infine: se uso le librerie GTK+ posso far funzionare un programma su kde ? 
O viceversa, se uso le QT, posso far funzionare il programma su Gnome ?
Grazie,
Claudio.

 O viceversa, se uso le QT, posso far funzionare il programma su Gnome ?
Una libreria é una libreria. Chi se ne frega del desktop o window manager che 
usi?
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Heavy Metal Or No Metal At All! Whimps And Posers Leave The Hall !>-
 	 			Manowar - Metal Warriors

Per linux puoi utilizzare kdevelop che supporta diversi linguaggi
(c++,c,ruby,+puthon,java,etc), anjuta (più orientato verso c e c++),
monodevelop (per mono e c#) e infine esiste anche un visual basic like
ossia realbasic che nella sua forma per intel i386 è gratuito (ma non
per uso commerciale) e ovviamente puoi usare java (con swing o swt)
magari usando eclipse che è comunque un ide che si costruisce su
plugin e supporta diversi linguaggi e librerie.
QT e GTK sono due librerie nate per lo sviluppo di applicazioni gui,
sul framework qt è nato il progetto kde e su gtk gnome, ma nessuno ti
impedisce di realizzare un software che si basa su qt e poi lo utilizzi
con blackbox, in altre parole al window manager non gle ne frega una
mazza delle librerie che usa un software.
Una considerazione diversa andrebbe invee fatta su linguaggi e
librerie.
Essenzialmente le librerie utilizzate per la programmazione in ambiente
linux sono wxwidgets, gtk, fltk, qt mentre per quelli che riguardano i
linguaggi di programmazione la fanno da padrone c/c++, pypthon, ruby,
php qualcosina in java e pochissimo (se dio vuole) in c#.
Se ti interessa la portabilità qt nella versione 4.x è gratuito per
lo sviluppo opensource sia su windows che su mac, ma la versione free
non si integra con visual studio ma puoi usare codeblock e mingw come
compilatore. QT è un framework particolare alle proprie classi che
sostituiscono template QTL, una propria classe per la gestione delle
stringhe (copy on write): qtstring e via dicendo, un ricco set di
widgets, un buon sottosistema di rete e una decente integrazione con
opengl, un framework per mvc, e dei widgets data driven per
l'integrazione con le basi di dati; come particolarità usa un
meccanismo denominato signal e slot che richiede un meta object
compiler praticamente vedilo come un pre pre processore e che tanto fa
piangere i puristi del c++.
Wxwidgets è LGPL ossia gratuito anche per uso commerciale su tutte le
piattaforme che supporta, come qt ha le proprie classi che sostituisco
le classi template e la gestione delle stringhe, ha un buon
sottosistema di rete e un set di classi per l'integrazione con ftp e
file zip che risultano molto comode, una serie di classe per mvc
(chiamate Document/view), simili a quelle di qt (ma wxwidgets le ha
implementate per prima), una decente integrazione con opengl, la
particolarità di wxwidgets risulta essere che mappa i propri widgets
sulle librerie disponibili sulla piattaforma ospite, ossia mfc su
windows, gtk su linux, carbon su mac ma può anche essere compilata
come wxuniversal che ha i propri widgets e che si basa direttamente
sulle primitive di disegno, utilizza una event table che per certi
versi ricorda mfc e fox per la mappatura eventi/funzioni di callback ad
es:
BEGIN_EVENT_TABLE (BasicFrame, wxFrame)
  EVT_MENU ( BASIC_EXIT,  BasicFrame::OnExit)
  EVT_MENU ( BASIC_ABOUT, BasicFrame::OnAbout)
  EVT_MENU ( BASIC_OPEN,  BasicFrame::OnOpenFile)
END_EVENT_TABLE()
ma può utilizzare anche una mappatura dinamica:
BasicFrame->Connect( IBASIC_EXIT, wxEVT_COMMAND_MENU_SELECTED,
		(wxObjectEventFunction) &BasicFrame::OnQuit );
Sinceramente non conosco gtk, mentre per fltk ti posso dire che è una
libreria estramamente compatta, usa delle semplici funzioni di
callback, ha un buon widgets per la realizzazione di editor di testi
alla io nedit, un widgets per la visualizzazione di html (3.2) e
integrazione con opengl, è pratica comune usarla nella sua forma
statica ed aggiunge all'eseguibile solo poche centinaia di k, di contro
i widgets sono bruttini esteticamente ma resta un must per le piccole
applicazioni.
Sia wxwidgets che qt che gtk possono essere utilizzate anche con
python, qt inoltre ha dei binding per ruby.
Dei mie colleghi stanno realizzando un piccolo gestione in php-gtk
segno che anche l'integrazione di gtk con php è matura, tieni presente
che PHP 5 ha un ottimo supporto per l' OOP e per i database e che è
molto semplice da utilizzare.
GTK nella sua forma GTK# è la miglior libreria grafica per C# in
ambiente mono, personalmente non amo molto ne .NET ne mono, mentre per
java puoi utilizzare swing che è un set di widgets disegnati in
proprio (e che ha un tema gtk like) oppure swt che si mappa
direttamente sui componenti della piattaforma ospite (ma in questo caso
devi distribuire anche i file swt di libreria con l'applicazione) ma
sinceramente anche di java utilizzato per lo sviluppo desktop non sono
grande fans.
RealBasic è un prodotto commerciale ma ne esiste una versione gratuita
per linux intel ma ti giochi tutte le altre piattaforme su cui gira
linux, nella versione free ha alcune limitazioni (nel sottoinsieme di
rete), la versione commerciale ti consente la cross compilazione del
software per tutte e 3 le piattaforme supportate (ossia linux/win/mac)
ha una buona sintassi OOP ed una serie di componenti comuni e non,
diciamo che come caratteristiche del linguaggio non è cosi dissimile
dal 
vb.net
, come vantaggio non richiede i giga del 
framework.net
 come
supporto ma un applicazione sta in pochi mega ha un proprio database
interno realdb (che in pratica è solo sqlite) come contro l'ide è un
po' bruttino e la realsoftware non corregge i bugs ma tende a
concentrarsi sulle nuove caratteristiche, ma se hai esperienze con
kylix non è troppo diverso e ha il vantaggio che è il medesimo su
win/mac e linux.
Se hai poco tempo puoi provare php-gtk o realbasic ma anche python +
wxwidgets.
Sia qt che wxwidgets usate da c++ richiedono un minimo di tempo per
essere sfruttate al pieno ma sono supportate da kdevelop, puoi
utilizzarle su windows tramite codeblocks su windows wxwidgets ci si
lavora bene tramite devc++. Su mac si integrano con xcode (ma non in
maniera semplice).
Personalmente utilizzo QT con C++, uilizzo emacs su tutte e 3 le
piattaforme e uso qmake (uno strumento integrato nelle qt), per la
generazione dei makefile, praticamente entri nella directory dove
stanno i sorgenti:
qmake -project
qmake -o Makefile 
progetto.pro
make
oppure leggera modefica del file 
progetto.pro
 ad esempio quando devi
utilizzare altre librerie.
Non ci sono libri in italiano ma di solito le riviste di programmazione
pubblicano tutorial su qt periodicamente, anche qui consiglio personala
la rivista dev che secondo me è rimasta l'unica con lo spirito dei bei
tempi e con una certa serietà ma ovviamente de gustibus.
ciao
Claudio ha scritto:


Grazie, mi sei stato veramente di grande aiuto !
Claudio.

 complesso come C++ (Kylix lo eviterei perché è ormai abbandonato).
Oltre ai linguaggi citati dagli altri e agli IDE menzionati (di cui, a
parer mio, ti consiglierei Python+GTK+KDevelop), visto e considerato
che provieni da Delphi, ti consiglio di dare un'occhiata a FreePascal e
a Lazarus. Il primo ovviamente e' un compilatore pascal che ti permette
di ottenere una buona compatibilita' con il compilatore Obect Pascal
della Borland (o della nuova societa' che prendera' il controllo
dell'IDE), mentre il secondo e' un ambiente parecchio simile (se non
proprio uguale) a Delphi. Attualmente, come librerie grafiche, puoi
usare GTK 1, GTK 2 e una terza libreria di cui non ricordo il nome. Con
Lazarus, invece, da quanto ne so, ppuoi usare solo le GTK 1 e in parte
le GTK 2. Considera inoltre che sia Lazarus che FreePascal sono
multipiattaforma, cosa che terrei in considerazione
Enrico

 wrote in message 
news:xn0epw2p...@abraham.hellfish.home...
