Witam. Zainteresowały mnie aplikacje internetowe jak na przykład popularne komunikatory internetowe typu (Gadu-Gadu, Tlen itp.)
I teraz moje pytanie a mianowicie, jakiego języka musiałbym się nauczyć, aby po skończeniu nauki udało mi się stworzyć kompletny komunikator internetowy działający na zasadzie już istniejących. Z początku myślałem o Ajaxie (javascript, +xml) do którego nauki chciałem skorzystać z następującej książki: http://helion.pl/ksiazki/ajaphp.htm , ale po przeczytaniu różnych for nie jestem już pewien z jakiego języka programowania skorzystać.
Proszę w odpowiedzi zamieścić jaki język programowania w raz z nim na jakiej książce się najlepiej uczyć.
Z góry dziękuję za pomoc i czekam na szybką odpowiedź.
Nikt kto szanuje swój czas nie pisze komunikatora od zera. 3/4 istniejących, tzw. alternatywnych komunikatorów bazuje na istniejących bibliotekach. Jeśli więc interesuje Cię komunikator w oparciu o sieć GG, powinieneś zaznajomić się z libgadu. W praktyce też oznacza to, że pisanie w C wywoła najmniej “tarcia”, bo domyślnie API większości bibliotek komunikacyjnych jest właśnie w C. Oczywiście popularniejsze (np. libgadu) będą miały wiązania do innych języków. Najczęściej nie są one jednak utrzymywane przez twórców biblioteki i często będą nieaktualne.
Innymi słowy: najszybciej uzyskasz widoczne wyniki w C. Niektórych brak namacalnego postępu zniechęca (należę do nich) i takiej osobie poleciłbym pisanie w C. Reszta może sobie wybrać język jaki bądź.
A jak mu treść jakiejkolwiek książki o algorytmach pomoże w napisaniu komunikatora? To nie jest program w którym złożoność obliczeniowa ma większe znaczenie.
@alex: jaka kompresja? Komunikatory wysyłają grafikę tak jak każdy inny plik - bajt po bajcie. Sortowanie listy kontaktów to faktycznie poważny problem - przy 100 kontaktach nawet przypadkowy algorytm sortowania napisany bez znajomości gotowych rozwiązań sobie poradzi. A więcej się można nauczyć na własnych błędach niż przepisując kod z książki.
@kstarski: rzecz w tym, że każdy zanim się zacznie zabierać za złożone algorytmy, powinien się nauczyć operować jakimś językiem. Choćby nie wiem jak doskonale rozumieć ideę drzew czerwono-czarnych, nie ma mowy o ich poprawnej implementacji bez intymnej znajomości wskaźników, umiejętności debugowania kodu czy świadomości, że w dzisiejszych czasach większość algorytmów nie cierpi na spadek wydajności w powodu złożoności obliczeniowej, a z uwagi na fragmentację pamięci i sposób działania cache’u.