🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217698

Re: rzadki bład w programie w C++

#217698
From: Maciek Godek
Date: Fri, 03 Sep 2021 19:45
39 lines
5710 bytes
piątek, 3 września 2021 o 20:21:21 UTC+2 Maciej Sobczak napisał(a):
> > Wniosek z tego można chyba wyciągnąć taki, że to, co robimy 
> > (programowanie, albo szerzej - tworzenie pionowych dokumentów) jest 
> > wbrew naszej naturze. I jak tu żyć?
> To zależy. To, że program "wykonuje się" z góry na dół to tylko jedna z możliwych konwencji. Dlaczego stała się popularna? No nie wiem, bo np. dawno temu drukowano programy na papierze? I to jeszcze takim składanym, na krótszym boku, z dziurkowanym marginesem wzdłuż całej paczki?

W Europejskiej kulturze kierunek tekstu to jest "od lewej do prawej, od góry do dołu".
Są kultury, w których ten kierunek poziomy jest odwrócony, tzn. czyta się "od prawej do lewej, od góry do dołu".
Czasem też w kulturach azjatyckich można się spotkać z taką inwersją, że najpierw czyta się w pionie, a potem w poziomie, ale chyba zawsze jest "z góry na dół".

Może ma to związek z grawitacją, i z tym, że jesteśmy uczeni, że rzeczy "same z siebie" raczej ciągnie w dół, niż do góry?
 
> Program dla szkolnej maszyny Turinga to cienka długa taśma. Może być poziomo. Albo na rolce. 
> Ale już program zapisany jako model w jakiejś graficznej formie bardzo naturalnie wygląda od lewej (wejścia) do prawej (wyjścia). To jest też popularna konwencja w schematach elektronicznych. Czy taki model będzie bardziej pionowy, czy poziomy, zależy od wielu czynników, ale zdecydowanie to, co mamy teraz z kodem źródłowym to chwilowa anomalia a nie ponadczasowy pewnik. 

Stosunkowo niedawno natrafiłem na tę prezentację, przedstawiającą środowisko programistyczne jako "pochodnię w jaskini", i proponujące dość ciekawą alternatywę:

https://www.youtube.com/watch?v=Ps3mBPcjySE

> Albo wyobraź sobie, że plik źródłowy nie leci ciurkiem od góry do dołu, funkcja po funkcji, tylko np. ma osobne kolumny. I każdą funkcję w osobnym pliku (to jest nawet teraz tu i ówdzie obowiązującym standardem kodowania).

Albo że nie trzymasz programu w ogóle w plikach, tylko to są obiekty w pamięci, które ewentualnie możesz na wiele sposobów zrzutować na system plików. Hmm, brzmi jak Smalltalk albo Interlisp, albo "programowanie intencjonalne" :)

> Niech będzie, że tekstowe, ale w kilku kolumnach. Np. w każdej kolumnie osobno: parametry, pre-conditions, zmienne lokalne, reguły przetwarzania, post-conditions. Ładnie by to wyglądało. 

Nieco dawniej natrafiłem na tę "rodzinę prezentacji", skupiającą się na typografii kodu źródłowego (jak by powiedziała Debbie Reynolds, "if you've seen one, you've seen them all")

https://hilton.org.uk/presentations/beautiful-code

Ja sam nie jestem do końca przekonany. Moim zdaniem programy powinny wyglądać jak instrukcje montażu mebli z Ikei.

> To, że piszemy kod źródłowy jak by to był papier toaletowy to tylko nasza wina. Nie jest to w żadnym razie jakaś inherentna cecha programowania w ogóle.

Nie wiem, czy jak papier toaletowy.
Większość środowisk "hipertekstualizuje" programy w tym sensie, że można np. kliknąć na symbol, żeby przejść do jego definicji.
Nie spotkałem się z taką możliwością u swojego papieru toaletowego.

