moukoublen Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Επειδή βρίσκω την επί τις ουσίας συζήτηση (και όχι τα flame τα οποια τα θεωρώ παντελώς άχρηστα. Μεγάλα παιδιά είστε, έλεος ) ενδιαφέρουσα, θα ήθελα να σταθώ μόνο και αποκλειστικά σε αυτή (μου επιτρέπεται φαντάζομαι). Θέλω να αντιστρέψω το ερώτημα. Ποια γλώσσα λοιπόν δεν έχει καμία μα καμία σχέση με OO λοιπόν; Και γιατί; Και εάν τελικά προκύπτει ότι σχεδόν καμία γλώσσα δε μπορεί να χαρακτηριστεί εντελώς διαφορετική με την στοιχειώδη έννοια του ΟΟ, μήπως τότε σημαίνει οτι βάζουμε σε τόσο minimum βάση την έννοια του αντικειμένου που δεν έχει κανένα απολύτως νόημα; Μήπως δηλαδή θα πρέπει να δεχτούμε λίγα στοιχεία παραπάνω για το πότε κάτι θα μπορούμε να το χαρακτηρίσουμε object based έστω;
migf1 Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 lmgtfy lmgtfoya και more explicitely... MIT Stanford Carnegie Mellon Columbia University Αλλά αφού το λέει η Wikipedia και ο defacer μαζί με 2-3 ακόμα θεωρούν OOP το adt, κάτι παραπάνω θα ξέρουν. 1
ChRis6 Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 @defacer Συμφωνω μαζι σου. Το παραδειγμα που δινεις ειναι πολυ απλο και ευκολα καποιος θα πει "οκ, η C μπορει να προσφερει OO εννοιες".Ας ειναι καλα οι δεικτες σε void... Στην ερωτηση σου επιλεγω το 4. Παρ'ολα αυτα ομως οι αφηρημενες δομες και μιας μορφης "ενθυλακωσης" δεν κανουν τη C αντικειμενοστρεφη γλωσσα.( ουτε τα struct την κανουν ) Φυσικα ορισμενα προβληματα λυνονται πιο ευκολα οταν βρισκεσαι στα λημερια του OO,αλλα οταν ερχεται η ωρα της υλοποιησης ,η C δεν μπορει να συμβαδιζει με λυσεις που δινονται απο τον αντικεμενοστρεφη προγραμματισμο.Δεν συμφωνεις ;
defacer Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Ποια γλώσσα λοιπόν δεν έχει καμία μα καμία σχέση με OO λοιπόν; Και γιατί; Απ' όσο ξέρω (με μικρή επιφύλαξη) η Fortran 77, η COBOL, η assembly, και ο Clipper. Είναι όλες "παλιές" γλώσσες. Θα έπρεπε να μας κάνει εντύπωση ότι όλες οι "καινούριες" έχουν δεχτεί επιρροές από OO? Συμφωνω μαζι σου. Το παραδειγμα που δινεις ειναι πολυ απλο και ευκολα καποιος θα πει "οκ, η C μπορει να προσφερει OO εννοιες".Ας ειναι καλα οι δεικτες σε void... Θα μ' ενδιέφερε όμως να απαντήσεις και στα ερωτήματα (όπως και οποιοσδήποτε άλλος). Είναι νομίζω πολύ γόνιμο έδαφος για ανταλλαγή ιδεών. Οι void* που αναφέρεις είναι αυτό ακριβώς το feature που σου επιτρέπει να έχεις ADTs. Παρ'ολα αυτα ομως οι αφηρημενες δομες και μιας μορφης "ενθυλακωσης" δεν κανουν τη C αντικειμενοστρεφη γλωσσα.( ουτε τα struct την κανουν ) Φυσικα ορισμενα προβληματα λυνονται πιο ευκολα οταν βρισκεσαι στα λημερια του OO,αλλα οταν ερχεται η ωρα της υλοποιησης ,η C δεν μπορει να συμβαδιζει με λυσεις που δινονται απο τον αντικεμενοστρεφη προγραμματισμο.Δεν συμφωνεις ; Στο πρώτο συμφωνώ, στο δεύτερο όχι. Έχω γράψει προγράμματα με τελείως OO δομή (γιατί έτσι ήθελα) σε C (γιατί έτσι έπρεπε) όσο ήμουν φοιτητής. Αν δεν ήμουν περιορισμένος θα τα έγραφα σε άλλη γλώσσα. Το γεγονός ότι ήμουν σημαίνει πως απαγορεύεται να γράψω OO?
παπι Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Όμως κάποιοι απο μας πιστεύουν πως OOP είναι κατά βάση το σκεπτικό της δόμησης ενός προγράμματος και όχι το γεγονός ότι η γλώσσα σου προσφέρει τα μέσα για να αποτυπώσεις το σκεπτικό αυτό με σύντομο και βολικό τρόπο. Το αυτο ρε παιδες. Οπως ειπα και στην αρχη, αν δεν μπορεις να γραψεις oo σε c τοτε το FILE τι ειναι;
ChRis6 Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 @defacer Προφανως και δεν απαγορευεται να δομησεις ετσι τη λυση ενος προβληματος,αλλα δεν θα ηταν και η πιο ορθη αντιμετωπιση( φανταζομαι).Τωρα μου θυμησες ενα αινιγμα/τρολια ενος καθηγητη μου: - Τι ειναι αυτο που το χειμωνα μας ζεσταινει και το καλοκαιρι το κρεμαμε στο δεντρο; - Τι ειναι ; - Η Σομπα !!! - Γιατι η σομπα; - Δικια μας ειναι,οτι θελουμε τη κανουμε.... Οποτε τον ρωτουσαμε γιατι διαλεξε εναν συγκεκριμενο τροπο λυσης μας απαντουσε: "ΣΟΜΠΑ" 1
moukoublen Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Το αυτο ρε παιδες. Οπως ειπα και στην αρχη, αν δεν μπορεις να γραψεις oo σε c τοτε το FILE τι ειναι; stdio.h > /* Define outside of namespace so the C++ is happy. */ struct _IO_FILE; __BEGIN_NAMESPACE_STD /* The opaque type of streams. This is the definition used elsewhere. */ typedef struct _IO_FILE FILE; Με έχετε μπερδέψει λίγο αλλά μου φαίνετε όπως είπα ενδιαφέρουσα η συζήτηση. (Ίσως θα πρέπει να ανοίξουμε ένα ξεχωριστό thread). παπι, εαν είναι αντικείμενο το FILE γιατι να μην είναι η struct που δίνεις στην υπογραφή σου;
Retromaniac Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Το αυτο ρε παιδες. Οπως ειπα και στην αρχη, αν δεν μπορεις να γραψεις oo σε c τοτε το FILE τι ειναι; Στην απάντηση που σου είχα δώσει τι δεν σε κάλυψε;
moukoublen Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 ... Είναι όλες "παλιές" γλώσσες. Θα έπρεπε να μας κάνει εντύπωση ότι όλες οι "καινούριες" έχουν δεχτεί επιρροές από OO? ... Άρα διαχωρίζεται το "επιρροές από OO" και το "είναι ΟΟ". Διαφορετικά, φτάνουμε σε εναν ορισμό τόσο ελάχιστο που καλύπτει σχεδόν τα πάντα. Καταλαβαίνεις τον προβληματισμό μου;
migf1 Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Επειδή βρίσκω την επί τις ουσίας συζήτηση (και όχι τα flame τα οποια τα θεωρώ παντελώς άχρηστα. Μεγάλα παιδιά είστε, έλεος ) ενδιαφέρουσα, θα ήθελα να σταθώ μόνο και αποκλειστικά σε αυτή (μου επιτρέπεται φαντάζομαι). Θέλω να αντιστρέψω το ερώτημα. Ποια γλώσσα λοιπόν δεν έχει καμία μα καμία σχέση με OO λοιπόν; Και γιατί; Και εάν τελικά προκύπτει ότι σχεδόν καμία γλώσσα δε μπορεί να χαρακτηριστεί εντελώς διαφορετική με την στοιχειώδη έννοια του ΟΟ, μήπως τότε σημαίνει οτι βάζουμε σε τόσο minimum βάση την έννοια του αντικειμένου που δεν έχει κανένα απολύτως νόημα; Μήπως δηλαδή θα πρέπει να δεχτούμε λίγα στοιχεία παραπάνω για το πότε κάτι θα μπορούμε να το χαρακτηρίσουμε object based έστω; Φίλε moukoublen, τα βασικά features του κάθε paradigm, το ποιος θεωρείται πως τα υποστηρίζει και ποιος όχι, και πολλά άλλα είναι well-defined εδώ και πάρα πολλά χρόνια και διδάσκονται σε όλες τις σχολές πληροφορικής. Αυτό που προτείνω εγώ είναι να μπείτε στα sites top (ή μη) πανεπιστημίων στο computer science και να τα δείτε/διαβάσετε από τα σχετικά τους εισαγωγικά μαθήματα. Έδωσα ήδη μερικά links μέσα από το top-10 πανεπιστημίων στο cs, μπορείτε να δείτε οποιοδήποτε άλλο θέλετε. Αυτά εφόσον πραγματικά ενδιαφέρετστε να ενημερωθείτε έγκυρα και σοβαρά για το θέμα που (υποτίθεται) πραγματεύεται αυτό το νήμα. Οι Wikipedies, οι κατά δοκούν (παρ)ερμηνείες του defacer, τα FILE παραδείγματα του πάπι στην C, τα do-able του nilos.gr, και τα λοιπά που έχουν παρατεθεί μέχρι στιγμής στο νήμα είναι μάλλον δικές τους θεωρίες ή το τι νομίζουν εκείνοι ή δεν ξέρω εγώ τι άλλο. Σίγουρα πάντως δεν έχουν καμία σχέση με την επι 10ετίες παγιωμένη γνώση σε όλους τους κύκλους του CS (ντόπιους και ξένους). 2
Latency Δημοσ. 4 Οκτωβρίου 2012 Μέλος Δημοσ. 4 Οκτωβρίου 2012 μου αρέσει που εγώ άνοιξα το τοπικ και διάβασα μόνο την πρώτη σελίδα και το φτάσατε 6η τι λέτε τι λέτε... πάλι Java vs C το κάναμε-τε?
moukoublen Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Φίλε moukoublen, τα βασικά features του κάθε paradigm, το ποιος θεωρείται πως τα υποστηρίζει και ποιος όχι, και πολλά άλλα είναι well-defined εδώ και πάρα πολλά χρόνια και διδάσκονται σε όλες τις σχολές πληροφορικής. Ναι, αυτό είναι σωστό. Απλά κάνοντας έστω το βήμα στον "επαναπροβληματισμό απο μηδενική βάση" γύρο απο τον ορισμό του OO, μου προκύπτει το πρόβλημα οτι αν τελικά βάλουμε μια εντελώς minimum βάση στο τι είναι object-based, λίγα ή καθόλου πράγματα μένουν απ έξω άρα στερείται και νοήματος.
παπι Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Στην απάντηση που σου είχα δώσει τι δεν σε κάλυψε; Οχι. Γιατι και σε μια object based γλωσσα το object ειναι ενας απλος proxy "descriptor"
migf1 Δημοσ. 4 Οκτωβρίου 2012 Δημοσ. 4 Οκτωβρίου 2012 Ναι, αυτό είναι σωστό. Απλά κάνοντας έστω το βήμα στον "επαναπροβληματισμό απο μηδενική βάση" γύρο απο τον ορισμό του OO, μου προκύπτει το πρόβλημα οτι αν τελικά βάλουμε μια εντελώς minimum βάση στο τι είναι object-based, λίγα ή καθόλου πράγματα μένουν απ έξω άρα στερείται και νοήματος. Σε καποιο προηγούμενο ποστ ανέφερα επιγραμματικά ποια θεωρούνται βασικά χαρακτηριστικά, και υποστηρίζονται εγγενώς από τη πλειοψηφία αν όχι το σύνολο των OOP γλωσσών: classes, objects, methods και inheritance (και encapsulation, που πάει μαζί με τις κλάσεις) . Τώρα μπορεί να μου διαφεύγει κάποιο feature, ή να έχω βάλει άλλο στη λίστα αντί κάποιου άλλου, αλλά σε γενικές γραμμές αυτά είναι. Καθώς επίσης, πως στο OOP τα πάντα οργανώνονται γύρω από classes/objects και όχι γύρω από procedures.
Latency Δημοσ. 4 Οκτωβρίου 2012 Μέλος Δημοσ. 4 Οκτωβρίου 2012 εγώ αυτό που έχω να πω είναι ότι με βάση αυτά που λέτε μερικοί θα πρέπει να γίνει πρόταση στα πανεπιστήμια να κοιτάξουν και αναβαθμίσουν την ύλη και αυτά που ξέρουν, είμαστε για γέλια μαθαίνουμε κάποια πράγματα, βγαίνει κάποιος που ξέρει έναν τρόπο πιο βολικό (φυσικά δεν τίθεται θέμα αποδοτικότητας) και λέει, "είσαι πολύ λάθος, σκέφτεσαι λάθος... πρέπει να το κάνεις έτσι" σε κάτι τέτοια δεν ξέρεις τι να κάνεις, μένεις έκπληκτος γιατί ρε πούστη μου ξέρεις μερικά πράγματα και σου λένε "δεν ξέρεις εσύ" , να γελάσεις, να μην δώσεις σημασία, να απαντήσεις να μην περνάνε τέτοια μηνύματα, δεν βαριέσαι. ΥΓ: γενικά μιλάω μην το πάρει κανείς προσωπικά, και σε άλλα φόρουμ αλλά εδώ που είμαστε και Έλληνες γίνεται χαμός... ΥΓ: ας κάνουμε λίγη πλάκα , Ψηφίζω λοιπόν θανατική ποινή στην C/C++ επειδή δεν έχει properties ποιος ξύναιτε??
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα