1 |
<!--#set var="PO_FILE" |
2 |
value='<a href="/philosophy/po/javascript-trap.pl.po"> |
3 |
https://www.gnu.org/philosophy/po/javascript-trap.pl.po</a>' |
4 |
--><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html" |
5 |
--><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.pl-diff.html" |
6 |
--><!--#set var="OUTDATED_SINCE" value="2016-03-27" --> |
7 |
|
8 |
<!--#include virtual="/server/header.pl.html" --> |
9 |
<!-- Parent-Version: 1.77 --> |
10 |
|
11 |
<!-- This file is automatically generated by GNUnited Nations! --> |
12 |
<title>Pułapka JavaScript'u</title> |
13 |
|
14 |
<!--#include virtual="/philosophy/po/javascript-trap.translist" --> |
15 |
<!--#include virtual="/server/banner.pl.html" --> |
16 |
<!--#include virtual="/server/outdated.pl.html" --> |
17 |
<h2>Pułapka JavaScript'u</h2> |
18 |
|
19 |
<p><a href="http://www.stallman.org/">Richard Stallman</a></p> |
20 |
|
21 |
<p><strong>Możliwe, że korzystasz z niewolnych programów |
22 |
na swoim komputerze każdego dnia — przez przeglądarkę |
23 |
internetową</strong></p> |
24 |
|
25 |
<p>W społeczności wolnego oprogramowania, znana jest idea tego, |
26 |
że niewolne programy źle traktują użytkowników. Niektórzy z nas |
27 |
całkowicie odmawiają instalacji prawnie zastrzeżonego oprogramowania, |
28 |
a wielu innych fakt bycia niewolnym uważa za wadę programu. Wielu |
29 |
użytkowników jest świadomych tego, że kwestia ta ma zastosowanie |
30 |
do wtyczek oferowanych do instalacji przez przeglądarki, jako |
31 |
że mogą one być wolne bądź niewolne.</p> |
32 |
|
33 |
<p>Jednak przeglądarki uruchamiają inne niewolne programy, o co nie pytają |
34 |
użytkowników ani nawet ich o tym nie informują — programy zawarte |
35 |
bezpośrednio bądź przez odnośnik na stronach internetowych. Te |
36 |
programy najczęściej napisane są w JavaScript, choć wykorzystywane |
37 |
są także i inne języki.</p> |
38 |
|
39 |
<p>JavaScript (oficjalnie nazywany ECMAScript, choć niewielu korzysta |
40 |
z tej nazwy) był dawniej wykorzystywany do drobnych upiększeń |
41 |
na stronach internetowych, takich jak ładne, lecz nieistotne |
42 |
elementy nawigacji bądź wyświetlania. Dopuszczalnym było traktowanie |
43 |
ich jedynie jako rozszerzenia znaczników HTML, raczej niż prawdziwe |
44 |
oprogramowanie; nie stanowiły one znaczącej kwestii.</p> |
45 |
|
46 |
<p>Wiele stron korzysta z JavaScript w ten sposób, |
47 |
jednak niektóre wykorzystują go do większych programów |
48 |
wykonujących duże zadania. Przykładowo, Google Docs próbuje pobrać |
49 |
na maszynę użytkownika program JavaScript o objętości pół megabajta, |
50 |
upakowany w formie, którą nazwać można Obfuscriptem (celowo |
51 |
nieczytelnie napisany kod) ponieważ nie posiada żadnych komentarzy |
52 |
i prawie żadnych białych znaków, a nazwy metod są |
53 |
jednoliterowe. Kod źródłowy programu jest preferowaną formą do jego |
54 |
modyfikacji; upakowany kod nie jest kodem źródłowym, |
55 |
natomiast prawdziwy kod źródłowy tego programu nie jest dostępny dla |
56 |
użytkownika.</p> |
57 |
|
58 |
<p>Przeglądarki normalnie nie informują użytkownika kiedy ładują programy |
59 |
JavaScript. Niektóre przeglądarki ma możliwość by wyłączyć JavaScript |
60 |
całkowicie, jednak nawet jeśli o tym wiesz, jest nieoczywiste jak |
61 |
rozróżnić nietrywialne niewolne oprogramowanie i je zablokować. Jednak, |
62 |
nawet w społeczności wolnego oprogramowania, większość użytkowników nie |
63 |
jest świadoma tej kwestii; milczenie przeglądarek sprzyja zaś zatajaniu |
64 |
tego.</p> |
65 |
|
66 |
<p>Jest możliwym wydanie programu JavaScript jako wolnego oprogramowania, przez |
67 |
dystrybucję kodu objętego licencją wolnego oprogramowania. Jeśli program |
68 |
jest samowystarczalny – jeśli jego funkcja czy cel są |
69 |
niezależne od strony na której jest – to jest |
70 |
w porządku; możecie skopiować program do pliku na komputerze, |
71 |
zmodyfikować go i odwiedzić w przeglądarce aby go |
72 |
uruchomić. Ale to nietypowy przypadek.</p> |
73 |
|
74 |
<p>Zwykle programy JavaScript są zaprojektowane aby działać |
75 |
z konkretną stroną czy witryną i strona czy witryna |
76 |
wymaga ich do funkcjonowania. Wtedy jest dodatkowy problem: nawet jeśli |
77 |
jest kod źródłowy programu, przeglądarki nie oferują udogodnień |
78 |
umożliwiających uruchomienie własnej zmodyfikowanej wersji zamiast tej |
79 |
dostarczanej na stronie. Efekt jest porównywalny do tivoizacji |
80 |
(ang. tivoization - od urządzenia TiVo), jednak nie jest on aż tak |
81 |
trudny do obejścia.</p> |
82 |
|
83 |
<p>JavaScript nie jest jedynym językiem w którym strony przesyłają |
84 |
programy. Flash umożliwia programowanie poprzez rozszerzony wariant |
85 |
JavaScript; jeśli kiedykolwiek będziemy mieli wystarczająco kompletny, |
86 |
wolny, program do odtwarzania Flash, będziemy musieli się uporać |
87 |
z niewolnymi programami Flash. Silverlight wydaje się stwarzać problemy |
88 |
podobne do Flasha, jedynie gorsze, skoro Microsoft używa go jako |
89 |
platformy do niewolnych kodeków. Wolne zastępstwo Silverlight nie |
90 |
byłoby wystarczające dla wolnego świata chyba, że standardowo zawiera |
91 |
wolne zastępcze kodeki.</p> |
92 |
|
93 |
<p>Aplety Java także są uruchamiane w przeglądarce i wzbudzają |
94 |
podobne kłopoty. Ogólnie rzecz biorąc, każdy typ systemu apletów stanowi |
95 |
tego typu zagrożenie. Posiadanie wolnego środowiska wykonawczego dla apletu |
96 |
jedynie przybliża nas aby bezpośrednio zetknąć się z sednem |
97 |
sprawy.</p> |
98 |
|
99 |
<p>Teoretycznie jest możliwe aby programować w HTML i CSS, |
100 |
ale w praktyce jest to ograniczone i niewygodne; |
101 |
aby cokolwiek zrobiło to już dobre przedsięwzięcie. Takie programy |
102 |
powinny być wolne, ale CSS nie jest poważnym problemem dla wolności |
103 |
użytkowników w roku 2016.</p> |
104 |
|
105 |
<p>Powstał silny ruch który domaga się od stron internetowych by |
106 |
komunikowały się jedynie przez formaty i protokoły, które są wolne |
107 |
(niektórzy powiedzą „otwarte”); a więc takich, których |
108 |
dokumentacja została opublikowana i które każdy może |
109 |
zaimplementować. Z obecnością programów na stronach internetowych, |
110 |
takie kryterium jest konieczne, lecz nie wystarczające. JavaScript sam |
111 |
w sobie, jako format, jest wolny, a wykorzystanie JavaScript |
112 |
w na stronie internetowej samo w sobie nie jest złe. Jednak, jak |
113 |
widać po powyższych przykładach, nie jest to automatycznie |
114 |
w porządku. Kiedy strona przesyła program do użytkowanika, nie |
115 |
jest wystarczającym by program był napisany w udokumentowanym |
116 |
i nieobciążonym języku; taki program musi być także |
117 |
wolny. „Jedynie wolne programy przesyłane do użytkownika” |
118 |
mogą stać się częścią kryterium dla poprawnego zachowania się stron |
119 |
internetowych.</p> |
120 |
|
121 |
<p>Ciche ładowanie i uruchamianie niewolnych programów jest jedną |
122 |
z wielu kwestii wnoszonych przez „aplikacje |
123 |
sieciowe”. Termin „aplikacji sieciowych” został |
124 |
zaprojektowany by ignorować fundamentalne różnice między oprogramowaniem |
125 |
dostarczonym do użytkowników, a oprogramowaniem działającym |
126 |
na serwerze. Może się on odnosić do wyspecjalizowanego programu |
127 |
uruchamianego bezpośrednio w przeglądarce; może się on odnosić |
128 |
do wyspecjalizowanego oprogramowania serwera; może się on odnosić |
129 |
do wyspecjalizowanego programu w przeglądarce działającego |
130 |
wspólnie z wyspecjalizowanym oprogramowaniem serwera. Strony klienta |
131 |
i serwera podnoszą różne kwestie etyczne, nawet jeśli są tak mocno |
132 |
zintegrowane, że w efekcie tworzą części jednego programu. To |
133 |
opracowanie dotyczy tylko oprogramowanie po stronie |
134 |
klienta. Oprogramowanie na serwerach omawiamy osobno.</p> |
135 |
|
136 |
<p>W kwestiach praktycznych, jak możemy sobie radzić z problemem |
137 |
niewolnych programów JavaScript na stronach internetowych? Pierwszym |
138 |
krokiem jest aby go nie uruchamiać.</p> |
139 |
|
140 |
<p>Po pierwsze, co mamy na myśli przez „nietrywialne”? |
141 |
Skoro pojęcie „nietrywialności” jest stopniowane, jest kwestią |
142 |
zaprojektowania prostego kryterium dającego dobre rezultaty, raczej niż |
143 |
ustalania jednej poprawnej odpowiedzi.</p> |
144 |
<p> |
145 |
Nasza wstępna zasada jest aby program JavaScript był nietrywialny |
146 |
jeśli:</p> |
147 |
|
148 |
<ul> |
149 |
<li>robi żądania AJAX lub jest ładowany ze skryptami, które robią żądania |
150 |
AJAX,</li> |
151 |
|
152 |
<li>ładuje dynamicznie zewnętrzne skrypty lub jest ładowany razem ze |
153 |
skryptami, które to robią,</li> |
154 |
|
155 |
<li>definiuje funkcje i albo ładuje zewnętrzny skrypt (z wnętrza html) |
156 |
lub jest ładowany jako taki,</li> |
157 |
|
158 |
<li>używa dynamiczne struktury JavaScript, które są trudne do analizowania |
159 |
bez uruchamiania programu, lub jest ładowany razem ze skryptami, |
160 |
które używają takich struktur. Te struktury to: |
161 |
<ul> |
162 |
<li>używanie funkcji eval,</li> |
163 |
<li>wywoływanie funkcji za pomocą kwadratowych nawiasów,</li> |
164 |
<li>Używanie konstrukcji innych niż ciąg znaków z niektórymi funkcjami |
165 |
(Obj.write, Obj.createElement, ...).</li> |
166 |
</ul> |
167 |
</li> |
168 |
</ul> |
169 |
|
170 |
<p>Jak rozróżnić czy dany kod JavaScript jest wolny? Na zakończenie |
171 |
tego artykułu proponujemy konwencję, według której nietrywialne programy |
172 |
JavaScript na stronie internetowej mogłyby podać URL pod którym |
173 |
znajduje się ich kod źródłowy, a także przy wykorzystaniu stylizowanych |
174 |
komentarzy określać swoją licencję.</p> |
175 |
|
176 |
<p>W końcu musimy zmienić wolne przeglądarki aby rozpoznawały |
177 |
i blokowały nietrywialny JavaScript na stronach |
178 |
internetowych. Program <a href="/software/librejs/">LibreJS</a> wykrywa |
179 |
niewolny, nietrywialny JavaScript na stronach, które odwiedzacie |
180 |
i go blokuje. LibreJS jest dodatkiem dla IceCat i IceWeasel (i dla |
181 |
Firefoksa).</p> |
182 |
|
183 |
<p>Użytkownicy przeglądarek potrzebują wygodnej metody określenia kodu |
184 |
JavaScript, którego chcą użyć <em>zamiast</em> JavaScript na wybranej |
185 |
stronie. (Określony kod może być całkowitym zastąpieniem, |
186 |
bądź zmodyfikowaną wersją wolnego programu JavaScript obecnego |
187 |
na wybranej stronie.) Greasemonkey jest bliskie umożliwienia tego, |
188 |
jednak nie do końca, gdyż nie gwarantuje modyfikacji kodu |
189 |
JavaScript na stronie zanim ten zacznie się wykonywać. Wykorzystanie |
190 |
lokalnego proxy działa, jednak jest zbyt niedogodne by być realnym |
191 |
rozwiązaniem. Potrzebujemy rozwiązania, które jest niezawodne |
192 |
i wygodne, jak i witryny gdzie można się dzielić zmianami. Projekt |
193 |
GNU zarekomenduje strony, które są dedykowane jedynie wolnym zmianom.</p> |
194 |
|
195 |
<p>Takie możliwości umożliwią programom JavaScript zawartym na stronach |
196 |
internetowych bycie wolnymi w rzeczywistym i praktycznym |
197 |
sensie. JavaScript nie będzie nadal szczególną przeszkodą do naszej |
198 |
wolnośći — nie bardziej niż C i Java są nimi teraz. Będziemy |
199 |
mogli odrzucić a nawet podmienić niewolne, nietrywialne programy |
200 |
JavaScript, tak samo jak możemy podmienić niewolne pakiety normalnie |
201 |
oferowane nam do instalacji. Nasza kampania dla stron internetowych by |
202 |
uwolnić ich JavaScript może się wtedy zacząć.</p> |
203 |
|
204 |
<p>W międzyczasie jest jeden przypadek gdzie jest dopuszczalne uruchamiać |
205 |
niewolny program JavaScript: aby wysłać zażalenie do operatorów |
206 |
witryn internetowych, że powinni uwolnić lub usunąć JavaScript ze |
207 |
stron. Nie wahajcie się włączyć JavaScript tymczasowo aby to zrobić, |
208 |
ale pamiętajcie go potem wyłączyć.</p> |
209 |
|
210 |
<p><strong>Podziękowania dla <a href="/people/people.html#mattlee">Matta |
211 |
Lee</a> i <a href="http://ejohn.org">Johna Resiga</a> za ich pomoc |
212 |
w definiowaniu naszej propozycji kryterium, oraz dla Davida |
213 |
Parunakiana za pomoc w uświadomieniu mi problemu.</strong></p> |
214 |
|
215 |
<h3 id="AppendixA">Załącznik A: konwencja dla wypuszczania wolnych programów JavaScript.</h3> |
216 |
|
217 |
<p>Odnośniki do kodu źródłowego proponujemy oznaczać</p> |
218 |
<pre dir="ltr"> |
219 |
|
220 |
// @source: |
221 |
|
222 |
</pre> |
223 |
|
224 |
<p>a następnie URL. To spełnia wymóg GNU GPL aby rozprowadzać kod |
225 |
źródłowy. Jeśli kod jest na innej stronie, musicie zwrócić uwagę |
226 |
aby <a href="/licenses/gpl-faq.html#SourceAndBinaryOnDifferentSites">o |
227 |
to właściwie zadbać</a>. Kod źródłowy jest konieczny aby program był |
228 |
wolny. |
229 |
</p> |
230 |
|
231 |
<p>By wskazać licencję kodu JavaScript zawartego na stronie, proponujemy |
232 |
umieszczenie licencji między dwoma komentarzami w tej formie:</p> |
233 |
<pre dir="ltr"> |
234 |
<!--TRANSLATORS: Do not translate these license notices. The <pre> |
235 |
|
236 |
elements have dir="ltr" explicitly set to cater for RTL languages.--> |
237 |
|
238 |
@licstart The following is the entire license notice for the |
239 |
JavaScript code in this page. |
240 |
... |
241 |
@licend The above is the entire license notice |
242 |
for the JavaScript code in this page. |
243 |
</pre> |
244 |
<p>Oczywiście, wszystko to powinno być zawarte w wielowierszowym |
245 |
komentarzu.</p> |
246 |
|
247 |
<p><a href="/licenses/gpl.html">GNU GPL</a>, tak jak wiele innych licencji |
248 |
wolnego oprogramowania wymaga dystrybucji kopii licencji zarówno |
249 |
z kodem jak i binariami programu. Jednakże, GNU GPL jest |
250 |
na tyle długie, że załączanie go do strony zawierającej |
251 |
JavaScript może być uciążliwe. Można pominąć to wymaganie, dla kodu |
252 |
do którego posiada się prawa autorskie, taką notatką licencyjną:</p> |
253 |
<pre dir="ltr"> |
254 |
|
255 |
Copyright (C) YYYY Developer |
256 |
|
257 |
Kod JavaScript na tej stronie jest wolnym oprogramowaniem: można |
258 |
go rozprowadzać oraz modyfikować go zgodnie z warunkami GNU |
259 |
General Public License (GNU GPL) opublikowanym przez Free Software |
260 |
Foundation, licencji w wersji 3, bądź (opcjonalnie) każdą późniejszą wersją |
261 |
Kod dystrybuowany jest BEZ JAKIEJKOLWIEK GWARANCJI; |
262 |
nawet bez domniemanej gwarancji ZDATNOŚCI DO HANDLU |
263 |
czy ZDATNOŚCI DO OKREŚLONEGO CELU. Proszę odwołać się |
264 |
do GNU GPL po szczegóły. |
265 |
|
266 |
Jako dodatkowe zezwolenie zgodne z GNU GPL wersji 3 sekcji 7, |
267 |
można dystrybuować nie-źródłowe (np., zminimalizowane bądź upakowane) |
268 |
formy tego kodu bez kopii GNU GPL normalnie wymaganej |
269 |
w sekcji 4, pod warunkiem załączenia tej notatki licencyjnej i URL |
270 |
przez które odbiorcy mogą dotrzeć do Właściwego Źródła |
271 |
|
272 |
</pre> |
273 |
|
274 |
<p>Dziękuje Jaffarowi Rumithowi za zwrócenie mojej uwagi na tę |
275 |
kwestię.</p> |
276 |
|
277 |
<h3 id="AppendixB">Załącznik B: konwencja dla wypuszczania wolnych programów JavaScript.</h3> |
278 |
|
279 |
<p>Jeśli jesteście webmasterem rozprowadzającym wolne oprogramowanie JavaScript |
280 |
na Waszej stronie, to jasne i konsekwentne umieszczanie informacji |
281 |
o licencjach i kodzie źródłowym pomaga odwiedzającym upewnić się, |
282 |
że uruchamiają wolne oprogramowanie i pomogą Wam przestrzegać |
283 |
warunki licencji.</p> |
284 |
|
285 |
<p>Jedną z metod przedstawiania licencji jest ta opisana wyżej w <a |
286 |
href="#AppendixA">Dodatku A</a>. Druga metoda, <a |
287 |
href="/licenses/javascript-labels.html">JavaScript license web labels</a>, |
288 |
może być wygodniejsza dla bibliotek z-minifi-owanym kodem JavaScript, |
289 |
szczególnie gdy to nie Wy go napisaliście.</p> |
290 |
|
291 |
<div class="translators-notes"> |
292 |
|
293 |
<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> |
294 |
</div> |
295 |
</div> |
296 |
|
297 |
<!-- for id="content", starts in the include above --> |
298 |
<!--#include virtual="/server/footer.pl.html" --> |
299 |
<div id="footer"> |
300 |
<div class="unprintable"> |
301 |
|
302 |
<p>Wszelkie pytania dotyczące GNU i FSF prosimy kierować na adres <a |
303 |
href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Inne metody kontaktu |
304 |
z FSF można znaleźć na stronie <a |
305 |
href="/contact/contact.html">kontakt</a> <br /> Informacje o niedziałających |
306 |
odnośnikach oraz inne poprawki (lub propozycje) prosimy wysyłać |
307 |
na adres <a |
308 |
href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>.</p> |
309 |
|
310 |
<p> |
311 |
<!-- TRANSLATORS: Ignore the original text in this paragraph, |
312 |
replace it with the translation of these two: |
313 |
|
314 |
We work hard and do our best to provide accurate, good quality |
315 |
translations. However, we are not exempt from imperfection. |
316 |
Please send your comments and general suggestions in this regard |
317 |
to <a href="mailto:web-translators@gnu.org"> |
318 |
|
319 |
<web-translators@gnu.org></a>.</p> |
320 |
|
321 |
<p>For information on coordinating and submitting translations of |
322 |
our web pages, see <a |
323 |
href="/server/standards/README.translations.html">Translations |
324 |
README</a>. --> |
325 |
Staramy się, aby tłumaczenia były wierne i wysokiej jakości, |
326 |
ale nie jesteśmy zwolnieni z niedoskonałości. Komentarze odnośnie |
327 |
tłumaczenia polskiego oraz zgłoszenia dotyczące chęci współpracy |
328 |
w tłumaczeniu prosimy kierować na adres <a |
329 |
href="mailto:www-pl-trans@gnu.org">www-pl-trans@gnu.org</a>. <br /> Więcej |
330 |
informacji na temat koordynacji oraz zgłaszania propozycji |
331 |
tłumaczeń artykułów znajdziecie na <a |
332 |
href="/server/standards/README.translations.html">stronie tłumaczeń</a>.</p> |
333 |
</div> |
334 |
|
335 |
<!-- Regarding copyright, in general, standalone pages (as opposed to |
336 |
files generated as part of manuals) on the GNU web server should |
337 |
be under CC BY-ND 4.0. Please do NOT change or remove this |
338 |
without talking with the webmasters or licensing team first. |
339 |
Please make sure the copyright date is consistent with the |
340 |
document. For web pages, it is ok to list just the latest year the |
341 |
document was modified, or published. |
342 |
|
343 |
If you wish to list earlier years, that is ok too. |
344 |
Either "2001, 2002, 2003" or "2001-2003" are ok for specifying |
345 |
years, as long as each year in the range is in fact a copyrightable |
346 |
year, i.e., a year in which the document was published (including |
347 |
being publicly visible on the web or in a revision control system). |
348 |
|
349 |
There is more detail about copyright years in the GNU Maintainers |
350 |
Information document, www.gnu.org/prep/maintain. --> |
351 |
<p>Copyright © 2009-2013, 2016 Richard Stallman</p> |
352 |
|
353 |
<p>Ta strona jest dostępna na <a rel="license" |
354 |
href="http://creativecommons.org/licenses/by-nd/4.0/deed.pl">licencji |
355 |
Creative Commons Uznanie autorstwa – Bez utworów zależnych |
356 |
4.0 Międzynarodowe</a>.</p> |
357 |
|
358 |
<!--#include virtual="/server/bottom-notes.pl.html" --> |
359 |
<div class="translators-credits"> |
360 |
|
361 |
<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> |
362 |
Tłumaczenie: Jan Owoc 2012, 2016, Jan Wieremjewicz 2010, 2012; poprawki Jan |
363 |
Owoc 2010, 2011, 2013.</div> |
364 |
|
365 |
<p class="unprintable"><!-- timestamp start --> |
366 |
Aktualizowane: |
367 |
|
368 |
$Date: 2016/05/26 22:28:56 $ |
369 |
|
370 |
<!-- timestamp end --> |
371 |
</p> |
372 |
</div> |
373 |
</div> |
374 |
</body> |
375 |
</html> |