The King is dead! RIP 2006-2012

Ένα μεγάλο ευχαριστώ σε όλη την παρέα
Περισσότερα στο lexx.gr

IDEs VS TEs: Διπλό από ημίχρονο

06 May 2011 by fractalbit

Αρχίζει το ματς, αδειάσαν οι δρόμοι...

Όποτε κι αν έχω προσπαθήσει να χρησιμοποιήσω κάποιο IDE για web development, όσο κι αν έχω ενθουσιαστεί στην αρχή, πάντα, μα πάντα γυρνάω στον αγαπημένο μου text-editor για το 95% του χρόνου που αφιερώνω σε web development. Ώστοσο, ίσως και εξαιτίας του τίτλου, να υποθέσετε ότι υποστηρίζω ότι οι text-editors είναι ΤΟ εργαλείο που ΠΡΕΠΕΙ να χρησιμοποιούν οι ΠΡΑΓΜΑΤΙΚΟΙ web-developers («real men do it on keyboard only» και λοιπές, με το συμπάθειο, μ@λ@κίες).

ΌΧΙ! Αυτό που θέλω να πω, είναι ότι τυχαίνει για τα projects με τα οποία ασχολούμαι εγώ οι text editors να είναι το «ιδανικό» εργαλείο ή τουλάχιστον αυτό που βολεύει εμένα. Τί είδους project είναι αυτά; Με μία λέξη «μικρά». Συνήθως απλά, προσωπικά ή community websites, ή τροποποιήσεις σε λίγο μεγαλύτερα project. Δεν φτιάχνω το τεράστιο b2b eccommerce site ούτε κάποια super duper εφαρμογή για android. Σκέφτηκα όμως ότι θα έχει ενδιαφέρον σε αυτό το σύντομο άρθρο να δούμε μέσα από τη δική μου, καθαρά υποκειμενική ματιά, ποια είναι τα υπέρ και τα κατά της κάθε λύσης και τί είναι αυτό που με κάνει να γυρνάω ξανά και ξανά στους text-editors

Και βέβαια όταν λέμε text-editors μη φανταστείτε… το notepad! Αυτό θα ήταν καθαρή τρέλα. Εννοούμε εξελιγμένους text-editor σαν το notepad++ (κι όμως δύο + κάνουν τεράστια διαφορά!) ή το sublime text (οι φίλοι των mac έχουν κι αυτοί τα εξαιρετικά textmate και coda). Και μόνο το color-coding και τα line numbers που παρέχουν είναι απολύτως απαραίτητα για coding.

Και τα IDEs όμως τα έχουν όλα αυτά καθώς και πολλά περισσότερα. Live debugging; έχουμε, refactoring; έχουμε, autocomplete ακόμα και για το αγαπημένο σας framework; έχουμε, project management; έχουμε, Πλαίσια με όλα τα functions, classes, variables των αρχείων σας; έχουμε λέμε, Έχει και {Insert Killer Feature Here} να τ’ αφήσω; Όχι ρε φίλε, θα γυρίσω στο notepad++!

IDE τα λένε κι όλα τα παιδάκια κλαίνε

Μα γιατί θα πείτε; Έχει τόοοσα πολλά περισσότερα, γιατί να γυρίσεις στο notepad++ ή στο εκάστοτε σεμνό και ταπεινό text-editor? Γιατί αυτά τα «πολλά περισσότερα» είναι ευχή και κατάρα μαζί. Αν τα χρειάζεσαι για το project σου είναι ευχή, αν όχι…

  • Θα πρέπει να συνηθίσεις ότι για την παραμικρή αλλαγή στον κώδικά σου, θα περιμένεις 27,32 δευτερόλεπτα να φορτώσει το IDE τα «πολλά περισσότερα»
  • Θα πρέπει να μη δίνεις σημασία στο (έστω και ανεπαίσθητο) lag ακόμα κι όταν απλά πληκτρολογείς.
  • Θα πρέπει να ανεχτείς στην οθόνη σου αυτά τα «πολλά περισσότερα» ακόμα κι αν το 95% του χρόνου που προγραμματίζεις ΔΕΝ τα χρειάζεσαι
  • Θα πρέπει να ασχοληθείς με τις ώρες για να μάθεις και να συνηθίσεις, πως λειτουργούν όλα αυτά τα «πολλά περισσότερα»
  • Θα αναρωτιέσαι κάθε τόσο αν αυτό που κάνεις, το κάνεις με τον πιο αποδοτικό τρόπο ή έχει κι άλλη κρυφή λειτουργία το πρόγραμμα και πρέπει να ψάξεις στο help να τη βρεις.
  • Θα σου κλείνει τα html tags αυτόματα και θα καταλήγεις με κώδικα του τύπου <p>Τί γαμάτο το Dreamweaver!</p>p>

«Κάπου θα απενεργοποιείται κι αυτό στις 7.337 ρυθμίσεις που είναι χωρισμένες σε 17 καρτέλες», θα σκέφτεσαι. «Δεν βαριέσαι, θα το συνηθίσω…», αλλά μετά το 38ο λάθος συνειδητοποιείς ότι δεν θα το συνηθίσεις ΠΟΤΕ!

  • Θα έχεις την αίσθηση ότι χρησιμοποιείς αλυσοπρίονο για να κόψεις μερικές φέτες ψωμί

Γιατί καμιά φορά, Less is more...

Να συνεχίσω; Γυρίζω λοιπόν πάλι στον text-editor και χαίρομαι για δύο κυρίως πράγματα. Το γεγονός ότι ανοίγει σε λιγότερο από ένα δευτερόλεπτο και το γεγονός ότι χωρίς όλα αυτά τα «πολλά περισσότερα» μπορώ επιτέλους να συγκεντρωθώ απερίσπαστος σε αυτό που μετράει, δηλαδή στον κώδικά μου και σε αυτό που θέλω να φτιάξω και όχι στο πως λειτουργεί το πρόγραμμα. Βέβαια για να τα λέμε όλα, το τελικό configuration που κάνω στους text-editors, μαζί με 3-4 plugins, μοιάζει με κάτι σαν ελαφρύ και μινιμαλιστικό IDE. Αλλά το προτιμάω…

  • Γιατί εξακολουθεί και ανοίγει σε λιγότερο από 1 δευτερόλεπτο
  • Γιατί τα περισσότερα από αυτά που βάζω δουλεύουν με shortcuts και μόνο όποτε τα χρειαστώ
  • Γιατί τελικά ίσως είναι απλά η αίσθηση ότι έχω εγώ τον έλεγχο του τι κάνει και τί δεν κάνει το πρόγραμμα
  • Η αίσθηση ότι τα λάθη που έχω κάνει είναι του δικού μου χαζού κεφαλιού και όχι κάποιου έξυπνου autocomplete
  • Γιατί το διπλό είναι τελικά αναπόφευκτο, γιατί τελικά, ίσως απλά να είμαι κολλημένος με τη μπάλα!

Το κατάλληλο εργαλείο για την κατάλληλη δουλειά...

Βέβαια υπάρχουν φορές που τα IDEs μου έχουν γλιτώσει άπειρο χρόνο. Π.χ. το dreamweaver, όταν χρειάστηκε να διορθώσω design με κώδικα βασισμένο σε άπειρα nested tebles με τρελά row/col-spans (το οποίο βέβαια κατά τραγική ειρωνεία μάλλον είχε φτιαχτεί με dreamweaver). Ή όταν έφτιαξα CRUD φόρμες με 50 πεδία προς συμπλήρωση σε μερικά λεπτά αντί για πολλέεες ώρες. Ποιό είναι λοιπόν το συμπέρασμα; «Παίξτε» αρκετά (χωρίς να το παρακάνετε) με πολλά προγράμματα και από τις δύο κατηγορίες, μάθετε «στο περίπου», τί μπορεί και τι δεν μπορεί να κάνει το καθένα και στο τέλος χρησιμοποιήστε το κατάλληλο εργαλείο για την κατάλληλη δουλειά. Επίσης μην τρώτε κόλλημα να χρησιμοποιείτε απαραίτητα ένα εργαλείο για ένα project από την αρχή ως το τέλος. Μπορεί για παράδειγμα να είναι πιο αποδοτικό να φτιάξετε ένα αρχικό design με dreamweaver και να το συνεχίσετε με έναν text-editor. Ή στη μέση ενός project να φτιάξετε μια πολύπλοκη φόρμα με το dreamweaver και τα υπόλοιπα με text-editor. Εργαστείτε λοιπόν όσο πιο αποδοτικά μπορείτε και αφήστε τα δόγματα για τους χαζούς. Στο κάτω κάτω αυτό που τελικά μετράει, είναι τι βολεύει ΕΣΑΣ ;)

Υ.Γ. Τα πιο χρήσιμα coding IDEs για μένα είναι το Dreamweaver και το NetBeans. Από text-editors χρησιμοποιώ εδώ και καιρό το notepad++ ενώ προσφάτως ανακάλυψα και το sublime text που φαίνεται πολύ καλό και ίσως να κάνω το switch. Όλα αυτά για windows. Για τους φίλους των mac, λογικά πρέπει να υπάρχουν εκδόσεις και για το Dreamweaver και για το NetBeans ενώ από text-editors υπάρχουν τα εξαιρετικά (απ’ όσο έχω ακούσει και όχι από προσωπική εμπειρία) textmate και coda.

Εσείς ποια ide/text-editor προτιμάτε; Γιατί και σε ποιές περιπτώσεις τα χρησιμοποιείτε; Περιμένω με πολύ μεγάλο ενδιαφέρον τις απόψεις σας και ελπίζω το άρθρο αυτό να είναι μόνο η αφορμή για να μάθω κι εγώ και οι υπόλοιποι αναγνώστες μας νέα προγράμματα…

Άσχετο: Φέτος έχουμε 2011, το άρθρο το τελείωσα στις 8 το βράδυ και μου πήρε για να το γράψω 88 λεπτά, όλα μαζί, 11 888. Τυχαίο;