java-trap.html (21205B)
1 <!--#set var="PO_FILE" 2 value='<a href="/philosophy/po/java-trap.el.po"> 3 https://www.gnu.org/philosophy/po/java-trap.el.po</a>' 4 --><!--#set var="ORIGINAL_FILE" value="/philosophy/java-trap.html" 5 --><!--#set var="DIFF_FILE" value="" 6 --><!--#set var="OUTDATED_SINCE" value="2007-12-15" --> 7 8 <!--#include virtual="/server/header.el.html" --> 9 <!-- Parent-Version: 1.77 --> 10 11 <!-- This file is automatically generated by GNUnited Nations! --> 12 <title>Ελεύθερο αλλά δεσμευμένο - η παγίδα της Java - Έργο GNU - Ίδρυμα Ελεύθερου 13 Λογισμικού</title> 14 15 <!--#include virtual="/philosophy/po/java-trap.translist" --> 16 <!--#include virtual="/server/banner.el.html" --> 17 <!--#include virtual="/server/outdated.el.html" --> 18 <h2>Ελεύθερο αλλά δεσμευμένο - η παγίδα της Java</h2> 19 20 <p>από τον <a href="http://www.stallman.org/">Richard Stallman</a></p> 21 22 <div class="announcement"><blockquote><h3>Υποσημείωση</h3> 23 24 <p>Τον Δεκέμβριο του 2006, η Sun έχει ξεκινήσει την <a 25 href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">αναδημοσίευση της 26 πλατφόρμας Java υπό την άδεια GNU GPL</a>. Όταν ολοκληρωθεί αυτή η αλλαγή 27 άδειας, η Java δεν θα αποτελεί πλέον παγίδα. Παρόλα αυτά, το γενικό ζήτημα 28 που περιγράφεται εδώ παραμένει σημαντικό, επειδή οποιαδήποτε μη ελεύθερη 29 βιβλιοθήκη η πλατφόρμα προγραμματισμού μπορεί να προκαλέσει παρόμοια 30 προβλήματα. Πρέπει να πάρουμε το μάθημα μας από το παρελθόν της Java, ώστε 31 να αποφύγουμε ενδεχόμενες μελλοντικές παγίδες.</p> 32 33 <p>Παρακαλούμε δείτε επίσης: <a href="/philosophy/javascript-trap.html"> Η 34 παγίδα της JavaScript</a>.</p> 35 </blockquote> 36 </div> 37 38 <p>12 Απριλίου, 2004</p> 39 40 <p> 41 Εάν το πρόγραμμά σας είναι ελεύθερο λογισμικό, είναι γενικά ηθικό—αλλά 42 υπάρχει μια παγίδα για την οποία πρέπει να είστε σε ετοιμότητα. Το 43 πρόγραμμά σας, αν και είναι ελεύθερο, μπορεί να περιοριστεί από το 44 ανελεύθερο λογισμικό από το οποίο εξαρτάται. Δεδομένου ότι αυτό το 45 πρόβλημα είναι το πιο σοβαρό σήμερα για τα προγράμματα της Java, το καλούμε 46 η παγίδα της Java. 47 </p> 48 49 <p> 50 Ένα πρόγραμμα είναι ελεύθερο λογισμικό εάν οι χρήστες του έχουν ορισμένες 51 κρίσιμες ελευθερίες. Χοντρικά, αυτές είναι: η ελευθερία να εκτέλεσης του 52 προγράμματος, η ελευθερία μελέτης και μεταβολής του πηγαίου κώδικα, η 53 ελευθερία επαναδημοσιοποίησης του πηγαίου κώδικα και των εκτελέσιμων 54 αρχείων, και η ελευθερία δημοσίευσης βελτιωμένων εκδόσεων. (Δείτε <a 55 href="/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>.) 56 Εάν το οποιοδήποτε δεδομένο πρόγραμμα είναι ελεύθερο λογισμικό εξαρτάται 57 αποκλειστικά από το περιεχόμενο της άδειας χρήσεως του. 58 </p> 59 60 <p> 61 Το εάν όμως το συγκεκριμένο πρόγραμμα μπορεί να χρησιμοποιηθεί στον Ελεύθερο 62 Κόσμο, από τους ανθρώπους που θέλουν να ζουν με ελευθερία, είναι μια πιο 63 σύνθετη ερώτηση. Αυτό δεν καθορίζεται από την άδεια χρήσεως του 64 προγράμματος, επειδή κανένα πρόγραμμα δεν λειτουργεί μεμονωμένα. Κάθε 65 πρόγραμμα εξαρτάται από άλλα προγράμματα. Παραδείγματος χάριν, ένα πρόγραμμα 66 πρέπει να μεταγλωττιστεί ή να διερμηνευτεί, άρα εξαρτάται από έναν 67 μεταγλωττιστή ή έναν διερμηνέα. Εάν συντάσσεται στον κώδικα χαρακτήρων (byte 68 code), εξαρτάται από έναν διερμηνέα κώδικα χαρακτήρων. Επιπλέον, χρειάζεται 69 βιβλιοθήκες προκειμένου να εκτελεστεί, και μπορεί επίσης να απαιτεί και άλλα 70 χωριστά προγράμματα που τρέχουν σε άλλες διαδικασίες. Όλα αυτά τα 71 προγράμματα είναι εξαρτήσεις. Οι εξαρτήσεις μπορεί να είναι απαραίτητες για 72 να μπορεί να εκτελεστεί το πρόγραμμα, ή μπορούν να είναι απαραίτητες μόνο 73 για ορισμένα χαρακτηριστικά του γνωρίσματα. Σε κάθε περίπτωση, σύνολο ή 74 μέρος του προγράμματος δεν μπορεί να λειτουργήσει χωρίς τις εξαρτήσεις. 75 </p> 76 77 <p> 78 Εάν μερικές από τις εξαρτήσεις ενός προγράμματος είναι ανελεύθερες, αυτό 79 σημαίνει ότι σύνολο ή μέρος του προγράμματος είναι ανίκανο να εκτελεστεί σε 80 ένα εξ ολοκλήρου ελεύθερο σύστημα—είναι ακατάλληλο προς χρήση για τον 81 Ελεύθερο Κόσμο. Βέβαια, θα μπορούσαμε να επαναδημοσιοποιήσουμε το πρόγραμμα 82 και να έχουμε αντίγραφα για τις μηχανές μας, αλλά θα ήταν άχρηστο εάν δεν 83 μπορούσε να εκτελεστεί. Αυτό το πρόγραμμα είναι μεν ελεύθερο λογισμικό, αλλά 84 χάνει την αποτελεσματικότητα του από τις ανελεύθερες εξαρτήσεις του. 85 </p> 86 87 <p> 88 Το πρόβλημα αυτό μπορεί να εμφανιστεί σε οποιοδήποτε είδος λογισμικού, σε 89 οποιαδήποτε γλώσσα προγραμματισμού. Παραδείγματος χάριν, ένα ελεύθερο 90 πρόγραμμα που τρέχει μόνο στα Microsoft Windows είναι σαφώς άχρηστο για τον 91 Ελεύθερο Κόσμο. Το λογισμικό που τρέχει στο GNU/Linux μπορεί επίσης να είναι 92 άχρηστο εάν εξαρτάται από άλλο ανελεύθερο λογισμικό. Στο παρελθόν, το Motif 93 (πριν τη δημιουργία του LessTif) και το QT (πριν οι κατασκευαστές του το 94 μετατρέψουν σε ελεύθερο) ήταν σημαντικές αιτίες αυτού του προβλήματος. Οι 95 περισσότερες τρισδιάστατες κάρτες οθόνης (γραφικών) λειτουργούν πλήρως μόνο 96 με ανελεύθερους οδηγούς, οι οποίοι προκαλούν επίσης το ίδιο πρόβλημα. Αλλά η 97 σημαντικότερη πηγή αυτού του προβλήματος είναι σήμερα η Java, επειδή οι 98 άνθρωποι που γράφουν ελεύθερο λογισμικό αισθάνονται συχνά ότι η Java είναι 99 ελκυστική. Τυφλοί από την έλξη τους στη γλώσσα, αγνοούν το ζήτημα των 100 εξαρτήσεων, και πέφτουν στην παγίδα της Java. 101 </p> 102 103 <p> 104 Η υλοποίηση της Java από τη Sun είναι μη-ελεύθερη. Οι τυποποιημένες 105 βιβλιοθήκες της Java είναι επίσης μη-ελεύθερες. Εμείς έχουμε ελεύθερες 106 υλοποιήσεις της Java, όπως ο <a 107 href="http://gcc.gnu.org/java/">μεταγλωττιστής GNU για την Java</a> (GCJ) 108 και το <a href="/software/classpath">GNU Classpath</a>, αλλά δεν 109 υποστηρίζουν όλα τα χαρακτηριστικά γνωρίσματα ακόμα. Προλαβαίνουμε ακόμη. 110 </p> 111 112 <p> 113 Εάν αναπτύσσετε ένα πρόγραμμα της Java για την πλατφόρμα της Sun, είστε 114 εκτεθειμένοι στα χαρακτηριστικά γνωρίσματα χρήσης της Sun χωρίς καν να το 115 αντιληφθείτε. Τη στιγμή που θα το ανακαλύψετε, μπορεί να τα χρησιμοποιούσατε 116 για μήνες, και η επανασυγγραφή των έργων σας θα μπορούσε να πάρει ακόμη 117 περισσότερους μήνες. Πιθανότατα θα πείτε, “είναι πάρα πολλή δουλειά 118 για να ξεκινήσω ξανά από την αρχή.” Έτσι το πρόγραμμά σας θα έχει 119 πέσει στην παγίδα της Java. Θα είναι ακατάλληλο προς χρήση στον Ελεύθερο 120 Κόσμο. 121 </p> 122 123 <p> 124 Ο αξιόπιστος τρόπος ώστε να αποφευχθεί η παγίδα της Java είναι να έχετε μόνο 125 μια ελεύθερη υλοποίηση της Java στο σύστημά σας. Κατόπιν εάν χρησιμοποιήσετε 126 ένα χαρακτηριστικό γνώρισμα ή μια βιβλιοθήκη της Java που το ελεύθερο 127 λογισμικό δεν υποστηρίζει ακόμα, θα το ανακαλύψετε αμέσως, και μπορείτε να 128 ξαναγράψετε αυτό τον κώδικα άμεσα. 129 </p> 130 131 <p> 132 Η Sun συνεχίζει να αναπτύσσει τις πρόσθετες “τυποποιημένες” 133 βιβλιοθήκες της Java, και σχεδόν όλες τους είναι μη-ελεύθερες. Σε πολλές 134 περιπτώσεις, ακόμη και η προδιαγραφή μιας βιβλιοθήκης είναι ένα εμπορικό 135 μυστικό, και η πιο πρόσφατη άδεια της Sun για αυτές τις προδιαγραφές 136 απαγορεύει τη δημοσίευση (release) οτιδήποτε λιγότερου από μια πλήρη 137 υλοποίηση της προδιαγραφής. (Δείτε <a 138 href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf">http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a> 139 και <a 140 href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html">http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html</a>, 141 για παραδείγματα). 142 </p> 143 144 <p> 145 Ευτυχώς, αυτή η προδιαγραφή της άδειας (της Sun) επιτρέπει τη δημοσίευση μία 146 υλοποίησης ως ελεύθερο λογισμικό. Δηλαδή άλλοι χρήστες της βιβλιοθήκης 147 επιτρέπεται να την αλλάξουν δίχως να απαιτείται να προσθέσουν τις αλλαγές 148 τους στην προδιαγραφή. Όμως οι απαιτήσεις της έχουν ως αποτέλεσμα η 149 δημιουργία ενός συνεργατικού μοντέλου ανάπτυξης και η δημιουργία μίας 150 ελεύθερης υλοποίησης να είναι απαγορευτική. Η χρήση αυτού του μοντέλου 151 συνεπάγεται την δημοσίευση ελλιπών εκδόσεων, στις οποίες όσοι έχουν διαβάσει 152 την προδιαγραφή (της Sun) δεν επιτρέπεται να συμμετάσχουν. 153 </p> 154 155 <p> 156 Στις αρχές του κινήματος ελεύθερου λογισμικού, ήταν αδύνατο να αποφευχθεί η 157 εξάρτηση από μη-ελεύθερα προγράμματα. Πριν αποκτήσουμε τον μεταγλωττιστή GNU 158 C, κάθε πρόγραμμα C (ελεύθερο ή όχι) είχε εξάρτηση από έναν μη-ελεύθερο 159 μεταγλωττιστή C. Πριν αποκτήσουμε τη βιβλιοθήκη GNU C, κάθε πρόγραμμα είχε 160 εξάρτηση από μια μη-ελεύθερη βιβλιοθήκη C. Πριν αποκτήσουμε τον Linux, τον 161 πρώτο ελεύθερο πυρήνα, κάθε πρόγραμμα είχε εξάρτηση από έναν μη-ελεύθερο 162 πυρήνα. Πριν αποκτήσουμε το BASH, κάθε κώδικας κελύφους (shellscript) έπρεπε 163 να ερμηνευθεί από ένα μη-ελεύθερο κέλυφος. Ήταν αναπόφευκτο ότι τα πρώτα 164 προγράμματά μας θα παρακωλύονταν αρχικά από αυτές τις εξαρτήσεις, αλλά το 165 δεχτήκαμε επειδή το σχέδιό μας συμπεριλάμβανε να τα διασώσει στη συνέχεια. Ο 166 γενικός στόχος μας, ένα αυτό-φιλόξενο λειτουργικό σύστημα GNU, 167 συμπεριλαμβανομένων τις ελεύθερες αντικαταστάσεις για όλες εκείνες τις 168 εξαρτήσεις. Εάν πετυχαίναμε το στόχο, όλα τα προγράμματά μας θα 169 διασώζονταν. Έτσι κι έγινε: με το σύστημα GNU/Linux, μπορούμε τώρα να 170 εκτελέσουμε αυτά τα προγράμματα σε ελεύθερες πλατφόρμες. 171 </p> 172 173 <p> 174 Η κατάσταση σήμερα είναι διαφορετική. Πλέον έχουμε ισχυρά ελεύθερα 175 λειτουργικά συστήματα και πολλά ελεύθερα εργαλεία 176 προγραμματισμού. Οποιαδήποτε εργασία κι αν θέλετε να κάνετε, μπορείτε να την 177 κάνετε σε μια ελεύθερη πλατφόρμα. Δεν υπάρχει καμία ανάγκη να γίνει αποδεκτή 178 μια μη-ελεύθερες εξάρτηση ακόμα και προσωρινά. Ο κύριος λόγος της πτώσης των 179 ανθρώπων στην παγίδα της Java σήμερα είναι επειδή δεν το σκέφτονται. Η 180 ευκολότερη λύση στο πρόβλημα της παγίδας της Java είναι να διδαχθούν οι 181 άνθρωποι ώστε να μην πέφτουν σε αυτήν. 182 </p> 183 184 <p> 185 Για να κρατήσετε τον κώδικα σας γραμμένο σε Java μακριά από την παγίδα της, 186 εγκαταστήστε ένα ελεύθερο περιβάλλον ανάπτυξης της Java και χρησιμοποιήστε 187 το. Γενικότερα, οποιαδήποτε γλώσσα κι αν χρησιμοποιείτε, κρατήστε τα μάτια 188 σας ανοικτά, και ελέγξτε την ελεύθερη κατάσταση των προγραμμάτων από τα 189 οποία εξαρτάται ο κώδικάς σας. Ο ευκολότερος τρόπος να εξακριβωθεί ότι 190 κάποιο πρόγραμμα είναι ελεύθερο είναι με έρευνα για την ύπαρξή του στον 191 κατάλογο ελεύθερου λογισμικού (<a 192 href="http://www.fsf.org/directory">http://www.fsf.org/directory</a>). Εάν 193 ένα πρόγραμμα δεν είναι στον κατάλογο, μπορείτε να ελέγξετε την(ις) 194 άδεια(ες) του σε σχέση με τον κατάλογο αδειών ελεύθερου λογισμικού (<a 195 href="/licenses/license-list.html">http://www.gnu.org/licenses/license-list.html</a>). 196 </p> 197 198 <p> 199 Προσπαθούμε να διασώσουμε τα παγιδευμένα προγράμματα της Java, έτσι εάν 200 συμπαθείτε τη γλώσσα Java, σας προσκαλούμε να βοηθήσετε στην ανάπτυξη του 201 GNU Classpath. Δοκιμάζοντας τα προγράμματά σας με το μεταγλωττιστή GCJ και 202 το GNU Classpath, και εκθέτοντας οποιαδήποτε προβλήματα αντιμετωπίζετε στις 203 κλάσεις που υλοποιήθηκαν ήδη, γίνεστε χρήσιμοι. Εντούτοις, η ολοκλήρωση του 204 GNU Classpath θα πάρει χρόνο. Εάν περισσότερες ανελεύθερες βιβλιοθήκες 205 συνεχίζουν να προστίθενται, ίσως να μην μπορέσουμε να τις έχουμε ποτέ 206 όλες. Για αυτό παρακαλούμε μην βάλετε το ελεύθερο λογισμικό σας σε 207 δεσμούς. Όταν γράφετε ένα πρόγραμμα εφαρμογών σήμερα, γράψτε το ώστε να 208 εκτελείται σε ελεύθερες πλατφόρμες εξ' αρχής. 209 </p> 210 211 <h3>Δείτε επίσης:-</h3> 212 <p><a href="/philosophy/sun-in-night-time.html">The Curious Incident of Sun in 213 the Night-Time</a></p> 214 215 <div class="translators-notes"> 216 217 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> 218 </div> 219 </div> 220 221 <!-- for id="content", starts in the include above --> 222 <!--#include virtual="/server/footer.el.html" --> 223 <div id="footer"> 224 <div class="unprintable"> 225 226 <p>Παρακαλούμε στείλτε ερωτήσεις για τα ΙΕΛ & GNU στο <a 227 href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Υπάρχουν επίσης <a 228 href="/contact/">άλλοι τρόποι για να επικοινωνήσετε</a> με το ΙΕΛ. Ανενεργοί 229 σύνδεσμοι και άλλες διορθώσεις ή προτάσεις μπορούν να σταλούν στο <a 230 href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> 231 232 <p> 233 <!-- TRANSLATORS: Ignore the original text in this paragraph, 234 replace it with the translation of these two: 235 236 We work hard and do our best to provide accurate, good quality 237 translations. However, we are not exempt from imperfection. 238 Please send your comments and general suggestions in this regard 239 to <a href="mailto:web-translators@gnu.org"> 240 241 <web-translators@gnu.org></a>.</p> 242 243 <p>For information on coordinating and submitting translations of 244 our web pages, see <a 245 href="/server/standards/README.translations.html">Translations 246 README</a>. --> 247 Εργαζόμαστε σκληρά και κάνουμε ό,τι καλύτερο μπορούμε για να παρέχουμε 248 ακριβείς, καλής ποιότητας μεταφράσεις. Ωστόσο, δεν εξαιρούμαστε από 249 ατέλειες. Παρακαλούμε, στείλτε τα σχόλιά σας και τις γενικές παρατηρήσεις 250 σας σχετικά με αυτό το θέμα στο <a 251 href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>.</p><p>Για 252 πληροφορίες σχετικά με το συντονισμό και την υποβολή μεταφράσεων των 253 ιστοσελίδων μας, δείτε το <a 254 href="/server/standards/README.translations.html">Μεταφράσεις ΔΙΑΒΑΣΕΜΕ</a>.</p> 255 </div> 256 257 <p>Copyright © 2004 Richard Stallman</p> 258 259 <p>Αυτή η σελίδα διατίθεται υπό την άδεια: <a rel="license" 260 href="http://creativecommons.org/licenses/by-nd/4.0/deed.el">Creative 261 Commons Αναφορά Δημιουργού-Όχι Παράγωγα Έργα 4.0 Διεθνές</a>.</p> 262 263 <!--#include virtual="/server/bottom-notes.el.html" --> 264 <div class="translators-credits"> 265 266 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> 267 Μετάφραση στα ελληνικά: <a 268 href="http://savannah.gnu.org/users/freeasinfreedom">Athanasios 269 Kasampalis</a>.</div> 270 271 <p class="unprintable"><!-- timestamp start --> 272 Ενημερώθηκε: 273 274 $Date: 2017/03/31 09:12:45 $ 275 276 <!-- timestamp end --> 277 </p> 278 </div> 279 </div> 280 </body> 281 </html>