The King is dead! RIP 2006-2012

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

Παρουσίαση δημοφιλών Web Frameworks

23 Oct 2007 by PanosJee

Τα τελευταία 2-3 χρόνια παρατηρούμε μια έκρηξη τόσο στη χρήση αλλά και την παραγωγή νέων web frameworks. Αλλά καταρχήν ας δώσουμε μια μικρή εξήγηση του τι εστίν web framework. Συνήθως οι προγραμματιστές γνωρίζουν κάποιες γλώσσες προγραμματισμού με τις οποίες μπορεί να δημιουργήσουν διάφορες εφαρμογές είτε από το μηδέν είτε χρησιμοποιώντας διάφορες βιβλιοθήκες που τους προσφέρουν έτοιμες κάποιες λειτουργίες. Ένα framework προσφέρει και αυτό κάποιες έτοιμες λειτουργίες όπως caching, templating, object mapping αλλά και μπορεί να επεκταθεί με plugins αλλά κατά κύριο λόγο προτυποποιεί κάποιες διαδικασίες όπως η αρχιτεκτονική της εφαρμογής, η σύνδεση στη βάση δεδομένων αλλά μπορεί και να δίνει δυνατότητα για γρήγορη και αυτόματη δημιουργία κώδικα όπως το scaffolding. Ας δούμε όμως μερικά frameworks ανάλογα με τη γλώσσα στην οποία είναι γραμμένα.

Ruby


ror Ας αρχίσουμε, με το είτε το θέλουμε με ένα αρκετά επηρεαστικό framework, Ruby On Rails ή για συντομία Rails. Όπως καταλαβαίνετε πρόκειται για ένα framework γραμμένο σε Ruby, μία σχετικά νέα γλώσσα από την Ιαπωνία που μοιάζει με Python και Smalltalk. Το κακό της ότι είναι interpreted και συνεπώς αργή και δεν έχει τόσο καλό documentation έχει όμως άριστο συντακτικό και είναι μια πλήρης γλώσσα. Το Rails έφερε την επανάσταση με μια σειρά παραδοχές όπως το Convention over Configuration, DRY (Don 't Repeat Yourself), object mapping (active record), MVC, integrated Prototype.js (AJAX support). Πολλοί υποστηρίζουν ότι πρόκειται για μεγάλο hype αλλά οι θέσεις εργασίας σε RoR στις ΗΠΑ αυξάνονται διαρκώς.

Και μια και μιλάμε για Ruby πρέπει να αναφέρουμε το Nitro Project δημιούργημα ενός συμπατριώτη μας, του Γιώργου Μοσχοβίτη. Από ότι φαίνεται είναι άμεσα ανταγωνίσιμο με το Rails και δεν αποτελεί αντιγραφή αλλά έχει τη δικιά του φιλοσοφία. Μάλιστα δεν κάνει Object mapping από τη βάση στα αντικείμενα αλλά από κλάσεις στη βάση χάρη στο Og. Ελπίζουμε σύντομα ο Γιώργος να μας το παρουσιάσει και καλύτερα και να φτιαχτεί ένα δυνατό community γύρω από από το project.

Java


Μία από τις πιο παλιές και διαδεδομένες προσπάθειες είναι το Struts που αναπτύσσεται με τεχνολογία Java. Θα το βρούμε σε πολλά μεγάλα projects και αυτό κάθε αυτό αποτελεί δημιούργημα του Apache Foundation. Πλέον υποστηρίζει MVC και είναι RESTful.

spring Αντίπαλο δέος αλλά και συνεργάτης (!) το Spring, θα το βρείτε και αυτό σε μεγάλα projects και πλέον υπάρχει και μεταφορά του σε .Net για τους λάτρεις των τεχνολογιών Microsoft. Το Spring διαθέτει και αυτό MVC και μεγάλες δυνατότητες για σύνδεση με αποθηκευτικούς μηχανισμούς όπως relational databases, Hibernate, iBatis. Να σημειώσουμε ότι το Spring είναι κάτα κύριο middle tier λογισμικό και κυρίως αποσκοπεί να κάνει μια λογική αφαίρεση πάνω από το JDBC και για αυτό μπορεί να συνεργαστεί και με άλλα frameworks όπως το Struts.

Φυσικά η Oracle έχει να παρουσιάσει τη δική της εκδοχή που ονομάζεται ADF και που σιγά σιγά θα αντικαταστήσει και τα δικά της Forms. Επίσης ο JDeveloper έχει εκπληκτικά εργαλεία που δουλεύουν με το ADF και μπορεί μάλιστα να παράγεις κώδικα από UML

Μια ενδιαφέρουσα εκδοχή του Rails σε Java και συνεπώς JVM είναι το Grails. Χρησιμοποιεί την αρχιτεκτονική του Rails με μία scripting γλώσσα βασιζόμενη στη Java την Groovy. Πρόκειται για μια ισχυρή γλώσσα που μάλιστα έχει πρόσβαση σε κάθε Java κλάση.

PHP


zf Παλιότερος και μεγάλος παίκτης του χώρου δεν είναι άλλος από την Zend (από τους πατέρες της PHP) με τη δική τους έκδοση το Zend Framework το οποίο βέβαια παίζει με τα άλλα προϊόντα της εταιρίας όπως το Zend Studio, Zend Engine, Zend Core. Εδώ βέβαια μιλάμε για επαγγελματικά Lisences

Θα βρούμε και πολλά Open Source PHP frameworks που όλα υποστηρίζουν MVC, AJAX, data mapping και λίγο πολύ αποτελούν Ruby On Rails clones, ενδεικτικά έχουμε

  • CodeIgniter, νέα άφιξη
  • Symphony Project, παλιό και τεσταρισμένο
  • CakePHP, από τους πρώτους και πιστούς κλόνους του Rails
  • Akelos, νέα άφιξη, δεν πρωτοτυπούν και λένε ευθέως ότι αντιγράφουν το Rails

Και λίγη Python


To κορυφαίο framework για αυτήν την εξαιρετική γλώσσα δεν είναι άλλο από το Django ακολουθεί και αυτό μια RoR λογική και ελπίζουμε το δοκιμάσουμε σύντομα

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

.NET


.net Όπως αναφέρθηκε υπάρχει ήδη διαθέσιμη μια μεταφορά του Spring παρόλαυτα η Microsoft αναμένεται να κυκλοφορήσει στην επόμενη έκδοση του ASP.NET υποστήριξη για MVC... κάλλιο αργά παρά ποτέ.

Αυτά τα ολίγα και ελπίζουμε να σας διαφωτίσαμε λίγο στο χαοτικό τομέα των web frameworks. Επιλέξτε γλώσσα αρχικά και μετά κάνετε την έρευνα σας. Προσωπικά αν η κλιμάκωση και η σύνδεση με υπάρχουσες βιβλιοθήκες δεν είναι ζητούμενο πειραματιστείτε με δυναμικές γλώσσες όπως Ruby, Python, Groovy

Και λίγο geeky humor... Rails vs. Everyone