File: Programming-Languages.pl.txt

package info (click to toggle)
doc-linux-pl 2002.06.14-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, jessie, jessie-kfreebsd, lenny, squeeze, wheezy
  • size: 6,900 kB
  • ctags: 968
  • sloc: makefile: 66
file content (528 lines) | stat: -rw-r--r-- 16,697 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
  Jzyki programowania (mae JTZ)
  Autor: Risto S. Varanka
  v?, 22 lipca 2000
  WWeerrssjjaa ppoollsskkaa:: TToommaasszz ''ttssccaa'' SSiieenniicckkii,, ttssccaa@@eeddbb..ddkk
  v1.0, 10 grudnia 2001


  Krtkie porwnanie najwaniejszych jzykw programowania oraz bib
  liotek sucych do tworzenia graficznego interfejsu uytkownika (GUI)
  pod Linuksem.
  ______________________________________________________________________

  Spis treci


  1. Formalnoci

     1.1 Najnowsza wersja tego dokumentu
     1.2 Prawa autorskie
     1.3 Licencja
        1.3.1 Warunki modyfikacji tekstu
     1.4 Zastrzeenie
     1.5 Informacje o autorze
     1.6 Podzikowania

  2. Wstp

     2.1 Tematyka dokumentu
     2.2 Odnoniki

  3. Jzyki programowania

     3.1 Pojcia uyte w tabeli
     3.2 Najwaniejsze jzyki
     3.3 Programowanie w powoce (szelu)
     3.4 Inne jzyki
     3.5 Odnoniki

  4. Narzdzia do tworzenia GUI

     4.1 Pojcia uyte w tabeli
     4.2 Najwaniejsze biblioteki do tworzenia GUI
     4.3 Odnoniki

  5. Od tumacza



  ______________________________________________________________________

  11..  FFoorrmmaallnnooccii

  11..11..  NNaajjnnoowwsszzaa wweerrssjjaa tteeggoo ddookkuummeennttuu

  Najnowsza wersja tego dokumentu dostpna jest pod adresem
  <http://www.helsinki.fi/~rvaranka/Computer/Linux/HOWTO/>.


  11..22..  PPrraawwaa aauuttoorrsskkiiee

  Copyright (c) 2000 Risto Varanka.

  11..33..  LLiicceennccjjaa

  Omwione tu warunki uywania dotycz wszystkich dokumentw LDP, o ile
  w danym dokumencie nie stwierdzono inaczej. Dokumenty LDP mona
  kopiowa i rozpowszechnia w caoci lub w czci za pomoc dowolnego
  fizycznego lub elektronicznego medium pod warunkiem, e niniejsza
  licencja nie jest usunita.  Rozpowszechnianie komercyjne jest
  dozwolone. W przypadku rozpowszechniania prosz miesic wczeniej
  skontaktowa si poczt elektroniczn z autorami w celu uzyskania
  najnowszej wersji tekstu.


  11..33..11..  WWaarruunnkkii mmooddyyffiikkaaccjjii tteekkssttuu

  Wszelkie zmodyfikowane wersje dokumentw, w tym tumaczenia, antologie
  oraz dokumenty rozpowszechniane w czci musz spenia nastpujce
  warunki:


  1. Wersja musi by oznaczona jako zmodyfikowana

  2. Osoba wprowadzajca modyfikacje nie moe by anonimowa

  3. Naley pozostawi nazwisko pierwotnego autora

  4. Naley poda informacj o lokalizacji oryginalnej wersji tekstu

  5. Bez zgody pierwotnego autora/autorw nie wolno ich/jego
     nazwiskiem/nazwiskami potwierdza ani sugerowa wanoci
     zmodyfikowanego dokumentu.


  Dodatkowe wymagania:


  1. Zmiany (w tym cicia) musz by zaznaczone

  2. Przed rozpoczciem dystrybucji naley autora o tym powiadomi
     poczt elektroniczn (jeli w dokumencie podany zosta adres)


  Antologie dokumentw LPD mog wyjtkowo zawiera w widocznym miejscu
  pojedyncz kopi tej licencji. W takich przypadkach tre licencji
  zawartej w dokumentach mona zastpi informacj o jej lokalizacji w
  antologii; wwczas zmiany w niniejszej sekcji nie nadaj dokumentowi
  statusu tekstu zmodyfikowanego.

  Umieszczenie dokumentw LPD na wsplnym noniku z innymi dokumentami
  bd programami nie powoduje objcia owych innych prac niniejsz
  licencj.

  Wszelkie tumaczenia, modyfikacje i teksty wywodzce si z dokumentw
  LDP nie mog mie bardziej restrykcyjnej licencji ni niniejsza.
  Wyjtkiem jest moliwo wymagania od dystrybutorw udostpniania
  wersji rdowych dokumentw.


  11..44..  ZZaassttrrzzeeeenniiee

  DOKUMENT NINIEJSZY OPISUJE SZEROK I STALE ZMIENIAJC SI DZIEDZIN
  WIEDZY.  DLATEGO INFORMACJE ZAWARTE W TYM TEKCIE MOG BY BDNE LUB
  NIEAKTUALNE.  JAKIEKOLWIEK UYCIE TEGO DOKUMENTU I ZAWARTYCH W NIM
  INFORMACJI MOE ODBYWA SI WYCZNIE NA WASNE RYZYKO UYTKOWNIKA.
  AUTOR NIE DAJE ANI NIE SUGERUJE ADNYCH GWARANCJI.


  11..55..  IInnffoorrmmaaccjjee oo aauuttoorrzzee

  Adres poczty elektronicznej:  <mailto:risto.varanka@helsinki.fi>
  Strona domowa:  <http://www.helsinki.fi/~rvaranka/>.
  11..66..  PPooddzziikkoowwaanniiaa

  Chciabym podzikowa osobom, ktre wypowiedziay si na temat jzykw
  programowania. Rozmowy te day mi lepsz orientacj w temacie, mam te
  nadziej, e reakcje czytelnikw w przyszoci przyczyni si do
  rozwoju niniejszego dokumentu. Podzikowania swoje kieruj szczeglnie
  do uytkownikw kanau #linux: Morphiego, Bluesmurfa, Vadima, Zonk^a,
  Rikkusa i wielu innych, ktrych nicki zapomniaem. Dzikuj te
  Stigowi Erikowi Sandoe za pomocne uwagi.


  22..  WWssttpp

  22..11..  TTeemmaattyykkaa ddookkuummeennttuu

  Linux jest fascynujcym systemem, poniewa kady moe uczestniczy w
  jego rozwijaniu. Czasem jednak rnorodno dostpnych jzykw
  programowania moe powodowa zagubienie pocztkujcego programisty.
  Niniejszy dokument opisuje najbardziej typowe z tych jzykw. Nie jest
  moim celem pisanie recenzji ani ukadanie ich rankingu. Kady jzyk na
  swoje zastosowania i zwolennikw. Jeli interesujesz si tematem,
  atwo moesz natrafi na sprzeczne informacje.  Znajdujce si w tym
  dokumencie odnoniki skieruj ci do rde, dziki ktrym bdziesz
  mg wyrobi sobie wasn opini.

  Jzykw programowania i bibliotek do tworzenia GUI pod Linuksem jest
  zatrzsienie. Dokument ten ogranicza si tylko do aktualnie
  najpopularniejszych z nich. Staraem si by neutralny, ale nie byem
  w stanie wspomnie tu o wszystkich dostpnych jzykach. Poniewa moje
  opinie z pewnoci s w taki czy inny sposb stronnicze, osobom
  powanie podchodzcym do tematu proponuj zajrzenie na strony bardziej
  kompletnie go wyczerpujce. Pamitaj te, e w niniejszym tekcie
  omwione s tylko linuksowe wersje danych jzykw i narzdzi; nie
  wspominam o ich moliwociach dostpnych w wersjach na inne platformy.

  Dokument niniejszy dopiero niedawno trafi do zasobw Linux
  Documentation Project, czytelnicy nie mieli wic pki co wiele czasu
  na wyraenie swoich opinii. Mam jednak nadziej, e tekst ten przyda
  si osobom (szczeglnie pocztkujcym) interesujcym si
  programowaniem pod Linuksem.

  Znak zapytania w tabelach oznacza brak informacji. Skontaktuj si z
  autorem, jeli je posiadasz.

  22..22..  OOddnnoonniikkii

  Wyczerpujce listy jzykw i narzdzi programistycznych dla Linuksa:

    Freshmeat <http://www.freshmeat.net/appindex/development/>

    Linux Development Tools <http://www.hotfeet.ch/~gemi/LDT/>

    linuxprogramming.com <http://www.linuxprogramming.com/>


  Interesujcym, szczeglnie dla pocztkujcych programistw, tekstem
  jest Hacker FAQ <http://www.tuxedo.org/~esr/faqs/hacker-howto.html>
  napisane przez Erica S. Raymonda. Dokument ten traktuje o kulturowych
  i psychologicznych aspektach pracy nad rozwojem oprogramowania
  wolnodostpnego.

  Innymi zajmujcymi si tematem programowania dokumentami LDP
  <http://www.linuxdoc.org/> s "Reading List HOWTO" oraz "Linux
  Programmer's Guide". Oprcz nich dostpny jest szereg tekstw
  powiconych bardziej szczegowym zagadnieniom.

  33..  JJzzyykkii pprrooggrraammoowwaanniiaa

  Tradycyjnie w GNU/Linuksie uywanymi jzykami s C, Lisp i Perl.
  Ostatnio do grupy tej doczyy Python, PHP, Java i C++.

  33..11..  PPoojjcciiaa uuyyttee ww ttaabbeellii


     JJzzyykk
        Powszechnie uywana nazwa jzyka.


     PPoocczzttkkuujjccyy
        Czy jzyk jest dobrym wyborem dla pocztkujcego programisty?


     SSzzyybbkkoo
        Jak szybko aplikacje bd w praktyce dziaa. W zasadzie zaley
        to bardziej od jakoci uoonego przez programist algorytmu,
        ni od samego jzyka.  Generalnie przyjmuje si, e jzyki C,
        C++ i Fortran oferuj wiksz szybko ni ich alternatywy.
        Wszystko zaley jednak od celu, jaki chcemy osign: czasem
        jzyki te mog okaza si bardziej nieporczne od innych.  (Mam
        pomys na mao naukowe porwnanie jzykw: naley napisa w
        kadym z nich prosty algorytm sortujcy i porwna czas jego
        wykonania. To oczywicie nie zmierzy szybkoci samych jzykw --
        taki pomys byby bez sensu -- a jedynie ich implementacji. Nie
        jest to rwnie szczeglnie niezawodna ani dokadna metoda,
        pozwala jednak porwna szybko wykonania zadania. Kto chce
        sprbowa?)


     OOOOPP,, pprrooggrraammoowwaanniiee oobbiieekkttoowwee kkoonnttrraa iinnnnee mmeettooddyy
        Programowanie obiektowe jest wan i coraz bardziej popularn
        metod tworzenia aplikacji. W tym modelu struktury danych i
        algorytmy poczone s w jednostki zwane klasami. OOP
        przeciwstawia si czsto programowaniu proceduralnemu (w ktrym
        uywa si oddzielnych algorytmw i struktur danych).  Nie jest
        to wycznie kwestia jzyka; mona programowa obiektowo w
        jzykach nie opisanych jako obiektowe, i odwrotnie:
        proceduralnie w jzykach obiektowych. Jako jzyki obiektowe
        wymieniem te, ktre takie programowanie uatwiaj rnymi
        dodatkami. Jzyki funkcjonalne (np. Lisp) to jeszcze inna
        sprawa, bowiem programowanie funkcjonalne jest nadzbiorem
        obiektowego.  Z drugiej strony programowania logicznego (np.
        Prolog), zwanego take programowaniem deklaratywnym, nie mona w
        podobny sposb odnie do innych modeli programowania.


     RRAADD ((bbyysskkaawwiicczznnee pprrooggrraammoowwaanniiee aapplliikkaaccjjii))
        Zaley bardziej od uywanych narzdzi ni jzyka. Istnieje
        dokument HOWTO omawiajcy narzdzia uatwiajce tworzenie GUI
        pod Linuksem, jest jednak przestarzay. Dobre narzdzie znacznie
        przyspiesza prace nad graficznym interfejsem uytkownika,
        umoliwia take prace nad istniejcym ju kodem; wolnodostpne
        oprogramowanie jest tu wic doskonaym punktem wyjcia.


     ZZaassttoossoowwaanniiaa
        Domeny programowania, w ktrych dany jzyk jest najczciej
        uywany.  Istniej take inne, mniej lub bardziej sensowne
        zastosowania jzyka, s jednak mniej typowe.


     UUwwaaggii
        Dodatkowe informacje o jzyku, np. jego moliwoci lub odmiany.
  33..22..  NNaajjwwaanniieejjsszzee jjzzyykkii


  Perl
  Pocztkujcy: tak - OOP: tak
  Zastosowania: Skrypty, administracja systemem, WWW
  Uwagi: Doskonay do przetwarzania tekstw

  Python
  Pocztkujcy: tak - OOP: tak
  Zastosowania: Skrypty, skrypty do aplikacji, WWW
  Uwagi:

  TCL
  Pocztkujcy: tak - OOP: nie
  Zastosowania: Skrypty, administracja systemem, aplikacje
  Uwagi:

  PHP
  Pocztkujcy: tak - OOP: tak
  Zastosowania: WWW
  Uwagi: Uywany przy tworzeniu sieciowych baz danych

  Java
  Pocztkujcy: tak - OOP: tak
  Zastosowania: Programy dziaajce na wielu platformach systemowych, WWW
  Uwagi: Zakres zastosowa rozszerza si (np. handel elektroniczny)

  Lisp
  Pocztkujcy: tak - OOP: funkcjonalny
  Zastosowania: Tryby Emacsa (Elisp), AI (Sztuczna inteligencja)
  Uwagi: Odmiany: Elisp, Clisp i Scheme

  Fortran
  Pocztkujcy: nie  - OOP: nie
  Zastosowania: Aplikacje matematyczne (naukowe)
  Uwagi: Odmiany: f77 i f90/95

  C
  Pocztkujcy: nie  - OOP: nie
  Zastosowania: Oprogramowanie systemowe, aplikacje
  Uwagi:

  C++
  Pocztkujcy: nie  - OOP: tak
  Zastosowania: aplikacje
  Uwagi:



  33..33..  PPrrooggrraammoowwaanniiee ww ppoowwooccee ((sszzeelluu))

  Powoki s rwnie wanym rodowiskiem programistycznym. Nie omawiam
  ich, poniewa nie zrozumiaem jeszcze dokadnie caoci tematu.
  Znajomo powok jest istotna dla wszystkich uywajcych regularnie
  Linuksa, szczeglnie administratorw. Istnieje wiele podobiestw
  midzy programowaniem w szelu i pisaniem skryptw w innych jzykach --
  czsto osign mona identyczne rezultaty, wybr jest wic wolny. Do
  najpopularniejszych powok nale bash, tcsh, csh, ksh i zsh.
  Podstawowe informacje o nich znajduj si w podrczniku systemowym
  (uyj polecenia man, np. man bash).

  33..44..  IInnnnee jjzzyykkii

  Inne warte zauwaenia jzyki to: AWK, SED, Smalltalk, Eiffel, Ada,
  Prolog, asembler, Objective C, Logo, Pascal (konwerter p2c).
  33..55..  OOddnnoonniikkii


    Strona z du iloci informacji i opinii o rnych jzykach
     programowania <http://www.tunes.org/Review/Languages.html>

    TCL <http://dev.scriptics.com/>

    Perl <http://www.perl.org/>

    Python <http://www.python.org/>

    PHP <http://www.php.net>

    Java <http://www.javasoft.com/>

    clisp <http://clisp.cons.org/~haible/packages-clisp.html>


  44..  NNaarrzzddzziiaa ddoo ttwwoorrzzeenniiaa GGUUII

  Standardowym rodowiskiem graficznym w systemach Unix i Linux jest
  posiadajcy swoje wasne biblioteki GUI _X _W_i_n_d_o_w _S_y_s_t_e_m.  Biblioteki
  te umoliwiaj niskopoziomowe tworzenie graficznych aplikacji dla X,
  bywaj jednak trudne w uyciu. Wykorzystuje je gwnie starsze
  oprogramowanie, dzi graficzne aplikacje tworzy si raczej w oparciu o
  biblioteki GTK+ i Ot -- to na nich oparte s dwa najpopularniejsze
  due rodowiska graficzne dla Linuksa: GNOME i KDE.

  44..11..  PPoojjcciiaa uuyyttee ww ttaabbeellii


     BBiibblliiootteekkaa
        Powszechnie uywana nazwa biblioteki


     PPoocczzttkkuujjccyy
        Czy biblioteka nadaje si dla pocztkujcego programisty?


     LLiicceennccjjaa
        Poszczeglne narzdzia opatrzone s rnymi licencjami. Licencje
        GTK+, TK i GNUstep pozwalaj na bezpatne tworzenie zarwno
        wolnodostpnego, jak i zamknitego oprogramowania. Licencja
        Motifa jest patna, a licencja Qt jest patna tylko w przypadku
        tworzenia oprogramowania zamknitego.


     JJzzyykk
        Jzyk najczciej uywany z dan bibliotek.


     IInnnnee jjzzyykkii
        Inne jzyki, ktrych rwnie mona uywa z dan bibliotek.


     ZZaassttoossoowwaanniiaa
        Programy korzystajce z biblioteki.


     UUwwaaggii
        Dodatkowe informacje.




  44..22..  NNaajjwwaanniieejjsszzee bbiibblliiootteekkii ddoo ttwwoorrzzeenniiaa GGUUII


  Biblioteka:     TK
  Pocztkujcy:   tak
  Licencja:       darmowa
  Jzyk:          TCL
  Inne jz:       Perl, Python, inne
  Zastosowania:   make xconfig, TKDesk
  Uwagi:

  Biblioteka:     GTK+
  Pocztkujcy:   nie
  Licencja:       darmowa (LGPL)
  Jzyk:          C
  Inne jz:       Perl, C++, Python, wiele innych
  Zastosowania:   GNOME, Gimp
  Uwagi:          Bardzo popularna

  Biblioteka:     QT
  Pocztkujcy:   nie
  Licencja:       darmowa przy rozwijaniu oprogramowania wolnodostpnego
  Jzyk:          C++
  Inne jz:       Python, Perl, C, inne?
  Zastosowania:   KDE
  Uwagi:          Bardzo popularna

  Biblioteka:     Motif
  Pocztkujcy:   nie
  Licencja:       patna
  Jzyk:          C/C++
  Inne jz:       Python, inne?
  Zastosowania:   Netscape, Wordperfect
  Uwagi:          Darmowy odpowiednik: Lestiff (http://www.lesstif.org/)

  Biblioteka:     GNUstep
  Pocztkujcy:   nie
  Licencja:       darmowa (LGPL)
  Jzyk:          Objective C
  Inne jz:       Guile, Java?
  Zastosowania:   adna z popularnych aplikacji
                  Lista aplikacji: http://www.gnustep.org/resources/apps.html
  Uwagi:          Wci w trakcie rozwoju



  44..33..  OOddnnoonniikkii


    TK <http://dev.scriptics.com/>

    GTK+ <http://www.gtk.org/>

    QT <http://www.troll.no/>

    Motif <http://www.metrolink.com/>

    GNUstep <http://www.gnustep.org/>


  55..  OOdd ttuummaacczzaa

  Zmiany w stosunku do oryginau: Podzia pierwszego rozdziau na dwie
  tematyczne sekcje ("Formalnoci" i "Wstp") oraz przeformatowanie
  spisu najwaniejszych bibliotek.

  Wersja oryginalna dokumentu:  <http://sunsite.unc.edu/LDP/>.
  Tumaczenia pozostaych dokumentw HOWTO na jzyk polski:
  <http://www.jtz.org.pl/>.

  Copyright for the translation:
  (c) 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk