Μια από τις πιο δημοφιλείς γλώσσες προγραμματισμού είναι στις μέρες μας η Python και όχι τυχαία. Έχουν αναπτυχθεί για αυτήν πληθώρα βιβλιοθηκών, που προσφέρουν αμέτρητες δυνατότητες. Πάνω απ’ όλα, είναι εύχριστη και πολύ φιλική προς τον προγραμματιστή, με εντολές που πλησιάζουν τη φυσική γλώσσα.
Η python λοιπόν, αγαπήθηκε από πολλούς προγραμματιστές που ανέπτυξαν ένα σωρό frameworks για να την εξειδικεύσουν. Τέτοια είναι τα Tkinter, PyQT, Kivy για ανάπτυξη desktop ή και mobile εφαρμογών και για web development τα Flask, CherryPy και φυσικά… ταρατά, ταρατά (τυμπανοκρουσίες)… το Django!
Γιατί Django;
Νομίζω η απάντηση που δίνεται στην επίσημη ιστοσελίδα του django έχει μια σοβαρή παράληψη· γιατί είναι πολύ διασκεδαστική! Για όσους ακόμα βλέπουν χαρά στον προγραμματισμό θα χαρούν να το χρησιμοποιήσουν και σαφώς για αυτό παίζουν ρόλο τα όσα ανααφέρουν οι ίδιοι οι δημιουργοί τους:
Γελοιοδώς Γρήγορη
Αυτό αναφέρεται στην ταχύτητα ανάπτυξης μιας εφαρμογής. Στα επόμενα άρθρα θα δούμε και στην πράξη πόσο γρήγορα μπορούμε να υλοποιήσουμε μια εφαρμογή
Πλήρως Εξοπλισμένη
Οι δημιουργοί του, έχοντας κατα νου πράγματα που συναντιόνται συχνά σε ιστοσελίδες, δίνουν έτοιμες για αυτά λύσεις. Για παράδειγμα, έχει ένα άψογα στημένο back-end, ή βιβλιοθήκες με συναρτήσεις και κλάσεις για εύκολη παρουσίαση των αποτελεσμάτων αναζήτησης μιας βάσης δεδομένων.
Καθησυχαστικά Ασφαλής
Από τα μαθήματα που έχουν στη σελίδα τους για αρχάριους ακόμα, δείχνουν πως απαραίτητο στοιχείο της ανάπτυξης μια σελίδας είναι τα μέτρα για την ασφάλεια της. To Django έχει έτεοιμα εργαλεία που βοηθούν στην αποφυγή συνηθισμένων κενών ασφαλείας, όπως SQL injection, cross-site scripting, cross-site request forgery και clickjacking. Επιπρόσθετα, παρέχει ένα έτοιμο, δοκιμασμένο σύστημα σύνδεσης, εγγραφής χρηστών που μπορεί να ενταχθεί στην ιστοσελίδα πανεύκολα.
Υπερβολικά Επεκτάσιμη (καλά η μεταφορά από τα αγγλικά κάποιων εκφράσεων είναι μια κωμωδία, το ξέρω)
Με απλά λόγια, είναι ιδανική για όποιον θέλει να κατασκευάσει ιστοσελίδες που μπορεί (ή όχι) να εξελιχθούν σε τεράστιες σε όγκο. Για τέτοιες δουλειές τα έτοιμα cms όπως WordPress, Joomla κλπ θα αποδειχτούν γρήγορα ένας αφόρητος πονοκέφαλος. Σκεφτείτε ένα e-shop που ξεκινά με 100 προϊόντα και καταλήγει με ένα κατάλογο εκατομυρίων για παράδειγμα. Σε σύγκριση με ένα έτοιμο cms, η παρέμβαση στον κώδικα για να γίνουν βελτιστοποιήσεις είναι ασύγκριτα πιο εύκολη.
Απίστευτα ευέλικτη
Εταιρίες, οργανισμοί και κυβερνήσεις την έχουν χρησιμοποιήσει για να φτιάξουν όλων των ειδών τα προγράμματα. Από μέσα κοινωνικής δικτύωσης μέχρι επιστημονικές πλατφόρμες. Κάποιο από τους πιο μεγάλους παίκτες είναι το Instagram, το Pinterest, το Mozilla κλπ.
Τέλος, να αναφέρω ότι η εφαρμογές αναπτύσσονται με μια, ας πούμε, τμηματική φιλοσοφία. Μια ιστοσελίδα ή εφαρμογή ανεπτυγμένη σε Django αποτελείται από μικρότερα, διασυνδεδεμένα applications που το κάθε ένα μπορεί να επιτελεί τη δική του λειτουργία. Το πλεονέκτημα με αυτό είναι ότι το κάθε application είναι επαναχρησιμοποιούμενο! Δηλαδή(ς), μπορούμε να το χρησιμοποιήσουμε και σε ένα άλλο site που φτιάχνουμε.
Λόγου χάρη, ας πούμε ότι κατασκευάζουμε ένα μέσο κοινωνικής δικτύωσης. Θα μπορούσαμε να είχαμε ένα app που θα έδειχνε το προφίλ με τις πληροφορίες του χρήστη, ένα που να ασχολείται με το ανέβασμα φωτογραφιών και την τακτοποίηση τους στη βάση δεδομένων του server μας και ένα που θα ασχολιόταν με την πιστοποίηση (login, register, logout κλπ.). Αυτό το τελευταίο που ασχολείται με την πιστοποίηση, μπορούμε να το πάρουμε, σχεδόν αυτούσιο και να το εντάξουμε σε ένα καινούριο site που φτιάχνουμε για συνταγές μαγειρικής για εγγεγραμμένους μόνο χρήστες.
Γιατί Όχι Django
Ε καλά, όλοι έχουν τα μειονεκτήματα τους (ή αλλιώς ουδείς άσφαλτος). Τα κυριότερα μειονεκτήματα του Django είναι:
- Δύσκολη για αρχάριους. Καταρχάς, δεν το συγκρίνω με κάποιο cms τύπου WordPress που δεν χρειάζεται καν να προγραμματίσεις. Είπα και παραπάνω ότι είναι για όσους ευχαριστιούνται τον προγραμματισμό. Αυτό πάλι δεν σημαίνει ότι είναι απρόσιτη, απλά θέλει παραπάνω επιμονή μέχρι να συνηθήσετε τη φιλοσοφία της. Μόλις όμως ολοκληρώσετε το πρώτο σας project, τα υπόλοιπα θα είναι πολύ πιο εύκολα.
Κάτι που θα δυσκολέψει έναν αρχάριο ίσως, είναι ότι δεν έχει ένα προκαθορισμένο τρόπο ανάπτυξης μιας εφαρμογής, όπως άλλα frameworks. Αυτό βέβαια, δίνει μια μεγάλη ελευθερία στη δημιουργία όμως μπορεί να είναι και λίγο χαοτικό. - Δυσκολότερο hosting. Τα περισσότερα πακέτα hosting που κυκλοφορούν είναι για php. Αυτό ισχύει γενικά για python frameworks, κυριότερα από τις ελληνικές εταιρίες. Με μια πιο επιμελή έρευνα όμως θα βρείτε ότι υπάρχουν λύσεις (χωρίς να αναφέρω κάποια γιατί δεν έχω διάθεση να διαφημίσω κανέναν)
- Έχει λιγότερη ζήτηση από την PHP. Η μαύρη αλήθεια είναι ότι στην αγορά εργασίας η δεύτερη είναι επικρατέστερη. Όχι ότι είναι άσχημη η PHP. Απλά, αυτό μεταφράζεται σε πολλές προχειρο-δουλειές, σελίδες που είναι κολάζ από plugins που ανάθεμα και αν ξέρει αυτός που τα κολλάει τι κάνουν. Επικρατέστερη όμως δεν σημαίνει ότι δεν υπάρχει και καθόλου ζήτηση.
Αξίζει τελικά να μάθει κανείς Django;
Από τον όλο τόνο του άρθρου θα έχετε μαντέψει ήδη το πως τοποθετούμαι σε αυτό το ερώτημα. Αν θέλετε να φτιάξετε μια σοβαρή, ασφαλή, γρήγορη μεγάλη ιστοσελίδα να την προτιμήσετε σαφώς. Αν βλέπετε τον προγραμματισμό σαν μια δημιουργική απασχόληση, το ίδιο.
Προσωπικά, το πιο σημαντικό για μένα είναι η αίσθηση της δημιουργικότητας που απολαμβάνει κάποιος σε όλα τα στάδια του project. Αν η σύγχρονη δουλειά είναι μια μονότονη ρουτίνα, που βάζει τον προγαμματιστή να φτιάχνει το μερικό χωρίς να έχει επίγνωση του όλου, τότε το Django είναι μια όαση σε αυτήν την έρημο.