Παρακολουθούσα τις προάλλες ένα εργαστήριο στη σχολή για τον επιστημονικό υπολογισμό. Μετά από τη θεωρία των προηγούμενων ετών ήρθε η...

Η πραγματική αξία του ελεύθερου λογισμικού





Παρακολουθούσα τις προάλλες ένα εργαστήριο στη σχολή για τον επιστημονικό υπολογισμό. Μετά από τη θεωρία των προηγούμενων ετών ήρθε η στιγμή να περάσουμε στη πράξη με τη βοήθεια ενός «περιβάλλοντος αριθμητικής υπολογιστικής» και μιας γλώσσας «τέταρτης γενιάς».

Καλή φάση,λέω.

Διαθέσιμες επιλογές για αυτό το μάθημα; Δύο. Το Matlab και το Octave. Το πρώτο κλειστό με κόστος 1500$ περίπου και το δεύτερο ελεύθερο λογισμικό με μηδενικό κόστος.Φυσικά υπήρχε η ελευθερία επιλογής αν και για διάφορους λόγους υπήρχε ένας προσανατολισμός προς τη Matlab.





Το Matlab παράγεται από τη MathWorks, η οποία είναι one-product company, δηλαδή ζει μόνο από το συγκεκριμένο προϊόν. Βρέθηκε στα χέρια της το 1984, ενώ προηγουμένως ήταν ένα μικρό, πολύ διαδεδομένο στα πανεπιστήμια, εργαλείο γραμμικής άλγεβρας. Υπέστη πολλές αλλαγές για να φτάσει στη σημερινή του μορφή και θεωρείται κορυφή στο είδος του.





Το Octave από την άλλη ξεκίνησε το 1992 από τον John W. Eaton. Ήταν και είναι ένα project ελεύθερου λογισμικού. Πέρα από την κλασική και επιστημονική χρήση, το octave χρησιμοποιείται στον parallel computer στο Pittsburgh στο κέντρο υπερυπολογιστών για ερευνητικούς λόγους, καθώς και σε πάρα πολλά πανεπιστήμια.

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

Αριστερά MatLab, δεξιά Octave. Το Octave υπολογιζεί
πιο γρήγορα τον αντίστροφο ενός τυχαίου 100x100 μητρώου.


Η γενική εικόνα παρ' όλα αυτά είναι ότι το MatLab είναι πιο γρήγορο σε πολύπλοκες πράξεις, πράγμα απολύτως λογικό, μιας και μιλάμε για μια ακριβοπληρωμένη εταιρία με περισσότερους από 3000 εργαζομένους (Απρίλιος 2014).

Ας επιστρέψουμε στο μάθημα. Δοκιμάζαμε λοιπόν να κάνουμε ένα πολλαπλασιασμό μητρώων γράφοντας δικό μας κώδικα με βρόγχους. Το αποτέλεσμα από άποψη χρόνου ήταν μια σκέτη αποτυχία σε σχέση με τον "έτοιμο" πολλαπλασιασμό που παρέχει το MatLab. Οπότε ήρθε η αναμενόμενη ερώτηση κάποια στιγμή: 

-Πώς σκατά το κάνει αυτό το MatLab?

Η απάντηση ήταν προφανής, αλλά αντήχησε περίεργα στα αυτιά μου:

-Δε ξέρουμε.

Δεν έχουμε ιδέα πως το MatLab κάνει τόσο γρήγορους υπολογισμούς. Το μόνο που μπορούμε να κάνουμε είναι να χρησιμοποιήσουμε σαν καλοί χρήστες αυτά που σαν καλοί καταναλωτές αγοράσαμε και μάλιστα πολύ ακριβά. Ή τελοσπάντων κατεβάσαμε παράνομα (κάτι που παρεμπιπτόντως είναι ανεπίτρεπτο να ενθαρρύνεται στα πανεπιστήμια).

Όπως αναφέραμε το MatLab δεν υπερτερεί μόνο του δικού μας κώδικα, αλλά και του κώδικα του Οctave, όπως φαίνεται για παράδειγμα και στο παρακάτω screenshot για έναν ίδιο πολλαπλασιασμό δύο μητρώων 600x600.


