Software Intelligence

Η τεχνολογία δεν είναι δόγμα πίστης

Είναι επιλογή εργαλείου. Και αυτή πρέπει να ταιριάζει καλύτερα στο πρόβλημα παρά στη φιλική γνώμη του προγραμματιστή.

Δεν επιλέγουμε τεχνολογίες με βάση το τι ακούγεται καλά στα συνέδρια, αλλά με βάση το τι μπορεί να χτιστεί καθαρά για μια εργασία, να λειτουργήσει και να εξελιχθεί αργότερα.

Douglas Engelbart

Καλιφόρνια / αλληλεπίδραση ανθρώπου-υπολογιστή

Douglas Engelbart

„SRI Douglas Engelbart 1968“ από SRI International, 1968

Πηγή: Wikimedia Commons · Άδεια χρήσης: CC BY-SA 3.0 · Πηγές εικόνων

Επεξεργασία: Αλλαγές: αποκοπή από το φόντο, μεγέθυνση. Η επεξεργασία υπάγεται στην ίδια άδεια, CC BY-SA 3.0. Επεξεργασία από την Today is Life.

Ο Douglas Engelbart δεν ενδιαφερόταν απλώς να κάνει τους υπολογιστές ταχύτερους. Το ερώτημά του ήταν μεγαλύτερο: πώς μπορούν οι υπολογιστές να βοηθήσουν τους ανθρώπους να σκέφτονται καλύτερα και να συνεργάζονται; Το 1968 έδειξε σε μια θρυλική παρουσίαση πράγματα που τότε έμοιαζαν σχεδόν με επιστημονική φαντασία: έλεγχο με ποντίκι, υπερκείμενο, παράθυρα, κοινή επεξεργασία εγγράφων και βιντεοδιασκέψεις. Το καθοριστικό για τον Engelbart δεν ήταν ποτέ το μεμονωμένο εργαλείο. Καθοριστικό ήταν αν η τεχνολογία διευρύνει τις ικανότητες των ανθρώπων. Ένας αρκετά καλός κανόνας για την ΤΝ: δεν κερδίζει το πιο εντυπωσιακό εργαλείο. Αλλά εκείνο με το οποίο οι άνθρωποι δουλεύουν πράγματι καλύτερα.

Douglas Engelbart (1925–2013) Αμερικανός επιστήμονας πληροφορικής, εφευρέτης και πρωτοπόρος των υπολογιστών

Η στοίβα δεν είναι το μήνυμα

Μπορεί κανείς να γίνει εκπληκτικά θρησκευτικός με τις τεχνολογίες.

Τότε μια γλώσσα προγραμματισμού γίνεται ταυτότητα, ένα framework κοσμοθεωρία και κάθε αρχιτεκτονική απόφαση σχεδόν ζήτημα χαρακτήρα. Εγώ το θεωρώ ελάχιστα χρήσιμο.

Οι επιχειρήσεις στο τέλος δεν αγοράζουν ιδεολογία. Χρειάζονται λογισμικό που εκπληρώνει την εργασία του, αντέχει τις διαδικασίες τους και δεν καταρρέει μόλις εμφανιστεί η πρώτη νέα απαίτηση.

Ακριβώς γι' αυτό επιλέγουμε την τεχνολογία πραγματιστικά. Όχι αυθαίρετα. Αλλά πραγματιστικά.

Μας ενδιαφέρει με τι λύνεται καθαρά ένα πρόβλημα. Τι μπορεί να κυριαρχήσει καλά μια ομάδα. Τι θα είναι ακόμη συντηρήσιμο σε τρία χρόνια. Τι ταιριάζει με τα υπάρχοντα συστήματα. Και τι παραμένει λογικό ακόμη κι όταν από μια όμορφη ιδέα γίνει κάποια στιγμή πραγματικό προϊόν με πραγματικούς χρήστες, πραγματικά δεδομένα και πραγματικές συνέπειες.

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

Backend

Στο backend κρίνεται συχνά αν ένα σύστημα απλώς φαίνεται όμορφο ή λειτουργεί πραγματικά. Εκεί συγκλίνουν τα δεδομένα, εκεί βρίσκονται η επιχειρησιακή λογική, τα δικαιώματα πρόσβασης, οι ενσωματώσεις και τα μέρη του συστήματος που αργότερα δεν τα βλέπει κανείς, τα νιώθουν όμως όλοι.

Δουλεύουμε εδώ συνειδητά με τεχνολογίες που έχουν αποδείξει την αξία τους σε πραγματικά έργα. Δεν είναι καινούργιες, είναι όμως αξιόπιστες, κατανοητές και λογικά αξιοποιήσιμες στην πράξη. Ανάλογα με την εργασία καταφεύγουμε σε κλασικές στοίβες web, σε αρχιτεκτονικές με μεγαλύτερο προσανατολισμό στα API ή σε Python εκεί όπου η επεξεργασία δεδομένων, η αυτοματοποίηση ή η ΤΝ ανήκουν πράγματι.

Τεχνολογίες backend

PHP

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

Laravel

Το προτιμώμενο framework PHP μας για εφαρμογές όπου πρέπει να συναντιούνται παραγωγικότητα, σαφήνεια και συντηρησιμότητα.

Symfony

Δυνατό όταν τα έργα απαιτούν περισσότερη δομή, περισσότερη εξατομίκευση ή πολύ συγκεκριμένες αρχιτεκτονικές αποφάσεις.

Yii2

Εξακολουθεί να έχει νόημα σε ορισμένα έργα υφιστάμενων συστημάτων και απόδοσης, ειδικά όταν ζητούνται ταχύτητα και σαφείς δομές.

Python

Έχει νόημα εκεί όπου η επεξεργασία δεδομένων, η αυτοματοποίηση, η ΤΝ ή η αναλυτική λογική έρχονται περισσότερο στο κέντρο.

Node.js

Πρακτικό για υπηρεσίες βασισμένες σε συμβάντα, ενσωματώσεις και εφαρμογές όπου η JavaScript ή η TypeScript έχει νόημα και στην πλευρά του διακομιστή.

Rust

Ενδιαφέρον για υπηρεσίες όπου η απόδοση, η ασφάλεια και ο καθαρός έλεγχος των πόρων είναι ιδιαίτερα σημαντικά.

Frontend

Στο frontend το λογισμικό γίνεται άμεσα βιώσιμο. Εκεί φαίνεται γρήγορα αν ένα σύστημα δουλεύει με τους ανθρώπους ή εναντίον τους.

Γι' αυτό μας ενδιαφέρει εδώ όχι μόνο τι φαίνεται μοντέρνο, αλλά τι κάνει την αλληλεπίδραση σαφέστερη, τι συνδέεται καθαρά με το backend και τι μπορεί να συντηρείται μακροπρόθεσμα. Δεν χρειάζεται κάθε εφαρμογή την ίδια πολυπλοκότητα. Άλλοτε το σωστό είναι ένα reactive framework, άλλοτε αρκεί απολύτως ένα ελαφρύτερο εργαλείο. Και εδώ ισχύει: το εργαλείο ακολουθεί την εργασία.

Τεχνολογίες frontend

Vue.js

Για εμάς συχνά μια καλή μέση λύση ανάμεσα σε σαφήνεια, ταχύτητα και ευχάριστη ανάπτυξη σε παραγωγικά frontends.

React

Μια καλή επιλογή όταν τα έργα χρειάζονται περισσότερη ελευθερία ή όταν υπάρχοντα οικοσυστήματα και ομάδες είναι ήδη έντονα προσανατολισμένα σε αυτό.

HTMX

Χρήσιμο όταν η διαδραστικότητα μπορεί να λυθεί με νόημα απευθείας μέσα από το HTML και θέλει κανείς συνειδητά λιγότερη πολυπλοκότητα JavaScript.

Alpine.js

Χρήσιμο για ελαφρύτερες αλληλεπιδράσεις σε εφαρμογές με rendering στην πλευρά του διακομιστή, όταν ένα μεγάλο framework frontend θα ήταν απλώς υπερβολή.

Tailwind CSS

Πρακτικό όταν θέλει κανείς να αναπτύσσει διεπαφές συστηματικά και με συνέπεια, χωρίς να χάνεται σε αυξανόμενο χάος CSS.

Περισσότερα για την Software Intelligence

Τι είναι η Software Intelligence;

Το βασικό ερώτημα πίσω από τον τομέα: πότε το λογισμικό είναι κάτι περισσότερο από απλώς λειτουργικός κώδικας.

Οι εξελίξεις μας

Τα δικά μας προϊόντα είναι ο πιο ειλικρινής τόπος για να δοκιμάσουμε την αρχιτεκτονική, τη χρηστικότητα και τις τεχνικές αποφάσεις.

Προς την επισκόπηση SI

Το ευρύτερο πλαίσιο: πώς σκεφτόμαστε συνολικά τα συστήματα, το λογισμικό και τις ψηφιακές διαδικασίες.