To co tu czytam to jest jakaś katastrofa :( Nosty, co Ty wyprawiasz ?;)
Po pierwsze zupełnie niepotrzebnie podchodzisz do tego tematu tak bardzo emocjonalnie, przyjemność z nauki czegoś nowego jest wtedy kiedy nie uprzedzasz się do tego itp. Przecież to chyba logiczne, że poznajesz coś nowego i że musi się to znacznie różnić od tego co znałeś do dzisiaj.
Po pierwsze porównujesz znane przez Ciebie interpretery z kompilatorem. Te pierwsze zawsze były bardziej wygodne i intuicyjne dla userów (szczególnie dla nie programistów) ? dlatego na pewno trafne było Twoje porównanie że Action! ma więcej wspólnego z asm.
Druga sprawa to kwestia tego że sam przyznałeś że nie znasz się na C, a Action! jest właśnie bardzo podobny do C ? dlatego tak Tobą rzuca;) Interpreter i kompilator to dwa światy, a jak zapewne słyszałeś język C właśnie dzięki swoim cechom jest tak popularny i stosowany w praktyce.
Paradoksalnie wspominane przez Ciebie wady Action! są jego największymi zaletami:
- brak funkcji trygonometrycznych: to jest język który miał ułatwić pisanie najbardziej wymagających programów (jak np. gry, proste dema itp.). W programowaniu gier jest tak że pisze się własne typy danych zmiennopozycyjnych, własne funkcje itp. (np. pecetowa biblioteka allegro). Dlatego istnienie takich funkcji nic by nie zmieniło: zajmowałyby miejsce, a i tak pewnie trzeba by było pisać własne. Ja uważam (i zapewne inni też) że brak tych funkcji nie jest wadą. Dla przykładu mój sąsiad w liceum napisał na fizykę program zaliczeniowy (jako bonus bo przecież to był głęboki socjalizm) który wyliczał i wykreślał w czasie rzeczywistym fale stojące itp. Jego nauczyciel był pod dużym wrażeniem, ale pewnie gdyby się dowiedział że Action! nie ma fun. tryg. (i wiedział o czym jest mowa;) to pewnie by padł;)
- ?(...) slowem sie nie zajakneli ze do procedury nie mozna przekazac jako parametru ARRAY'a.?: eee tam ? zaraz nie można...
- ?nie tylko nie ma prostego dodania stringow na zasadzie a = b + c (...)?:
ebook napisał/a:SAssign
TYP: procedura tekstowa
DEFINICJA: PROC SAssign(<dest>,<source>, BYTE start,stop)
PRZYKŁADY:
SAssign(dest,source,begin,end) SAssign(name,"Atari",10,14) SAssign(file;"OBRAZ",
3,i)
DZIAŁANIE: Kopiuje zawartość ciągu znaków lub tablicy znakowej wskazanej drugim
parametrem do fragmentu tablicy wskazanej przez pierwszy parametr. Kopiowany fra
gment jest umieszczany w ciągu docelowym od znaku wskazanego trzecim parametrem
do znaku określonego przez czwarty. W przypadku niezgodnej długości ciągów proce
dura SAssign działa jak SCopy.
jeszcze mamy procedury: ?SCopy? oraz ?SCopyS? i pewnie jeszcze parę innych. Komentarz do reszty rzeczy sobie daruję ? bo czasu nie mam na pisanie.
- ?nigdzie nie napisali ze maksymalna dlugosc ciagu tekstowego to 255 znakow. Dopiero malym drukiem ze w pierwszym bajcie jest dlugosc tekstu.?: fakty są takie, że w Action! pisałem już scrolle i nie ma żadnego problemu w tym aby ciągi tekstowe były dowolnej długości (pomimo ograniczenia że 1 linia w edytorze może mieć max ~250 znaków.
- ?Mozliwosc wskazywania adresu gdzie ma byc deklarowana zmienna (...) Tylko po co wtedy jezyk wysokiego poziomu??, ehhhh... to jest właśnie jedna z najciekawszych zalet tego języka, wraz z jeszcze jednym (nieznanym powszechnie) rozwiązaniem, umożliwia łatwe pisanie gier i demek. Moc tego języka to nie to co widzisz w man, lecz potencjał ? trzeba wiedzieć co i do czego używać, a wtedy okazuje się dopiero z jak unikalnymi cechami mamy do czynienia. Unikalność Action! pod względem wydajności ? jest niezwykła, myślę że się dużo nie pomylę jeśli powiem że nie ma takiego drugiego języka na świecie.
- ?Dluuuuga lista bledow w kompilatorze Action!?: nie ma języka bez błędów (szczególnie młodego języka), po drugie ja napisałem naprawdę wiele programów w Action! (o czym się ostatnio kilka osób przekonało) i nie potwierdzam jakoby ten język był jakiś wadliwy i jeżyło się w nim od błędów, bo ja sobie nie przypominam nawet jednej sytuacji, w której w podstawowych operacjach (bez których żaden język się obejść nie może) były jakieś błędy komplikujące programowanie. O ile wiem moje liczne programy są stabilne, chyba że sam coś spaprałem na prędce ;)
Przewaga Action! nad innymi kompilatorami polega na tym, że daje duże możliwości np. optymalizacji kodu pod względem prędkości, czego inne języki programowania (np. na 8 bitowcach) nie umożliwiają oraz nie w takim stopniu. Dla przykładu Twoje funkcje do przetwarzania ciągów tekstowych, pewnie będą najszybsze ze wszystkich języków jakie są dostępne na Atari ? jednak gdybyś znał ten język lepiej (i np. nie pisał pętli zliczającej to czego zliczać nie trzeba;) to można napisać te funkcje jeszcze wydajniej i to jest właśnie to co sobie cenią programiści (podobne cechy ma C, ale w praktyce ma gorsze osiągi od Action!).
Jeszcze inną kwestią jest to aby nie używać języka, który służy do pisania najwydajniejszego kodu (chodzi oczywiście o kompilatory), do tak prostych rzeczy które można robić w dowolnym innym języku (przetwarzanie tekstów itp.). Natomiast jeśli jest to punktem wyjścia do poznania tego języka to jestem za ? i chętnie Tobie pod tym względem pomogę (choć sam mało pamiętam Action! i właściwe się go od początku uczę).
Osobną kwestią jest to że programowanie gier jest dość specyficzne i zawsze każdy kompilator (na każdej platformie) używa się dość specyficznie w tej dziedzinie. Jest to pewnego rodzaju wiedza tajemna, a jeśli coś piszesz w Action! to nieuniknione jest zetknięcie z tymi zagadnieniami (różnica polega na tym że masz problem i nie wiesz co z nim zrobić ? co widać w Twoich postach). Kiedyś o tej ?wiedzy tajemnej? napisałem gigantyczny art do AM, ale w końcu się nie pojawił ? dziś zastanawiam się nad solidnym opisaniem tematu, aby przybliżyć Action!, jego mocne (często niepowtarzalne) cechy oraz może zachęcić kogoś do napisania czegoś.
Tak więc Nosty ? trochę luzu i grzecznie się ucz;):)
800XL XC12 LDW 2000 Portfolio 1040 ST, STE Falcon 030 (Deskpro) Jaguar
... oraz inne grzyby i Amigi :-P