Προς το περιεχόμενο

Visual C++ vs Builder C++ & C++/QT


geo1st487

Προτεινόμενες αναρτήσεις

Εχω παρατηρησει οτι τα περισσοτερα επαγγελματικα προγραμματα εχουν φτιαχτει σε Visual C++ (αν κανω λαθος διορθωστε με). Σε C++/QT ετυχε να δω προγραμματα μεμονομενων προγραμματιστων στυλ τριλιζας κλπ χωρις αυτο να σημαινει οτι δεν υπαρχουν επαγγελματικα προγραμματα γραμμενα σε C++/QT.

 

Το ερωτημα ειναι γιατι υπαρχει η προτιμηση της Visual C++ (αν οντως ειναι ετσι και δεν κανω λαθος) οσον αφορα επαγγελματικες εμπορικες εφαρμογες απο τις C++/QT & Builder C++; Εχει πλεονεκτηματα εναντι των αλλων;

 

Ευχαριστω

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τα προγράμματα τύπου τρίλιζας όπως λες, δεν είναι γραμμένα από σοβαρούς προγραμματιστές.

(Και μην κοιτάς εδώ στην ελλάδα όπoυ ζητείται η .ΝΕΤ και η C#.)

 

Υπάρχει πολύ και καλό λογισμικό που έχει γραφεί με την Qt ή την υποστηρίζει στα σοβαρά.

Π.χ. εδώ είναι μια επιλογή :

 

http://www.filepie.us/?title=Category:Software_that_uses_Qt

 

Για το Builder C++ δεν ξέρω,

αλλά αν με το "visual C++" εννοείς το MFC, η Qt του αφήνει την σκόνη του...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εχω παρατηρησει οτι τα περισσοτερα επαγγελματικα προγραμματα εχουν φτιαχτει σε Visual C++ (αν κανω λαθος διορθωστε με). Σε C++/QT ετυχε να δω προγραμματα μεμονομενων προγραμματιστων στυλ τριλιζας κλπ χωρις αυτο να σημαινει οτι δεν υπαρχουν επαγγελματικα προγραμματα γραμμενα σε C++/QT.

 

Το ερωτημα ειναι γιατι υπαρχει η προτιμηση της Visual C++ (αν οντως ειναι ετσι και δεν κανω λαθος) οσον αφορα επαγγελματικες εμπορικες εφαρμογες απο τις C++/QT & Builder C++; Εχει πλεονεκτηματα εναντι των αλλων;

 

Ευχαριστω

 

Η προτίμηση προέρχεται από το γεγονός ότι κατασκευάζεται από την Microsoft και αυτό της δίνει ένα στρατηγικό πλεονέκτημα προς τον ανταγωνισμό καθώς η MS παράγει και το λειτουργικό σύστημα όποτε για ένα μεγάλο διάστημα η VC++ ήταν η πρώτη που υλοποιούσε τις όποιες καινοτομίες παρουσίαζε η εταιρία στα Windows προσφέροντας άμεσα συμβατά header για τα ανάλογα API (& LIBs κ.α.). Ύστερα λόγο του μεγέθους της MS, η VC++ θεωρήθηκε αρκετά ασφαλής επένδυση για τον προγραμματιστή όταν για παράδειγμα η Borland έπνεε τα λοίσθια με αποτέλεσμα την πώληση της εξαιρετικής Delphi και του πανίσχυρου C++ Builder σε άλλη εταιρία.

 

Από εκεί και πέρα, η VC++ σε σχέση με τον C++ Builder όσον αφορά την άμεση ανάπτυξη εφαρμογών (RAD) είναι και ήταν πίσω, εκεί την κερδίζει κατά κράτος ο C++ Builder και η θαυμάσια βιβλιοθήκη οπτικού προγραμματισμού του, η VCL. Για αυτό τον λόγο η MS στις αρχές του 2000 παρουσίασε το .NET framework το οποίο αποτελεί το πνευματικό παιδί του πατέρα της Delphi ο οποίος προσελήφθη από την MS εγκαταλείποντας την Borland. Άρα το αν η τεχνολογία του C++ Builder & Delphi είναι καλύτερα από την MFC έχει ήδη απαντηθεί μέσο του .NET framework.

 

Τελικά, σήμερα και ο C++ Builder & Delphi ζουν και αναπτύσσονται και αποτελούν θαυμάσια εργαλεία ανάπτυξης λογισμικού (μάλιστα τώρα αναπτύσσουν και μια cross-platform εκδοχή της VCL, ονόματι Firemonkey!). Η δε VC++ έχει πάει πίσω με την MS να έχει δώσει τεράστια σημασία στο .NET framework.

 

Σε κάθε περίπτωση, αν σε ενδιαφέρει η γρήγορη οπτική ανάπτυξη εφαρμογών βλέπεις είτε .NET ή C++ Builder με VCL.

 

Όσον αφορά το QT, είναι μια καλή λύση για cross-platform ανάπτυξη αλλά για προγραμματισμό Windows προσωπικά διευκολύνομαι είτε μέσο C++ Builder/VCL ή C#/NET καθώς έχουν ένα πολύ πιο φιλικό event-driven μοντέλο.

 

Αυτά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Directx

 

ενδιαφέρον αυτο που λες. Eπειδη ως τώρα θεωρουσα (και ακόμη θεωρώ) το Qt ως ότι καλύτερο συνέβη ποτέ στη C++, μπορεις να δώσεις ενα μικρό παράδειγμα σε Borland/C++ ωστε να το συγκρινουμε με ενα αντιστοιχο σε Qt, αν δε σου είναι κόπος ?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@Directx

 

ενδιαφέρον αυτο που λες. Eπειδη ως τώρα θεωρουσα (και ακόμη θεωρώ) το Qt ως ότι καλύτερο συνέβη ποτέ στη C++, μπορεις να δώσεις ενα μικρό παράδειγμα σε Borland/C++ ωστε να το συγκρινουμε με ενα αντιστοιχο σε Qt, αν δε σου είναι κόπος ?

 

Για παράδειγμα, αν θες να δημιουργήσεις αυτή την φόρμα:

post-41640-0-48336700-1327525057_thumb.png

 

Και δεδομένου ότι δεν θες να το κάνεις αυτόματα μέσο οπτικής σχεδίασης, μπορείς με εντολές να το κάνεις ως εξής:

 

>
[..]
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TButton *ptrButton;
TGridPanel *ptrGridPanel;

/* Setup main form */
Caption = "Buttons!";
Position = poScreenCenter;
BorderStyle = bsDialog;
   Width = 300;
Height = 340;

/* Add a simple GridPanel (the Host for my four buttons) */
ptrGridPanel = new TGridPanel(this);
ptrGridPanel->Parent = this;
ptrGridPanel->Align = alClient;

/* Setup four buttons */
for(int BtnCnt = 1; BtnCnt <= 4; BtnCnt++) {
	ptrButton = new TButton(this);
	ptrButton->Parent = ptrGridPanel;
	ptrButton->Align = alClient;
	ptrButton->Caption = BtnCnt;
	ptrButton->OnClick = myClickEvent; /* My event handler */
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::myClickEvent(TObject *Sender)
{
ShowMessage("You just clicked button - " + ((TButton*)Sender)->Caption);
}

 

Μπορείς να κάνεις και άλλα πράματα μαζί του..

 

 

 

Λόγο του ότι υποστηρίζει εγγενώς το Windows API, για παράδειγμα μπορείς:

 

Να κάνεις ένα ListView με κινούμενο background -θέλει πολύ προσοχή & προυποθέσεις γιατί βιάζουμε το ListView control όμως :-D

 

ή αρκετά εύκολα κάτι τέτοιο:

 

 

(ένα πλάσμα εφφε - το δημοσίευσα πριν λίγο καιρό σε μια άλλη συζήτηση εδώ από ένα listing ενός παλιού περιοδικού -το έκανα port από Assembly & Turbo Pascal σε C++ Builder αρκετά εύκολα).

 

Τέλος.. και μια πιο παιχνιδιάρικη όψη του (για να δεις ένα ασυνήθιστο UI που έγραψα μαζί του).

Λοιπόν, ένα μικρό πρόγραμμα πρόγνωσης του καιρού για προσωπική μου χρήση (& και τις κοπέλας μου εξ' ου και αυτό το χαρούμενο UI):

 

 

 

 

Τώρα, όμως προσοχή, η θέση μου ΔΕΝ σημαίνει ότι το QT δεν είναι ισχυρό, κάθε άλλο είναι πολύ ισχυρό και με πρωτότυπες δυνατότητες (όπως τα στιλ) και ένα πανίσχυρο Object-Oriented μοντέλο. Απλά η ισχύς του έρχεται με πολυπλοκότητα και μάλλον έχω καταλήξει στο ότι προτιμώ πιο παραδοσιακές λύσεις.

 

 

 

Παρόλα αυτά όμως για να μην θεωρηθώ μονόπλευρος, εδώ είναι ένα μικρό παιχνιδάκι που έγραψα σε QT-C++ για Symbian 5th Edition πριν μερικά χρόνια (αυτός ήταν ο λόγος που ασχολήθηκα μαζί του εξ αρχής άλλωστε - για προγραμματισμό κινητών Symbian τότε):

 

 

Γενικά, το QT μου άφησε και αυτό καλές εντυπώσεις.

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο προγνωστικό του καιρού, το "μερικός" είναι λάθος και βγάζει μάτι,

"μερικώς" είναι το σωστό...

 

-

Σωστός! Θα πάει για bug fix λοιπόν μαζί με κάτι άλλα που θέλει.

Thx! Φίλε V.I.Smirnov.

 

 

Υ.Γ.

Όταν είσαι δυσλεκτικός ακόμα και ο αυτόματος διορθωτής δεν μπορεί να σε ξελασπώνει πάντα :-D

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Απ' ότι βλέπω, η παραπάνω φόρμα μάλλον είναι πιο δύσκολο να γίνει με την Qt.

Πρέπει να τεθούν layouts, stretchers, να θυμάσαι που πρέπει να κάνεις δέσμευση μνήμης

ώστε να δουλέψει σωστά το garbage collection (εκεί όλα τίθενται ιεραρχικά, σε μορφή δέντρου),

το μοντέλο signal/slot ξενίζει κλπ

 

Κοντολογίς, μέχρι να συνηθίσεις και να χειρίζεσαι άνετα τα βασικά (τουλάχιστον), είναι αρκετά πολύπλοκο...

 

Για το ορθογραφικό, είναι προφανές ότι είναι εκ παραδρομής ή ελάχιστης άγνοιας,

δεδομένου ότι είσαι από τους ελάχιστους εδώ μέσα που γράφουν προσεγμένα...

 

-

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...