-
X-Received: by 2002:a0c:b59b:: with SMTP id g27mr494542qve.0.1546125675698; Sat, 29
Dec 2018 15:21:15 -0800 (PST)
X-Received: by 2002:a0c:b59b:: with SMTP id g27mr494542qve.0.1546125675698; Sat, 29
Dec 2018 15:21:15 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.
com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.h
ighwinds-media.com!news.highwinds-media.com!v55no4255664qtk.0!news-out.google.c
om!h3ni8257qtk.1!nntp.google.com!v55no4255660qtk.0!postnews.google.com!glegroup
sg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 29 Dec 2018 15:21:15 -0800 (PST)
In-Reply-To: <1...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.47.1.64;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 37.47.1.64
References: <c...@g...com>
<f...@g...com>
<a...@g...com>
<7...@g...com>
<a...@g...com>
<6...@g...com>
<0...@g...com>
<a...@g...com>
<1...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e...@g...com>
Subject: Re: Jaki język polecić początkującemu? - komentarz do artykułu w
Programista 9/2018
From: Maciej Sobczak <s...@g...com>
Injection-Date: Sat, 29 Dec 2018 23:21:15 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5813
X-Received-Body-CRC: 2597309872
Xref: news-archive.icm.edu.pl pl.comp.programming:213099
[ ukryj nagłówki ]> > [operator przypisania]
> >
> > > W większości miejsc nie jest konieczne.
> > > A jest to zły nawyk, ponieważ - mówiąc skrótowo - zwiększa złożoność
> > > środków analizy programów
> >
> > Nie, nie zwiększa.
>
> Owszem, zwiększa.
To tak, jakbyś powiedział, że silnik zwiększa koszt samochodu.
Otóż nie zwiększa, bo jest jego integralną częścią. Klima albo automat może
zwiększać, ale nie silnik.
Podobnie jest z operatorem przypisania w językach imperatywnych. On niczego nie
zwiększa, bo nie może go nie być.
> Proponuję, żebyś - zamiast zgadywać w ciemno o czym mówię
> - spróbował przeczytać tę książkę, i dopiero wtedy się
> wypowiedzieć.
Czytałem. Tylko jakoś nie uległem czarowi języków funkcjonalnych do tego stopnia,
żeby uznać je jako teoretyczną podstawę do czegokolwiek.
I mam wrażenie (również z poprzednich naszych dyskusji), że tak właśnie sądzisz - że
języki funkcjonalne są podstawą, z której można budować inne konstrukcje. Dlatego
zastanawiasz się, jaki jest koszt dodania operatora przypisania.
Tymczasem w informatyce, jeżeli w ogóle jest jakaś podstawa dla innych konstrukcji,
to zwyczajowo była nią maszyna Turinga (i nie widzę powodu, żeby miała stracić ten
status) a akurat tam jest już koncepcja modyfikacji wartości. Głowica zapisująca nową
wartość w tym samym miejscu to właśnie operator przypisania.
W tym kontekście zamiast pytać, jaki jest koszt dodania operatora przypisania do
czegokolwiek, należałoby zapytać, jaki jest koszt udawania, że go może nie być.
Otóż ten koszt to jest między innymi ta dyskusja. :-)
> To dobra książka, naprawdę.
https://cemerick.com/2009/03/24/why-mit-now-uses-pyt
hon-instead-of-scheme-for-its-undergraduate-cs-progr
am/
Wracając do tematu: jeżeli operator przypisania jest problemem w Scheme, to jest to
problem w Scheme. W językch imperatywnych ten operator nie jest problemem, tylko
integralną częścią języka. A narzędzi analitycznych to w ogóle nie komplikuje,
naprawdę.
> > Nadal nie wiem, czy trzeba zmienić język, żeby pisać lepiej.
>
> Też nie wiem. Ale jeżeli idzie o mnie, to nie umiem pisać
> w C++ kodu tak, żeby być z niego zadowolonym.
Mi się zdarzyło. Natomiast przyznam, że moje własne niezadowolenie z języka C++
skierowało mnie ku nauce Ady. I paradoksalnie, mój C++ się wtedy też poprawił.
> Wydaje mi się, że pytanie "czy C++ jest dobry do nauki"
> to trochę mało. Raczej należałoby zapytać, czy dane materiały
> dydaktyczne są dobre, albo czy określona metodologia nauczania
> jest skuteczna.
Tak, to prawda. Ale znam ludzi, którzy twardo stosują C++ jako platformę do nauki
programowania i struktur danych. Myślę, że przy odpowiednim prowadzeniu to nie jest
zły pomysł.
Ale sam osobiście poleciłbym nowicjuszom język Wolfram. Również dzieciom, jak im się
już Scratch znudził. C++ nie jest dobrym pierwszym językiem, chociaż może być bardzo
praktycznym językiem w późniejszej pracy czy innym realnym projekcie.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 30.12.18 13:06 g...@g...com
- 30.12.18 16:46 Mateusz Bogusz
- 30.12.18 18:08 s...@g...com
- 30.12.18 19:17 g...@g...com
- 31.12.18 08:18 Tomasz Kaczanowski
- 31.12.18 10:14 g...@g...com
- 02.01.19 09:41 Maciej Sobczak
- 02.01.19 09:48 Maciej Sobczak
- 02.01.19 10:17 Maciej Sobczak
- 02.01.19 10:53 Wojciech Muła
- 02.01.19 13:23 g...@g...com
- 02.01.19 13:42 g...@g...com
- 02.01.19 14:00 g...@g...com
- 03.01.19 09:37 Maciej Sobczak
- 03.01.19 09:44 Maciej Sobczak
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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??
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=