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

Μερικές διευκρινήσεις για επιλογή web programming γλώσσας


antonisid

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

Δημοσ.

Αν γνωρίζω καλά Php oop τότε ουσιαστικά μπορώ να μάθω εύκολα και γρήγορα οποιαδήποτε άλλη αντικειμενοστραφή γλώσσα?Είναι κάποιο βήμα τουλάχιστον?

 

Το oop ειναι paradigm/φιλοσοφια/τροπος εκφρασεις. Πως να στο πω.. Αυτο που λες διαβαζω ως:

Ειμαι Βρετανος και εχω σκοτσεζικη προφορα τοτε ουσιαστικα μπορω να μαθω γρηγορα και ευκολα αγγλικα με αμερικανικη προφορα ή και βρετανικη προφορα? (Γλωσσα προγραμματισμου = προφορα, OOP = γλωσσα)

Δημοσ.

Βασικά, είναι σαν να ρωτάς "Αν ξέρω javascript, με if-else, while και for statements, θα μπορώ να μάθω εύκολα και γρήγορα PHP"; Η απάντηση είναι "πιθανώς ναι, πιθανώς όχι". Το σίγουρο είναι πως θα έχεις ένα σημείο λιγότερο να σκαλώσεις. Από εκεί και πέρα, όμως, υπάρχουν κι άλλα σημεία που πιθανώς να σε δυσκολέψουν (πχ αν πιάσεις C++ πιθανώς να τα βρεις σκούρα με τους pointers κλπ).

Δημοσ.

Ψάχτηκα λίγο και βρήκα τον παρακάτω σύνδεσμο που έχει κάποιο παράδειγμα υλοποιημένο σε πολλές γλώσσες.Νομίζω η λογική είναι ίδια πάνω-κάτω.Απ'τον λίγο αντικειμενοστραφή που γνωρίζω σε php μπορώ να καταλάβω την λογική αλλά όχι την σύνταξη πχ στην Java.Τώρα δε ξέρω μπορεί να έπεσα στην περίπτωση λόγω του πολύ απλού παραδείγματος.

 

συμπέρασμα: Η καλή γνώση που έχω στην C,php και λίγο oop δε με κάνουν να βλέπω τον κώδικα πχ σε Java και να μου φαίνονται "κινέζικα".

 

http://langref.org/python+ruby+java+php+go/oop

 

Η πορεία θα δείξει,ευχαριστώ για τις συμβουλές σας!!! B) . Ωστόσο η συζήτηση αν προχωρήσει καλό θα'ναι...

Δημοσ.

α)Καταρχάς,θα ήθελα να μου πείτε ποια η διαφορά αν χρησιμοποιήσω oop στην Php και φτιάχνω τον κώδικα με κλάσεις απ'το να κάνω το ίδιο με κάποια άλλη γλώσσα που υποστηρίζει αντεικενοστρέφεια πχ την Python.

 

Η PHP από την εκδοση 5 και μετά είναι κανονική OO γλώσσα.

Δημοσ.

Η PHP από την εκδοση 5 και μετά είναι κανονική OO γλώσσα.

 

Χωρίς να έχω σκοπό να ξεκινήσω το γνωστό flame, δεν μπορώ να συμφωνήσω με αυτή την πρόταση. Η PHP δεν είναι OO γλώσσα (ακόμα). Είναι γλώσσα που υποστηρίζει objects. Γιατί, για να χαρακτηριστεί μια γλώσσα αντικειμενοστραφής, πρέπει να στρέφεται γύρω από τα αντικείμενα. Στην PHP σχεδόν τίποτα δεν αντιμετωπίζεται σαν αντικείμενο, πέρα από τις κλάσεις που φτιάχνει ο χρήστης. Αντίθετα, στη Ruby, ακόμα και οι αριθμοί και τα strings είναι αντικείμενα.

 

Παρόλαυτά, το ότι δεν είναι σωστό να χαρακτηρίζεται OO γλώσσα, δεν σημαίνει ότι δεν μπορεί να δουλέψει αποκλειστικά με αντικείμενα, ή ότι στερείται δυνατοτήτων όσον αφορά στα αντικείμενα. Άλλωστε, όπως όλα δείχνουν, σκοπός των devs της PHP είναι να κάνουν την PHP μια απλή, γρήγορη και ευχάριστη full OO γλώσσα.

Δημοσ.
Γιατί, για να χαρακτηριστεί μια γλώσσα αντικειμενοστραφής, πρέπει να στρέφεται γύρω από τα αντικείμενα. Στην PHP σχεδόν τίποτα δεν αντιμετωπίζεται σαν αντικείμενο, πέρα από τις κλάσεις που φτιάχνει ο χρήστης. Αντίθετα, στη Ruby, ακόμα και οι αριθμοί και τα strings είναι αντικείμενα.

 

Το object oriented paradigm ειναι κατι πολυ συγκεκριμενο. Η php υποστηριζει OO. Εσενα σου διαφευγει κατι πολυ σημαντικο, σημερα οι γλωσσες δεν υποστηριζουν μονο μια φιλοσοφια αλλά πολλες μαζι.

πχ

javaScipt:

+OO

+functional (βλεπε lambda)

+iperative

