konto usunięte
Temat: Opensource'owy pakiet statystyczny w Delphi
Witam,Szukam ochotników będących skłonnych popracować trochę nad opensource'owym pakietem statystycznym: OpenStat.
Zawiera szereg analiz niedostępnych nawet w SPSS czy Statistica (obok tych typowych). Docelowy target to studenci, specjaliści, a także firmy których nie stać na licencję wymienionych, a którzy nie bardzo mogą pociągnąć R (taki język programowania statystyki).
Jest to aplikacja pisana przez W.G. Millera - emerytowanego profesora psychologii z USA: najpierw Delphi, potem w C++. Człowiek całe życie uczył (głownie okolic statystyki, m.in. i psychometrii), a kiedy dopadła go nieuleczalna choroba postanowił się nauczyć programować - i zrobił to.
O ile jestem pełen podziwu dla samej tej postawy (bo jeszcze dorzucił do tego C++, Kylixa i cały czas portuje otwarte algorytmy z np. Fortrana) o tyle architektura całości jest fatalna. Jest to klasyczny kod spaghetti, wynikający z braku znajomości pewnych technik, braku planu na początku, łatania na szybko itd.
W efekcie różne formy aktualizują nawet labele na głównej formie, same dbają o plik danych itd. co oznacza totalny chaos (bo form jest 170+, zresztą tworzonych z automatu, co daj 15 sek. startu + 10 MB pamięci na samo pokazanie głównej).
Najgorszą robotę już zrobiłem:
- pousuwałem odniesienia między formami (większość) (2 tyg...),
- zaprojektowałem scentralizowane interface'y
- zaimplementowałem z 70% klas tychże,
Dalsze kroki w celu stabilizacji to:
1. dopieszczenie projektu systemu interface'ów,
2. zobiektowanie procedur statystycznych (w tej chwili wszystko siedzi w ... OnClose) i leci na zmiennych globalnych i procedurach przesyłających sobie np. 400kB w parametrach Var,
3. rozwiązanie problemu wykresów i druku: w tej chwili wszystkie są ręcznie rysowane na Canvas formy albo drukarki.
Plany w zakresie zwiększenia funkcjonalności są dość ambitne, ale osiągalne:
1. optymalizacja operacji, plus user experience (paski postępu, wątkowanie, popupy kontekstowe, pomoc.
2. import/export do formatów statystycznych + Excel,
3. obsługa skryptów: (Innerfuse / RemObjects' Pascal Script) + możliwość obsługi innych (typu ECMAScript)
4. komunikacja ze środowiskiem R w celu generowania boskich wykresów
5. wersja embedded: DLL z jądrem system i opcjonalnymi modułami (typu statystyki nieparametryczne), z komunikacją przez interface'y
Wolności co do rozwiązań idei jest w projekcie dużo, pisania prozy raczej mało (zresztą dużo jest w helpie obecnym), a sam produkt ma szanse powodzenia bo naprawdę zawiera mnóstwo unikatowych analiz, a nic darmowego (poza R) nie jest w stanie mu podskoczyć.
Rozwiązania komercyjne (SPSS, Statistica, SAS, Minitab...) są drogie i ospałe (bo w np. w Polsce SPSS/Statistica ma praktycznie duopol), sam napisałem kilka programów, które biją je w szybkości na głowę np. o 2 rzędy wielkości, a tutaj opracowane są już wydajne algorytmy (inna rzecz, że adoptowane z Fortrania roją się od "goto").
Nie można stworzyć w rozsądnym czasie klona Statistica, ale można zrobić program który ma wszystko czego potrzeba studentowi ekonomii, psychologii, medycyny czy biologii, który wymienia dane z wiodącymi pakietami, daje się skryptować, osadzać i jest szybki.
Szukam wiec ludzi skłonnych się tym zająć w dowolnym rozsądnym zakresie (tj. wymiarze godzin). Obok samego programowania supercenna byłaby wiedza matematyczna/statystyczna (na poziomie powyżej wariancji), tłumaczenia itd. Obok Delphi/Win32, przydałoby sie to zaportować na Kylixa, poimportować troche rzeczy z C i C++ (a takze Fortrana), krytyczne elementy kodu spróbować napisać w assemblerze itd.
Projekt ma być totalnie opensource czego nie omieszkam zapewnić licencją (tu też przydałaby sie pomoc), co nie znaczy, że nie może generować profitów :-) W całości robię go tak, żeby obsługiwał pluginy napisane w czymkolwiek (stdcall, pchar itd.), ale generalnie ma być w Delphi.
Anyone?