Analiza ryzyka dla inicjatywy Perl 7

Księga Dana (Księga Dana), obsługujący ponad 70 modułów w CPAN, przeprowadził analizę ryzyka przy wdrażaniu proponowanych rozwiązań Plan wdrożenia Perla 7. Przypomnijmy, że w gałęzi Perla 7 zamierzają domyślnie włączyć tryb ścisłego sprawdzania „ścisły”, aktywować „użyj ostrzeżeń” i zmienić wartość szeregu parametrów wpływających na zgodność ze starym kodem.

Oczekuje się, że zmiana spowoduje uszkodzenie dużej liczby modułów CPAN w Perlu 7 i będzie wymagać zmian w każdym module, co jest nierealne do wdrożenia w docelowym roku, zwłaszcza że nie wszyscy autorzy są dostępni. Zmiany w Perlu 7 uniemożliwią także użycie modułów zaprojektowanych do obsługi czegoś więcej niż tylko najnowszej wersji Perla.

Ponadto wymieniono następujące możliwe problemy:

  • Zamieszanie wśród początkujących spowodowane niektórymi przykładami i zaleceniami z podręczników napisanych dla Perla 7, które nie działają w Perlu 5.
  • Nie badano wpływu na rozwój jednoliniowców. Perl jest aktywnie wykorzystywany nie tylko do pisania dużych skryptów, ale także do tworzenia jednowierszowych i krótkich skryptów na potrzeby administratorów, w których nie jest konieczne stosowanie trybu ścisłego.
  • Dystrybucje mają problem z jednoczesnym dostarczaniem plików wykonywalnych do uruchamiania skryptów Perl 7 i Perl 5 (oczekuje się, że historia powtórzy się w przypadku Pythona 2 i 3).
  • Kod napisany dla Perla 7 nie musi specjalnie informować, że nie będzie działał w Perlu 5; wielu programistów nie określa minimalnej obsługiwanej wersji.
  • Różne narzędzia i moduły oparte na Perlu 5 będą wymagały poprawek.
  • Przygotowanie Perla 7, w związku z realokacją zasobów, na pewien czas zamrozi rozwój nowych funkcji Perla.
  • Istnieje ryzyko wypalenia się i odejścia aktywnych twórców interpretera Perla, modułów, narzędzi i pakietów towarzyszących ze względu na duży dodatkowy nakład pracy bez odpowiedniej motywacji (nie wszyscy zgadzają się z koniecznością tworzenia Perla 7).
  • Kultura społeczności i podejście do stabilności Perla ulegną zasadniczej zmianie.
  • Autorytet języka zostanie podważony z powodu krytyki, że Perl 7 jest niekompatybilny z istniejącym kodem w przypadku braku czegoś zasadniczo nowego.

Aby załagodzić negatywne konsekwencje, Dan Book zaproponował swój plan, który pozwoli uniknąć luki w kompatybilności. Proponuje się utrzymanie tego samego procesu rozwoju i zamiast wersji 5.34.0 przypisać numer kolejnej wersji 7.0.0, w której wyłączymy obsługę notacji pośredniego wywoływania obiektów i włączymy kilka nowych funkcji, takich jak try/catch. Proponuje się, aby zmiany takie jak „użyj ściśle” i „użyj ostrzeżeń” zostały uregulowane poprzez wyraźne określenie wersji Perla w kodzie za pomocą pragmy „użyj v7” (ścisłe jest już domyślnie włączone dla „użyj v5.12” i nowszych wydań ).

Domyślnie zaleca się, aby interpreter zachował zestaw parametrów, które nie różnią się od Perla 5, z wyjątkiem standardowego procesu czyszczenia przestarzałej składni, który był używany wcześniej. Obsługa starszych funkcji i przestarzałej składni może w dalszym ciągu zostać wycofana zgodnie z istniejącymi zasadami wycofywania. Proponuje się zasygnalizować użycie w kodzie nowych elementów Perla 7 oraz oddzielić nowe i stare style za pomocą pragmy „use v7”.

Źródło: opennet.ru

Dodaj komentarz