Wikipedia:Głosowania/Implementacje tylko w pseudokodzie

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

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

Zasady głosowania

edytuj
  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
  1.   Za

Głosy przeciw

edytuj
  1.   Przeciw

Dyskusja

edytuj

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]