-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!uni-berlin.de!not-for-mail
From: Waldemar Krzok <w...@z...fu-berlin.de>
Newsgroups: pl.misc.elektronika
Subject: Re: Mikropascal na AVR'y - co o tym sądzicie ??
Date: Mon, 09 Jan 2012 17:46:51 +0100
Organization: Freie Universitaet Berlin
Lines: 63
Message-ID: <9...@m...uni-berlin.de>
References: <jecdni$eo3$1@inews.gazeta.pl> <jed41a$mv$1@inews.gazeta.pl>
<3585364791$20120108231228@squadack.com> <jed52p$41u$1@inews.gazeta.pl>
<jeevg1$17be$1@news2.ipartners.pl>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de
coRMSjOKw9gEiSQw/lIycgqJuhh33TLKj4r2/DvyyTKAhh2BGDDl7gg9ct
Cancel-Lock: sha1:DYgWVf9G1MPD0Ffucnx/ByB3zFk=
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20111105 Thunderbird/8.0
In-Reply-To: <jeevg1$17be$1@news2.ipartners.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:623153
[ ukryj nagłówki ]Am 09.01.2012 16:01, schrieb JDX:
> On 2012-01-08 23:24, Sebastian Biały wrote:
> [.....]
>> *Nikt* poza szumem nie pisze w Pascalu nowych projektów. Delphi się
>> jeszcze kreci bo są miliony lini kodu które trzeba utrzymać. Jednak
>> środowisko programistów wymiera lub po cichu uczy się C#/Java doskonale
>> sobie zdając sprawę że to trup. Pascal@uC to prędzej efekt 5 wieczorów
>> nudzenia się. Ktoś chetny na projekt bez celu?
> Ale to nie znaczy, że C tudzież C++ jest takie świetne a Pascal jest do
> bani. Jeśli mówimy o programowaniu uC to w C da się "szybo pi..ąć
> szybkiego pacza" i to jest IMO główny powód dla którego C jest popularne
> wśród ludzi piszących soft na uC. :-) Co z kolei w połączeniu z brakiem
> doświadczenia i bliską zeru wśród elektroników wiedzą na temat
> prowadzenia projektów software-owych prowadzi do powstawania
> programistycznych koszmarów. C daje dużą swobodę i dlatego IMO nie jest
> to dobry język dla początkujących ponieważ trzeba wiedzieć co się robi.
> Z drugiej strony działającej i powszechnie dostępnej alternatywy
> wymuszającej dobre praktyki (np. Ada) na popularne uC za bardzo nie ma...
>
> Poza tym AFAIR to informatycy (ci zajmujący się dydaktyką) twierdzą, że
> Pascal *nadal* jest niezłym językiem do dydaktyki.
Pascal JEST językiem do dydaktyki. Ma jednak lekką niechęć do
programowania blisko hardware. Konkretnie w Pascalu tak jak bóg (znaczy
Wirth) go stworzył nie ma możliwości adresowania komórek pamięci (ok, da
się poprzez przypisanie stałej do wskaźnika, ale ładnie to nie wygląda),
a do przerwań czy, o zgrozo, multithreadingu wogóle nie ma ładnej
możliwości. Delphi jest pewnym krokiem od dydaktyki do produkcji, ale
ten koń też już zaczyna śmierdzieć.
Co do mikroprocesorów, to C jest kompromisem między assemblerem, a
"porządnym" językiem. Im mniejszy mikrokontroller, tym bardziej mamy
tylko te 2 języki jako alternatywy. A ładnie programować można w
dowolnym języku i na odwrót. Jak mamy większe kostki, to już zaczyna być
wygodniej, aż do składania programów z graficznych "kostek", jak to mają
co poniektóre PLC. Albo LEGO MasterMind (R). Tam sobie układasz klocki
LEGO na ekranie i toto nawet działa ;-).
Osobiście znam trochę tych języków programowania. Programy popełniłem
chyba w 30 językach, większość jednak to dydaktyka na uczelni (też jako
nauczyciel). Poczynając od Fortranu, przez wsie Algole, Prolog, LISP (od
tego miałem rekurencyjne sny ;-)), a nawet jakiś śmieszny programik w
Cobolu na zaliczenie. W tej chwili używam C lub C++ na PCcie, C lub
Assembler na mikroprocesory. No i ostatnio jakiś Arduino ze swoim
"prawie-C", albo procesor graficzny z 3GC, czy jak temu dialektowi. Jak
się umie programować, to język właściwie obojętny. Ale to chyba tak, jak
z językami obcymi: tych 0x10 pierwszych sprawia problemy, następne
wchodzą jak przez masło ;-).
Warto wiedzieć, że im bardziej abstrakcyjny (i wymuszający dobre
praktyki) język, tym trudniej jest optymalizować kod. Pisząc program
zajmujący mało pamięci i szybki musi się myśleć kategoriami procesora.
Trzeba wiedzieć gdzie są tworzone zmienne, unikać konwersji między
różnymi strukturami danych, conieco pozostawić w rejestrze. Przy
przerwaniach ratować tylko te rejestry, na których operujemy i podobne
cuda. Już w C coponiektórzy wywalili się na prostym printf. Program miał
powiedzmy 1k, dodano jedną linijkę z printf i już ma 20k, albo i więcej.
Bo się całą bibliotekę zmiennoprzecinową dolinkowało, choć tego nie trzeba.
Waldek
--
My jsme Borgové. Sklopte štíty a vzdejte se. Odpor je marný.
Następne wpisy z tego wątku
- 09.01.12 16:49 JDX
- 09.01.12 19:48 badworm
- 09.01.12 20:28 Sebastian Biały
- 09.01.12 20:34 Sebastian Biały
- 09.01.12 20:36 Sebastian Biały
- 09.01.12 20:43 Sylwester Łazar
- 09.01.12 20:44 Waldemar Krzok
- 09.01.12 20:45 Waldemar Krzok
- 09.01.12 20:49 Sebastian Biały
- 09.01.12 20:50 Jerry1111
- 09.01.12 20:50 J.F.
- 09.01.12 20:52 J.F.
- 09.01.12 20:53 Sebastian Biały
- 09.01.12 20:57 Grzegorz Krukowski
- 09.01.12 20:59 Grzegorz Krukowski
Najnowsze wątki z tej grupy
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
Najnowsze wątki
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=