eGospodarka.pl
eGospodarka.pl poleca

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

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

    Pozwolę sobie ponarzekać 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-06 23:17:53
    Temat: Re: sockety, czyli "suckage thereof"
    Od: Jędrzej Dudkiewicz <j...@g...com>

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

    Ale przecież to co piszesz dotyczy w 90% Windows a nie "innych systemów".

    JD

    PS. Do API socketów nic nie mam od czasu, jak musiałem napisać trochę
    kodu w motifie (w zasadzie w lesstifie, ale jeden pies).


  • 3. Data: 2009-12-07 00:55:14
    Temat: Re: sockety, czyli "suckage thereof"
    Od: "Wiktor S." <w...@M...fm>

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

    > Ale przecież to co piszesz dotyczy w 90% Windows a nie "innych systemów".

    Twierdzisz, że sockety w "innych systemach" są jakoś magicznie zupełnie
    inne?

    > PS. Do API socketów nic nie mam od czasu, jak musiałem napisać trochę kodu
    > w motifie (w zasadzie w lesstifie, ale jeden pies).

    Nie znam.

    --
    Azarien


  • 4. Data: 2009-12-07 09:05:53
    Temat: Re: sockety, czyli "suckage thereof"
    Od: Paweł Kierski <n...@p...net>

    Wiktor S. wrote:
    [...]
    > I ten cały bajzel w imię czego? Zgodności z jakimś unikso-posiksem
    > sprzed 30
    > lat? Po co?

    Bo pod Windows na gwałt potrzebowano aplikacji sieciowych, dodano
    Winsock i portowano, co się da, albo pisano za pomocą programistów
    znających interfejs BSD sockets. A wszystko to niecałe 20 lat temu.
    Potem już tylko zgodność interfejsów...

    --
    Paweł Kierski
    n...@p...net


  • 5. Data: 2009-12-07 10:37:34
    Temat: Re: sockety, czyli "suckage thereof"
    Od: "Wiktor Zychla" <u...@n...com.eu>

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

    przecież tego API nie dodano do Windowsa wczoraj, tylko circa about 20 lat
    temu. to, że interfejs, który adoptowano, ma jakąś konwencję kejsingu, a
    windowsowy ma inną - to akurat nie jest nic dziwnego - w API Windows
    występują chyba wszystkie możliwe konwencje nazewnicze.

    nazw funkcji nie ma co się czepiać - one przyszły z adoptowanego interfejsu.

    Wiktor Zychla


  • 6. Data: 2009-12-07 20:30:40
    Temat: Re: sockety, czyli "suckage thereof"
    Od: Jędrzej Dudkiewicz <j...@g...com>

    Wiktor S. pisze:
    >>> Pozwolę sobie ponarzekać na sockety - na przykładzie winsock2, ale
    >>> dotyczy to też podobnych bibliotek w innych systemach.
    >>> Jest to jedno z gorszych API jakie widziałem.
    >
    >> Ale przecież to co piszesz dotyczy w 90% Windows a nie "innych systemów".
    >
    > Twierdzisz, że sockety w "innych systemach" są jakoś magicznie zupełnie
    > inne?

    Nie przypominam sobie na innych systemach WSAEACCESS, In, WSAECANCELLED,
    GetNameByType.

    Fragment o "zgodności z jakimś unikso-posiksem sprzed 30 lat" dotyczyć
    może tylko Windows, bo na innych systemach to jest po prostu stare API,
    nie zmieniane w imię zgodności wstecznej.

    Co do wskaźników na int i ich rozmiarów - nie wszędzie rozmiar inta jest
    taki sam, nie zawsze będzie to int.

    JD


  • 7. Data: 2009-12-09 04:36:38
    Temat: Re: sockety, czyli "suckage thereof"
    Od: "j...@f...adres.to" <w...@c...barg.cy>

    Wiktor Zychla wrote:
    >> 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?
    >
    > przecież tego API nie dodano do Windowsa wczoraj, tylko circa about 20
    > lat temu. to, że interfejs, który adoptowano, ma jakąś konwencję
    > kejsingu, a windowsowy ma inną - to akurat nie jest nic dziwnego - w API
    > Windows występują chyba wszystkie możliwe konwencje nazewnicze.
    >
    > nazw funkcji nie ma co się czepiać - one przyszły z adoptowanego
    > interfejsu.
    >
    > Wiktor Zychla

    A ja się przyczepię.
    Ciebie.
    http://pl.wikipedia.org/wiki/Adopcja
    http://pl.wikipedia.org/wiki/Adaptacja

    j..


  • 8. Data: 2009-12-09 07:44:16
    Temat: Re: sockety, czyli "suckage thereof"
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < "j...@f...adres.to"
    >> nazw funkcji nie ma co się czepiać - one przyszły z adoptowanego
    >> interfejsu.
    >
    >A ja się przyczepię.
    >Ciebie.
    >http://pl.wikipedia.org/wiki/Adopcja
    >http://pl.wikipedia.org/wiki/Adaptacja

    No to czepiaj się płota. Akurat adopcja była jak najbardziej na miejscu
    w tym znaczeniu. Interfejs został adoptowany, a nie zaadaptowany.
    Adaptacja oznaczałaby przystosowanie interfejsu, a nie włączenie go w
    takiej postaci, w jakiej jest. (inaczej w ogóle ta operacja nie miałaby
    sensu).

    --
    \.\.\.\.\.\.\.\.\.\.\.\.\.\
    .\....@e...eu.org.\.\.
    \.http://epsilon.eu.org/\.\
    .\.\.\.\.\.\.\.\.\.\.\.\.\.


  • 9. Data: 2009-12-09 11:27:38
    Temat: Re: sockety, czyli "suckage thereof"
    Od: "j...@f...adres.to" <w...@c...barg.cy>

    Mariusz Kruk wrote:
    > epsilon$ while read LINE; do echo \>"$LINE"; done< "j...@f...adres.to"
    >>> nazw funkcji nie ma co się czepiać - one przyszły z adoptowanego
    >>> interfejsu.
    >>
    >> A ja się przyczepię.
    >> Ciebie.
    >> http://pl.wikipedia.org/wiki/Adopcja
    >> http://pl.wikipedia.org/wiki/Adaptacja
    >
    > No to czepiaj się płota. Akurat adopcja była jak najbardziej na miejscu
    > w tym znaczeniu. Interfejs został adoptowany, a nie zaadaptowany.
    > Adaptacja oznaczałaby przystosowanie interfejsu, a nie włączenie go w
    > takiej postaci, w jakiej jest. (inaczej w ogóle ta operacja nie miałaby
    > sensu).
    >

    Przepraszam bardzo, czy owo "włączenie interfejsu" to była zmiana
    interfejsu istniejącego już kodu?

    Bo tylko wtedy użycie słowa "adopcja" mogłoby mieć takie znaczenie,
    jakie mu przypisujesz.
    Zazwyczaj interfejs włączasz do programu na zasadzie zupełnie innej niż
    włączasz dziecko do rodziny.
    Dziecko już jest. Gdy zostaje włączone do rodziny, jego wnętrze (ciało)
    się nie zmienia, natomiast zostaje _zmieniony_ zapis zewnętrzny (zapis w
    dokumentach).
    Na zasadzie właśnie tej analogii istnieje pojęcie adopcji prawa (jakieś
    prawo już jest, przyjmujemy tylko inny zapis - możliwe że niosący inną
    treść, gdy przyjdzie do jego stosowania), czy np. adopcji do rodu
    szlacheckiego.

    Odpowiada to zmianie interfejsu dla danego kodu.
    _Dołączenie_ interfejsu (jako następnego interfejsu do danego kodu) to
    jest właśnie *dołączenie* i nie ma sensu używanie w tym kontekście słowa
    "adopcja".
    Natomiast gdy bierzesz kod wykonujący jakieś zadanie, zostawiasz
    interfejs nieruszonay, ale wnętrze kodu musisz dostosować do docelowaego
    środowiska, to wtedy jest to oczywiście adaptacja, ale nie interfejsu,
    tylko kodu.

    Chyba, że wyrażasz się poetycko, wtedy przepraszam, na poezji wysokiego
    lotu to ja się nie znam.

    j..


  • 10. Data: 2009-12-09 12:41:35
    Temat: Re: sockety, czyli "suckage thereof"
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < "j...@f...adres.to"
    >>>> nazw funkcji nie ma co się czepiać - one przyszły z adoptowanego
    >>>> interfejsu.
    >>> A ja się przyczepię.
    >>> Ciebie.
    >>> http://pl.wikipedia.org/wiki/Adopcja
    >>> http://pl.wikipedia.org/wiki/Adaptacja
    >> No to czepiaj się płota. Akurat adopcja była jak najbardziej na miejscu
    >> w tym znaczeniu. Interfejs został adoptowany, a nie zaadaptowany.
    >> Adaptacja oznaczałaby przystosowanie interfejsu, a nie włączenie go w
    >> takiej postaci, w jakiej jest. (inaczej w ogóle ta operacja nie miałaby
    >> sensu).
    >Przepraszam bardzo, czy owo "włączenie interfejsu" to była zmiana
    >interfejsu istniejącego już kodu?
    >
    >Bo tylko wtedy użycie słowa "adopcja" mogłoby mieć takie znaczenie,
    >jakie mu przypisujesz.

    Rzeco? Gdyby była to zmiana interfejsu, to właśnie byłaby adaptacja.

    >Zazwyczaj interfejs włączasz do programu na zasadzie zupełnie innej niż
    >włączasz dziecko do rodziny.
    >Dziecko już jest. Gdy zostaje włączone do rodziny, jego wnętrze (ciało)
    >się nie zmienia, natomiast zostaje _zmieniony_ zapis zewnętrzny (zapis w
    >dokumentach).

    Patrzysz z drugiej strony. Rodzina już jest, natomiast zostaje
    rozszerzona o obiekt dotąd obcy.

    >Natomiast gdy bierzesz kod wykonujący jakieś zadanie, zostawiasz
    >interfejs nieruszonay, ale wnętrze kodu musisz dostosować do docelowaego
    >środowiska, to wtedy jest to oczywiście adaptacja, ale nie interfejsu,
    >tylko kodu.

    Oczywiście. Kod trzeba adaptować do adoptowanego interfejsu.


    --
    [------------------------]
    [ K...@e...eu.org ]
    [ http://epsilon.eu.org/ ]
    [------------------------]

strony : [ 1 ] . 2


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: