-
Data: 2011-08-14 12:23:40
Temat: Re: jaki wybrac jezyk?
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Aug 13, 10:56 pm, m...@t...pl wrote:
> Nie znam takich języków jak Prolog, Lisp, Python, Perl. Zastanawiam
> się czy warto któregoś się pouczyć.
Warto. wszystkich, może oprócz Perla.
> Kiedyś Java była reklamowana w ten sposób, że pisząc w Javie
> popełnia się mniej błędów, że Java ma np. kontrolę zakresów
> tablic, itd.
To jest akurat bzdurny argument. To, że Java ma kontrolę zakresów
tablic kompletnie nie przeszkodzi w zrobieniu błędu polegającego na
użyciu złego indeksu. W tej kategorii Java stoi na tym samym poziomie
co C, bo do obsługi indeksów ma jednego biednego inta.
Natomiast run-time Javy taki błąd wykryje i strzeli wyjątkiem, czyli
wywali się ładnie zamiast nieładnie. I to jest właśnie cały postęp:
można pisać programy, które się ładnie wywalają.
Faktem jest, że wielu ludziom to wystarcza, ale to nie jest ten sam
argument.
> Czy obecnie jakieś języki uznaje się za jeszcze
> bardziej pomocne w pisaniu bezbłędnego kodu?
A to jest inna kategoria. Do tego potrzebny jest język, którego reguły
i konstrukcje *zapobiegają* robieniu błędów. To jest zupełnie coś
innego, niż ich wykrywanie w run-time.
> Często słyszę opinię że Python mocno chroni programistę przed
> popełnianiem błędów.
Że co? To jeszcze większa bzdura. W Pythonie kompletnie nic nie chroni
programisty przed robieniem błędów, bo język nie jest statycznie
weryfikowany. Układ jest taki: programista robi błędy a run-time je
wykrywa. Albo i nie wykrywa.
> Mówi się że programy w Pythonie mają
> najmniej linii kodu i że Python to jest język w którym się
> myśli a nie koduje. W jakim stopniu to jest prawda?
Nie wiem, ale wiem, że mój produkt YAMI4 wspiera całą garść języków
programowania i z tej garści tylko Python nie działa poprawnie na 64-
bit, bo ma takie dziury w kodzie biblioteki standardowej, że ręce
opadają. Muszę pewien kawałek napisać od nowa i inaczej. Ciekawa
obserwacja, prawda?
> Jakie
> Python ma odpowiedniki javowej kontroli zakresów tablic?
Takie same. Czyli Ty robisz błędy a run-time je wykrywa (albo i nie
wykrywa), dzięki czemu program się ładnie wywala. Wystarcza Ci to? :-)
A na poważnie: jeśli naprawdę poszukujesz języka, który pomaga unikać
błędów i faktycznie pomaga je wykrywać statycznie a nie dopiero w run-
time, to polecam Adę.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
Następne wpisy z tego wątku
- 14.08.11 19:44 Michoo
- 15.08.11 14:24 Marszalkowski
- 15.08.11 15:01 A.L.
- 15.08.11 15:24 R. P.
- 15.08.11 15:38 m...@t...pl
- 15.08.11 15:52 m...@t...pl
- 15.08.11 15:52 R. P.
- 15.08.11 16:05 m...@t...pl
- 15.08.11 16:05 R. P.
- 15.08.11 16:14 m...@t...pl
- 15.08.11 16:15 R. P.
- 15.08.11 16:18 m...@t...pl
- 15.08.11 16:27 R. P.
- 15.08.11 16:32 m...@t...pl
- 15.08.11 16:32 R. P.
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-02 Realme 7 Na co zmienić?
- 2024-06-27 Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-07-02 znalazłem samochód ;)
- 2024-07-02 Pierwszeństwo łamane
- 2024-07-02 zamek
- 2024-07-02 Akumulatory VRLA
- 2024-07-03 Białystok => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-07-03 MĂźnchen => Test Development Engineer (m/w/d) <=
- 2024-07-03 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-07-03 Warszawa => Programista Full Stack (.Net Core) <=
- 2024-07-02 Kraków => Spedytor międzynarodowy <=
- 2024-07-02 Poznań => Senior React Native Developer <=
- 2024-07-02 Rzeszów => Frontend Developer (React) <=
- 2024-07-02 Warszawa => Fullastack (Java) Developer <=
- 2024-07-02 reparacje