Καλησπέρα,
Εκτελέσιμα αρχεία (executable files) ονομάζονται τα αρχεία που εκτελούνται αυτόνομα, απευθείας στο περιβάλλον του λειτουργικού συστήματος χωρίς να χρησιμοποιούν ενδιάμεσα προγράμματα για την εκτέλεσή τους (π.χ. αυτά που τρέχουν με διπλό κλικ στο εικονίδιό τους στα Windows ή πληκτρολογώντας το όνομά τους στο shell στο Unix/Linux). Στα Windows τα εκτελέσιμα αρχεία έχουν κατάληξη .exe (και από παλιότερα .com) ενώ σε περιβάλλον POSIX (unix/linux) τα εκτελέσιμα αρχεία συνήθως δεν έχουν κατάληξη. Τα εκτελέσιμα αρχεία δημιουργούνται όταν κάνουμε compile (και κατόπιν link) πηγαίο κώδικα σε κάποια γλώσσα προγραμματισμού, όπως π.χ. οι C/C++, Pascal, κλπ.
Τα scripts από την άλλη μεριά δεν μπορούν να εκτελεστούν αυτόνομα. Η εκτέλεσή τους εξαρτάται από άλλα προγράμματα. Για παράδειγμα, ένα bourne shell script δεν μπορεί να εκτελεστεί μέσα από c-shell, ούτε το αντίστροφο. Αντίθετα ένα αυτόνομο εκτελέσιμο αρχείο μπορεί να εκτελεστεί μέσα από οποιοδήποτε shell (bourne, csh, tcsh, κλπ).
Φαντάσου τα scripts σαν αρχεία πηγαίου κώδικα που ΔΕΝ μπορούν να δημιουργήσουν εκτελέσιμο αρχείο. Για να εκτελεστεί ένα script πρέπει να φορτωθεί μέσα στο συγκεκριμένο πρόγραμμα για το οποίο έχει γραφτεί το script, το οποίο πρόγραμμα πρέπει ήδη να τρέχει, έχοντας δηλαδή δημιουργήσει κατάλληλες συνθήκες κάτω από τις οποίες εκτελεί όλα τα scripts του.
Στα Windows ισχύουν πάνω-κάτω τα ίδια ακριβώς πράγματα, με τη διαφορά πως είναι καμουφλαρισμένα κάτω από αυτοματοποιήσεις. Ας πάρουμε ως απλό παράδειγμα ένα αρχείο με κατάληξη .bat, το οποίο είναι script της γραμμής εντολών των Windows. Αν κάνεις διπλό κλικ στο εικονίδιό του θα τρέξει, αλλά δεν θα τρέξει αυτόνομα... θα τρέξει πρώτα η γραμμή εργαλείων των Windows και μέσα από αυτήν θα καλεστεί το αρχείο .bat στο οποίο έκανες διπλό κλικ.
Ελπίζω να μη σε μπέρδεψα χειρότερα!

Σε ότι αφορά τώρα τις C και C++, η C δημιουργήθηκε ειδικά για τη δημιουργία του Unix ενώ η C++ δημιουργήθηκε για να συμπληρώσει την C. Οπότε δεν είναι καθόλου περίεργο πως η μεγάλη πλειοψηφία όχι μόνο των λειτουργικών συστημάτων αλλά και απαιτητικών εφαρμογών σε επιδόσεις (όπως π.χ. compilers, drivers, computer games, 3D applications, κλπ) είναι γραμμένα σε αυτές τις 2 γλώσσες.
Όταν οι επιδόσεις είναι κρίσιμης σημασίας αυτές οι 2 γλώσσες και ειδικότερα η C απλά δεν έχουν αντίπαλο (πλην την assembly φυσικά, αλλά εκεί χάνεται πλήρως η συμβατότητα). Το τίμημα όμως είναι πως για να τις μάθει κανείς καλά και σωστά, πρέπει να "τριφτεί" πολύ. Κι αφού "τριφτεί" να αρχίσει μετά να εξειδικεύεται σε διάφορες βιβλιοθήκες και API (που κι αυτά στη πλειοψηφία τους είναι γραμμένα σε αυτές τις 2 γλώσσες) ανάλογα με το τι θέλει να κάνει.
Για παράδειγμα, αν θέλεις να φτιάξεις μια εφαρμογή με γραφικό περιβάλλον στα Windows θα πρέπει να εξοικειωθείς με το API των Windows, αντίστοιχα αν θες να φτιάξεις μια εφαρμογή με γραφικό περιβάλλον για Unix/Linux θα πρέπει να εξοικειωθείς π.χ. με το API των X-Windows (X11). Επιπλέον, αν η εφαρμογή σου χρησιμοποιεί π.χ. 3-διάστατα γραφικά θα πρέπει να επιλέξεις αν θα τα υλοποιήσεις με το API του Open GL (η προφανής επιλογή αν είσαι σε Unix/Linux) ή με το API του Direct-X (η προφανής επιλογή αν είσαι σε Windows).
Από την άλλη μεριά, τα scripts και ειδικότερα οι scripting γλώσσες είναι κατά κανόνα στοχευμένες σε συγκεκριμένες δουλειές, με αποτέλεσμα να παρέχουν ευκολίες που σε βοηθάνε να φτάσεις πολύ γρήγορα σε εντυπωσιακά αποτελέσματα, με αντίτιμο όμως τις κατά πολύ μειωμένες επιδόσεις (τόσο σε ταχύτητα όσο και σε μνήμη) και την αδυναμία να έχεις ανά πάσα στιγμή πλήρη έλεγχο στα resources σου.