-
Data: 2013-02-11 06:04:58
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu poniedziałek, 11 lutego 2013 00:58:41 UTC+1 użytkownik Andrzej Jarzabek
napisał:
> To jest argument nazasadzie: "może i ta cała obiektowość ma jakieś
> zalety przy pisaniu dużych systemów, ale co z tego, skoro nidgy bym nie
> zdecydował się użyć jej do pisania czegoś takiego".
Argument "ma zalety bo używam" też niewiele wnosi :)
Właśnie 2-3 godziny temu stanąłem w obliczu takiej refaktoryzacji ze
zmianą struktury danych dla algorytmów, a więc musiałem także
poprawiać algorytmy. Konieczność wynikła z nieudanej próby optymalizacji.
Zamiast globalnie trzymać dane w pamięci, a potem filtrowanie/sortowanie
zrobić na wskaźnikach, to dla algorytmów przygotowałem specjalistyczne
struktury danych. Globalne dane były konwertowane na specjalistyczne,
liniowe tablice w pamięci. Miałem nadzieję że dzięki sekwencyjnemu
dostępowi do pamięci i mniejszym rozmiarom specjalistycznych struktur
program zadziała szybciej. Niestety nie udało się, narzut na konwersje i
kopiowane pożarł cały zysk.
No więc stanąłem w obliczu tej refaktoryzacji i myślę sobie, jakbym miał
język z dynamicznym typowaniem, to pomimo wielu błędów w pozostałych
częściach programu, bym mógł program uruchomić. Bym mógł uruchomić te
działające części, a w trakcie uruchomienia może zdołałbym zrobić
jeszcze jakiś eksperyment z optymalizacją. Ze statycznym typowaniem nie
mogłem na to sobie pozwolić, musiałem wszystkie użycia specjalistycznych
struktury zamienić na tablice wskaźników. Myślę sobie dalej: znalazłem
zaletę dynamicznego typowania.
Jednak po chwili druga myśl: przecież kompilator przez 2-3 godziny krzyczał, że
jest źle. Bez tej pomocy bym pewnie te wszystkie użycia znajdował przez
tydzień albo dłużej. Co więcej, środowisko uruchomieniowe odsyłałoby mnie
do linii w której błąd się uaktywnił, a do złego użycia bym musiał dochodzić
debugerem po stosie wielokrotnych wywołań funkcji. Tutaj kompilator pokazał
mi od razu gdzie nie ma zdefiniowanych typów i od razu byłem w linii
która wymagała poprawek.
Podsumowując, moje stanowisko nie zmieniło się, nie widzę tych zalet,
choć niewykluczone że są.
Pozdrawiam
Następne wpisy z tego wątku
- 11.02.13 09:07 Andrzej Jarzabek
- 11.02.13 10:49 Maciej Sobczak
- 11.02.13 17:24 M.M.
- 11.02.13 18:41 firr kenobi
- 11.02.13 18:55 M.M.
- 11.02.13 19:18 firr kenobi
- 12.02.13 00:19 Andrzej Jarzabek
- 12.02.13 00:23 Andrzej Jarzabek
- 12.02.13 00:36 Andrzej Jarzabek
- 12.02.13 01:15 M.M.
- 12.02.13 02:09 Andrzej Jarzabek
- 12.02.13 08:41 Adam Wysocki
- 12.02.13 10:10 AK
- 12.02.13 10:19 Maciej Sobczak
- 12.02.13 20:14 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=