-
Data: 2011-02-02 17:22:33
Temat: Re: które języki 'historyczne' sš ważne
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Feb 2, 11:06 am, Jędrzej Dudkiewicz <jedrzej.dudkiew...@nospam-
gmail.com> wrote:
> On 02/02/2011 08:46 AM, Andrzej Jarzabek wrote:
>
> > Modyfikowanie bufora ma z kolei taki problem, że łatwo wprowadzić buga:
> > wyskakuje w testowaniu błąd, dopisujesz funkcję preprocess_packet, a
> > tymczasem inny programista napisał jakiś kawałek kodu,, który gdzieś
> > dalej korzysta z założenia, że pod tym wskaźnikiem znajduje się
> > poprawnie sformatowany pakiet.
>
> Prawdopodobny scenariusz, ale tak samo masz w C++ - jeżeli nagle masz
> buga, którego "poprawiasz" w ten sposób, że zmieniasz interface klasy
> (bo przecież kontrakt przed bugiem był taki, że wartość była zwracana
> "as is", czyli jako big endian), to co za różnica?
Brawo, proponuję jeszcze udowodnić, że w ogóle nie ma żadnych
istotnych różnic między językami, bo jak posadzisz małpę przed
komputerem i nauczysz ją walić w klawisze, to w dowolnym języku
doprowadzi program do postaci, w której się nie kompiluje lub nie
uruchamia.
A różnica jest choćby taka, że jak masz wyspecyfikowany kontrakt,
mówie zwraca w formacie natywnym. Czy może nawet inaczej: różnica
polega na tym, że w ogóle można mówić o jakimś kontrakcie.
> Dalej i tak ktoś
> robił sobie ntohla na własną rękę, bo przecież wcześniej dostawał
> network order a potrzebował "native order".
Oprócz działania bez sensu, masz jednak kilka sensownych alternatyw,
których nie masz w C.
> >> Tak czy owak, zaletą C++ jest to, że jakby co, to można tego rozwiązania
> >> użyć, ale znacznie ładniej zapakowanego.
>
> > Ale "ładinej zapakowane" w tym momencie przekłada się właśnie na "nadaje
> > się do".
>
> W tym momencie nie przekłada się. Przekłada się na poziomie całego
> projektu. W TYM MOMENCIE, czyli dokładnie w tym, o którym mówimy,
> grzebiesz po bajtach i musisz uważać w każdym języku.
W tym momencie się właśnie przekłada. Bo "nadaje się do" nie sprowadza
się tylko do tego, że można napisać kawałek kodu, który zrobi to czy
owo, bo to niewątpliwie można w C zrobić, tylko jak potem ten kawałek
kodu funkcjonuje w kontekście całego projektu. To, jak to zrobisz ma
znaczenie dla tego, jak prawdopodobne jest to, że ktoś piszący kod
kliencki użyje tego, co zrobiłeś, nieprawidłowo, teraz lub kiedyś w
przyszłości - i tym kimś równie dobrze możesz być ty sam.
> Nawet jak masz
> język, w którym opisujesz pakiet w XMLu, możesz zapomnieć o tym, o czym
> pisałeś wyżej, to znaczy nie uwzględnić, że dana jest w big endian.
Oczywiście. Ale, dla przykładu, projektując taki XML możesz (w
zależności od tego, do czego będzie stosowany) założyć, że typ 'int32'
jest defaultowo big endian, niezależnie od architektury procesora,
albo że musisz endianness podać jawnie. W takiej sytuacji trudniej o
pomyłkę, w szczególności popełnioną przez programistę, który przez n
lat pisał systemy na architekturach big endian i przyzwyczaił się, że
można sobie po prostu rzutnąć inta 'bo działa'.
> > Na przykład - bez żadnej straty wydajności - powoduje, że
> > trudniej wprowadzić błędy, w szczególności w zmianach dokonywanych wiele
> > miesięcy po napisaniu pierwotnego kodu.
>
> Ogólnie się zgadzam, ale zwróć uwagę, że podany wyżej przykład jest
> bardzo konkretny i bardzo statyczny - dotyczy TYLKO odczytania jakiegoś
> bufora, a nie operacji na nim, w dodatku w przypadku, kiedy dane mają
> bardzo dobrze określony format - dane wysyłane przez sprzęt zwykle nie
> zmieniają się razem z widzimisię klienta. Zwykle.
wiesz, nie ja ten przykłd wymyśliłem. Ale tutaj też masz zaletę C++:
jak programista dostanie strukturę, to może np. założyć, że
modyfikować bufor może przypisując wartości do pól struktury. Jak
dostanie obiekt z getterami ale bez setterów, to będzie musiał już się
trochę zastanowić.
> > przenośnie - co z kolei oznacza, że zamiast pisać kod do
> > obsługi/parsowania pakietów na swoją implementację, można skorzystać z
> > dobrze przetestowanej biblioteki third-party.
>
> Kompletnie nie rozumiem, co to ma wspólnego z tematem.
Język, w którym można pisać re-usable i przenośne biblioteki przydatne
w jakichś zastosowaniach, lepiej się nadaje do tych zastosowań od
języka, w którym nie można.
Następne wpisy z tego wątku
- 02.02.11 22:07 Maciej Sobczak
- 02.02.11 22:07 Wojciech Jaczewski
- 02.02.11 23:10 A.L.
- 03.02.11 00:11 Wojciech Jaczewski
- 03.02.11 00:54 Andrzej Jarzabek
- 03.02.11 01:10 Andrzej Jarzabek
- 05.02.11 23:51 Michal
- 06.02.11 12:40 Michoo
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-14 Do Kongresu SZAP/USONA Złożono Proj. ,,Ustawy o aneksji i statusie stanowym Grenlandii"
- 2026-01-13 STREFA CZYSTEGO TRANSPORTU. O tym nie mówią nam WŁADZE
- 2026-01-13 To nie koniec
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.
- 2026-01-12 Teoretyczne zagadnienie - ogrzewanie budynku
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]