Γιατί ο ψηφιακός κόσμος λειτουργεί ακόμα με την βοήθεια της C;

Γιατί ο ψηφιακός κόσμος λειτουργεί ακόμα με την βοήθεια της C;

Εντάξει δεν θα το κρύψω τα κίνητρά που με ώθησαν να γράψω αυτό το άρθρο δεν είναι αγνά, υποκινούνται από την περίεργη υπερ-συμπάθεια μου για την γλώσσα προγραμματισμού1 C.  

Όσοι ξέρετε λίγο (ή πολύ) από αυτά ίσως σκεφτείτε ότι είμαι μαζοχίστρια, αλλά ακόμη κι έτσι να είναι δεν παύει η C μέχρι και σήμερα να κινεί τον ψηφιακό μας κόσμο.

Και προς υπεράσπισή μου, διαβάστε παρακάτω γιατί τελικά μετά από τόσα χρόνια και τόσες εξελιγμένες γλώσσες προγραμματισμού πάντα κάπου κρύβεται η C!  

H C αναπτύχθηκε από τον Dennis Ritchie το 1972 και αρχικά αναγνωρίστηκε ευρέως ως μια γλώσσα ανάπτυξης του λειτουργικού συστήματος2 UNIX3. Σήμερα τα περισσότερα λειτουργικά συστήματα καθώς και ένα πλήθος εφαρμογών έχουν γραφεί σε C ή C++, ας δούμε ποια είναι.

Windows

Ο πυρήνας4 των Windows της Microsoft έχει αναπτυχθεί επί των πλείστων σε C, ενώ ορισμένα μέρη του κώδικα είναι σε assembly. Το πιο δημοφιλές λειτουργικό σύστημα στον κόσμο, με μερίδιο αγοράς περίπου 90%, στηρίζεται σε έναν πυρήνα γραμμένο στην C.

Linux

Επίσης το Linux έχει αναπτυχθεί επί των πλείστων σε C, ενώ ορισμένα μέρη του κώδικα είναι σε assembly. Περίπου το 97% των 500 πιο ισχυρών υπερ-υπολογιστών στον κόσμο έχουν πυρήνα Linux.

Mac

Ο πυρήνας του λειτουργικού συστήματος OS Χ, των υπολογιστών της Mac, είναι γραμμένος κυρίως σε C.

Κινητά Smartphone

Όποιο κινητό και να έχετε ο πυρήνας τους είναι γραμμένος στην γλώσσα προγραμματισμού  C, αφού οι πυρήνες των iOS, Android και Windows Phone είναι γραμμένοι σε C.  

Βάσεις Δεδομένων

Οι πιο δημοφιλείς βάσεις δεδομένων,συμπεριλαμβανομένων των  Oracle Database, MySQL, MS SQL Server, PostgreSQL, είναι κωδικοποιημένες στην C.

Οι βάσεις δεδομένων χρησιμοποιούνται από όλα τα συστήματα: Τραπεζικά, κυβερνητικά, τηλεπικοινωνίες, υγείας, εκπαίδευσης, ηλεκτρονικό εμπόριο, social media κ.ο.κ.

3D Ταινίες

Οι ταινίες 3D δημιουργούνται με πανίσχυρες εφαρμογές οι οποίες σε γενικές γραμμές είναι γραμμένες σε C. Ο λόγος είναι ότι αυτές οι εφαρμογές πρέπει να είναι αποτελεσματικές και γρήγορες, δεδομένου ότι επεξεργάζονται έναν τεράστιο όγκο δεδομένων και εκτελούν δισεκατομμύρια υπολογισμούς ανά δευτερόλεπτο. Όσο πιο αποτελεσματικές είναι αυτές οι εφαρμογές τόσο λιγότερος χρόνος επεξεργασίας απαιτείται.

Απλή Καθημερινότητα

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

Όλες αυτές οι συσκευές διαθέτουν μικροεπεξεργαστές εντός του οποίου εκτελείται ένα πρόγραμμα και μαντέψτε... κατά πάσα πιθανότητα, ακόμα και όταν οι γλώσσες προγραμματισμού διαφέρουν από μάρκα σε μάρκα, είναι προγραμματισμένες με C. Γιατί; Λόγω των χαρακτηριστικών της γλώσσας  όπως η ευελιξία, η αποδοτικότητα, οι επιδόσεις και φυσικά η εγγύτητα με το υλικό (hardware).

Γιατί η C εξακολουθεί να χρησιμοποιείται;

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

Ενώ το internet βασίζεται ουσιαστικά σε εφαρμογές γραμμένες σε C. Τα περισσότερα προγράμματα πλοήγησης (browsers ), έχουν γραφτεί σε C++, ενώ η C χρησιμοποιείται για την υποδομή των βοηθητικών προγραμμάτων της αποστολής ηλεκτρονικών μηνυμάτων (email).

Επιπλέον πολλές νεώτερες γλώσσες προγραμματισμού έχουν επηρεαστεί άμεσα ή έμμεσα από την C, όπως: C++, C#, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python, Matlab.

Βέβαια δεν είναι όλα ρόδινα με την C. Πολλά από τα τρωτά σημεία που είχαν “μολύνει” της Microsoft (ως προς την έξοδό της στο Internet) οφείλονται σε λειτουργίες της C. Πλέον, όμως, αυτά τα τρωτά σημεία έχουν εξεταστεί και έχουν εκδοθεί ασφαλέστερες εκδόσεις.

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

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 7

int main()
{
    int face, roll, frequency[SIZE]={0};
    srand(time(NULL));
    for (roll = 1; roll <= 6000; roll++) {
        face = rand() %6 + 1;
        ++frequency[face];
    }
    printf("%s%17s\n", "Face", "Frequency");
    for (face = 1; face <= SIZE - 1; face++)
    printf("%4d%17d\n", face, frequency[face]);
    system("PAUSE");	
    return 0;
}

_________________________________________________________________________

 

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

2 Με απλά λόγια το λειτουργικό σύστημα είναι το λογισμικό (πρόγραμμα) το οποίο συνδέει το υλικό (hardware) με τα υπόλοιπα απαραίτητα προγράμματα (software) ώστε να λειτουργήσει ο υπολογιστής. Λειτουργικό σύστημα διαθέτουν σχεδόν όλοι οι υπολογιστές, laptop, smartphone, tablets κ.ο.κ. Αν έκανα έναν παραλληλισμό με τον άνθρωπο θα έλεγα ότι, το hardware είναι το σώμα, το λειτουργικό σύστημα η ψυχή και όλα τα άλλα app ή προγράμματα που χρησιμοποιείται είναι οι γνώσεις και οι εμπειρίες ενός ανθρώπου.

3To UNIX είναι ένα portable, multitasking, multiuser και multi-sharing λειτουργικό σύστημα που αναπτύχθηκε το 1969 σε assembly, ενώ το 1973 επαναπρογραμματίστηκε σε C. Το UNIX έχει εξελιχθεί σε ένα πολύ μεγάλο freeware προϊόν με πολλές επεκτάσεις και ιδέες που προέρχονται από διαφορετικές εταιρίες, Πανεπιστήμια και ιδιώτες. Χρησιμοποιείται ευρέως από υπολογιστές, διακομηστές (servers) και φορητές συσκευές.  

4Ο πυρήνας (kernel) είναι ένα πρόγραμμα το οποίο αποτελεί την καρδιά (core) του λειτουργικού συστήματος ενός υπολογιστής και έχει τον πλήρη έλεγχο όλων των συστημάτων του. Στα περισσότερα συστήματα, είναι ένα από τα πρώτα προγράμματα που φορτώνονται κατά την εκκίνηση. Διαχειρίζεται το υπόλοιπο της εκκίνησης του υπολογιστής καθώς και αιτήματα εισόδου / εξόδου από λογισμικό, μετατρέποντάς τα σε οδηγίες επεξεργασίας δεδομένων για την κεντρική μονάδα επεξεργασίας (CPU). Διαχειρίζεται την μνήμη και τα περιφερειακά όπως πληκτρολόγιο, οθόνη, εκτυπωτές και ηχεία.