Newsgroup: it.comp.os.linux.development
Titolo: Aiutatemi a capire

Ciao a tutti,
premetto che rispetto i gusti e le scelte di ognuno, quindi questo post
nasce solo dal desiderio di capire meglio una cosa.
Io programmo in C++ in ambiente linux, non ho grande esperienza e non
scrivo grande quantità di codice.
Da quando uso il C++ in ambiente linux ho provato diversi ambienti di
sviluppo (anjuta, kdevelop, eclipse e C++ Builder X) e alla fine sono
sempre tornato alla coppia editor+makefile (per pigrizia uso Kate e non
vim o emacs... lo so che sono molto + potenti e prima o poi imparerò
ad usare uno dei due...).
Prima di programmare in C++, ho fatto un paio di progetti in Java,
usando prima Forte e poi Idea e Eclipse.
Ancora oggi, rimpiango ambienti come Idea ed Eclipse e ancora oggi
cerco dei sostituiti per il c++ sotto linux (ultimamente ho visto che
il CDT 3.0 per Eclipse ha fatto grandi passi avanti e mi sembra la cosa
migliore).
Leggendo le discussioni sull'argomenti in rete mi sono fatto un'idea:
non c'è tanto una barrieta a fra comunità Linux e Windows, quanto un
muro di gomma fra comunità Java e C++.
A titolo di esempio noti e costosi prodotti come Borland C++ Builder e
Visual Studio  non li ho trovati per nulla paragonabili (parliamo di
funzionalità in fase di editing del codice e strumenti di base) ad
ambienti come Idea e Eclipse (parlo del plugin Java). A questo punto mi
viene spontanero pensare che chi parla di IDE per C++ non abbia mai
scritto codice Java con Eclipse o Idea.
Mi sbaglio?
Io capisco e rispetto chi usa editor come vim o emacs, ma non capisco
come mai NESSUN sviluppatore C++ non invidi gli strumenti dei loro
colleghi che programmano in JAVA? Possibile che uno strumento così
complesso e costoso come Visual Studio sia così indietro in molte
funzionalità nell'editing del codice? Forse è un problema di
linguaggio: la potenza e flessibilità del C++ impedisce di sviluppare
strumenti sofisticati per editarlo a differenza di Java?
Aiutatemi a capire... :-)
Ciao
Daniele

 
Spero di non aver fatto troppo casino.
Con tranquillità,
-- 
Matteo Settenvini
FSF Associated Member
Email : 
mat...@member.fsf.org
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d--(-) s+:- a-- C++ UL+++
P?>++ L+++>$ E+>+++ W+++ N++ o?
w--- O- M++ PS++ PE- Y+>++
PGP+++ t+ 5 X- R tv-- b+++ DI+
D++ G++ e h+ r-- y?
------END GEEK CODE BLOCK------

 disponibile)... etc.
Io invece sono abbastanza convinto del "agile development":
http://agilemanifesto.org/
Non vuol dire fare le cose fatte male, ma vuol dire farle per vedere se
funzionano, tanto il cliente potrebbe cambiare tutto il tuo lavoro di
stendere UML, requisiti, ecc ecc in un attimo con qualche decisione che
non gli piacciono le cose come sono, quando si rende conto cosa vuole
veramente (cosa che spesso accade solo dopo aver visto un prototipo).
Saluti,
-- 
David N. Welton
- 
http://www.dedasys.com/davidw/
Linux, Open Source Consulting
- 
http://www.dedasys.com/


Su questo non ti posso aiutare, sorry!
Cordialmente 
Daniele

diffusione e integrazione con ambienti liberi.
Ok, ma io intendevo dire che la cosa curiosa è che invece della solita
guerra santa Linux vs Win, mi sembra di aver visto che le ositlità
maggiori sono tra JAVA e C++ (indipendentemente dal sistema operativo
usato, o dal fatto di sviluppare coice open o no).
Ciao
Daniele

 Daniele
Ciao, 
Matteo



Quando metti due informatici assieme trovano qualcosa di cui discutere:
Java contro C contro linguaggi dinamici
Emacs vs vi
Postgresql vs Mysql
Linux vs FreeBSD
ecc...  Non ci fare caso:-)


>essere utili nella scrittura sia di codice C++ che Java.
Credo che qui sia sotteso un altro punto importante.
Java ha il completamento perchè ha tutto (o quasi ) nelle sue librerie 
(gigantesche ) di sistema.
Penso che non sarebbe utile fare un completamento simile per C++ in 
quanto credo che per nessun programmatore c++ serva il completamento 
della keyword while o di cin.getline....mentre per il resto ... ognuno 
lavora con librerie diverse.
[...]

 lavora con librerie diverse.
Si, ma il completamento automatico viene fatto grazie al parsing delle
librerie usate in un progetto: tu dici all'IDE che librerie vuoi usare,
lui parsa gli header e poi ti fornisce il completamento automatico di
quelle funzioni. Quindi il fatto di usare librerie diverse non dovrebbe
essere problematico.


Ammetto ... di non averci pensato :))))

 diversi dall'implementazione Microsoft, per esempio).
La flessibilità del C++ rende "disegnare uno std::vector con le 
caselline" un compito non da poco. In java, come citato, ci sono dei 
contratti ben definiti: in C++ un debugger dovrebbe *riconoscere*
l'implementazione utilizzata, perchè std::vector potrebbe essere
quello della libreria GNU ma anche, legittimamente, quello di
STLport. Probabilmente occorrerebbe estendere le annotazioni di debug
(non ricordo se si usi ancora il formato DWARF) per avere una qualche
chance di venirne a capo.
Il C++ moderno, caratterizzato dall'uso esteso dei template, pone seri
ostacoli alla realizzazione dei debugger interattivi.
Barone Frankenstein
-- 
Paranoia is a survival asset.

 foresta
In java il concetto di multiereditarieta` viene visto estendendo la classe
e facendogli implementare una interfaccia
Henryx

 esempio, ha un toolkit unico.
Java ha _due_ toolkit grafici standard (AWT e Swing, in cui il primo
oramai ricopre una parte di complemento per il secondo), e una marea non
standard (SWT e SwingWT sono i primi due che mi vengono in mente, ma ve
n'e` anche uno per GNUStep, uno per Wx, uno per console...)
Henryx