eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › sockety, czyli "suckage thereof"
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2009-12-06 22:35:55
    Temat: sockety, czyli "suckage thereof"
    Od: "Wiktor S." <w...@M...fm>

    Pozwolę sobie ponarzekać sobie na sockety - na przykładzie winsock2, ale
    dotyczy to też podobnych bibliotek w innych systemach.
    Jest to jedno z gorszych API jakie widziałem.

    Biblioteka stara się być do wszystkiego, od zabytków z lat chyba 60-tych po
    Bluetooth. Przez to kod korzystający z biblioteki wygląda strasznie,
    wszędzie zbędne wskaźniki - nawet do zwykłego inta, a jeszcze obok podajemy
    jego rozmiar!
    Zdaję sobie sprawę, że protokoły mają gdzieniegdzie wartości little endian,
    ale można było to przed programistą ukryć, nie zmuszając do ręcznej
    konwersji w niewiadomo którą stronę, niewiadomo w których miejscach. Mnóstwo
    niespójności.
    Wszędzie zbędne skróty, włączając w to potworki typu WSAEACCES (bo drugie S
    na końcu byłoby już chyba za długie).
    Internet raz nazywa się INET, gdzie indziej In, a jeszcze gdzie indziej IP.
    Wiele pól w strukturach ma nie wiedzieć po co dziwaczne nadmiarowe
    przedrostki (np. S_un_w).
    Pary stałych np. WSAECANCELLED i WSA_E_CANCELLED o różnych wartościach.
    Do wyboru sockety blokujące (czekające do wieczności bez możliwości
    anulowania operacji), nieblokujące (przepraszające nas że istnieją) i
    asynchroniczne, podczas gdy wygodniejsze byłoby coś pomiędzy pierwszymi
    dwoma.
    Funkcje o mało wyszukanych nazwach accept, select czy connect. Tutaj też
    niespójność aż niewiarygodna: gethostbyname ale GetNameByType.
    I ten cały bajzel w imię czego? Zgodności z jakimś unikso-posiksem sprzed 30
    lat? Po co?


    --
    Azarien


  • 2. Data: 2009-12-18 14:41:30
    Temat: Re: sockety, czyli "suckage thereof"
    Od: Michał 'Khorne' Rzechonek <k...@g...com>

    On 6 Gru, 23:35, "Wiktor S." <w...@M...fm> wrote:
    > I ten cały bajzel w imię czego? Zgodności z jakimś unikso-posiksem sprzed 30
    > lat? Po co?
    Po to, żeby nie trzeba było od nowa pisać całego Internetu.

    API gniazd w POSIXie jest całkiem naturalne po chwili praktyki. Musisz
    pamiętać, że jest to interfejs C, a nie Java/Python/Ruby, i odwołuje
    się w
    zasadzie bezpośrednio do OSa (praktycznie wszystkie operacje na
    gniazdach
    to owinięte wywołania systemowe). Z tej perspektywy interfejs jest
    całkiem
    niezły.

    Twoje narzekanie natomiast dotyczy głównie WinAPI. Tego API komentować
    nie będę, bo gniazda nie są jedynym miejscem w którym "z lekka
    odstaje".

    Jeśli natomiast chcesz czegoś wysokopoziomowego, to użyj jednego
    z pierdyliarda zrębów do programowania sieci, od boost::asio do
    withSocketsDo.

    pozdro
    --
    Michał 'Khorne' Rzechonek

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: