211service.com
O zasadach
W piątek 6 kwietnia 1327 r. podczas mszy wielkanocnej w kościele św. Klary w Awinionie Francesco Petrarca ujrzał kobietę, którą upamiętni jako Laurę, i nieodwołalnie się zakochał. Petrarka miała 23 lata. Jeśli tradycja literacka jest słuszna w identyfikowaniu przedmiotu jej Piorun jako Laura de Noves miała 17 lat.

Jason Pontin, redaktor naczelny i wydawca
Petrarka prawdopodobnie nigdy nie spotkał Laury; odmówiła zobaczenia go, ponieważ była już mężatką. Ale zanim zmarł w 1374, skomponował setki wierszy wychwalających jej urodę, opłakujących swoje nieszczęście i opłakujących jej przedwczesną śmierć w wieku 38 lat, szanowaną matkę 11 lat.
Ta historia była częścią naszego wydania ze stycznia 2007 r.
- Zobacz resztę numeru
- Subskrybuj
Wiersze są zebrane w księdze zwanej potocznie Canzoniere lub Śpiewnik. Aby pochwalić Laurę, Petrarka udoskonalił formę liryczną zwaną sonetem, która w jego rękach składa się z 14 wersów, zwykle hendecasylab, rymowanych abba, abba, cdc, dcd lub jakaś inna odmiana. Ta krasnata mała forma była naśladowana przez tysiące poetów i zainspirowała wiele znanych przykładów sztuki literackiej. Sonet Petrarchana nazwano klatką, ale jest to klatka, która oddaje osobliwą ekonomię myśli: oktawa, pierwsze osiem wersów, oferuje pewnego rodzaju propozycję, która jest satysfakcjonująco rozwiązana w sesetcie, ostatnich sześciu wersach. Zasady sonetu są surowe, ale proste.
Rozważmy natomiast język programowania C++.
Multimedia
Obejrzyj wideo Redakcji.
Program, podobnie jak wiersz, jest formą wyrażania idei: w jednym przypadku słowa w języku naturalnym, zamknięte w liryce, wyrażają miłość mężczyzny do ładnej kobiety; w drugim, kod komputerowy, związany konwencjami syntaktycznymi języka programowania, wyraża ideę, powiedzmy, że pozaziemski robot, taki jak Mars Rover, mógłby mieć autonomiczny, wbudowany system napędowy.
C++ jest prawdopodobnie najbardziej wpływowym językiem ostatnich 25 lat; Napisano w nim wiele systemów i aplikacji ery komputerów osobistych i Internetu, w tym wyszukiwarkę Google i elektroniczne systemy przełączania, które stanowią podstawę naszych sieci telekomunikacyjnych. Ale mimo wszystko C++ jest bardzo trudny do nauczenia się i używania. Częściowo wynika to z trudności w opanowaniu paradygmatycznej metody języka, zwanej programowaniem obiektowym. Ale głównie dlatego, że twórcy oprogramowania mogą swobodnie wyrażać swoje pomysły w C++ w oszałamiającej różnorodności form.
w Projekt i ewolucja C++ , wynalazca języka, Bjarne Stroustrup (z którym przeprowadzamy wywiad w tym specjalnym wydaniu dotyczącym oprogramowania; patrz Problem z programowaniem ), wyjaśnia, że zaprojektował język w ten sposób z powodów quasi-filozoficznych: Uważam, że niemal fanatyczna troska Kierkegaarda o jednostkę jest znacznie bardziej pociągające niż wspaniałe schematy dla ludzkości Hegla i Marksa. … Często, gdy kusiło mnie, aby zakazać czegoś, co mi się nie podobało, powstrzymywałem się od tego, ponieważ uważałem, że nie mam prawa narzucać innym swoich poglądów.
Powściągliwość Stroustrupa nie zadowoliła pokoleń programistów, którzy zmagali się z dziwactwami składni C++ i przeciążeniami funkcji (używając żargonu kodera). Kiedy wersja naszego wywiadu ze Stroustrupem została opublikowana na Slashdot, serwisie agregującym, który oferuje wiadomości dla nerdów, przyciągnął 605 komentarzy. JCR zapytał: Dlaczego C++ wprowadza tak dużą złożoność przy tak małych korzyściach? Zasady C++ są skomplikowane, ale luźne.
Języki programowania dotykają więcej osób niż zawodowi programiści. Chociaż nasza cywilizacja technologiczna działa na oprogramowaniu, oprogramowanie nie działa zbyt dobrze. Jak mówi nasza historia z okładki autorstwa Scotta Rosenberga: „Wszędzie, gdzie nie spojrzysz, oprogramowanie przekracza budżet, jest opóźnione, niepewne, zawodne i trudne w użyciu (zobacz Wszystko, co możesz zrobić, mogę zrobić Meta ) . Nadmiernie skomplikowane języki programowania, których jednym z przykładów jest C++, są głównym powodem zamieszania w oprogramowaniu. Dzieje się tak, ponieważ użyteczny język programowania powinien być tym, co informatycy nazywają abstrakcją leżącej u podstaw złożoności przepływów sterowania i struktur danych. C++ zapewnia programistom maksymalną możliwą swobodę wypowiedzi; ale jak przyznał JLeslie (kolejny komentator Slashdot), kosztem było to, że nie była to duża abstrakcja.
Może być inny sposób. Charles Simonyi, były główny architekt Microsoftu, który jest teraz szefem Intentional Software, chce obalić języki programowania dla czegoś, co nazywa programowaniem intencjonalnym. Profil Simonyiego autorstwa Rosenberga wyjaśnia, w jaki sposób programowanie celowe może dać programistom wyższy poziom abstrakcji. Zamiast pisać kod oprogramowania w językach programowania, programiści z wdzięcznością zrezygnowaliby z produkcji kodu na rzecz generatora, który połknąłby ich projekty reprezentujące intencje użytkowników komputerów i wypluł działający kod w języku, który komputery mogłyby zrozumieć, skompilować i uruchomić .
Najlepszą ekspresją idei są formy, które są surowe i proste. Czy Charles Simonyi mógłby zaoferować programistom nową formę, która jest jednocześnie łatwiejsza i bardziej rygorystyczna niż wszystko, co mieli wcześniej? Napisz i powiedz mi na [email protected]
