-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.chmurka.net!.POSTED!not-for-mail
From: Andrzej Jarzabek <a...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Date: Sat, 16 Feb 2013 10:18:13 +0000
Organization: news.chmurka.net
Lines: 117
Message-ID: <kfnmd6$p7o$1@somewhere.invalid>
References: <f...@g...com>
<kf1b5r$cvj$1@somewhere.invalid>
<51152b96$0$1306$65785112@news.neostrada.pl>
<3...@x...googlegroups.com>
<4...@g...com>
<kf61vl$fh0$1@somewhere.invalid>
<c...@g...com>
<kf8mrj$piq$1@somewhere.invalid>
<3...@g...com>
<kf9c7i$61o$1@somewhere.invalid>
<8...@g...com>
<kfbuak$lvs$1@somewhere.invalid>
<0...@g...com>
<kff8f5$nrb$1@somewhere.invalid>
<0...@g...com>
<kfjq4l$aiv$1@somewhere.invalid>
<6...@g...com>
<1...@g...googlegroups.com>
<c...@g...com>
NNTP-Posting-Host: 5ac53cfe.bb.sky.com
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: somewhere.invalid 1361009894 25848 90.197.60.254 (16 Feb 2013 10:18:14 GMT)
X-Complaints-To: abuse-news.(at).chmurka.net
NNTP-Posting-Date: Sat, 16 Feb 2013 10:18:14 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107
Thunderbird/17.0.2
In-Reply-To: <c...@g...com>
X-Authenticated-User: ajarzabek
Xref: news-archive.icm.edu.pl pl.comp.programming:202067
[ ukryj nagłówki ]On 15/02/2013 15:46, Maciej Sobczak wrote:
> W dniu piątek, 15 lutego 2013 12:29:02 UTC+1 użytkownik Andrzej
> Jarzabek napisał:
>
>> Na Adzie się nie znam, ale czy nie jest przypadkiem tak, że do
>> wielu aplikacji biznesowych byłaby słabym wyborem ze względu na
>> brak bibliotek i narzędzi właśnie?
>
> Ja znam ludzi, którzy tego używają w systemach bankowych, więc może
> nie jest tak źle.
Nie mam pojęcia jak jest naprawdę, ale niekoniecznie z tego, że takich
znasz, coś wynika. Może po prostu użytkownicy Ady są nadreprezentowani
wśród twoich znajomych? Ja mam jakiś przekrój czego sie używa w
instytucjach finansowych i firmach produkujących oprogramowanie dla
nich i wiem, czego się mniej więcej używa. Java, C++, C#, Python, Tcl,
nawet spotkałem się z F# i Fortranem, ale z Adą nigdy. Oczywiście nie
wykluczam, że gdzieśtam jakiś system napisany w Adzie jest, ale to też
nie wyklucza możliwości, że mimo wszystkich swoich zalet Ada jest złym
wyborem dla 99.99% zastosowań, gorszym np. od Pythona.
>> Ale jeśli przez to, że wybiorę inny język może nie być zepsute, to
>> po co w ogóle mam naprawiać?
>
> Co nie jest zepsute? ClassDefNotFound i NoSuchFunction nie są
> zepsute?
Nie jest zepsuty system który w takiej sytuacji po prostu działa tak,
jak powinien, mimo że jeden z jego komponentów został wymieniony bez
zmieniania pozostałych.
>>> I bardzo dobrze. To jest zaleta statycznego systemu.
>> Że się program wywali?
>
> Że się nie skompiluje przy normalnym wykorzystaniu.
Z mojej praktyki z C++ wynika, że korzystanie z bibliotek, które były
kompilowane oddzielnie od głównego programu, w tym dynamiczne
linkowanie, jest czymś całkowicie normalnym.
>>> Jeżeli dynamiczne techniki nie działają a statyczne działają, to
>>> jaki z tego wniosek w kontekście tytułu tego wątku?
>>
>> Skoro programy komputerowe często nie działają, to może zamiast
>> komputerów lepiej używać znacznie bardziej niezawodnych
>> pięściaków?
>
> Możesz tak zrobić. Ja natomiast spróbuję wybrać taki język, który
> działa lepiej, niż gorzej.
No ale pięściak działa jeszcze lepiej.
>> Akurat rozmawiamy o tym, czy Java jest językiem statycznie czy
>> dynamicznie typowanym. Umówmy sie może w takim razie, że
>> konstrukcja pozwalająca na niebezpieczne rzutowania nie
>> dyskwalifikuje języka z bycia statycznie typowanym.
>
> Dobrze, umówmy się tak.
>
> 1. Pytanie było o wybór między językami statycznymi a dynamicznymi.
> 2. Zauważyłeś, że jak się używa dynamicznych ficzerów, to program
> może nie działać.
>
> Mój wniosek z tej dyskusji (jak też przed nią) jest taki, że im mniej
> dynamicznych elementów w programie, tym łatwiej o poprawny program.
Program napisany w języku dynamicznym w takiej samej sytuacji może działać.
>>> Tak. Jeżeli dynamiczne ficzery prowadzą do programów, które nie
>>> działają, to est to argument przeciwko dynamicznym ficzerom.
>> Każdy język, który jest Turing-complete ma dynamiczne ficzery,
>> które nie działają.
>
> Więc ich nie używajmy. Ja napisałem parę programów bez używania tych
> ficzerów.
A ja napisałem program "Hello World", który działał. Tylko że nie radzę
nikomu, żeby zamiast pisać swoje programy, które czasem nie działają,
pisali Hello World, który zadziała na pewno.
> Czy może chcesz napisać, że im bardziej jakiś języki jest dynamiczny,
> tym bardziej jest "Turing-complete"? Coś jakby synonim na "cool" dla
> geeków?
Powinieneś wiedzieć, że Turing-complete się nie stopniuje.
>>> UB. Język wyraźnie mówi, że nie wolno tego static cast zrobić.
>>> Kompilator nie nadąża, więc może język jest za mało statyczny?
>>
>> Jak napisałem, chodziło o sytuację, kiedy B dziedziczy po A.
>
> A ja nadal będę pisał, że to jest UB i standard to wyraźnie określa.
Ale nie da się tego statycznie sprawdzić.
> Nie wolno takiego rzutu zrobić, nawet jeśli język nie określa tego
> jako błąd statyczny. Coś jak dzielenie przez 0.
No i luzik, przecież języki dynamiczne też mają różne sytuacje, gdzie
specyfikacja mówi, że operacja nie zadziała i np. rzuci wyjątkiem.
> I wniosek mam konsekwentny: weźmy język, który będzie jeszcze
> bardziej statyczny. Bo język, który będzie jeszcze bardziej
> dynamiczny sprawi nam jeszcze więcej problemów.
Lepiej wziąć język, w którym co prawda jakichś tam błędów unikniesz, ale
programu robiącego to, co ma robić też nie napiszesz?
> W tym momencie muszę przeprosić: wyjeżdżam na parę dni i nie będę
> miał dostępu do sieci. Nie będę mógł więc kontynuować tej dyskusji,
> chociaż jestem pewny, że ona powróci, bo na tej grupie jest
> zjawiskiem powtarzalnym.
Życzę miłego wyjazdu w takim razie, na pewno wątek będzie dalej wisiał
na serwerze jak wrócisz :)
Następne wpisy z tego wątku
- 16.02.13 13:22 Edek Pienkowski
- 17.02.13 17:56 R.e.m.e.K
- 17.02.13 19:06 Michal Kleczek
- 17.02.13 22:00 Piotr Chamera
- 19.02.13 09:39 Michal Kleczek
- 19.02.13 10:44 AK
- 19.02.13 11:06 Michal Kleczek
- 19.02.13 14:32 Piotr Chamera
- 19.02.13 16:08 Michal Kleczek
- 19.02.13 17:16 AK
- 21.02.13 09:18 Andrzej Jarzabek
- 21.02.13 09:34 AK
- 22.02.13 00:11 Andrzej Jarzabek
- 22.02.13 11:07 Michal Kleczek
- 24.02.13 22:57 Maciej Sobczak
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-11 Wyważanie kół rowerowych
- 2024-11-11 Kosz, gdzie??
- 2024-11-11 Coraz mniej ludzi robi prawo jazdy
- 2024-11-11 Opole => SAP HANA Cloud Dev / Data Engineer <=
- 2024-11-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-11 Lublin => Senior PHP Developer <=
- 2024-11-11 Marki => Senior PHP Symfony Developer <=
- 2024-11-11 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-11 Gliwice => Specjalista ds. public relations <=
- 2024-11-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-11 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-11-11 Warszawa => Sales Development Representative (in German) <=
- 2024-11-11 Marsz niepodległości
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa