Ανάπτυξη Εφαρμογών Πολυμέσων

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

Ιδιαιτερότητες των Εφαρμογών Πολυμέσων

Μια εφαρμογή πολυμέσων δεν μπορεί να θεωρηθεί σαν ένα απλό λογισμικό έργο, αν και εμπεριέχει πολλά από τα στάδια που συναντάμε σε αυτά. Η κύρια διαφορά είναι ότι ο σχεδιασμός και η συγγραφή του προγράμματος δεν αρκεί για την ολοκλήρωση του προϊόντος. Μαζί με το πρόγραμμα πρέπει να παραχθεί και το υλικό που θα παρουσιαστεί: κείμενα, εικόνες, ήχοι, video κ.τ.λ. Όπως έχουμε δει, οι εφαρμογές πολυμέσων γνωρίζουν ιδιαίτερη επιτυχία σε εφαρμογών όπως οι εκπαιδευτικές, οι ψυχαγωγικές και οι διαφημιστικές-ενημερωτικές. Το κοινό στο οποίο απευθύνονται αυτές οι εφαρμογές είναι σε γενικές γραμμές λιγότερο εξοικειωμένο με τους υπολογιστές σε σχέση με τις κλασσικές εφαρμογές. Επιπλέον, ο χρήστης μιας τέτοιας εφαρμογής δεν είναι διατεθειμένος να αφιερώσει χρόνο στην εκμάθηση του συστήματος. Δηλαδή, η ευκολία χρήσης της εφαρμογής είναι ιδιαίτερα σημαντική στην επιτυχία της εφαρμογής. Η ευρύτητα του κοινού μιας εφαρμογής πολυμέσων, στο οποίο είναι δυνατόν να περιέχονται και κοινωνικές ομάδες με ιδιαίτερες ανάγκες (π.χ. παιδιά), είναι ένας ακόμα παράγοντας που πρέπει να ληφθεί υπ' όψη κατά την συγκέντρωση και παρουσίαση του υλικού. Αυτό σημαίνει ότι εκτός από τους πληροφορικούς μηχανικούς πρέπει να εργαστούν και άλλοι ειδικοί που θα επιμεληθούν το υλικό και την παρουσίαση του. Για παράδειγμα, είναι πιθανόν να χρειαστούν συγγραφείς, γραφίστες, σχεδιαστές, ψυχολόγοι, εκπαιδευτικοί, ειδικοί του αντικειμένου που παρουσιάζεται, σκηνοθέτες, σεναριογράφοι....

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

Μεθοδολογία Ανάπτυξης

Οι υπάρχουσες μεθοδολογίες ανάπτυξης δεν είναι ούτε κατάλληλες ούτε αρκετές για την ανάπτυξη συστημάτων πολυμέσων. Ο λόγος είναι ότι η κατασκευή της εφαρμογή πολυμέσων αναπόφευκτα εξελίσσεται σε δύο παράλληλα ρεύματα δραστηριοτήτων που έχουν ως προϊόντα το οπτικοακουστικό υλικό και το πρόγραμμα που θα το ελέγχει. O Πίνακας 0-1 παρουσιάζει τις κυριότερες δραστηριότητες και των δύο ρευμάτων. Η συλλογή και δημιουργία είναι ιδιαίτερα χρονοβόρα, αλλά μπορεί να γίνει ταυτόχρονα  με την ανάπτυξη του λογισμικού. Ιδιαίτερη πρόνοια πρέπει να ληφθεί για τον συγχρονισμό των ενδιάμεσων σταδίων των δύο ρευμάτων.

 

Στάδιο

Κύριες Δραστηριότητες

(Υλικό)

Κύριες Δραστηριότητες

(Λογισμικό)

Pre-Production

Design Concept

Storyboarding

Scheduling

Building Prototype

Budgeting

Project Planning

Specification

Analysis

Design

Production

Image, Audio Video gathering

Image Preparation/creating Artwork

Live Audio, Video recording

Programming

Unit Testing

Integration Testing

Post Production

Mix/edit audio master

Edit finished artwork with graphics

Lay in final stereo audio

System emulation

 

 

 

System testing

User acceptance testing

Completion

Transfer to other formats

Distribute copies of final product

 

Review

 

Backup elements and storage

 

Πίνακας 0-1

Ανάλυση και Σχεδιασμός

Και τα δύο ρεύματα πρέπει να ξεκινούν με το στάδιο του καθορισμού των προδιαγραφών του συστήματος και την κατάρτιση του προγράμματος του έργου (project planning). Σε αυτό το στάδιο οι στόχοι και οι απαιτήσεις από το έργο καθώς και το χρονοδιάγραμμα των διαφόρων φάσεων θα δημιουργηθούν. Πολλές φορές είναι χρήσιμο να κατασκευαστεί ένα πρωτότυπο, το οποίο θα παρουσιάζει, σε γενικές γραμμές, τη λειτουργία του συστήματος. Παρουσιάζοντας αυτό το πρωτότυπο στον αγοραστή ή σε πιθανούς χρήστες, χρήσιμες προτάσεις και παρατηρήσεις μπορούν να συλλεχθούν, οι οποίες θα βοηθήσουν στο σχεδιασμό της τελικής μορφής της εφαρμογής. Για τη δημιουργία του πρωτότυπου, μπορεί να χρησιμοποιηθεί κάποιο εργαλείο ανάπτυξης εφαρμογών πολυμέσων (multimedia authoring tool), το οποίο επιτρέπει την ταχεία δημιουργία απλών εφαρμογών πολυμέσων, καθώς και υλικό έτοιμο υλικό που κυκλοφορεί σε CD-ROMS και Video Disks.

Το πρώτο σημαντικό βήμα στον σχεδιασμό του προϊόντος είναι η περιγραφή του οπτικοακουστικού υλικού που θα παρουσιάζεται στο χρήστη. Στις εκπαιδευτικές εφαρμογές, αυτή η περιγραφή ονομάζεται storyboard, το οποίο είναι ένα λεπτομερές πλάνο κάθε οθόνης και αντικειμένου της εφαρμογής. Από το storyboard οι συγγραφείς  καθορίζουν το σκελετό των θεμάτων που πρέπει να αναπτυχθούν καθώς και οι χρονικοί συσχετισμοί  του οπτικοακουστικού υλικού. Άλλες εφαρμογές μπορούν να έχουν άλλη δομή. Για παράδειγμα, η δομή ηλεκτρονικού καταλόγου συναντάται συχνά σε διαφημιστικά συστήματα. Σε αυτήν, κάθε οθόνη αντιστοιχεί σε μια σελίδα ή καταχώριση του καταλόγου.

Ένα δένδρο απόφασης μπορεί να χρησιμοποιηθεί για την καταγραφή όλων των μενού, σημείων διακλάδωσης, και διαφορετικών ροών της πληροφορίας. Αυτό μπορεί να συνοδεύεται από ένα έγγραφο όπου περιγράφονται όλοι οι συσχετισμοί των οθονών του προγράμματος. Κάθε οθόνη μπορεί να συνδέεται και με τα αντικείμενα (ήχοι, εικόνες κλπ) που θα πρέπει να συλλεχθούν ή δημιουργηθούν.

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

Δημιουργία του Υλικού

Σε αυτό το στάδιο δημιουργείται και συλλέγεται το υλικό που καθορίστηκε στην προηγούμενη φάση. Ο πελάτης ή οι χρήστες πρέπει να παρακολουθούν την πορεία της δημιουργίας του υλικού ώστε να εξασφαλιστεί η ποιότητα και η αποδοχή του. Τις περισσότερες φορές το υλικό θα πρέπει να δημιουργηθεί, γεγονός που εισάγει δραστηριότητες όπως φωτογραφήσεις και γυρίσματα που είναι ξένες προς την επιστήμη των υπολογιστών και ιδιαίτερα χρονοβόρες. Πολλές φορές το υλικό θα πρέπει να υποστεί επεξεργασία, (ψηφιοποίηση συμπίεση καλλιτεχνική επεξεργασία) πριν είναι έτοιμο για ενσωμάτωση στην εφαρμογή.

Συντήρηση

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

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

Εργαλεία

Κατηγορίες Εργαλείων που Χρησιμοποιούνται

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

·       προγράμματα σύλληψης, σχεδίασης και επεξεργασίας εικόνας

·       δημιουργίας 2-Δ και 3-Δ γραφικών

·       δημιουργίας animation,

·       προγράμματα σύλληψης και επεξεργασίας video

·       βάσεις δεδομένων

·       ηχογράφησης και επεξεργασίας ήχου.

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

Εργαλεία Ανάπτυξης Εφαρμογών Πολυμέσων

Ο προγραμματισμός εφαρμογών πολυμέσων είναι γενικά δύσκολος με χρήση των παραδοσιακών γλωσσών προγραμματισμού. Ο χειρισμός των διαφόρων ειδών πληροφορίας και η δημιουργία πολύπλοκων γραφικών interfaces, απαιτούν πολύ και αποτελεσματικό κώδικα από τον προγραμματιστή. Από την άλλη πλευρά, τα περισσότερα προγράμματα δεν απαιτούν την συγγραφή σύνθετων και εξειδικευμένων αλγορίθμων, αφού, τις περισσότερες φορές, ο ρόλος τους είναι κοινός: η παρουσίαση πληροφορίας με κάποιο στοιχειώδη έλεγχο της ροής. Αυτό σημαίνει ότι προγραμματισμός εφαρμογών πολυμέσων είναι δυνατόν να αυτοματοποιηθεί σε μεγάλο βαθμό, αν χρησιμοποιηθεί κάποιο εργαλείο που προσφέρει έτοιμες δυνατότητες χειρισμού όλων των ειδών πληροφορίας και αλληλεπίδρασης με το χρήστη. Αυτός ακριβώς είναι ο στόχος των εργαλείων συγγραφής εφαρμογών πολυμέσων (multimedia authoring systems). Τα εργαλεία αυτά απλοποιούν σημαντικά την ανάπτυξη εφαρμογών πολυμέσων, ελαχιστοποιώντας τον κώδικα που πρέπει να γραφτεί. Πολλές φορές, αυτά τα εργαλεία προσφέρουν και δυνατότητες επεξεργασίας της πληροφορίας (π.χ. Video, image editing), αλλά υπάρχουν και ειδικά εργαλεία που χρησιμοποιούνται για αυτό το σκοπό.

Ο τρόπος με τον οποίο δομείται μια εφαρμογή πολυμέσων διαφέρει από εργαλεία σε εργαλείο. Υπάρχουν διάφορα παραδείγματα (paradigms), τα σημαντικότερα των οποίων είναι:

·       Scripting paradigm

          Αυτή η φιλοσοφία παρουσιάζει τη μεγαλύτερη ομοιότητα με τις παραδοσιακές γλώσσες προγραμματισμού. Υπάρχει και εδώ μια γλώσσα προγραμματισμού (scripting language), εμπλουτισμένη όμως με υψηλού επιπέδου εντολές που χειρίζονται αντικείμενα πολυμέσων (εικόνες, ήχους...). Αυτή η γλώσσα είναι συνήθως αντικειμενοστραφής και αποτελεί τον πυρήνα του συστήματος. Για την δημιουργία των αντικειμένων, συνήθως προσφέρονται εργαλεία με περιορισμένες δυνατότητες. Αυτό το παράδειγμα τείνει να απαιτεί το μεγαλύτερο χρόνο προγραμματισμού, αλλά επιτρέπει πιο σύνθετες δομές αλληλεπίδρασης με το χρήστη. Ένα άλλο σημαντικό στοιχείο είναι ότι αυτές οι γλώσσες, τις περισσότερες φορές, μεταφράζονται (interpreted), οπότε η ταχύτητα εκτέλεσης (run time speed) είναι περιορισμένη.

·       Iconic/Flow Control paradigm

          Αυτό το παράδειγμα είναι ίσως το πιο γρήγορο από πλευράς χρόνου ανάπτυξης. Είναι κατάλληλο για γρήγορη δημιουργία πρωτότυπων (rapid prototyping) και για μικρές εφαρμογές πολυμέσων. Ο πυρήνας του βρίσκεται στην παλέτα εικονιδίων (icon palette), που περιέχει όλα τα δομικά στοιχεία. Λειτουργίες  και αλληλεπιδράσεις του προγράμματος  και στη γραμμή ροής (flow line), πάνω στην οποία τοποθετούνται τα εικονίδια σύμφωνα με τη σειρά εκτέλεσης τους. Τα προγράμματα που προκύπτουν με αυτά τα εργαλεία, είναι τα πιο αργά, γιατί κάθε εικονίδιο περιέχει όλες τις λειτουργίες του, είτε χρησιμοποιούνται από την εφαρμογή είτε όχι. Βέβαια, η ταχύτητα εξαρτάται και από την αποτελεσματικότητα του εργαλείου. Υπάρχουν εργαλεία,  όπως το AuthorWare, που δεν έχουν σημαντικό πρόβλημα ταχύτητας.

