Apoll Δημοσ. 14 Απριλίου 2013 Δημοσ. 14 Απριλίου 2013 Κι εγώ αναρωτιέμαι, εσύ που θεωρείς την C απαρχαιωμένη, ανύπαρκτη, κακοπληρωμένη το έχεις ψάξει ποτέ; Αν σου πω για παράδειγμα πως ο μέσος μισθός ενός C developer στην Αμερική σήμερα που μιλάμε είναι γύρω στα USD 100000 ετησίως και στην Αγγλία γύρω στις GBP 45000 ετησίως θα με πιστέψεις; Υποθέτω πως όχι, και με το δίκιο σου μιας και στα φόρουμ ο καθένας μπορεί να γράφει ανεξέλεγκτα ότι θέλει . Αν όμως σε προτρέψω να το ψάξεις μόνος σου και αν και όταν έχεις το χρόνο και το κέφι να μας γράψεις τι βρήκες θα το κάνεις με ειλικρίνεια; Υπάρχει μία διαφορά. Η αναλογία θέσης στην αγορά εργασίας στην Αγγλία, μεταξύ C και C#/VB.NET είναι 1 προς 400. Αν όχι 1 στις 2000 όπως έριξα μια ματιά αυτή τη στιγμή. Και πολύ πιθανόν να είναι ακόμα μεγαλύτερη, μιας και η δημοσίευση στους διάφορους agent που κοίταξα, είναι για την ίδια περιοχή γενικά με την ίδια περιγραφή. Ελπίζω να κατανοείς τι σημαίνει αυτό. Οι .ΝΕΤ θέσεις ξεκινάνε από £25Κ και φτάνουν £60Κ, ανάλογα της απαιτήσεις της εταιρίας, περιοχή/έδρα, εμπειρία, γνώσεις και πως θα πουλήσεις τον εαυτό σου στις συνεντεύξεις και εξετάσεις. Ως contractor το εύρος είναι 200-450 λίρες την ημέρα. Και φυσικά υπάρχουν και διαφορές λόγω περιοχή. £40K στο Λονδίνο δεν σου φτάνουν (χρειάζεσαι £50Κ), ενώ £35Κ στα 100+ μίλια πιο βόρεια, είναι καλά λεφτά και περνάς άνετα. Και εκεί αν πιάνεις £40K+ κάνεις πλάνα για πρόωρο retirement στα 46-50.
migf1 Δημοσ. 15 Απριλίου 2013 Δημοσ. 15 Απριλίου 2013 Υπάρχει μία διαφορά. Η αναλογία θέσης στην αγορά εργασίας στην Αγγλία, μεταξύ C και C#/VB.NET είναι 1 προς 400. Αν όχι 1 στις 2000 όπως έριξα μια ματιά αυτή τη στιγμή. Και πολύ πιθανόν να είναι ακόμα μεγαλύτερη, μιας και η δημοσίευση στους διάφορους agent που κοίταξα, είναι για την ίδια περιοχή γενικά με την ίδια περιγραφή. Ελπίζω να κατανοείς τι σημαίνει αυτό. Οι .ΝΕΤ θέσεις ξεκινάνε από £25Κ και φτάνουν £60Κ, ανάλογα της απαιτήσεις της εταιρίας, περιοχή/έδρα, εμπειρία, γνώσεις και πως θα πουλήσεις τον εαυτό σου στις συνεντεύξεις και εξετάσεις. Ως contractor το εύρος είναι 200-450 λίρες την ημέρα. Και φυσικά υπάρχουν και διαφορές λόγω περιοχή. £40K στο Λονδίνο δεν σου φτάνουν (χρειάζεσαι £50Κ), ενώ £35Κ στα 100+ μίλια πιο βόρεια, είναι καλά λεφτά και περνάς άνετα. Και εκεί αν πιάνεις £40K+ κάνεις πλάνα για πρόωρο retirement στα 46-50. Καταρχήν σε ευχαριστώ που ασχολήθηκες προσωπικά, σοβαρά και που απάντησες ειλικρινά (το τονίζω διότι η δική μου εμπειρία από το παρόν φόρουμ δυστυχώς με έχει... διδάξει πως τα παραπάνω σπανίζουν και ως αρετές και ως προσεγγίσεις από μεγάλη μερίδα ενεργών συμμετεχόντων, πέφτοντας κατά κανόνα θύματα προσωπικών εμμονών, εγωισμών, ματαιοδοξιών, κλπ). Σε πρώτη φάση λοιπόν αισθάνομαι ικανοποίηση που συμφωνούμε στο αρχικό ζητούμενο που έθεσες, όταν αναρωτήθηκες δηλαδή αν υπάρχουν επαγγελματίες που ασχολούνται με C και αμείβονται περισσότερο από 2000 ευρώ το μήνα και όταν σου κατέθεσα νούμερα και σε προέτρεψα να το ψάξεις το έκανες και επέστρεψες χωρίς να διαψεύσεις τα νούμερα που έθεσα. Τώρα, σχετικά με τις αναλογίες, που τις βάζεις στη συζήτηση για 1η φορά. Όχι μόνο κατανοώ τι σημαίνουν οι αναλογίες που παραθέτεις, αλλά έχω φάει μάλιστα ολόκληρες μέρες σε άλλο νήμα προσπαθώντας να εξηγήσω (μάταια για πολλούς από ότι κατάλαβα μετά) τη διαφορά μεταξύ mainstream και niche, και μάλιστα με σημείο αναφοράς και πάλι την C. Δεν είμαι σε θέση ούτε να επιβεβαιώσω ούτε να διαψεύσω τα νούμερα που παραθέτεις ως αναλογία στην Αγγλία, μιας και δυστυχώς δεν έχω αξιόπιστο τρόπο και μέσο να το διασταυρώσω, δεν έχω όμως κανέναν λόγο να αμφισβητήσω την κρίση σου. Προς χάρη της συζήτησης όμως, το 1/400 δεν μου ακούγεται παράλογο, ενώ το 1/2000 όμως μου ακούγεται τελείως υπερβολικό (επαναλαμβάνω, δεν είμαι σε θέση να το διασταυρώσω, τουλάχιστον όχι άμεσα). Έτσι κι αλλιώς οι δικές μου επαφές είναι κυρίως με την Αμερική, για την οποία μπορώ με σχετική ασφάλεια να καταθέσω πως οι αναλογίες είναι σαφώς μεγαλύτερες (υπέρ της C δηλαδή) από τα νούμερα που καταθέτεις για την Αγγλία, χωρίς όμως να μπορώ αυτή τη φορά να σου δώσω ενδεικτικό νούμερο.. η αίσθησή μου όμως είναι πως κυμαίνεται γύρω στο 1 προς 100 Είτε έτσι, είτε αλλιώς όμως, ανεξάρτητα δηλαδή από τα ακριβή νούμερα, δεν διαφωνούμε στην ουσία του συγκεκριμένου, μιας και ουδέποτε έχω υποστηρίξει ούτε εδώ ούτε πουθενά πως η C είναι mainstream γλώσσα. Το αντίθετο, πάντα προσπαθούσα να κάνω σαφές πως αποτελεί niche εργαλείο... που αυτόματα (τουλάχιστον κατά τη δική μου αντίληψη και εμπειρία) σημαίνει: κατά κανόνα λιγότερες αλλά καλοπληρωμένες δουλειές. Επίσης, ουδέποτε προέτρεψα τον οποιονδήποτε να πάρει παραμάσχαλα το μάνουαλ της C και να πάει να απαιτήσει να τον προσλάβουν με 5 χιλιάρικα τον μήνα, οπότε ειλικρινά απορώ από που ξεφύτρωσε η απάντηση του παπι προς εμένα για το θέμα που συζητάμε. Τέσπα, πάμε παρακάτω... Σύμφωνα λοιπόν πάντα με τη δική μου πείρα κι αντίληψη (έχουμε φτάσει στο σημείο να το γράφουμε σε κάθε παράγραφο προκειμένου να μην χαλάνε τα νήματα σε αυτό εδώ το υπο-φόρουμ) το μάνουαλ καμίας μα καμίας γλώσσας μόνης της δεν πρόκειται να εξασφαλίσει σήμερα σε κανέναν developer ούτε δουλειά, ούτε λεφτά, ούτε αναγνώριση, ούτε εξέλιξη, ούτε τίποτα. Κάνα χαρτζιλήκι στην χάση και στη φέξη ίσως, αλλά μέχρι εκεί. Κατά την άποψή μου επίσης, κανένα μα κανένα programming paradigm μόνο του δεν μπορεί να σε πάει παραπέρα από τον μέσο όρο. Δουλειά όμως μπορεί να σου εξασφαλίσει για κάποιο διάστημα, μικρό ή μεγάλο εξαρτάται από τον αν το συγκεκριμένο paradigm είναι της μόδας. Αλλά μέχρι εκεί. Τα χοντρά φράγκα, οι χοντρές εξασφαλίσεις, κλπ όμως έρχονται με εμβάθυνση και σύνθεση περισσότερηε της μιας τεχνολογίας/paradigm/κλπ, συνεχή ενημέρωση και σκληρή δουλειά. Τώρα, σε ότι αφορά ειδικά τη C υπάρχουν συγκεκριμένοι τομείς στην οποία και χρησιμοποιείται και πληρώνεται και ζητείται. Οι δουλειές σε αυτούς τους τομείς είναι πολύ περισσότεροι από ότι ενδεχομένως πιστεύει ο μέσος όρος των φοιτητών ή ο μέσος όρος των επαγγελματιών. Τους έχω αναφέρει πάμπολλες φορές και σε αυτό το νήμα, και σε πολλά άλλα. Αλλά όποιος νομίζει πως αρκεί να ξέρει μονάχα C για να δουλέψει σε οποιονδήποτε από αυτούς τους τομείς, θα έχει υποθέτω την ίδια τύχη με όποιον νομίζει πως αρκεί να ξέρει ... τι να φέρω τώρα ως παράδειγμα... ξέρω γω μονάχα HTML για να δουλέψει ως web developer. @retromaniac: Κανένα πρόβλημα φίλε retrmaniac. Δεν υπάρχει καμία βιασύνη, άλλωστε δεν κρίνεται κάτι σημαντικό από τη ζωή μας στα φόρουμ. Οπότε με χαρά θα διαβάσω ότι ήθελες να γράψεις όποτε βρεις το χρόνο.
migf1 Δημοσ. 15 Απριλίου 2013 Δημοσ. 15 Απριλίου 2013 ... Tο γεγονός ότι ενδεχομένως βρίσκεις περισσότερα resources για GUI programming με κάποιο framework σε άλλη γλώσσα πέραν της C εξηγείται πολύ εύκολα επειδή η C είναι πολύ κακή επιλογή για να προγραμματίζεις GUI (τουλάχιστον τα message-loop-based περι των οποίων ο λόγος). Μιας και μόλις πρόσεξα το παραπάνω και για να γυρίσουμε λίγο και on-topic, θα μπορούσες να εξηγήσεις τι εννοείς με αυτό και πιο συγκεκριμένα μπορείς να εξηγήσεις περαιτέρω την λογική συνέχεια/σύνδεση της κύριας πρότασής σου με αυτό που έχεις βάλεις σε παρένθεση κι έχω κάνει bold? Ποιο είναι δηλαδή το πρόβλημα της C με τα message-loop-based GUIs; Διότι αν είναι αυτό που νομίζω τότε δεν πρέπει να ισχύει αυτό που γράφεις, αλλά θέλω πρώτα να επιβεβαιώσω πως όντως σε έχω ερμηνεύσει σωστά.
defacer Δημοσ. 15 Απριλίου 2013 Δημοσ. 15 Απριλίου 2013 Μιας και μόλις πρόσεξα το παραπάνω και για να γυρίσουμε λίγο και on-topic, θα μπορούσες να εξηγήσεις τι εννοείς με αυτό και πιο συγκεκριμένα μπορείς να εξηγήσεις περαιτέρω την λογική συνέχεια/σύνδεση της κύριας πρότασής σου με αυτό που έχεις βάλεις σε παρένθεση κι έχω κάνει bold? Ποιο είναι δηλαδή το πρόβλημα της C με τα message-loop-based GUIs; Διότι αν είναι αυτό που νομίζω τότε δεν πρέπει να ισχύει αυτό που γράφεις, αλλά θέλω πρώτα να επιβεβαιώσω πως όντως σε έχω ερμηνεύσει σωστά. Μπες στη θέση μου και δώσε μου έστω ένα λόγο να απαντήσω. Μήπως υπάρχει περίπτωση αν (τελείως υποθετικά, ξέρεις τώρα), λέω αν, ισχύει αυτό που γράφω για κάποιο ορισμό του "ισχύει" να βρω κάποιου είδους δίκαιο; Τη στιγμή που δίνεις τη δική σου ουρανοκατέβατη ερμηνεία σε όλα όσα λέω με το έτσι θέλω; Δε νομίζω πως χρειάζεται αλλά να ένα πρόσφατο παράδειγμα. Μήπως να απαντήσω γιατι έχω ηθική υποχρέωση απέναντί σου εφόσον έχεις ξεσκιστεί να απαντάς ευθέως σε όσα ρωτάω όταν αναπτύσσω κάποιο επιχείρημα; Εδώ γελάμε. Οπότε ευχαριστώ αλλά δε θα πάρω. The line is drawn here. Mπορείς αν θες να υποθέσεις ότι όντως είναι αυτό που νομίζεις και να κάτσεις να γράψεις μια απάντηση την οποία θα έχω το ελεύθερο να αγνοήσω πλήρως ή να απορρίψω συνοπτικά και χωρίς επιχειρήματα. Ή μπορείς και να δωροδοκήσεις κάποιον άλλο να κάνει την ερώτηση για λογαριασμό σου.
migf1 Δημοσ. 15 Απριλίου 2013 Δημοσ. 15 Απριλίου 2013 Πολύ ωραία λοιπόν, εφόσον ο defacer αδυνατεί να μας αναλύσει τον ισχυρισμό του, ας συμπληρώσω στο νήμα πως αν κάποιος νομίζει από τα γραφόμενά του πως "Tο γεγονός ότι ενδεχομένως βρίσκεις περισσότερα resources για GUI programming με κάποιο framework σε άλλη γλώσσα πέραν της C εξηγείται πολύ εύκολα επειδή η C είναι πολύ κακή επιλογή για να προγραμματίζεις GUI (τουλάχιστον τα message-loop-based περι των οποίων ο λόγος)." πηγάζει από το γεγονός πως στο Win32 API με C πρέπει να διαχειριστείς το message-loop "χειροκίνητα" με switch-statement, τότε στο GTK+ πολύ απλά δεν ισχύει. Άρα λοιπόν το συγκεκριμένο δεν είναι πρόβλημα της C αλλά του Win32 API. Στο GTK+ το message-loop είναι απλώς μια κλήση στη... gtk_main(); ενώ η σύνδεση των events με τις callback functions έχει γίνει είτε απευθείας μέσα στον κώδικα με κλήση μιας εκ των g_signal_connect_xxx() συναρτήσεων, είτε μέσω του RAD tool (visual editor) Glade, χωρίς να γράψει ο προγραμματιστής έξτρα κώδικα για τη σύνδεση. Απλώς στην 2η περίπτωση πρέπει οι callback functions να οριστούν με πρόθεμα G_MODULE_EXPORT αν είμαστε σε Windows, ή να χρησιμοποιηθεί το linker-option export-dynamic στον gcc αν είμαστε σε Linux/Unix. Αν τώρα εννοεί κάτι άλλο ο ποιητής, ας μας λύσει πρώτα το πολυ-αγαπημένο του XY problem και βλέπουμε. @defacer: Είτε υπογραμμισμένο, είτε τονισμένο, είτε όχι, το... πρόσφατο παράδειγμά σου "Αν υποθέσουμε ότι γράφω μια εφαρμογή που θα την αγοράσουν όλοι οι χρήστες Windows στον πλανήτη, τι είναι καλύτερο:" ήταν, είναι και θα είναι θεωρητική υπόθεση και μάλιστα ουτοπική στην πράξη, όπως εξαρχής την χαρακτήρισα πριν απαντήσω.
Directx Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 [..]Άρα λοιπόν το συγκεκριμένο δεν είναι πρόβλημα της C αλλά του Win32 API.Χμ.. δεν θα έλεγα ότι είναι "πρόβλημα" μόνο του Windows C API, θα έλεγα ότι ήταν ο τυπικός τρόπος διαχείρισης των μηνυμάτων εκείνη την εποχή για τα GUI. Για παράδειγμα με περίπου τον ίδιο τρόπο (μέσα από switch & case) διαχειριζόσουν τα μηνύματα και στο Amiga OS του οποίου η πρώτη έκδοση κυκλοφόρησε και αυτή την ίδια περίοδο με τα Windows 1.0, δηλαδή το 1985, άρα μιλάμε μάλλον για ένα τυπικό design-pattern εκείνης της εποχής.
migf1 Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Χμ.. δεν θα έλεγα ότι είναι "πρόβλημα" μόνο του Windows C API, θα έλεγα ότι ήταν ο τυπικός τρόπος διαχείρισης των μηνυμάτων εκείνη την εποχή για τα GUI. Για παράδειγμα με περίπου τον ίδιο τρόπο (μέσα από switch & case) διαχειριζόσουν τα μηνύματα και στο Amiga OS του οποίου η πρώτη έκδοση κυκλοφόρησε και αυτή την ίδια περίοδο με τα Windows 1.0, δηλαδή το 1985, άρα μιλάμε μάλλον για ένα τυπικό design-pattern εκείνης της εποχής. Σαφώς και ήταν ο τυπικός τρόπος διαχείρισης στην πλειοψηφία των C GUI APIs για τα micro-computers της εποχής εκείνης, αλλά παραμένει πρόβλημα εκείνων των APIs και όχι της γλώσσας C. Τόνισα επίτηδες το παραπάνω, διότι για παράδειγμα σε Χ/Motif από τότε οι callback functions συνδέονταν με τα events με μια απλή κλήση συνάρτησης: XtAddCallback(), και το message-loop ήταν επίσης μια απλή κλήση συνάρτησης: XtAppMainLoop(); Οπότε για το συγκεκριμένο δεν φταίει η C, αλλά εκείνα τα micro-computer APIs έτσι δεν είναι;
Directx Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Σαφώς και ήταν ο τυπικός τρόπος διαχείρισης στην πλειοψηφία των C GUI APIs για τα micro-computers της εποχής εκείνης, αλλά παραμένει πρόβλημα εκείνων των APIs και όχι της γλώσσας C. Τόνισα επίτηδες το παραπάνω, διότι για παράδειγμα σε Χ/Motif από τότε οι callback functions συνδέονταν με τα events με μια απλή κλήση συνάρτησης: XtAddCallback(), και το message-loop ήταν επίσης μια απλή κλήση συνάρτησης: XtAppMainLoop(); Οπότε για το συγκεκριμένο δεν φταίει η C, αλλά εκείνα τα micro-computer APIs έτσι δεν είναι; Έτσι είναι, από εκεί και πέρα δεν είπα ότι φταίει η C είπα απλά η διαχείριση switch/case δεν είναι "πρόβλημα" του Windows C API αλλά είναι ένα μοτίβο εκείνης της εποχής. Επίσης δεν θεωρώ καν πρόβλημα το switch/case έτσι και αλλιώς.
migf1 Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 ... Επίσης δεν θεωρώ "καν πρόβλημα" το switch/case έτσι και αλλιώς. Ούτε εγώ το θεωρώ σημαντικό πρόβλημα, για αυτό ρώτησα τον defacer να μας εξηγήσει τι ακριβώς εννοεί, γιατί δεν πήγαινε πουθενά αλλού το μυαλό μου. Δεν θέλησε να μας εξηγήσει, no problem by me. Όμως όντως σε αναγκάζει να γράψεις και περισσότερο ποσοτικά κώδικα και λιγότερο όμορφο αισθητικά. Έχει επίσης μικρο-διαφορές στον τρόπο δόμησης, αφού το Win32 API σε αναγκάζει να γράψεις χειροκίνητα το message-loop. Η προσέγγιση του GTK+ είναι πιο κοντά στην προσέγγιση των άλλων γλωσσών που χρησιμοποιούνται ως ευκολότερα εργαλεία διαχείρισης. Θα έγραφα έτσι κι αλλιώς αυτό που έγραψα, με αφορμή το ποστ του defacer δηλαδή, γιατί το θεωρώ χρήσιμο να υπάρχει ως πληροφορία στο παρόν νήμα. Απλώς έκανα μια προσπάθεια να μας εξηγήσει αν εννοούσε κάτι άλλο, ώστε να μην εκλάβω ως δεδομένη τη δική μου ερμηνεία σε αυτό που έγραψε, η οποία ως συνήθως δεν ευδοκίμησε. Κανένα πρόβλημα από τη μεριά μου
Directx Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 [..]Όμως όντως σε αναγκάζει να γράψεις και περισσότερο ποσοτικά κώδικα και λιγότερο όμορφο αισθητικά. Έχει επίσης μικρο-διαφορές στον τρόπο δόμησης, αφού το Win32 API σε αναγκάζει να γράψεις χειροκίνητα το message-loop. Η προσέγγιση του GTK+ είναι πιο κοντά στην προσέγγιση των άλλων γλωσσών που χρησιμοποιούνται ως ευκολότερα εργαλεία διαχείρισης.Yup, υπάρχει θέμα αισθητικής, το χειροκίνητο message-loop ήταν και αυτό συνηθισμένη πρακτική εκείνα τα χρόνια στα μη UNIX C GUIs (από αυτά που έχω υπόψη μου φυσικά).
albNik Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Δεν ειναι μονο τα switch. Εβαλα ενα button που εμφανιζε μια νεα φορμα και το κοκκινο x (πανω δεξια) δεν εκλεινε τη φορμα. Ηθελε κώδικα ... :mad:
migf1 Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Δεν ειναι μονο τα switch. Εβαλα ενα button που εμφανιζε μια νεα φορμα και το κοκκινο x (πανω δεξια) δεν εκλεινε τη φορμα. Ηθελε κώδικα ... :mad: Δεν είμαι σίγουρος τι εννοείς. Καταρχήν αναφέρεσαι σε κάποιο συγκεκριμένο C GUI API ή στη χρήση της C γενικώς ως γλώσσα για GUI apps ανεξαρτήτως API? Το πιθανότερο είναι να αναφέρεσαι σε κάποιο συγκεκριμένο API και αν κρίνω από το γεγονός πως δεν σε θυμάμαι να έχεις συμμετάσχει σε κάποιο GTK+ related νήμα του φόρουμ, υποθέτω αναφέρεσαι στο Win32 API. Αν ναι, κι αν έχω καταλάβει σωστά αυτό που περιγράφεις (button που πατώντας το να ανοίγει μια φόρμα) εννοείς πως πρέπει να καλέσεις explicitly DestroyWindow() μέσα στο callback function της φόρμας όταν σου στείλει close event? Αν ναι, πως αλλιώς θα μπορούσε να γίνει; Πάντως υπάρχουν και predefined φόρμες και στο Win32 και στο GTK+ (όπως π.χ. τα File Open, Fise Save, κλπ) με αρκετές αυτοματοποιήσεις, αν και δεν θυμάμαι απέξω αν περιλαμβάνουν και την συγκεκριμένη. Ίσως όμως να εννοείς κάτι άλλο.
albNik Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Σωστά καταλαβες. Όλα αυτά απογοητεύουν έναν πρωτάρη (εμένα) που δεν μπορεί ουτε να "σχεδιασει" το GUI.
migf1 Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Σωστά καταλαβες. Όλα αυτά απογοητεύουν έναν πρωτάρη (εμένα) που δεν μπορεί ουτε να "σχεδιασει" το GUI. Ε ναι, για αυτό λέμε πως υπάρχουν πολύ ευκολότερα GUI frameworks από αυτά της C. Αν όμως για κάποιον λόγο πρέπει να χρησιμοποιήσεις C, μεταξύ Win32 και GTK+ το 2ο είναι μακράν πιο σύγχρονο, ενημερωμένο κι εύχρηστο. Η γενική φιλοσοφία πάντως είναι πως ανάλογα τι κάνει ο χρήστης τα graphical elements σου στέλνουν events (messages, signals, κλπ... κάθε API έχει δικιά του ορολογία), οπότε για κάθε graphical element ή/και event που θέλεις να διαχειριστείς αντιστοιχείς ένα call-back function. Στο Win32 API αυτή η αντιστοίχιση είναι πιο "φλύαρη" γιατί μεταξύ άλλων (όπως π.χ. του χειροκίνητου message-loop που είπαμε πιο πάνω) τα messages είναι 16μπιτα words, με διαφορετικού είδους πληροφορίες στο low byte και διαφορετικού είδους στο high byte (σου δίνει έτοιμα macros για αυτές τις δουλειές το API). Tο GTK+ σου παρέχει περισσότερες high-level ρουτίνες, είναι αλλιώς οργανωμένο, και κυρίως εκσυγχρονίζεται διαρκώς, οπότε είναι πιο εύχρηστο κι ενημερωμένο. Πάντως και στις 2 περιπτώσεις, για τον σχεδιασμό των GUI σίγουρα είναι πολύ πιο εύκολο (τουλάχιστον στην αρχή) να μην το σχεδιάζεις δυναμικά με κώδικα, αλλά με κάποιον visual editor. Για GTK+ είναι το Glade3, για Win32 υπάρχουν διάφοροι resource-editors όπως λέγονται (π.χ. η Pelles C έχει έναν τέτοιο... και το Visual Studio πρέπει να έχει, αλλά για το VS μπορούν να σε κατατοπίσουν ειδικότεροι από εμένα). Πάντως κυκλοφορούν και 3rd party resource-editors για Win32 API, οι περισσότεροι free (αργότερα αν ενδιαφέρεσαι μπορώ να σου γράψω 2-3 γιατί τώρα θα την κάνω). Απλά και το Glade3 επειδή ανανεώνεται κι αυτό συνεχώς συγκριτικά με τους C resource-editors του Win32 API, παρέχει επίσης περισσότερες ευκολίες (μάλιστα στην προηγούμενη γενιά του, Glade2 δηλαδή, σου έκανε generate τον κώδικα αυτόματα αλλά έχει γίνει depreciated πλέον).
albNik Δημοσ. 16 Απριλίου 2013 Δημοσ. 16 Απριλίου 2013 Είμαι πλέον .ΝΕΤ-ιστας όπου εχω το κεφάλι μου ησυχο για τα περισσότερα, αλλά μερικές φορές (λίγες αλλά δυσκολες περιπτώσεις) δεν γίνεται με τιποτα η δουλειά αν δεν γράψεις (καλέσεις το) winapi. Η πιο συνιθησμένη πύλη του ΝΕΤ προς το winapi είναι το override WndProc(...)
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα