Wikipedia:Głosowania/Implementacje tylko w pseudokodzie

Z Wikipedii, wolnej encyklopedii

Głosowanie ma na celu ustalić, czy decydujemy się na przeniesienie wszystkich algorytmów napisanych w "normalnych" językach programowania do pl.wikisource (dyskusja) pozostawiając w wikipedi kody algorytmów/funkcji etc. napisane tylko w pseudokodzie.

Oczywiście zatwierdzenie propozycji wymagało by założenia kolejnego topicu, w którym ustalono by standardy wikipedi dla owego pseudokodu.

Uzasadnienie[edytuj | edytuj kod]

Wikipedia jest pełna przeróżnych programów napisanych w przeróżnych językach, w różnych konwencjach (często bez konwencji). Jak ktoś gdzieś napisał wikipedia nie powinna być "brykiem programisty", dodatkowo implementacja w konkretnych językach bardzo często jest tak przesycona szczegółami związanymi ze składnią tego konkretnego języka, że kompletnie przesłania istotę algorytmu, o którym jest dany artykuł, czasami prowadzi to do rozsadzenia artykułu przez kod (nie pamiętam który, ale jest artykuł w którym prosta formułka algebraiczna jest zaimplementowana w kilku językach, co robi karykaturalne wrażenie)

Np.: artykuł o NWD wyglądał tak, artykuł o algorymie Euklidesa [1]. Tyle ze w artykule o NWD uzywany jest tylko algorytm Euklidesa... googl d 17:55, 1 lut 2007 (CET)[odpowiedz]

Głosowanie[edytuj | edytuj kod]

Zasady głosowania[edytuj | edytuj kod]

  1. Głosować mogą zalogowani wikipedyści, którzy mają na koncie przynajmniej 100 edycji w chwili rozpoczęcia głosowania i miesięczny staż na polskiej wikipedii
  2. Wynik głosowania jest wiążący, jeżeli zagłosuje co najmniej jeden? wikipedystów.
  3. Czas trwania: do 14 lutego, godzina 10:20.
  4. Zasada zostanie wprowadzona jeśli po zakończeniu głosowania będzie miała więcej głosów poparcia niż sprzeciwu.

Głosy za propozycją[edytuj | edytuj kod]

  1.  Za

Głosy przeciw[edytuj | edytuj kod]

  1.  Przeciw

Dyskusja[edytuj | edytuj kod]

Wpierw powinna byc dyskusja. Sam napisalem swoje zdanie na Dyskusja portalu:Algorytmy. Głosowania są wtedy gdy nie można osiągnąć konsensusu. googl d 13:01, 1 lut 2007 (CET)[odpowiedz]

Mam wątpliwości odnośnie 2 punktu regulaminu. Jeden wikipedysta? Przecież nawet jeśli cała społeczność zbojkotuje głosowanie, a przykładowo zakładający głosowanie zagłosuje Za (lub Przeciw) to głosowanie ma być wiążące? Moim zdaniem to dość głupi pomysł. Dodek D 15:54, 1 lut 2007 (CET)[odpowiedz]

dyskusja dyskusją, zawsze można jej nie zauważyć, a na tablicy ogłoszeń zainteresowani zawsze znajdą. Punkt drugi faktycznie nie teges, wkleiłem po prostu szkielet głosowania i myślałem, że tak zwyczajowo jest.. IMHO mogą znaleźć się ludzie, którzy mogą się kłócić o to, dlaczego ich działający kod nie może się znaleźć w artykule, a tak jest wszystko legit Rnm 16:31, 1 lut 2007 (CET)[odpowiedz]

Jak dla mnie OK, trzeba by tylko zrobić jakiś szablonik informujący o implementacjach znajdującyh się na wikisources. Będzie też problem z tym jak powinien wyglądać pseudokod. Osobiście lubię taki, który jest oparty na C (chodzi o klamerki), ale widywałem też oparte na Pascalu (begin/end), czy na Pythonie (bloki wyłącznie wg poziomu tabulacji). Ten ostatni byłby najgorszy chyba, bo na wiki nie można normalnie używać tabulacji. --Nux (dyskusja) 17:42, 1 lut 2007 (CET)[odpowiedz]

Tak to jest dylemat, zwłaszcza, że dochodzi następująca kwestia: czy zapisywać zwyczajowe ify i while po angielsku czy po polsku? IMHO powinny być po polsku, ponieważ mieszanie polskich nazw zmiennych z angielskim ("if jest jeszcze wierzchołek w grafie...") czerstwe jest. Co do szabloniku to nie problem - takowy już jest.

Moja propozycja pseudokodu:

  • jeżeli warunek : instrukcja/blok
  • dopóki warunek : instrukcja/blok
  • dla i od j do k  : instrukcja/blok
  • { instrukcja } // blok
  • dla wszystkich i w zbiór : instrukcja/blok //przydatna dla list, grafów itp.
  • proponuje odpuszczenie wytycznych co wyglądu warunków, przypisań, odwołań do części kolekcji itp. - myślę, że zasada wyczucia sytuacji będzie tu odpowiednia
  • algorytm zapisywany jako funkcja z argumentami, proponowałbym wprowadzenie zalecenia, by kluczowe zmienne wypisywać jak w pascalu przed definicją funkcji, np
 Algorytm_X(Graf/* /Lista/Napis itp */ G)
 zmienne: drzewo D, kolejka FIFO K
 { 
   za D podstaw puste drzewo
   '''dopóki''' D nie zawiera wszystkich wierzchołków G:
   {
     //....
   }
   '''zwróć''' D 
 }

jeżeli sprawą się rozrośnie, to będzie można pomyśleć o głębszych standardach, np. zapisu algorytmów grafowych, ale wszystko w swoim czasie Rnm 22:38, 2 lut 2007 (CET)[odpowiedz]