Συγχαρητήρια λοιπόν στους επιστήμονες της MathWorks που πέτυχαν αυτούς τους υπέροχους χρόνους. Και που ποτέ δεν  είπαν και σε εμάς πως το έκαναν....(;)

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

Επιστήμονας είναι αυτός που δίνει στην ανθρωπότητα. Αν όλοι σκέφτονταν τόσο "κλειστά" ανά τους αιώνες η ανθρωπότητα θα ήταν σίγουρα πολύ πιο πίσω.
Θα μου πείτε, πως θα βγάλουν λεφτά αυτοί οι άνθρωποι. Υπάρχουν τρόποι. Ενδεικτικά το Οctave στοχεύει φέτος στις 300000$ (από δωρεές υποθέτω) και όπως αναγράφει στο site σε λίγο καιρό θα μπορεί να πληρώνει full-time εργαζομένους για να δουλεύουν για το project.

Η διαφορά του octave με το MatLab δεν είναι ούτε οι χρόνοι, ούτε τα eye-candy χαρακτηριστικά. Είναι ότι το Οctave συνεισφέρει στην ανθρωπότητα, ενώ το MatLab συνεισφέρει αποκλειστικά στις τσέπες των ιδιοκτητών της (και προφανώς σε αυτούς που θέλουν απλά να το χρησιμοποιούν για τη δουλειά τους και δε τους νοιάζει τι γίνεται από κάτω).

Το ιδιόκτητο λογισμικό απορρίπτει τη δίψα τους (σσ. των μαθητών)  για γνώση: τους λέει, “Η γνώση που ζητάτε είναι μυστική—απαγορεύεται η εκμάθηση της!” Το ελεύθερο λογισμικό ενθαρρύνει τον καθένα να μάθει. Η κοινότητα του ελεύθερου λογισμικού απορρίπτει το “ιερατείο της τεχνολογίας”, που κρατά τον κόσμο στην άγνοια για το πώς λειτουργεί η τεχνολογία. (...) Τα σχολεία που χρησιμοποιούν ελεύθερο λογισμικό θα επιτρέψουν στους προγραμματιστικά χαρισματικούς μαθητές να προοδεύσουν.
Ο βαθύτερος λόγος για τον οποίο το ελεύθερο λογισμικό πρέπει να χρησιμοποιείται στα σχολεία, είναι η παροχή ηθικής διαπαιδαγώγησης. Προσδοκούμε από τα σχολεία να διδάξουν στους μαθητές βασικές αρχές και χρήσιμες ικανότητες, αλλά δεν είναι μόνο αυτή η δουλειά τους. Η θεμελιωδέστερη αποστολή των σχολείων είναι να διδάξουν στους ανθρώπους πώς να γίνουν καλοί πολίτες, πράγμα που περιλαμβάνει και τη συνήθεια να βοηθούν τους άλλους.
-Richard Stallman


Αν θέλετε να δείτε πως το Οctave υπολογίζει το αντίστροφο μητρώο για παράδειγμα δεν έχετε παρά να κατεβάσετε τον κώδικα και να διαβάσετε το αντίστοιχο αρχείο.


Επίσης μπορείτε να το βελτιώσετε και ίσως κάποια στιγμή να το κάνετε κορυφαίο.


Η ίδια φιλοσοφία απόκρυψης της γνώσης κυριαρχεί σε όλα τα κλειστά projects που μπορεί να είναι λειτουργικά συστήματα, browsers, ide, προγράμματα σχεδίασης κτλ.

Εκεί όμως, το ελεύθερο λογισμικό είναι συνήθως και αποδοτικότερο (πχ, λειτουργικά συστήματα, browsers) από τα αντίστοιχα κλειστά. Λογισμικό που δημιουργείται από κοινότητες (σαν τη δική μας), χομπίστες, μεγάλες ή μικρές εταιρίες,πανεπιστήμια κτλ που έχει να δώσει στον κόσμο πέρα από ένα απλό προϊόν, γνώση, ελευθερία και προοπτική για εξέλιξη.

Δεν είναι καλύτερος ένας τέτοιος κόσμος; 





0 σχόλια: