Wikipedia:Propozycje do Dobrych Artykułów/Lisp

Lisp edytuj

Hasło jest tłumaczeniem z en. Artykuł jest długi, więc podejrzewam, że istnieją jakieś mankamenty, ale wydaje mi się, iż wyczerpuje temat. Dodek D 18:56, 12 sie 2008 (CEST)

  • Głosy za:
  • Głosy przeciw:
  1. Tylko do czasu 1. powstania sekcji, która podawałaby w zwarty sposób także krytyczne opinie pod adresem Lispu; 2. usunięcia lub uźródłowienia wymienionych w dyskusji epitetów pochwalnych; 3. usunięcia lub uźródłowienia informacji o wprowadzeniu przez Lisp do informatyki koncepcji programowania obiektowego. Potem chętnie przeniosę się na drugą stronę głosowania. Markotek (dyskusja) 01:32, 15 sie 2008 (CEST)
  • Dyskusja:
  • Można by ujednolicić przypisy i źrodla. Także linki zewnętrzne ze środka hasła do przypisów. Także sekcja "komiksy" jakoś tak slabo tam się komponuje, podobnie jak cytaty bez zdania wyjaśnienia/wstępu. Masur juhu? 20:42, 12 sie 2008 (CEST)
  • Może jakaś sekcja "krytyka", albo "kontrowersje"? Bo akurat Lisp jest znany z tego, że używa ton nawiasów, których czasem trudno się doliczyć, co generuje błędy i jest zmorą programów napisanych w tym języku. Dodatkowo zdolność do dynamicznego tworzenia kodu, choć pozwala uprościć pewne algorytmy, pozwala też skomplikować zapis tak, że nikt nic nie rozumie. Markotek (dyskusja) 22:29, 12 sie 2008 (CEST)
    • Tak krytykują ci, którzy go nie znają i nie wiedzą, że gdyby nie ta składnia, to Lisp nie byłby taki potężny. W artykule jest wspomniane, że Lisp jest krytykowany ze względu na ilość nawiasów, ale nie sądzę, żeby trzeba było do tego wydzielać dodatkową sekcję - nie widziałem żadnych artykułów skupiających się na krytyce Lispu.
    • Co do tworzenia dynamicznego kodu - wybacz, ale w każdym języku można tak wszystko zobfuskować, że nikt tego nie zrozumie. Nieczytelny kod jest albo pisany przez programistów nieznających się na rzeczy, albo tak naprawdę jest czytelny, tyle że wypowiadający się nie potrafią go czytać. Dodek D 13:22, 13 sie 2008 (CEST)
  • Co to znaczy "Głównie ze względu na wymagania systemowe Lisp nie zyskał takiej popularności poza społecznością badajacą SI jak na przyklad Fortran czy C." Czy Lisp potrzebuje bardzo silnych komputerów? Nawet jeśli tak, to w porównaniu z rokiem 1958, kiedy powstawał, dzisiejsze komputery domowe mają moc ówczesnych superkomputerów. Więc dlaczego nadal nie zyskał popularności? Markotek (dyskusja) 22:29, 12 sie 2008 (CEST)
    • Odsyłam na przykład do odpisu wykładu rmsa, w którym jest opisane, czemu zdecydował się na C a nie na Lisp przy pisaniu GNU. W skrócie chodziło o to, że na zwykłym sprzęcie implementacja pełnego type-checkingu i innych udogodnień strasznie spowalniała system i zajmowała za dużo pamięci, co znacznie utrudniało pracę programistom. Właśnie dlatego powstały maszyny lispowe, które robiły to na poziomie sprzętowym, ale to już inna bajka. Dzisiaj Lisp nie potrzebuje jakichś super-silnych bohaterów, po statystyki odnośnie prędkości odsyłam na przykład do The Computer Language Shootout Benchmarks - warto dodać, że niewolna implementacja Allegro CL jest zwykle szybsza od SBCL, a jej szybkość jest porównywalna z C/C++. Czemu nadal nie zyskał popularności? Nie mam pojęcia :), ale celowałbym w np. silną reklamę w sumie kiepskiego wtedy środowiska Java, które wyparło nawet dużo lepsze C++. Sporo artykułów na ten temat jest na stronie domowej Paula Grahama. Dodek D 13:22, 13 sie 2008 (CEST)
    • PS. zapomniałem jeszcze wspomnieć o strasznie nieefektywnych wtedy implementacjach garbage collection - programiści pracowali tak, że gdy przychodzili do pracy, wyłączali GC, programowali, a przed wyjściem ponownie włączali, żeby GC mogło zdefragmentować pamięć przez noc. Dzisiaj oczywiście GC jest dużo szybsze, zarówno w Lispie jak i w innych językach. Lisp ewoluował również z samymi programistami, przez te 40 lat wprowadzono masę optymalizacji, zastosowano wydajniejsze algorytmy, itp. Dodek D 13:25, 13 sie 2008 (CEST)
  • Co to znaczy "Z pewnych powodów porzucony w latach 90"? Z jakich? Markotek (dyskusja) 22:29, 12 sie 2008 (CEST)
    • To zdanie to wynik mojego kiepskiego ŧłumaczenia angielskiego zwrotu "for some reasons". Nie wiem, z jakich, nie robiłem badań rynkowych. Równie dobrze można pytać, czemu język taki jak Haskell też nie zdobył popularności - podejrzewam, że przyczyną niskiej popularności języków funkcyjnych jest fakt, iż na uczelniach zwykle preferują programowanie imperatywne, kiedyś uczyli Paszczaka, potem C++, teraz Javy. Można do tego odnieść argument nieczytelności kodu - jeżeli ktoś poznał jeden język algolopodobny, można powiedzieć, że poznał wszyskie. Języki funkcyjne to inna bajka, mają dużo strasznych nawiasów, albo występuje jakiś dziwny i niezrozumiały pattern-matching.
    • Ech, wygląda na to, że skupiłem się na pisaniu na temat Lispu a nie artykułu. Po południu przejrzę eseje Paula Grahama i uźródłowię ten spadek popularności. Dodek D 13:22, 13 sie 2008 (CEST)
  • Trochę drobnych problemów technicznych, np. [[komputer] ale to drobiazgi. Markotek (dyskusja) 01:32, 15 sie 2008 (CEST)
  • Tutaj ktoś wymienia inne jeszcze wady Lispa:
    • FACT 1: The fastest Lisp implementations are slow
    • FACT 2: No one but a small clique of fanatics likes it
    • FACT 3: The vast majority of people who study Lisp in school, never want to use it again.
    • FACT 4: Lisp is the most complicated language in the world
    • FACT 5: Despite its size, Lisp does not define threads or GUI.
    • FACT 6: There is no open-source cross-platform native-code compiler
    • FACT 7: There is no standard C interface.
(Muszę uczciwie przyznać, że jeśli chodzi o punkt 5, to zdaje się istnieją rozszerzenia, które to zapewniają, jednak chyba faktycznie nie ma tego w standardzie jezyka. W punkcie 7 ewentualnie można skompilować GNU Common Lisp do C i wtedy łączyć z C grzebiąc w wygenerowanym kodzie, ale to raczej obejście niż interfejs.)
Oczywiście, w każdym języku można znaleźć jakieś wady. I w każdym artykule o danym języku te wady powinny być wymienione. W obecnej chwili uważam, że artykuł nie spełnia norm NPOV, gdyż praktycznie nie przedstawia stanowiska przeciwników Lispa (oprócz zdania o nawiasach i cytatu o owsiance). Artykuł używa za to nieuźródłowionych określeń o pozytywnym zabarwieniu: "wygodna matematyczna notacja", "szybko stał się najchętniej wybieranym językiem", "Lisp doświadcza wzrostu zainteresowania od roku 2000" (na temat tego ostatniego zob. Lisp w Google Trends, w porównaniu np. do C#). Markotek (dyskusja) 01:32, 15 sie 2008 (CEST)
    • Te zarzuty są trochę dziwne i albo były tworzone bardzo dawno albo przez kogoś, kto tego języka nie zna w wystarczającym stopniu.
      • 1. To opinia względna, ja bym na przykład powiedział, że Lisp jest bardzo szybki. C++ jest szybsze głównie ze względu na ręczne zarządzanie pamięcią i statyczne typowanie, tak samo C. Analizując Language Shootout (link dałem wyżej) można też zauważyć, że pomimo, iż Lisp jest wolniejszy dwa razy od C++, to tak popularne języki jak Python czy PHP są wolniejsze odpowiednio 17 i 53 (!) razy od C++, co, mimo wszysko, nie wyklucza ich z zastosowań - naprawdę niewiele programów polega jedynie na procesorze, prędkośc większości jest zależna głównie od operacji I/O, dyskowych czy sieciowych.
      • 2. I to świadczy, że język jest zły? To samo można powiedzieć chociażby o Javie - dużo ludzi jej używa, a mało kto lubi.
      • 3. Nie spotkałem się jeszcze z przypadkiem nauczania Lispu w szkole więc się na ten temat wypowiadam.
      • 4. To, że specyfikacja jest skomplikowana, nie znaczy, że skomplikowany jest język - autor tej listy pochwala np. specyfikację C, która jest bardzo często krytykowana ze względu na tzw. "zachowania nieokreślone". Na en jest o tym artykuł. Zresztą, programisci korzystają z dokumentacji, nie specyfikacji - specyfikacja jest dla twórców kompilatorów.
      • 5. C, C++ też nie.
      • 6. Jest SBCL, z niewolnych jeszcze AllegroCL kompiluje do maszynowego na wielu platformach, CMUCL działa na wszystkich uniksach.
      • 7. CFFI, jest też starsze UFFI. Dodek D 12:44, 23 sie 2008 (CEST)
  • Przedstawianie Lispa jako źródła koncepcji programowania obiektowego jest nieuczciwe. Pierwsza była Simula, potem Smalltalk, a np. Java jest raczej połączeniem koncepcji C++ i Smalltalka, a nie akurat Lispu. Markotek (dyskusja) 01:32, 15 sie 2008 (CEST)
    • Ach, tam powinna być informacja, że wprowadził wiele nowych pomysłów w programowaniu obiektowym. Poza tym, pod koniec jest fakt, iż CL był pierwszym oficjalnie ustandaryzowanym językiem zawierającym obiektowość, co jest faktem. Dodek D 12:44, 23 sie 2008 (CEST)

Już raz zgłaszane do DA (odrzucone jednym głosem przeciw i brakiem głosów za, szczegóły w dyskusji), w mojej opinii artykułowi nie brakuje niczego prócz krytyki Lispu, na którą mi jednak ciężko znaleźć źródła. Dodek D 12:15, 2 sty 2009 (CET)

  • Redakcyjnie trzeba dopracować. Wszelkie źródła (przypisy, bibliografia, linki zewnętrzne) trzeba by opisać z użyciem szablonów {{cytuj stronę}} itp., trzeba usunąć linki z tytułów, Sekcja "Komiksy" zawiera tylko kilka linków zewnętrznych (w tym miejscu niewskazane) bez słowa komentarza. Warto też poprosić kogoś deklarującego znajomość ortografii i interpunkcji o przejrzenie, lub samemu spokojnie i powoli przejrzeć tekst. Trafiają się błędy interpunkcyjne, połknięte spacje itp. Sporo czerwieni tj. brakujących linków może też niektórych odstraszać. Czy program "Hello World" jest encyklopedyczny (jest podlinkowany w przykładach)? Kenraiz (dyskusja) 12:48, 2 sty 2009 (CET)
  • I jeszcze drobiazg - jeśli kiedyś tam w dyskusji hasła napisało się o licznych błędach, to po ich naprawieniu warto dodać pod dawnym głosem małe sprostowanie. Inaczej przeglądający hasło mogą mieć wrażenie, że negatywna opinia zawisła w próżni. Kenraiz (dyskusja) 12:52, 2 sty 2009 (CET)
    • "Komiksy" to odpowiednik enwiki-owego "xxx w kulturze masowej" - ciężko byłoby mi dodać jakikolwiek komentarz poza tym, że po prostu występuje. Przeniosę jednak te linki do przypisów. Hello world jest akurat bardzo encyklopedyczny (o czym świadczy chociażby niebieskolinkowość), jest jedynie błędnie podlinkowany. Wiele czerwonych linków jest skutkiem słabego opisania powiazanych tematów na plwiki - trzeba włożyć trochę pracy, a czerwlinki znikną - przejrzę jednak w poszukiwaniu naprawdę nadmiarowych. Głosy w DA są raczej niemerytoryczne, zresztą odpowiedziałem na nie już wtedy. Dodek D 13:21, 2 sty 2009 (CET)
      • Temat jest specjalistyczny, więc przy nominacji przebieg dyskusji jest mocno zależny od pierwszych opinii, a te z kolei od pierwszego wrażenia jakie robi hasło. Dlatego istotne jest dopracowanie redakcyjne i dlatego wspomniałem o czerwonych linkach. Po naprawieniu tych spraw, trudniejszą kwestią jest ocena hasła pod kątem weryfikowalności. Jeśli tak jak w tym wypadku, niewiele jest przypisów bibliograficznych w treści, warto zastanowić się, w których miejscach taki przypis powinien się znaleźć i dodać w miarę możliwości. W innym wypadku warto zastanowić się nad wyjaśnieniem w dyskusji hasła tego, w jakim zakresie pozycje wymienione w bibliografii zostały wykorzystane. Do weryfikowalności hasła warto odnieść się też w samym zgłoszeniu. Kenraiz (dyskusja) 13:41, 2 sty 2009 (CET)
  • Mam wątpliwości co do prawdziwości drugiego zdania wstępu "Po raz pierwszy określony w 1958 roku, Lisp jest drugim z kolei pod względem wieku językiem programowania wysokiego poziomu (starszy jest tylko Fortran)." Lisp został wymyślony w 1958 w MIT, ale pierwsza specyfikacja została opublikowana w 1960 w piśmie Communications of the ACM. Natomiast np. Algol również był wymyślony i zaimplementowany w 1958, ale od razu opublikowano jego specyfikację. A już najwcześniej był wymyślony język wysokiego poziomu Plankalkül - na początku lat czterdziestych, choć nie zaimplementowano go. A potem był np. Short Code z 1949, działający na ENIACu. W 1952 powstał Autocode. Albo np. IPL w którym było nawet przetwarzanie list... Więc trzeba by najpierw ustalić, czy bierzemy pod uwagę datę rozpoczęcia prac nad językiem, datę opublikowania specyfikacji języka, czy stworzenia kompilatora/interpretera, ale i tak w żadnej z tych kategorii Lisp raczej nie będzie drugi. Pozdrawiam, Olaf @ 00:00, 1 lut 2009 (CET)
  • Zdanie "Po spadku popularności w latach 90. wywołanym m.in. upowszechnieniem się C++ i silnym marketingiem Javy" sugeruje że po pierwsze Lisp konkuruje z C++ i Javą, a to chyba nieporozumienie. Lisp jest bezkonkurencyjny w dziedzinie sztucznej inteligencji, ale porównywanie go z językami mającymi na celu tworzenie komercyjnych aplikacji standalone czy obecnie WWW jest nietrafione, bo Lisp nie to ma na celu. To tak jakby powiedzieć, że awangardowa poezja straciła w latach 90. na popularności na skutek marketingu filmów Hollywood. W każdym razie ani w latach 90. ani wcześniej Lisp nie był pod tym względem konkurencją (i nie oceniam tu jego możliwości, tylko faktyczny sposób jego wykorzystania). Tak czy inaczej, to zdanie to jest własna opinia, nie poparta źródłami. Olaf @ 00:10, 1 lut 2009 (CET)
  • "Głównie ze względu na wymagania systemowe Lisp nie zyskał takiej popularności poza społecznością badającą SI jak na przykład Fortran czy C." - jakie wymagania systemowe? Nie bardzo rozumiem. Czy potrzebuje więcej pamięci? Poza tym to znowu jest nieuźródłowiona opinia. Olaf @ 00:24, 1 lut 2009 (CET)