-
Data: 2019-01-02 15:25:45
Temat: Re: Uwagi odnośnie książki Stroustrupa
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu środa, 2 stycznia 2019 08:17:40 UTC+1 użytkownik Tomasz Kaczanowski napisał:
> > Wczoraj Tomek Kaczanowski polecił tu książkę do nauki programowania
> > spod pióra Stroustrupa pt. "Programowanie. Teoria i praktyka
> > z wykorzystaniem C++".
> [...]
> > Każdy, kto uczył się Pythona z tutoriala Guidona van Rossum,
> > zapewne pamięta, że jedna z początkowych sekcji nosi tytuł
> > "Using Python as calculator". Programiści Pythona raczej
> > nie byliby szczególnie zainteresowani problemem dydaktycznym,
> > który proponuje Stroustrup, ponieważ wiersz poleceń w Pythonie
> > już jest "takim kalkulatorem, tylko lepszym".
>
> Pytanie tylko co z tego. W jednym języku masz przygotowane rzeczy do
> jednych operacje, w innym do innych.
Czasem rzeczywiście jest tak, że masz je "w języku". Na przykład w Perlu
(czy nawet w JavaScripcie) jest specjalna składnia do pracy z
wyrażeniami regularnymi.
W Pythonie czy PHP wyrażenia regularne są dostępne z funkcji bibliotecznej.
I to podejście wydaje się zwyciężać, bo lepiej się skaluje.
> W zasadzie po co pisać proste
> programy, skoro większość z nich był już napisany wielokrotnie.
To zależy. Dla nauki, dla treningu, dla zabawy.
Po co rozwiązywać krzyżówki, skoro ktoś je już rozwiązał?
> A jednak. Swojego czasu (pierwsza połowa lat 90), żeby dobrze zrozumieć
> jak wykorzystać polimorfizm analizowałem sobie napisany program
> przykładowy dołączany do jednego z kompilatorów. Znowu - też nie jakieś
> super skomplikowane rzeczy - ot parser funkcji matematycznych, dzięki
> któremu rysowane były wykresy. Nic zaawansowanego, ale dało trochę do
> myślenia i do analizy jak to działa.
No i bardzo dobrze. Programy pisze się między innymi po to,
żeby można je było czytać.
> Wiele rzeczy pisze się podczas
> nauki nie po to by rozwiązać realny problem, tylko aby na jakimś
> problemie przećwiczyć sposoby rozwiązania.
W porządku. Ja nie mówię, że ten akurat problem nie ma wartości dydaktycznej.
Mówię, że podejście Stroustrupa jest niedobre.
Przeglądam sobie jeszcze raz ten fragment, a tam widzę takie coś:
case '8': // Za pomocą znaku '8' reprezentujemy liczby.
WTF? Dlaczego?!
> Oczywiście można wymyślić
> jakiś problem nie rozwiązany już na 1000 sposobów, tylko po co? Co to da
> w kontekście dydaktycznym poza trudniejszym opisem problemu?
Jakiś czas temu zgłosił się do mnie jakiś student z Czech, żebym mu
pomógł w jakimś projekcie.
Projekt był dość ciekawy. Jego nauczyciel przygotował program, w którym
jakiś ludzik chodził po labiryncie w poszukiwaniu skarbu.
Celem studenta było napisanie programu, który tym ludzikiem posteruje.
To była całkiem fajna zabawa.
Podobnie np. gra "Human Resources Machine", w której układasz z klocków
programy sterujące pnącym się po szczeblach kariery pracownikiem korporacji.
Miłe, przyjemne zadanka.
> > Jak możemy się domyślać, Stroustrup proponuje początkującemu
> > czytelnikowi raczej ciężką i niewdzięczną drogę: oto bowiem
> > zostajemy rzuceni w wir tokenizacji i parsowania (a dodatkowo
> > mistrz wymaga od swoich uczniów, żeby pojedyncze wyrażenia mogły się
> > rozciągać na wiele linii, żeby początkującemu nie było za łatwo).
>
> i bardzo dobrze moim zdaniem, pokazuje, że proste na początku zadanie,
> może mieć dużo dodatkowych wymagań.
Tak, i czasem łatwiej przeformułować wymagania tak, żeby były one
w naszym zasięgu. Ale Stroustrup zamiast powiedzieć np.
"obsługa precedensów operatorów arytmetycznych jest trudna,
w związku z czym użyjmy zamiast tego odwrotnej notacji Polskiej"
albo coś w tym rodzaju, brnie w niezbyt interesującą teorię.
> Czasami proste rozwiązanie może
> okazać się prostackie i dla mnie nieakceptowalne, jak np kiedyś coś tam
> robiąc w PHP, korzystając z funkcji str_getcsv, okazało się, że nie jest
> ona odporna na różność kodowań. Standard csv nie ma takich ograniczeń,
> natomiast jeśli mamy źle lokale ustawione i niekompatybilne z nim
> zakodowany plik, to nagle funkcja nie potrafi prawidłowo podzielić
> rekordów na pola. Koś poszedł na skróty, właśnie nie przeprowadził
> wystarczająco dobrze procesu rozpoznawania problemu i stworzony został
> moim zdaniem potworek.
Ostatnio mieliśmy aplikację od dużej firmy. Była chyba napisana w C#,
i też trzeba było zmieniać język w systemie operacyjnym, bo jakieś tam
pola gdzieś tam miały przecinki zamiast kropek albo na odwrót.
I ważne moim zdaniem jest pytanie, jak unikać tego rodzaju problemów.
Tyle że nie bardzo wiem, jak ma się to do tego, co napisałem wcześniej.
Następne wpisy z tego wątku
- 02.01.19 15:55 g...@g...com
- 02.01.19 16:34 fir
- 02.01.19 16:59 fir
- 02.01.19 17:39 g...@g...com
- 03.01.19 10:14 Maciej Sobczak
- 03.01.19 10:43 Tomasz Kaczanowski
- 03.01.19 16:07 g...@g...com
- 03.01.19 17:41 AK
- 04.01.19 08:15 Maciej Sobczak
- 04.01.19 09:53 g...@g...com
- 07.01.19 07:59 Maciej Sobczak
- 07.01.19 10:34 g...@g...com
- 08.01.19 09:46 Maciej Sobczak
- 08.01.19 09:51 AK
- 08.01.19 10:05 AK
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-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.
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Usunięcie zdjęcia zamordowanej kobiety: Policja 3 dni nie zawracała sądowi dupy i załatwiła bez sądu [TVN donosi na kogoś]




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