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

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
http://4programmers.net/Delphi/Gotowce/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?

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.

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
.

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! poprawia [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl] [rotfl]

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

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! 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ć

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.

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...

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 ...

0

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

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

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 :)

0

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

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...

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1