PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Wolność Wyboru
  przez wrares (56 odsłon)
Często słyszy się opinie o niedoskonałości Ekosystemu Perla. O jego nieprofesjonalnym podejściu do rozwiązywania zadań przed którymi stoi programista. O jego zagmatwanej składni oraz nieprecyzyjnej definicji zmiennych. Braku wsparcia przez korporacje oraz marginalnym wykorzystaniu w systemach produkcyjnych. Czy jest aż tak źle ?. Podpatrując rozwiązania korporacyjnych dostawców oprogramowania, dostrzegamy pewną zależność, która jest wynikiem specyficznego podejścia do zagadnień programistycznych. Udostępniają technologię która w swej początkowej fazie spełnia założone wymagania. Czas weryfikuje założenia, więc sztucznie nakładają nowe założenia, które po jakimś czasie znów nie spełniają wymagań, więc tworzą nowe itd. Jednak przychodzi ta chwila, kiedy się gubimy i dodajemy coraz to nowe zasoby, nowe rozwiązania a Nasza kula śnieżna rośnie. Staje się coraz większa i cięższa. W pewnej chwili jest tak ciężka, że nie potrafi toczyć się w żadnym kierunku. Stoimy w miejscu.

A teraz wracamy na Nasze podwórko. Wykorzystując Ekosystem Perla mam możliwość wyboru realizacji zadań. I to nie tylko co do wyboru narzędzi, ale przede wszystkim sposobu ich implementacji. Załóżmy, że chcemy tak jak inne środowiska, wykorzystać możliwość jakie daje nam programowanie obiektowe. Sposób myślenia, kodowania, testowania chcemy upodobnić na siłę, do jednego z wielu rozwiązań dostępnych na rynku. Zastanawiamy się dlaczego coś jest dostępne w innym środowisku a w Naszym nie. Dlaczego Perl tego nie ma. Gdyż
Cytat:

1) Perl posiada wiele mechanizmów, których nie posiadają inne środowiska.

2) Droga wybrana przez innych, nie jest drogą rozwoju Perla

3) Perl to klej. Skleja wszystko ze wszystkiego




Ja jako świadomy użytkownik Ekosystemu Perla, mam wolność wyboru. Nie jestem niczym skrępowany. Zastanawiam się czy chcę aby program działał szybciej, czy wolę aby rozmiar zajmowanej pamięci był mniejszy. Wybór ten stworzył mi mój ekosystem, bez wdawania się w dyskusję o jedynej słusznej drodze. O zastosowanym frameworku lub jeszcze jednej cudownej metodyce, która nie pozwoli mi się pogubić. Gdy przykładowo użyję

Cytat:

1) Domknięć - szybciej wykonam zadanie , ale i więcej zajmę pamięci - nawet 3 krotnie więcej w stosunku do pradygmatu obiektowego.

2) Obiekty - zużyję mniej pamięci, ale dłużej wykonywać się będzie zadanie.

3) Pierwszy i drugi przypadek ukazuje powiązanie między kodem a danymi. Czyż nie wspaniałe. Mam możliwość wyboru



Poniżej przedstawiamy kod programu do przetestowania.


#!/usr/bin/perl

package Obiekt;

sub new {
    
    bless {'abc' => 10};
    
}

sub abc {
    
    $_[0]->{'abc'};
    
}

sub increment {
    
    $_[0]->{'abc'}++;
    
}


package Domkniecie;

sub new { 
my $abc = 10;
my $zwieksz = sub {$abc++};
my $r_abc   = sub {$abc};
}

package main;
use Benchmark;

 $a = Obiekt->new();
 ($inc, $fetch)  = Domkniecie->new();

timethese (1000000, {
    Obiekt => '$a->increment',
    Domkniecie => '&$inc'
});




Na Naszym komputerze z systemem Kubuntu, procesor Athlon 64, 3GB RAM uzyskaliśmy następujące wyniki, które prezentujemy poniżej

Benchmark: timing 1000000 iterations of Domkniecie, Obiekt...
Domkniecie:  0 wallclock secs ( 0.35 usr +  0.00 sys =  0.35 CPU) @ 2857142.86/s (n=1000000)
            (warning: too few iterations for a reliable count)
    Obiekt:  2 wallclock secs ( 0.81 usr +  0.00 sys =  0.81 CPU) @ 1234567.90/s (n=1000000)



Patrząc na powyższy przykład pragniemy zwrócić uwagę na możliwości Naszego Ekosystemu. Pisząc w Nim oprogramowanie zdecydowałem jaką drogą pójdę. Dlatego nie warto powielać rozwiązań z innych środowisk, gdyż możemy utracić ważne atuty, a Nasza Wolność Wyboru może zostać zagubiona.


Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :