-
Data: 2023-05-18 16:24:49
Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 18/05/2023 16:08, Dawid Rutkowski wrote:
>>> Wyciąłem, bo pisząc o zaczęciu nie miałem na myśli wykonania kroku,
>>> który tak naprawdę nic nie zmienia.
>> Krok ten zmienia bardzo wiele. Nagle nie masz wymówki, że się nie da
>> pisać lepiej.
> Niestety da się również pisać gorzej.
Tak, ale to już problem białkowy, a nie ograniczenia języka. Wystapuje w
każdym języku. No może poza perlem, tam pisanie bardzo dobrze jest
nieodróznialne od pisania najgorzej.
> Wciąż nie możesz zrozumieć, że pisząc o C++ musisz mieć w świadomości,
> że to jest cały C++, a nie tylko wybrane przez ciebie, ułatwiające życie
mechanizmy.
Bzdura do kwadratu.
Piszesz w C.
Masz problem, który można elegancko i czytelnie rozwiązać C++.
Używasz C++ w tym jednym miejscu.
Reszta dnia wolnego.
> Ale nie C++.
Czyli to problem ideologiczny. Nie możesz uwierzyć, że można pisać po
staremu i tam gdzie C++ się przydaje - użyć go. Musi być albo skrajna
prawica albo lewica. Recjonalizm zakazany.
> Może nie masz traumy ze studiów ze zmuszaniem do stosowania bzdur
> jako sztuki dla sztuki.
Po prostu ich nie rozumiesz i to całkowicie zrozumiałe. Jak zaczniejsz
używać, szczególnie jeśli ktoś pokaże Ci jak, zrozumiesz, że pewne
konstrukcje w C są najzwyczajniej niebezpieczne i prowadzą do sytuacji
niewykryanych przez kompilator, jak w tym watku.
Pisanie w C to pisanie w asemblerze, podługując się nieskopoziomowymi
instrukcjami.
Pisanie we współczesnym C++ polega na wyrażaniu potrzeb w sposób
wysokopoziomowy. Zamaist "potrzebuję wiedziec ile to zajmuje ramu i
potem se podziele" piszesz "potrzebuje wiedzieć jakie to jest duże". To
jest bezpieczniejsze.
Do tego stopnia, że w jednym z coding standardów jakie miałem okazję
czytać, używanie sizeof w pętli for jest wykrywane przez linter na
etapie review. Ktoś widocznie miał dośc poprawiania takich bzdur.
> Mnie to prześladowało
Więc to problem ideologiczny.
> Możliwe, że jestem niedouczony, ale z Javy poszedł jak z płatka, a z C++
> normalnie wytrzeszcz: "to tak można?!?!jeden!"
Czyli możesz się w wolnej chwili doedukować. Powiększawie warsztatu
programistycznego to tylko plusy. Tym bardziej, że za friko.
> I mi brakuje właśnie czegoś takiego jak kompilowana java na uC.
> Było coś w podobie zwanego JavaME - ale padło.
Nie chcesz tego. Semantyka referencji i zarządzanie pamięcią w Javie nie
nadaja się do mikrokontrolerów, szczególnie do zastosowań realtime, mimo
wielu prób wciśnięcia Javy do małych uC. Za to C++ jak najbardziej
pasuje, bo jest zdecydowanie bliżej sprzętu.
> Jak piszesz samemu to możesz sobie dyscyplinę typu: "używam TYLKO tego, tego i tego
z C++" narzucić.
Tak. To się nazywa coding standard, review, lint. Nie masz takiego
zestawu w firmie?
> Ale w zespole zaraz zaczną odwalać bzdury, "bo w C++ tak można".
Nie. Od tego jest code review + coding standard. Choć przyznaje, że to
pytanie/opinia czasem się pojawi, szczególnie jak zakaz idityczny. Na
przykład "nie wolno używać C++ bo go nie rozumiem".
> Tak jak kiedyś byłem na rozmowie o pracę z takimi dwoma, co mieli biuro w KC,
> chodziło o J2ME i mocno komentowali o takich, co na J2ME alokują sobie tablice po
2MB...
I znowu ten sam argument bez śladu sensu. To, że ktoś w C++ allokuje za
dużo, to wina biedy intelektualnej programisty, a nie wina C++. C++ to
tylko powiększenie składni o masę użytecznych rzeczy. Nie chroni przed
debilizmem. Ale czasem wrzaśnie na etapie kompilacji o jakimś fuckupie,
gdzie C przełknie bez popijania. I jak wstawisz w to zdanie "Java"
zamiast "C++" to dalej będzie prawda.
Następne wpisy z tego wątku
- 18.05.23 16:40 heby
- 18.05.23 16:54 Dawid Rutkowski
- 18.05.23 17:29 Marek
- 18.05.23 17:35 heby
- 18.05.23 17:37 heby
- 18.05.23 18:11 Marek
- 18.05.23 18:16 Marek
- 18.05.23 18:18 Marek
- 18.05.23 18:19 heby
- 18.05.23 18:29 heby
- 18.05.23 18:30 heby
- 18.05.23 18:44 Marek
- 18.05.23 18:46 Marek
- 18.05.23 18:47 Marek
- 18.05.23 18:53 heby
Najnowsze wątki z tej grupy
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
Najnowsze wątki
- 2025-06-18 Poznań => MLOps Engineer <=
- 2025-06-18 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-18 Wrocław => SAP ABAP Developer <=
- 2025-06-18 Łódź => Account Manager <=
- 2025-06-18 Warszawa => MLOps Engineer <=
- 2025-06-18 Warszawa => Software Engineer .Net <=
- 2025-06-18 Zakaz używania Kreta
- 2025-06-18 Gdańsk => Controlling systems Consultant <=
- 2025-06-18 Warszawa => Senior Programmer C <=
- 2025-06-18 W państwie tuskiego "prawa" obywatel/poseł ma obowiązek planować pod kątem że będzie aresztowany [Urbaniak]
- 2025-06-18 Warszawa => Mid/Senior IT Recruiter <=
- 2025-06-18 Lublin => Programista Delphi <=
- 2025-06-18 Warszawa => NMS System Administrator <=
- 2025-06-18 Re: Auto miało pozostać na wstecznym biegu z włączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.
- 2025-06-17 Re: Auto miało pozostać na wstecznym biegu zwłączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.