Obsługa gadu-gadu - wybór środowiska i biblioteki

Obsługa gadu-gadu - wybór środowiska i biblioteki
AN
  • Rejestracja: dni
  • Ostatnio: dni
0

Chciałbym napisać sobie program obsługujący protokół Gadu-Gadu. Początkowo to ma być standardowy komunikator, na którym poznam działanie biblioteki, a ostatecznie to ma być bot.

Umiem programować w Delphi 5 oraz Visual Studio 2005 (tylko C#).

Znalazłem informacje o trzech bibliotekach (komponentach), jedna do Delphi, dwie do .NET:
http://4programmers.net/Forum/436398?h=gadu#id436398
Bot Gadu-Gadu

Program powinien (w zakresie obsługi GG):

  • Wysyłać i odbierać wiadomości
  • Ustawiać status (dostępny/zaraz wracam/niewidoczny)
  • Ustawiać opis
  • Blokować użytkownika
  • Dobrze by było (niekonieczne), gdyby mógł obsługiwać obrazki wstawiane do treści wiadomości oraz przesyłanie plików

Ponadto program ma działać w następujących warunkach (w obu systemach jest zainstalowany .NET 2.0):

  • Windows XP Pro na Pentium IV, 512MB RAM
  • Windows 98 SE na Pentium II, 64MB RAM

Wydaje mi się, że środowiska mają następujące wady i zalety (jeżeli się mylę, to proszę poprawić):

Delphi:

  • Kompilator prosty i mało wymagający
  • Trochę przestarzałe środowisko
  • Działa tylko na 32-bitowych systemach, nie wiem, czy bedzie działać na 64-bitowym
  • Doskonała kontrola zajmowania pamięci przez ręczne tworzenie i ręczne niszczenie (uwalnianie pamięci) struktur dynamicznych

VS2005

  • Dość duże wymagania sprzętowe
  • Środowisko .NET
  • Na pewno będzie działać we wszystkich Windows 32-bit i 64-bit
  • Kiepskie zajmowanie pamięci (odpalanie garbage collector następuje w nieprzewidywalnym momencie), co powoduje, że do odpalenia GC obiekty, które już nie są używane, zajmują pamięć.

Nie znam jeszcze działania wymienionych bibliotek do obsługi Gadu-Gadu.

Czy już ktoś próbował podobny program napisać?

Które środowisko i bibliotekę polecacie?
Może poza tymi trzeba są jeszcze inne warte uwagi?

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2964
0

Co do zajmowania pamięci to się nie przejmuj. To nie jest wada tylko zaleta, bo własnie NIE MUSISZ ręcznie zarządzać pamięcią i zmniejsza się ryzyko powstania błędów. A całkowita zajętość pamięci i obciążenie procesora nie muszą być wcale większe. Myślisz, że w Delphi czy C zwolnione obiekty nie zajmują pamięci? To poszukaj sobie hasła fragmentacja pamięci na Googlu oraz problemów jakie miał Firefox z ręcznym zarządzaniem pamięcią.

Natomiast programy .NETowe (i Javowe też) będą zajmować więcej pamięci nie ze względu na GC, tylko ze względu na konieczność załadowania maszyny wirtualnej, odpowiednich bibliotek klas itp.

dodekam
  • Rejestracja: dni
  • Ostatnio: dni
0

Osobiście poleciłbym coś jeszcze innego, ale z tych dwóch .NET jest znacznie lepsze - Delphi to przeżytek, nie znajdujący już zastosowania.

A co do garbage collection - gwarantuję, że nie będziesz w stanie zauważyć różnicy, dużo lepiej mieć kilka megabajtów narzutu (co w dzisiejszych czasach nie jest aż tak znowu wielką liczbę, zresztą GC i tak do takiej wielkości nie dopuści) niż segmentation faulty w nieoczekiwanych momentach albo co gorsza wycieki, dzięki którym stracisz z nadmiarem całą pamięć zaoszczędzoną nieużywnaiem GC
.

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0
dodekam napisał(a)

Osobiście poleciłbym coś jeszcze innego, ale z tych dwóch .NET jest znacznie lepsze - Delphi to przeżytek, nie znajdujący już zastosowania.
mógłbyś pisać podobne brednie co rano?? Proszę! Od razu mi się <ort>chumor</ort> poprawia [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl]

// mnie zaś pogarsza jak takie błędy widzę - deus

  • Rejestracja: dni
  • Ostatnio: dni
0
Krolik napisał(a)

... oraz problemów jakie miał Firefox z ręcznym zarządzaniem pamięcią.

MIAŁ ? w tej chwili firefox zajmuje mi 620 MB pamięci a mam w nim otwartą jedną stronę
jeśli to nie jest problem z zarządzaniem pamięci to nie wiem jak to nazwiesz

Misiekd napisał(a)
dodekam napisał(a)

Osobiście poleciłbym coś jeszcze innego, ale z tych dwóch .NET jest znacznie lepsze - Delphi to przeżytek, nie znajdujący już zastosowania.
mógłbyś pisać podobne brednie co rano?? Proszę! Od razu mi się <ort>chumor</ort> poprawia [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl]

oprócz twojego orta to nie ma tutaj nic śmiesznego
może przesadził z tym brakiem zastosowania - owszem zastosowanie ma i możesz w nim zrobić wszystko to co w innych językach programowania na tym poziomie ale że nie warto się go uczyć - true, true
niestety mówię to jako osoba która się tego języka zdążyła nauczyć

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

@up: A ile z tej pamieci jest wlasnie dla Ciebie sprawa zycia lub smierci? Niech sobie zajmuje poki moze, a zwalnia jesli trzeba sie troche upchnac miedzy innymi pamieciozercami.

dodekam
  • Rejestracja: dni
  • Ostatnio: dni
0
kamasutra jest spoko napisał(a)

może przesadził z tym brakiem zastosowania - owszem zastosowanie ma i możesz w nim zrobić wszystko to co w innych językach programowania na tym poziomie ale że nie warto się go uczyć - true, true
niestety mówię to jako osoba która się tego języka zdążyła nauczyć

No, w sumie jest turing-kompletny, więc to oczywiste, że można w nim zrobić wszystko to, co w innych kompletnych językach. Pytanie tylko po co, skoro jest wiele dużo lepszych języków na rynku, które nie powodują uszkodzenia umysłu...

  • Rejestracja: dni
  • Ostatnio: dni
0
johny_bravo napisał(a)

@up: A ile z tej pamieci jest wlasnie dla Ciebie sprawa zycia lub smierci? Niech sobie zajmuje poki moze, a zwalnia jesli trzeba sie troche upchnac miedzy innymi pamieciozercami.

no właśnie wydaje mi się że twórcy ff mają podobne podejście
dziwne ... gdy ff wchodził to w pisemkach i w różnych dziwnych testach pokazywali jego przewagę głównie w mniejszej ilości zajmowanych zasobów, ff miał chyba 2 MB mniejsze zużycie pamięci niż IE, teraz ma zaledwie 270 MB większe (dopiero go odpaliłem więc jeszcze dużo nie zajął)
a niech se zajmuje tą pamięć, gorzej że z każdą chwilą zajmuje też coraz więcej procesora i po kilku godzinach surfowania dochodzi do 100% tak że jedyną opcją jest jego skillowanie ...

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

Tworcy .Net tez maja podobne podejscie. I to akurat dobrze. Wskazniki nie zawsze mowia wszystko, wiesz? Co do zzerania proca to inna sprawa ;)

  • Rejestracja: dni
  • Ostatnio: dni
0

akurat mój program w .NET nawet po kilku godzinach nie przekracza 13 MB w pamięci więc nie jestem pewien czy to jest to samo podejście

johny_bravo
  • Rejestracja: dni
  • Ostatnio: dni
0

Jest, ale pewnie Twoj program nie robi tyle operacji co ffox ;)

Dobra, koniec OT ;) Tez polecam C# zamiast Delphi, jakos tak latwiej sie polapac. No i w razie czego masz jedna biblioteke awaryjna :)

  • Rejestracja: dni
  • Ostatnio: dni
0

Wiem, że offtop, ale znacie jakąś bibliotekę GG nie pod .NET?

dodekam
  • Rejestracja: dni
  • Ostatnio: dni
0

a do jakiego języka? do C/C++ masz libgadu, do której możesz dorobić bindingi do CL za pomocą CFFI, masz natywne pygadu do pythona...

.::CYMES::.
  • Rejestracja: dni
  • Ostatnio: dni
0
hck napisał(a)

Wiem, że offtop, ale znacie jakąś bibliotekę GG nie pod .NET?

A do c# masz shgg pisaną przez ludzi z 4p:D
http://members.chello.pl/w.redlowska/hakger/projsharphgg.htm

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.