Δημοσιεύτηκε: 05 Ιαν 2012, 06:08
Η αντικειμενοστρέφεια δεν είναι πανάκεια φίλε giannosfor. Μάλιστα διάβαζα πριν λίγες εβδομάδες πως στο Carnegie (το top Computer Science πανεπιστήμιο) την βγάζουν τελείως εκτός ύλης στα πρώτα έτη, μιας και από τη φύση της αντιτιθεται στο parallelization (το οποίοι δείχνει να είναι το μέλλον).
Η ουσία είναι αυτό που εγραψα και πριν, πως τα πάντα είναι σχετικά, ανάλογα τις εκάστοτε ανάγκες, συνθήκες αλλά και περιστάσεις. Το ότι το structured programming προηγήθηκε χρονικά του OOP, δεν σημαίνει πως το δεύτερο αποτελεί το επόμενο βήμα του δεύτερου. Έχουν και τα 2 θέση, χρησιμότητα και εφαρμογές (όπως τα έχει και το functional programing, ο 3ος της παρέας).
Οπότε νομίζω δεν πρέπει να προεξοφλείς σε κάποιον ότι θα του αρέσει κάτι επειδή αρεσει σε σένα, ή επειδή αρέσει σε πολλούς. Το OOP είναι πολύ καλό για πολύ μεγάλα πρότζεκτ, κομμάτια των οποίων αναπτύσσονται ξεχωριστά, συνήθως από ξεχωριστές ομάδες προγραμματιστών. Και για πράγματα που μπορούν όντως να εκφραστούν ως αντικείμενα (κάτι που στον πραγματικό κόσμο, προβλήματα του οποίου καλούνται να επιλύσουν τα προγράμματα, δεν αποτελεί κανόνα).
Σε μεσαία και μικρά πρότζεκτ, το OOP ανεβάζει αχρείαστα την πολυπλοκότητα και το overhead. Σε κάθε περίπτωση όμως χρειάζεται βαθιά γνώση για να μη καταλήξει abused και κυρίως misused... που είναι πολύ συνηθισμενο.
Άν τα Αγγλικά σου είναι καλά και έχεις κάποια στιγμή όρεξη, διάβασε αυτό το άκρως απολαυστικό (πιστεύω και αποκαλυπτικό για πολλούς) άρθρο: http://steve-yegge.blogspot.com/2006/03 ... nouns.html
Ελπίζω να είναι αντιληπτό πως δεν είμαι πολέμιος του OOP, απλώς όπως όλα τα υπόλοιπα στον προγραμματισμό πρόκειται για ένα ακόμα trade-off, που αυτόματα σημαινει πως πρέπει κι αυτό να υπόκειται στην ίδια μελέτη για την καταλληλότητά του ή όχι για την επίλυση κάποιου προβλήματος. Όπως κάθε άλλο είδος προγραμματισμού. Προφανώς οφείλει να έχει επαφή με όλα όποιος σκοπεύει να ασχοληθεί επαγγελματικά.
Η ουσία είναι αυτό που εγραψα και πριν, πως τα πάντα είναι σχετικά, ανάλογα τις εκάστοτε ανάγκες, συνθήκες αλλά και περιστάσεις. Το ότι το structured programming προηγήθηκε χρονικά του OOP, δεν σημαίνει πως το δεύτερο αποτελεί το επόμενο βήμα του δεύτερου. Έχουν και τα 2 θέση, χρησιμότητα και εφαρμογές (όπως τα έχει και το functional programing, ο 3ος της παρέας).
Οπότε νομίζω δεν πρέπει να προεξοφλείς σε κάποιον ότι θα του αρέσει κάτι επειδή αρεσει σε σένα, ή επειδή αρέσει σε πολλούς. Το OOP είναι πολύ καλό για πολύ μεγάλα πρότζεκτ, κομμάτια των οποίων αναπτύσσονται ξεχωριστά, συνήθως από ξεχωριστές ομάδες προγραμματιστών. Και για πράγματα που μπορούν όντως να εκφραστούν ως αντικείμενα (κάτι που στον πραγματικό κόσμο, προβλήματα του οποίου καλούνται να επιλύσουν τα προγράμματα, δεν αποτελεί κανόνα).
Σε μεσαία και μικρά πρότζεκτ, το OOP ανεβάζει αχρείαστα την πολυπλοκότητα και το overhead. Σε κάθε περίπτωση όμως χρειάζεται βαθιά γνώση για να μη καταλήξει abused και κυρίως misused... που είναι πολύ συνηθισμενο.
Άν τα Αγγλικά σου είναι καλά και έχεις κάποια στιγμή όρεξη, διάβασε αυτό το άκρως απολαυστικό (πιστεύω και αποκαλυπτικό για πολλούς) άρθρο: http://steve-yegge.blogspot.com/2006/03 ... nouns.html
Ελπίζω να είναι αντιληπτό πως δεν είμαι πολέμιος του OOP, απλώς όπως όλα τα υπόλοιπα στον προγραμματισμό πρόκειται για ένα ακόμα trade-off, που αυτόματα σημαινει πως πρέπει κι αυτό να υπόκειται στην ίδια μελέτη για την καταλληλότητά του ή όχι για την επίλυση κάποιου προβλήματος. Όπως κάθε άλλο είδος προγραμματισμού. Προφανώς οφείλει να έχει επαφή με όλα όποιος σκοπεύει να ασχοληθεί επαγγελματικά.