kdevelop+Debian

Dimitrios Kamenopoulos el97146 at mail.ntua.gr
Fri Oct 25 00:50:02 EEST 2002


On Thursday 24 October 2002 12:17, Panayiotis Prokopiou wrote:

> na kano mia erothsh. Oses fores doulepsa me to ms studio me bolepse
> afantasta h dinatothta na orizo px mia struct a {int a, char b}; kai opote
> grafo a-> na mou bgazei mia lista me ta a,b gia na dialekso. Osa IDE exo
> dei mexri tora sto linux den exoun afth thn ikanothta. Gnorizei kaneis an
> afto ginetai to kdevelop3/kylix3 ?

Το Kylix το κάνει. Το KDevelop 3.0 επίσης το κάνει, αλλά του ξεφεύγουν ένα δύο 
λεπτομέρειες (π.χ. δεν το κάνει αν το object σου ανήκει στην πρότυπη 
βιβλιοθήκη, και το κάνει μόνο αν ανήκει σε κλάση που έχεις ορίσει εσύ).

Χρησιμοποιώντας για λίγο το Kylix, μάλλον με μπέρδεψε παρά με βοήθησε αυτό το 
φίτσα. Πράγματι, στη Java που τα πάντα καλούνται με τον τελεστή . και είναι 
μέθοδοι ή κλάσεις ή ιδιότητες, το code completion υλοποιείται εύκολα και 
βολεύει. Στη C++ όμως που έχει περίπου 200 φορές πιο πολύπλοκη σύνταξη, αν 
τολμήσεις να κάνεις

std::string a;
a.
  ^ την έκανες τη μαλακία...

θα σου πεταχτεί μια λίστα με περίπου 200 μεθόδους, ιδιότητες, inner classes, 
inner typedefs, allocators, operator[], operator+= και πάει λέγοντας. Και 
καλά το string, που είναι ένα ψιλοστέρεο πράγμα (ουσιαστικά το 
std::basic_string<char, char_traits<char> >). Αν πάρεις έναν πρότυπο 
αλγόριθμο, όπως τον 
template <class In, class Out> Out std::accumulate(const & In, const & In, Out 
init_value)

πώς να καταλάβει το code completion engine ότι όταν πληκτρολογείς 

int i = std::accumulate(

τι πρέπει να προτείνει;

Αυτό είναι και το πρόβλημα για τον κακομοίρη που υλοποιεί το code 
completion... Και αυτό εξηγεί γιατί έχει καταφέρει να το υλοποιήσει 
(αξιολύπητα όμως, σιγά τώρα για τη συμπλήρωση ουσιαστικά C κώδικα) η MS,
(πολύ καλύτερα) η  βασίλισσα στα devtools Borland και σε πολύ μικρότερο βαθμό 
η ομάδα του KDevelop. Το code completion για C++ είναι δουλειά ενός χρόνου 
τουλάχιστον, πόσο μάλλον άμα δε δουλεύεις με τη *δικιά σου* πρότυπη 
βιβλιοθήκη (και τα συμπαρομαρτούντα class trees και precompiled headers) αλλά 
είσαι υποχρεωμένος να συνεργαστείς με οποιαδήποτε βιβλιοθήκη. 




More information about the Linux-greek-users mailing list