sobota, 19 lutego 2011

Będzie nowa jakość moich programów ?

Jest to dla mnie bardzo radosna chwila, udało mi się całkowicie zmienić sposób programowania w Action! Myślałem o tym już kilkadziesiąt lat temu, myślałem w ostatnich latach, jednak w ostatnich dniach udało mi się osiągnąć sukces - wszystko jest: jasne, sprawdzone i gotowe do wykorzystania (powstała dodatkowa biblioteka).

Myślałem cały czas o szybkim, bezpiecznym, wygodnym i bezkolizyjnym wykorzystaniu prawdziwego potencjału sprzętu w tym języku. Największym dla mnie problemem była ilość wolnej pamięci, co prawda miejsce zajmowane przez sam kompilator został zmniejszony dwukrotnie dzięki odpowiednim sztuczkom zastosowanym przez autorów, jednak w praktyce było źle. Inni programiści starali się zwykle robić na tyle małe programy aby źródło mieściło się w całości w pamięci. Ja niestety we wszystkich swoich ostatnich programach sięgałem kresu, często (nie licząc stosu itp.) zostawało mi kilkaset bajtów, a internauci mówią, że chcieliby abym do programu dodał to czy tamto, ok mogę dodać, ale ile mnie to będzie kosztowało pracy ? :-/

W momencie uruchomienia gotowego pliku wykonywalnego, zwykle pozbywałem się biblioteki procedur, co oszczędzało mi całe miejsce jakie zajmuje ten język w pamięci (mój runtime library zajmował jedynie ~700 bajtów). To i tak była bardzo komfortowa sytuacja, bo w innych popularnych językach programowania nie jest to możliwe bo np. runtime jest gigantyczny, musi być cały czas w pamięci (i np. nie da się go skrócić itp.), a czasami to nawet jego pokaźna część siedzi schowana pod systemem ROM (sztuczka sprytna, posiadająca dużo zalet, ale w tym momencie też wadę).

Dlatego myślałem nad zupełnie nowym modelem programowania, po pierwsze chciałem osiągnąć całą dostępną pamięć tylko na kod programu, to sprawi że kodowanie będzie dużo wygodniejsze oraz szybciej będzie się wszystko uruchamiać, kompilować itp. (dla mnie bardzo ważne!) Z drugiej strony chciałem osiągnąć przyspieszenie kodu oraz dodatkowe miejsce w pamięci na dane (skoro wszystko pójdzie na sam kod programu).

Zaprojektowałem konkretny model tego co i jak chcę osiągnąć i to tak aby w prosty sposób nie stracić wcześniejszej funkcjonalności systemu operacyjnego, języka programowania itp. Powstało pytanie co na to Action! który niekoniecznie był przygotowywany przez twórców do takich przekręceń do góry nogami całego systemu komputera.

Musiałem napisać kilka procedur, zrobiłem kilka testów, czy wszystko działa tak jak chcę oraz czy sam język lub system operacyjny nie będą mi jakoś utrudniać, życia np. coś się stanie niestabilne itp.

No i mam pełen sukces, wszystko działa jak zaplanowałem, a nawet lepiej;) Moja biblioteka jest bardzo mała, jedynie kilkadziesiąt bajtów (w tej chwili), a osiągnąłem co zamierzyłem (jeszcze napiszę parę toolsów). Teraz mam zupełnie nowy model pamięci i nowy sposób tworzenia programów.
Zastanawiam się czy ktokolwiek coś takiego robił już, bo przecież to bardzo niszowy język programowania.

Od tej pory od samego początku będę tworzył programy w nowy sposób (czyli niestety muszę zrezygnować z moich przyzwyczajeń), jednak efekty powinny być odczuwalne dla mnie od razu (wygoda kodowania) oraz dla użytkowników, bo skoro mam więcej pamięci to wszystkiego powinno być więcej. Odczują to też moi stali współpracownicy, którzy do tej pory słyszeli ode mnie "twórz mało bo pamięci już nie mamy" ;)

Inna sprawa, to fakt tego, że obecnie mam do dyspozycji prawie całą dostępną pamięć RAM (jak w asemblerze) więc od początku programy będzie można projektować w nowy sposób, z większą ilością bajerów oraz przede wszystkim o lepszych parametrach.


Może Ci z Was, którzy nigdy nie programowali tyle co ja to nie do końca zrozumieją moją radość, ale dla mnie to naprawdę epokowe wydarzenie;) a mam też nadzieję, że będzie to odczuwalne dla innych;)


Wracając do tematu tego postu: czy będzie nowa jakość moich programów ? To właśnie Wy w przyszłości ocenicie;)

8 komentarzy:

Sikor pisze...

Czy to oznacza w pełni funkcjonalną i działającą wersję Panga Ponga? Bo gra miała potencjał, niestety, póki co - na potencjale się skonczyło...
Mam nadzieję,że pierwsze wyniki działania nowego podejścia do pamięci ujrzymy na Grzybsoniadzie. powodzenia.

Tdc pisze...

Oczywiście wszystko jest w planach, jednak problem jaki jest z PP jest taki że staram się go od dawna zgłębić. Ale też było tak że w ostatniej chwili chciałem założyć kilka dość dużych tablic i nie było miejsca nawet tą pierwszą, więc zdecydowanie mamy tutaj nowe możliwości.

Niestety obecnie na Grzybsoniadę nic nie planuję, zobaczę jak będę stał z czasem przed party. Ale jest możliwość, że wypuszczę coś nad czym od dłuższego czasu pracuję - zobaczymy.

Dzięki, Tobie również życzę powodzenia, w końcu też możesz np. skończyć obiecaną grę tekstową.

Sikor pisze...

W sumie mogę, czekam na grafikę i muzykę głównie, bo trzon już mam ;)

Tdc pisze...

Aha, to ja nie wiem co z tą grafiką, napisz na priva.

asmare pisze...

nie wiem o co biega z tym modelem pamięci, chodzi Ci o to że dowiedziałeś się jak wyłączać ROM, czy przełączać banki?

Tdc pisze...

Chodzi o rozwiązanie pod konkretne wymagania: model, testy, biblioteka + narzędzia. W to również wchodzi testowanie różnych elementów bez systemu itp.

asmare pisze...

o ssso chozzzi?

Tdc pisze...

Nie wiesz co pisałem, co napisałem i za pomocą czego, dlatego nie wiem dlaczego tutaj ciągniesz jakieś dziwne zaczepki.



Jeśli nie jest zaznaczone inaczej (lub nie jest zaznaczone wcale) zamieszczone ilustracje pochodzą z Wikimedia Commons lub są mojego autorstwa.


Ta strona używa cookies oraz innych technologii Google (i innych firm w specjalnych dodatkach po prawej stronie) w celu prawidłowego działania tej stronki (jej elementów jak np. ankiety, reklamy itp.) oraz zbierania statystyk. Korzystanie z tego bloga powoduje zapisywanie typowych plików na Twoje urządzenie (np. komputer, tablet itp.) o ile w ustawieniach przeglądarki nie zmienisz tego.

W UE się ludziom w głowach przewraca, więc dla świętego spokoju zamieściłem to absurdalne ostrzeżenie...