Newsgroup: it.comp.os.linux.development
Titolo: Vantaggi nello sviluppare per Linux

Salve a tutti, quali sono i vantaggi (per lo sviluppatore e l'utente finale) 
nello sviluppare applicazioni per Linux rispetto ad altre piattaforme?
Leonardo 

 nello sviluppare applicazioni per Linux rispetto ad altre piattaforme?
A fine mese ti regalano una maglietta con scritto "I did it"
Enrico

Intendevo vantaggi tecnici per lo sviluppatore. (anche se la maglietta 
sarebbe un buon motivo :)
Ad esempio per modifiche "intime" al sistema viene preferito perché i 
sorgenti sono liberi e modificabili, però questo può essere utile solo a 
piccole nicchie di applicazioni che traggono realmente vantaggio da un 
sistema "su misura".
Esistono altri vantaggi come ad esempio librerie particolarmente avanzate 
non disponibili su altre piattaforme?
Personalmente trovo che essere aggiunto nei "repository" di una 
distribuzione dia molta visibilità ad un applicazione ma mi sembra di capire 
che non è così immediato essere aggiunti (soprattutto per applicazioni non 
open-source).
Leonardo 

 applicazioni non open-source).
Dipende da quale tipo di applicazioni sviluppi.
Le applicazioni orizzontali (cioe' rivolte a un gran numero di utenti) 
di solito si sviluppano in C o in C++, senza usare un RAD, e si cerca di 
aggiungerle a un repository di applicazioni.
Le applicazioni verticali, cioe' sviluppate per un committente solo o 
per essere vendute a pochi utenti, di solito si sviluppano in linguaggi 
portabili e di livello piu' alto, come Java o PL/SQL, usando RAD, e non 
si aggiungono a un repository di applicazioni.
Infine le applicazioni embedded di solito si sviluppano in C, ma anche 
in Erlang o altri linguaggi specializzati, senza usare un RAD, e non si 
cerca di aggiungerle a un repository di applicazioni.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 Leonardo
Ciao   Manlio Perillo

     Carlo Milanesi
Leonardo 

 Ciao   Manlio Perillo
Ciao
Leonardo 


Perché non hai mai usato una shell su linux :-)
La caratteristica che fa una shell tale (e che credo abbia portato
Manlio a dire
che non era decente fino a poco tempo fa) direi che è
l'autocompletamento.
A dire il vero ancora oggi trovo l'autocompletamento della shell di
windows
un po' ritardato.
Su linux ogni terminale vanta un autocompletamento dei comandi
(controllando
i path con gli eseguibili), dei files, e in alcuni casi degli
argomenti dei comandi.
E' in grado inoltre di scorrere e fare ricerca nell'history dei
comandi dati.
Questa è solo la prima cosa che mi viene in mente se dovessi fare un
paragone
tra le due shell.
Easily, Mtc

 proprie applicazioni in un repository?
Non credo ti vengano a chiedere con che quale rinomata metodologia
ingegneristica hai sviluppato una applicazione, quanto piuttosto credo
che
conti l'utilita e il riscontro che questa ha trovato tra la comunità
Ciao
`Mtc

 le proprie applicazioni in un repository?
Poche, anche se dipende piu` dall'applicazione che dagli strumenti che 
usi per farla.
Perche` il tuo programma finisca in una distro deve essere abbastanza 
generico da essere utilizzabile da piu` persone possibile.
Se fai un programma che calcola solo l'INPS dei commercianti italiani non 
hai possibilita`.
Se fai un programma di contabilita` abbastanza flessibile da adattarsi 
almeno a tutte le variazioni italiane o, meglio ancora, a tutti i sistemi 
economici europei o mondiali, hai buone possibilita` che ci finisca.
Se il tuo programma e` proprietario scordati il 99% delle distribuzioni. 
Quando diventi leader mondiale nel tuo settore, forse 1 o 2 ti 
prenderanno in considerazione.
In generale, se ti interessa programmare su Linux solo per fare soldi, 
prima trova i clienti che comprino i tuoi programmi, non porti domande 
esistenziali tipo quelle che hai fatto.
Se ti interessa imparare a programmare su Linux fai domande specifiche e 
non generiche. Non "che librerie esistono per opengl ad alto livello" ma 
"devo fare un videogioco: che librerie mi consigliate" o "devo fare una 
gui 3D: che librerie mi consigliate".
Bye.

 l'autocompletamento.
