Article View: pl.comp.lang.c
Article #291664Re: Sztuka Kodowania w C++ - Nowa Wersja!
From: Maciek Godek
Date: Thu, 26 Nov 2020 01:35
Date: Thu, 26 Nov 2020 01:35
86 lines
4197 bytes
4197 bytes
środa, 25 listopada 2020 o 20:50:32 UTC+1 jawors...@adres.pl napisał(a): > Wracając do tematu: > > > https://gitlab.com/energokoder/sztuka-kodowania > > Takie 2 pyt.: > 1. Czy podzielacie opinię osób z 4programmers.net, że przedstawiam zalecenia słabo uargumentowane i mocno podszyte emocjami? Nie przeglądałem dogłębnie, ale dla mnie to wygląda bardziej jak cienka zajawkowa broszurka, niż poważny tekst. Kiedyś napisałem na Quorze taką odpowiedź: https://www.quora.com/What-are-some-examples-of-bad-code/answer/Panicz-Godek Prezentuje źle napisany kod (akurat w C++), i pomysły, jak go poprawić. Sądzę, że poważna literatura programistyczna powinna zajmować się rzeczywistym kodem, a nie ogólnikowymi wytycznymi, które przez różne osoby mogą być różnorako interpretowane. (Wydaje mi się, że w dziedzinie "zasad używania C++" dobrym autorem jest Scott Meyers) > 2. Czy znacie lepszy język programowania od C++? Pytanie sprawia wrażenie "szczenięcego". Lepszy do czego? Do pisania sterowników dla Linuxa? C. Do obliczeń symbolicznych? Lisp. Do oskryptowywania stron internetowych? JavaScript. Do tworzenia aplikacji webowych? Na przykład F#, ClojureScript. Jakiś czas temu chciałem skorzystać z Bluetooth na Windowsie. Okazało się, że jest to możliwe tylko z poziomu czegoś, co się nazywa Universal Windows Platform. Można na to pisać w C# albo w C++. Wybrałem C++, ale dość szybko okazało się, że to był zły wybór, bo wsparcie dla C# było zrobione lepiej, a zysku z korzystania z C++ nie było wcale. > Lepszy ale: kompilowany, wieloplatformowy (Linux, Android, WinDos), obiektowy z wielodziedziczeniem i z sensowną biblioteką standardową? > Sensowna biblioteka standardowa powinna mieć obsługę: napisów, wątków, sieci i grafy. Praktycznie każdy poważny język daje Ci dostęp do tzw. FFI, czyli Foreign Function Interface. Czyli możesz wołać kod z dllek w każdym "dużym" języku. Dlaczego komuś miałoby zależeć na wielodziedziczeniu, tego nie jestem w stanie pojąć. Tutaj swego czasu widziałem dobrą krytykę: https://www.quora.com/Is-inheritance-bad-practice-in-OOP-Many-places-that-teach-design-patterns-say-to-opt-for-composition-over-inheritance-but-what-about-when-multiple-classes-share-logic-from-an-abstract-class-such-as-in-the-Template-Method-design-pattern/answer/Curtis-Poe Jeżeli zależy Ci na obiektowości i statycznych systemach typów, to może OCaml jest takim językiem (jeżeli chcesz uniknąć korzystania z maszyn wirtualnych), albo F#, albo Scala (jeżeli nie chcesz tego robić). > Te 2 sprawy są dla mnie kluczowe, bo: > ad 1.: Jeśli tak, to postaram się rozwinąć moje myśli. Operowałem trochę skrótami w myśl zasady: "Mądrej głowie dość w dwie słowie.". A ja bym raczej powiedział, że nie zdefiniowałeś sobie, dla kogo ma być ten tekst przeznaczony. > ad 2.: Jak jest taki język to może się go nauczę. Jeżeli chcesz wydawać kategoryczne osądy o tym, że ten-a-ten język jest najlepszym językiem programowania znając tylko ten jeden język programowania, to sorry, ale Twój osąd będzie mało wiarygodny. Jeżeli na poważnie wnikniesz w przynajmniej te główne kluczowe języki dla swoich paradygmatów (Lisp, Prolog, Smalltalk, APL/J/K, Erlang/Elixir, Forth/Joy) i będziesz przynajmniej w stanie napisać kompilator dla używanego przez siebie języka, to wtedy będziemy mogli zacząć rozmowę.
Message-ID:
<9bcf9076-7065-420b-aea7-6ad8dddafef2n@googlegroups.com>
Path:
polish.pugleaf.net!archive.newsdeef.eu!archive!apf9.newsdeef.eu!not-for-mail
References:
<478ab743-cd00-4961-88e1-983025db304bn@googlegroups.com> <dcc43d5c-f777-4188-ab21-c2a4aca13635n@googlegroups.com>