·       Frame paradigm

          Αυτό το παράδειγμα είναι παρόμοια με το προηγούμενο. Συνήθως, περιλαμβάνει την παλέτα εικονιδίων, αλλά ο τρόπος συνένωσης των εικονιδίων είναι ιδεατός (conceptual) και δεν αντιπροσωπεύει την πραγματική χρονική αλληλουχία τους στο πρόγραμμα. Αυτά τα συστήματα επιτρέπουν ταχεία ανάπτυξη αλλά απαιτούν καλό σύστημα debugging, γιατί η οπτικά δεν μπορούν να διορθωθούν. Τα καλύτερα από αυτά, έχουν ενσωματωμένη κάποια scripting language.

·       Card/Scripting paradigm

          Αυτό το παράδειγμα παρέχει μεγάλες δυνατότητες αλλά περιορίζεται από τη δομή ευρετηρίου-καρτών (index card) που έχει υιοθετήσει. Είναι ιδιαίτερα αποτελεσματικό σε εφαρμογές Hypertext και εφαρμογές στις οποίες η πλοήγηση μέσα στην πληροφορία είναι καθοριστικής σημασίας. Πολλές εμπορικές εφαρμογές πρωτοτυποποιούνται σε ένα τέτοιο εργαλείο πριν την κωδικοποίηση σε κάποια μεταγλωτιζόμενη γλώσσα.

·       Cast/Score/Scripting paradigm

          Αυτό το παράδειγμα χρησιμοποιεί την μεταφορά της μουσικής παρτιτούρας (music score) για την δόμηση των εφαρμογών. Τα στοιχεία που εκτελούνται παράλληλα  φαίνονται σε οριζόντιες γραμμές (tracks). Οι κάθετες στήλες υποδηλώνει τα ταυτόχρονα γεγονότα. Τα αντικείμενα πολυμέσων αποτελούν το cast του προγράμματος και η συμπεριφορά τους περιγράφεται στην παρτιτούρα. Τα παράδειγμα αυτό είναι πιο αποτελεσματικό για ανάπτυξη εφαρμογών που στηρίζονται στο animation ή στο συγχρονισμό διαφόρων ειδών πληροφορίας.

·       Hierarchical Object paradigm

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

·       Hypermedia Linkage paradigm

          Όπως και στο frame paradigm, μόνο που η σύνδεση των διαφόρων στοιχείων δεν ακολουθεί κάποια οπτική μεταφορά.

Παρατηρούμε ότι δεν υπάρχει κάποιο είδος εργαλείων που να κερδίζει τον τίτλο του καλύτερου. Κάθε κατηγορία έχει τα μειονεκτήματα  και πλεονεκτήματα της, ενώ οι διαφορές μεταξύ εργαλείων της ίδιας κατηγορίας μπορεί να είναι τεράστιες. Η επιλογή ενός εργαλείου γίνεται με βάση το είδος της εφαρμογής που θα αναπτυχθεί, το χρόνο που είναι διαθέσιμος για την ολοκλήρωση του έργου και φυσικά την πλατφόρμα στην οποία απευθύνεται η εφαρμογή. Υπάρχουν εργαλεία διαφόρων κατηγοριών που προσφέρουν συμβατότητα των εφαρμογών με περισσότερες από μια πλατφόρμες. Ένα τέτοιο χαρακτηριστικό είναι προφανώς πολύ σημαντικό και παίζει καθοριστικό ρόλο στην επιλογή του εργαλείου.

Εμπορικά Εργαλεία

O Πίνακας 0-2 παρουσιάζει μερικά χαρακτηριστικά εργαλεία ανάπτυξης εφαρμογών πολυμέσων όλως των κατηγοριών.

 

Όνομα

 

Είδος

 

Εταιρεία

 

Πλατφόρμα

 

Περιγραφή

IconAuthor

iconic / flow control

AimTech

Windows, OS/2, NT, UNIX, Mac Player

Αξιοσημείωτο είναι το εργαλείο SmartObject editor το οποίο προσθέτει δυνατότητες αλληλεπίδρασης σε αντικείμενα που έχουν δημιουργηθεί σε άλλες εφαρμογές (γραφικά, μορφοποιημένο κείμενο RTF...). Τα αντικείμενα αυτά μπορούν να ενσωματώνονται στην εφαρμογή ή να αποθηκεύονται ξεχωριστά. Το μεγαλύτερο πλεονέκτημα του είναι η ικανότητα χειρισμού δεδομένων. Είναι ιδανικό για εφαρμογές CBT.

Quest 5

frame

Allen Communications

Windows

Το πιο σημαντικό χαρακτηριστικό του είναι η χρήση της ANSI C ως scripting language

SuperCard

card / scripting

Allegiant

Mac, Windows

Υποστηρίζει γραφικά πραγματικού χρώματος βάθος 24bit, hypertext και χειρισμό εξωτερικών αντικειμένων. Ιδιαίτερα αποτελεσματικό για hypermedia εφαρμογές.

Multimedia Toolbook

card / scripting

Asymetrix

Windows

Αρκετά δημοφιλές εργαλείο. Οι εφαρμογές ακολουθούν το παράδειγμα ενός βιβλίου και ο χρήστης καλείται να δημιουργήσει τις σελίδες. Προσφέρει σύνδεση με βάση δεδομένων και πολλά αντικείμενα (widgets) αλληλεπίδρασης.

MediaWorks

Hierarchical O bject

Instinct

Windows

Η συγγραφή γίνεται με γραφικό τρόπο, δεν έχει κάποια scripting language και είναι εξειδικευμένο για εφαρμογές CBT.

HyperCard

card / scripting

Apple

Mac

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

HM_Card

Hypermedia Linkage

Technical University of Graz

Wndows

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

Script X

Scripting

Apple, IBM

Mac, Windows. OS/2, Unix, PowerPc

Η ScriptX είναι μια αντικειμενοστραφής βιβλιοθήκη που προσφέρει ένα πλαίσιο (framework) ανάπτυξης εφαρμογών πολυμέσων. Κύριος στόχος της είναι η συμβατότητα  με πολλές υπολογιστικές πλατφόρμες.

Πίνακας 0-2

Στον παραπάνω πίνακα, έχουν εσκεμμένα παραλειφθεί δύο αρκετά δημοφιλή εργαλεία: το AuthorWare και το Director της Macromedia. Στα επόμενα κεφάλαια θα περιγράψουμε, συνοπτικά, τη φιλοσοφία και τρόπο χρήσης αυτών των εργαλείων. Αν και θα περιγραφούν κάποιοι βασικοί χειρισμοί αυτών των προγραμμάτων, στόχος αυτής της παρουσίασης δεν είναι να δοθεί ένα εγχειρίδιο χρήσης αλλά να γίνει μια πρώτη, πρακτική γνωριμία με αυτά τα εργαλεία. Ο χρήστης που θα ενδιαφερθεί περισσότερο, μπορεί να καταφύγει στην τεκμηρίωση αυτών, καθώς και στις βιβλιογραφικές αναφορές αυτών των σημειώσεων.

Κλασσικές Γλώσσες Προγραμματισμού και Πολυμέσα

Αν και τα εργαλεία ανάπτυξης εφαρμογών πολυμέσων βελτιώνονται και κερδίζουν συνεχώς έδαφος, υπάρχουν περιπτώσεις στις οποίες μπορεί να προτιμηθεί μια γλώσσα προγραμματισμού. Αν και απλά στη χρήση, τα εργαλεία ανάπτυξης εφαρμογών πολυμέσων έχουν περιορισμένες δυνατότητες και τα προγράμματα που γράφονται με αυτά τείνουν να έχουν μια συγκεκριμένη 'υφή' χαρακτηριστική του είδους του εργαλείου (look and feel). Σε κάποιες περιπτώσεις, η προσπάθεια δημιουργίας εφαρμογής με δική προσωπικότητα και ύφος, οδηγεί αναπόφευκτα σε κάποια γλώσσα προγραμματισμού. Επιπλέον, τα προγράμματα που προκύπτουν από εργαλεία ανάπτυξης εφαρμογών πολυμέσων, υστερούν σημαντικά σε επιδόσεις. Αντίθετα, με χρήση μιας γλώσσας προγραμματισμού, μπορούν να γίνουν διάφορες βελτιστοποιήσεις και να επιτευχθεί μέγιστη απόδοση. Τις περισσότερες φορές χρησιμοποιούνται αντικειμενοστραφείς γλώσσες (object oriented) όπως η C++. Ο προγραμματισμός διευκολύνεται σημαντικά με χρήση έτοιμων βιβλιοθηκών που αναλαμβάνουν διάφορα κομμάτια της εφαρμογής όπως το χειρισμό κάποιων format εικόνας ή video.