Fosse solo quello... :)
Secondo me una shell decente deve avere una scriptabilita` decente, e 
quella di Windows e` lontana anni luce da quella Linux, per il semplice 
fatto che la maggior parte delle applicazioni non sono pensate per girare 
da shell e integrarsi con essa.
man bash sono 3200 righe, con comandi interni, cicli, funzioni, parametri 
speciali, pattern matching, piping, subshell, gestione dei segnali, ecc.
E` praticamente una virtual machine ottimizzata per lavorare sui file. Ci 
si fanno cose che con qualsiasi altro linguaggio di programmazione 
potrebbero richiedere dal doppio a 100 volte tanto le righe di codice.
Bye.

 le proprie applicazioni in un repository?
Bisogna vedere che cosa intendi con applicazioni RAD.
Se intendi generatori di codice sorgente, di cui poi si puo' fare a meno 
per ricompilare l'applicazione, allora e' possibile includere in una 
distribuzione tali applicazioni.
Ma se intendi macchine virtuali/interpreti necessari all'esecuzione 
dell'applicazione, allora e' possibile includere in una distribuzione 
tali applicazioni solo se la macchina virtuale/interprete fa gia' parte 
della distribuzione.
E se il codice generato puo' essere compilato o eseguito solamente 
facendo uso di strumenti a pagamento, allora e' difficile che sia 
incluso in una distribuzione perche' costringerebbe chi vuole 
ricompilarlo ad acquistare il sistema di sviluppo.
Infine, solitamente le applicazioni RAD sono applicazioni verticali, e 
quindi rivolte a un bacino di utenza troppo ristretto per poter essere 
incluse in una distribuzione.
Tieni conto che solitamente in ambiente Linux una applicazione si 
ritiene accettabile solo se chiunque la puo' eseguire (eventualmente 
dopo averla ricompilata) su qualunque sistema su cui funziona Linux. 
Quindi si devono distribuire anche i sorgenti in un linguaggio 
facilmente disponibile.


Se intendi Shell testuale hai ragione, i sistemi Unix hanno un netto 
vantaggio in questo campo.
Windows non ha mai sviluppato molto la sua shell testuale per prediligere 
interfacce grafiche.
Leonardo 


Leonardo solo 2 parole:
lascia perdere.
Se cerchi l'equivalente dei RAD tipo VB C# etc in ambiente Linux hai i
vari Anjuta+Glade,Mono+monodevelop, QT+QT designer  etc. tieni presente
pero' che devi cambiare mentalita' rispetto ai RAD Windows.
Da parte mia l'unica roba realmente intelligente che ho utilizzato in
ambiente windows era Borland C++ Builder e Delphi e c'e' stato un
momento in cui alla Borland avevano fatto uno pseudo porting sotto Linux
il cui nome era Kylix ma poi e' finito tutto. Sappi pero' che le
applicazioni carine in ambiente linux le usi quotidianamente senza
peraltro saperlo: dai un occhio a 
http://www.tomtom.com/gpl
 e ti
accorgerai che il piu' sofisticato navigatore satellitare con quel popo
di GUI con touch screen e connessioni di tutti i tipi e' scritto in
ambiente linux con librerie specificate sul sito stesso ma, con tanto
olio di gomito. Ovviamente se entri a far parte del team di sviluppatori
di TomTom credo che qualche vantaggio lo avresti. Altro esempio nel mio
ufficio abbiamo telefoni VOIP SNOM (
http://www.snom.com
), ebbene tutti i
telefoni SNOM si basano su Linux. Forse i vantaggi sono piu' tangibili
stto windows nel senso che tutti abbiamo bisogno di 4 form messe in
croce con un po di bottoncini e combo box piuttosto che griglie piu' o
meno colorate per gestire qualche tabella di qualche base dati per
qualche idea malsana di qualcuno che non sa altro da fare che
masturbarsi il cervello, pero' se lo trovi vantaggioso e divertente
allora buona fortuna: io mi sono rotto da un pezzo. Il RAD ti permette
di fare velocemente quello che tutti sanno fare, e, dal punto di vista
economico, di vantaggi ne vedo gran pochi, tanto qualcosa se non la fai
tu, ce n'e' nille altri che la fanno uguale.
Comunque non perdere di vista il fatto che per buona parte delle
applicazioni in ambiente linux venga utilizzato come linguaggio di
programmazione il python la cui GUI puo essere generata anche con Glade.
Per quanto riguarda i repository ti hanno gia' risposto altri.
Ciao
UB
-- 
U'll neva get 2 heaven if ur scared of gettin high

Se durante la creazione di un programma ho bisogno di supporto tecnico da 
dei programmatori, quali sono le tariffe (più o meno)?
(lasciando escluse le community, intendo il supporto professionale a 
pagamento)
Grazie ancora per le risposte ricevute fino a questo momento
Leonardo 

Grazie per le risposte UB, perň non condivido la "declassificazione" che hai 
fatto ai programmi sviluppati con strumenti RAD.
Per me gli strumenti sono strumenti. I tempi e i budget per lo sviluppo sono 
sempre piů stretti e non posso permettermi di perdere una giornata nel fare 
ciň che, grazie ad alcuni strumenti, posso fare in pochi minuti. Non č 
produttivo per i miei fini.
Io mi diverto a scrivere applicazioni RAD, personalmente mi piace vedere 
subito i risultati e cambiare al volo ciň che non mi aggrada.
Concordo col fatto che Linux gira ovunque sotto i nostri occhi. Io ad 
esempio sono circondato da hw montante linux (dal router, al pc, al 
cellulare, al DS con la cartuccia homebrew, ...).
Leonardo 

 
Daccordo, anch'io come gia detto ho usato RAD molto sofisticati quali
C++ Builder e mi hanno dato anche tante belle soddisfazioni creando
applicazioni di natura e genere diverse. Il grosso problema di tali
ambienti e' che ti fanno perdere la voglia di divertirti ed alla fine
diventi loro schiavo. Mi spiego meglio: all'inizio mi sono divertito
come un matto a riscrivere di sana pianta alcuni componenti per windows
che adesso si chiamano credo widget che facevano cose un po' particolari
tipo entry field con maschera e bottoni con effetto trasparenza
utilizzati su chioschi e quindi touch screen. Poi arrivarono i RAD e
allora in nome della velocita' di implementazione giu' a comprare
raccolte di widget delle quali pero' non potendo accedere ai sorgenti in
caso di bug ti tocca sempre aspettare le patch, ma, intanto la suddetta
velocita' va ramenga. A questo aggiungi che mi sembrava di essere
tornato al tempo delle figurine Panini e cioe' ricomprare le raccolte
ogniqualvolta usciva la nuova versione del RAD con pochissimi vantaggi
ma soprattutto con tanti svantaggi dovuti a nuovi bug e cambiamenti
rispetto alle versioni precedenti. Contemporaneamente pero', dato che le
applicazioni in fin dei conti, come dicevo sul post precedente, altro
non sono se non 4 frame con un po di widget all'interno che piu' o meno
hanno pochissima business intelligence e tanta interfaccia utonta, la
mia voglia di programmare e' andata talmente scemando che preferisco
fare delle gran cose in shell e mi diverte molto di piu' per esempio
scrivere una riga di comandi shell per andare ad masturbare un file di
log farcito da una query sql che mi tiri fuori i dati in formato html
pronto per l'apache.
Scusa lo sfogo, ma e' dal tempo dell'universita' (anni '80 circa) che ne
ho viste di tutti i colori e come direbbe Pino Daniele "Mo me so scucciato".


 pagamento)
Ingegneri informatici in India li trovi anche a 5Euro/ora. Non ho
esperienza personale ma, me lo ha confermato un collega ingegnere che
lavora all' ENEL e mi ha detto che ormai loro mandano tutto in India e
fanno sviluppare tutto li. Tieni presente che una donna delle pulizie
qui chiede anche 10Euro/ora.
Leonardo, probabilmente abbiamo sbagliato tutto nella vita, ma, se
rinasco spero di rinascere femmina cosi' faro' la ... zoccola. ;-)
La retribuzione oraria e' sicuramente migliore. :D


 La retribuzione oraria e' sicuramente migliore. :D
Anche in India ?
:)
Ciao.
-- 
*** Linux user # 198661 ---_ ICQ 33500725 ***
    ***  Home  
http://www.kailed.net
  ***
        ***  Powered by openSUSE  ***

> subito i risultati e cambiare al volo ciò che non mi aggrada.


 programmazione il python la cui GUI puo essere generata anche con Glade.
Stai introducendo un discorso di cui sai poco e male. E` vero che
molte applicazioni sono  scritte in Python (una su tutte, l'installer di
Fedora), ma non tutte usano Glade/Gtk come interfaccia. Da questo
punto di vista, Python e` un ilnguaggio agnostico. Per esso sono
disponibili praticamente tutti i maggiori toolkit grafici in
circolazione, siano essi multipiattaforma (GTK, Qt, WxWidgets), siano
essi specifici per una piattaforma (Win32, Carbon)
Enrico

 
Noo sei caduto !!!
Il topquoting nomn me lo aspettavo !!!
Si vede che vieni dalla bambagia di windows.
Aneddoto:
Un giorno tanto tempo fa stavo scrivendo un software che doveva girare
in ambiente bancario. piu' o meno un foglio elettronico e siccome era la
banca a dettare legge sono stato costretto ad usare Microsoft C 5.2.
Tutto e' andato perfettamente. Poi sono dovuto passare alla versione 6.0
perche' il sw doveva girare in ambiente OS2 1.3 di IBM quando IBM e M$
erano culo e camicia. Ebbene tutto e' cominciato ad andare a rotoli. Il
tutto ho scoperto in debugging accadeva in casi particolari quando in
seguito ad impostazioni sulle varie celle del foglio elettronico su un
cella qualsiasi compariva la divisione del risultato di un altra cella
diviso zero. Quindi il tutto per farla semplice e breve avveniva in
condizioni abbastanza facili da implementare:
All'inizio
CELLA  |  VALORE
-------|--------
A1     |    1
A2     |    0
A3     |    0
A4     |    $A$1/$A$2
A5     |    $A$3/$A$2
Ovviamente A4 dopo il ricalcolo correttamente aveva come valore il NAN
(not a number cosi veniva chiamato) ma non era piu' gestito l'errore che
potesse esserci un'operazione del tipo 0/NAN (cella A5). Dopo il
ricalcolo il programma inchiodava sia l'ambiente windows che l'ambiente
OS2. Risultato : Panico. Chiamata il supporto Microsoft mi mandano via
FAX dall' Irlanda (mi pare) la patch delle librerie di base matematiche.
32 pagine di FAX poco leggibili con tante scuse. Programma da
consegnare. Che faccio? Ho gestito da me lo 0/NAN. e per fortuna che il
ricalcolo della cella era in un posto solo ed ho trovato la scappatoia
se no .... ciao nina.
Altro che componenti, in questo caso siamo ancora alle aste di prima
elementare. Ormai mi fido solo di me stesso e del mio olio di gomito.
Buona fortuna



Hai perfettamente ragione riguardo alla mia incompetenza per quanto
riguarda Python e tutto il resto che hai detto. Non li ho neanche mai
usati se per questo, pero' prima o poi qualcosa sicuramente la faro'. Ho
 detto quello che ho detto semplicemente proprio come hai detto tu
perche' ho visto buona parte delle aplicazioni scritte in python, lungi
da me parlare di quale tool utilizzare per creare l'interfaccia utente
anche perche' sarei l'ltima persona alla quale chiedere. E' un pezzo che
non scrivo piu' programmi per utenti finali. Sotto questo punto di vista
mi sento un tantino troglodita.
Ciao e scusa


Una volta gli ambienti erano molto più buggosi ma con l'evolversi dei tempi 
le cose sono cambiate. (almeno i compilatori e le librerie più utilizzate 
non presentano bug molto visibili e ora.. le patch te le mandano via e-mail 
:)
Pardon per il topquoting, a volte scrivo di fretta e non ci faccio caso. Ma 
perchè dici che sono caduto? Sono ancora sulla sedia :)
Con tutta sincerità non capisco la tua presa di posizione. C'era un errore, 
l'hai segnalato e ti hanno mandato la patch... non trovo nulla di strano. 
Sbagliare è umano...
Leonardo 

 
Via fax ? 32 pagine di assembler ? con tutti gli errori che puoi
compiere digitando ? e soprattutto dalla piu' grossa software house a
livello mondiale ?
Un floppy da 5" 1/2 360 K credo costasse di meno!!!!
Ciao


 Sono ambienti diversi, con le loro caratteristiche peculiari.
Personalmente trovo dei vantaggi nello sviluppare e debuggare su linux 
piuttosto che su windows, in particolare legati alla fase di debug e 
deployment.
- Se un'applicazione crasha il sistema produce un core dump dal quale e' 
spesso facile con il debugger risalire alla causa del crash.
- In sistemi gia' in produzione e` molto piu` semplice e meno intrusivo 
monitorare il funzionamento dell'applicazione e verificare eventuali 
errori di configurazione.
- Il programmatore ha il controllo totale del sistema di build, la cosa 
e` possibile ovviamente anche su windows, utilizzando pero' tools unix like.
- La catena di sviluppo e` free (anche VC nella versione express lo e`, 
ma ha un tot di limitazioni piu` o meno aggirabili).
- (detto gia` da altri) Le API posix sono semplici E flessibili, non ci 
sono chiamate con 12 parametri NULL e 7 strutture di passaggio per ogni 
funzionalita`.
- FORK - utile soprattutto per applicazioni server, ma e` un sistema 
semplice e comodo per realizzare multi-processing.
--
Bye,
  Gabry

 ha un tot di limitazioni piu` o meno aggirabili).
Anche su Windows nessuno ti obbliga ad usare Visual Studio, SharpDevelop è 
un'ottimo ide opensource per lo sviluppo .net e per lo sviluppo nativo si 
può scaricare il Windows SDK gratuitamente e usare l'ide preferito.
Ciao
Leonardo 

 si può scaricare il Windows SDK gratuitamente e usare l'ide preferito.
Si, ma non e` la catena di sviluppo piu` diffusa, e' molto + facile 
trovare in rete informazioni relative a problemi di compilazione / 
legati all'ambiente per visual studio rispetto a tutti gli altri 
ambienti messi insieme, idem x gcc su unix. Inoltre .net non e` un 
ambiente adatto a tutto.
Bye,
  Gabry

 tutto.
La Documentazione ufficiale (MSDN) è molto ricca (carente solamente in 
particolari sezioni di interoperabilità con la Shell di Windows) però tutte 
le API pubbliche sono documentate in C e quindi l'ambiente di sviluppo non è 
dipendente in alcun modo dalla documentazione.
La documentazione legata a .Net invece fa spesso esempi a procedure in 
Visual Studio ma la documentazione delle classi è anch'essa indipendente. La 
uso senza problemi anche con SharpDevelop col quale è addiruttura integrato 
in un riquadro per averla subito a disposizione.
Non bisogna confondere Visual Studio con .Net, Visual Studio comprende anche 
Visual C++ che permette di scrivere codice nativo (c'è anche MASM per 
l'assemby) ed è praticamente adatto a tutto (ovvero puoi scrivere quello che 
vuoi senza limitazioni)
Leonardo