Ok εδώ μέσα όλοι είμαστε, λίγο πολύ, περισσότερο backend developers, αλλά τι γίνεται όταν θέλεις να κάνεις κάτι με γραφικά on the client side?
Φαντάζομαι όλοι θα χρησιμοποιείτε javascript, αλλά το jquery και λοιπά frameworks δεν κάνουν τόσο εντυπωσιακά πράγματα…
Μια λύση είναι το adobe flash, και να σχεδιάσεις όλο το site ή ένα μέρος με action-script. Πέρα από το γεγονός πως καθηλώνεσαι με την adobe, έχεις και το μειονέκτημα πως το block αυτό που περιέχει το flash δεν "συνεργάζεται" με τα υπόλοιπα στοιχεία του site. δηλαδή με javascript δεν συνεργάζεται.
Άλλη σχετικά καλή ιδέα είναι να χρησιμοποιήσεις SVG, που και αυτό όμως έχει το δικό του block που λειτουργεί και τον δικό του κώδικα.
Μετά σκέφτεσαι οτί ήρθε το html5 και όλα τα προβλήματα λύθηκαν. Αλλά το canvas του μπορεί μόνο να σχεδιάσει σχηματάκια χωρίς να υπάρχει η έννοια των elements, να μπορείς να βάλεις events click on a circle για παράδειγμα.
Η δική μου πρόσφατη ανακάλυψη είναι το CAKEjs
Θα το βρείτε σε μια παλιότερη και μια νεότερη έκδοση (συντηρούμενη από άλλον developer) σε αυτά τα links:
http://code.google.com/p/cakejs/
https://github.com/MichaelCereda/CakeJs
Στην ουσία προσθέτει δυνατότητες elements, events, animation (και πολλά άλλα) στο canvas του html5 μέσω καθαρής javascript. Το framerate που πετυχαίνει φαίνεται πάρα πολυ καλό (σίγουρα εξαρτάται και από την javascript engine του κάθε browser)
Υπάρχει ένα site με πολλά παραδείγματα και έτοιμο κώδικα ως ένα quick start
Ορίστε ένα από τα πιο εντυπωσιακά: EditableCurve
Αν έχετε ανακαλύψει καμιά καλύτερη βιβλιοθήκη, please share