+και αλλες υποκατηγοριες

 

 

 

Σε αυτο που κανω quote ειναι προφανες οτι εχεις συσχετισει τον OO με το object drived και ενα συγκεκριμενο type system.

 

 

Δημοσ.

Η PHP από την εκδοση 5 και μετά είναι κανονική OO γλώσσα.

 

Απο την 6 και μετά θα είναι μια κανονική ΟΟ.. τώρα απλώς υποστηρίζει κάποια πράγματα (αλλά σίγουρα πιο καλά απ οτι σε παλιότερες εκδόσεις της που και τότε υποστήριζε objects).

Δημοσ.

Το object oriented paradigm ειναι κατι πολυ συγκεκριμενο. Η php υποστηριζει OO. Εσενα σου διαφευγει κατι πολυ σημαντικο, σημερα οι γλωσσες δεν υποστηριζουν μονο μια φιλοσοφια αλλά πολλες μαζι.

πχ

javaScipt:

+OO

+functional (βλεπε lambda)

+iperative

+και αλλες υποκατηγοριες

 

 

 

Σε αυτο που κανω quote ειναι προφανες οτι εχεις συσχετισει τον OO με το object drived και ενα συγκεκριμενο type system.

 

 

 

Από εδώ:

>
In recent years, object-oriented programming has become especially popular in dynamic programming languages. Python, Ruby and Groovy are dynamic languages built on OOP principles, whilePerl and PHP have been adding object oriented features since Perl 5 and PHP 4, and ColdFusion since version 6.


 

 

Σύμφωνα με αυτή την πρόταση, οι Python, Ruby και Groovy είναι δυνμικές γλώσσες δομημένες πάνω στις αρχές του OOP, ενώ οι Perl και PHP παίρνουν στοιχεία του (ας πούμε Object Capable). Όταν αναρρωτιέμαι τί είναι ένα string, ένα array ή ένας αριθμός στην Ruby ή στην Java, για παράδειγμα, και τί είναι στην PHP, νομίζω ότι αντιλαμβάνομαι αυτό ακριβώς που εννοεί η παραπάνω πρόταση.

 

Για να μην παρεξηγηθώ, όλα αυτά είναι απλά φιλοσοφίες, και κουβέντα να γίνεται. Υπάρχει τεράστιο debate πάνω στο θέμα, και είναι καθαρά θέμα οπτικής. Ξαναγράφω, πως στην PHP μπορείς να υλοποιήσεις ένα project χρησιμοποιώντας σχεδόν αποκλειστικά αντικείμενα, οπότε, αν θεωρείς πως αυτό κάνει μια γλώσσα προγραμματισμού OO, τότε, ναι, η PHP είναι OO.

Δημοσ.

Απλά για την ιστορία...

 

 

Και στην Java, οι πρωτογενείς τύποι (i.e. int, string κτλ) είναι κλάσεις. Το "λάθος", κατά κάποιους, είναι ότι αυτή η "δυνατότητα" "μπήκε" λίγο πιο μετά στην Java (δεν θυμάμαι πώς και πού) με αποτέλεσμα, ακόμα και σήμερα, να χρησιμοποιούνται οι πρωτογενείς τύποι και όχι οι κλάσεις των τύπων αυτών. Για αυτό, σχεδόν κανείς ( ; ) δεν χρησιμοποιεί τις κλάσεις αλλά τους ίδιους τους τύπους.

Δημοσ.

Από εδώ:

>
In recent years, object-oriented programming has become especially popular in dynamic programming languages. Python, Ruby and Groovy are dynamic languages built on OOP principles, whilePerl and PHP have been adding object oriented features since Perl 5 and PHP 4, and ColdFusion since version 6.


 

 

Σύμφωνα με αυτή την πρόταση, οι Python, Ruby και Groovy είναι δυνμικές γλώσσες δομημένες πάνω στις αρχές του OOP, ενώ οι Perl και PHP παίρνουν στοιχεία του (ας πούμε Object Capable). Όταν αναρρωτιέμαι τί είναι ένα string, ένα array ή ένας αριθμός στην Ruby ή στην Java, για παράδειγμα, και τί είναι στην PHP, νομίζω ότι αντιλαμβάνομαι αυτό ακριβώς που εννοεί η παραπάνω πρόταση.

 

Για να μην παρεξηγηθώ, όλα αυτά είναι απλά φιλοσοφίες, και κουβέντα να γίνεται. Υπάρχει τεράστιο debate πάνω στο θέμα, και είναι καθαρά θέμα οπτικής. Ξαναγράφω, πως στην PHP μπορείς να υλοποιήσεις ένα project χρησιμοποιώντας σχεδόν αποκλειστικά αντικείμενα, οπότε, αν θεωρείς πως αυτό κάνει μια γλώσσα προγραμματισμού OO, τότε, ναι, η PHP είναι OO.

 

Ααα καταλαβα οταν λες γλωσσα εννοεις Language + Framework. Τοτε πραγματι δεν ειναι OO. Οπος και η C++ δεν ειναι OO αν την χρησιμοποιεις με clibs. Τεσπα οτι και να λες.. η php ειναι muti-paradigm και ενα απο τα paradigm που υποστιρηζει ειναι το oo._

 

 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...