Ale faktycznie, "programowanie w ogóle" nie ma zbyt wielu silnie określonych cech.
Większość z nich to raczej nawyki naszych umysłów.
Technical Details
Message-ID: <49b5e718-73d9-4cd7-a594-e7692bddfbf4n@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!1.us.feeder.erje.net!feeder.erje.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <903213e7-90d8-443c-98f4-7ccefb998340n@googlegroups.com> <41fd5c32-23e3-47d2-868a-172ab784564an@googlegroups.com> <20210824111949.30fcbadd@mateusz.lan> <cc767f8f-c772-40a6-ae26-095df32b01f7n@googlegroups.com> <20210824172713.3619ba72@mateusz.lan> <7082b9d6-7447-4d6a-ac90-aa4ec2f05ec2n@googlegroups.com> <6126af7d$0$541$65785112@news.neostrada.pl> <feba6305-cce4-45fa-b84d-00f00bb8b950n@googlegroups.com> <612a9d2f$0$512$65785112@news.neostrada.pl> <a549c4ba-0c93-4635-8716-bb1140edbeadn@googlegroups.com> <612bea2d$0$24048$65785112@news.neostrada.pl> <20210830093545.18fda408@mateusz.lan> <a19d66ae-d0b5-4569-b38a-f0fe476a78can@googlegroups.com> <20210830213816.18b20823@mateusz.lan> <80cc60ae-263c-4374-b6bd-50160f01ac58n@googlegroups.com> <20210901134106.165ad182@mateusz.lan> <3091673a-f1f3-4fa9-9852-85c5e7a9cdfcn@googlegroups.com> <20210902093041.282e47f2@mateusz.lan> <547a363c-3cf1-45ae-9095-8c533068a0abn@googlegroups.com> <20210903091809.6edce716@mateusz.lan> <34f630df-3164-43fe-83fa-03fe7c2c4a9cn@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:ea0c:: with SMTP id t12mr453356qkj.509.1630698336346;        Fri, 03 Sep 2021 12:45:36 -0700 (PDT)
X-Received: by 2002:ac8:7594:: with SMTP id s20mr570871qtq.381.1630698336113; Fri, 03 Sep 2021 12:45:36 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!1.us.feeder.erje.net!feeder.erje.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Fri, 3 Sep 2021 12:45:35 -0700 (PDT)
In-Reply-To: <34f630df-3164-43fe-83fa-03fe7c2c4a9cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:113f:400f:7f00:c919:93a9:e3e1:109f; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 2a01:113f:400f:7f00:c919:93a9:e3e1:109f
References: <903213e7-90d8-443c-98f4-7ccefb998340n@googlegroups.com> <41fd5c32-23e3-47d2-868a-172ab784564an@googlegroups.com> <20210824111949.30fcbadd@mateusz.lan> <cc767f8f-c772-40a6-ae26-095df32b01f7n@googlegroups.com> <20210824172713.3619ba72@mateusz.lan> <7082b9d6-7447-4d6a-ac90-aa4ec2f05ec2n@googlegroups.com> <6126af7d$0$541$65785112@news.neostrada.pl> <feba6305-cce4-45fa-b84d-00f00bb8b950n@googlegroups.com> <612a9d2f$0$512$65785112@news.neostrada.pl> <a549c4ba-0c93-4635-8716-bb1140edbeadn@googlegroups.com> <612bea2d$0$24048$65785112@news.neostrada.pl> <20210830093545.18fda408@mateusz.lan> <a19d66ae-d0b5-4569-b38a-f0fe476a78can@googlegroups.com> <20210830213816.18b20823@mateusz.lan> <80cc60ae-263c-4374-b6bd-50160f01ac58n@googlegroups.com> <20210901134106.165ad182@mateusz.lan> <3091673a-f1f3-4fa9-9852-85c5e7a9cdfcn@googlegroups.com> <20210902093041.282e47f2@mateusz.lan> <547a363c-3cf1-45ae-9095-8c533068a0abn@googlegroups.com> <20210903091809.6edce716@mateusz.lan> <34f630df-3164-43fe-83fa-03fe7c2c4a9cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <49b5e718-73d9-4cd7-a594-e7692bddfbf4n@googlegroups.com>
Subject: Re: rzadki bład w programie w C++
From: Maciek Godek <godek.maciek@gmail.com>
Injection-Date: Fri, 03 Sep 2021 19:45:36 +0000
Lines: 78
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit