• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaki język do programowania systemowego?

+1 głos
257 wizyt
pytanie zadane 15 kwietnia 2021 w Rozwój zawodowy, nauka, szkoła, praca przez mattaha Użytkownik (690 p.)
Potrzebny mi język do programowania sieciowego, inżynierii wstecznej oraz do programowania systemowego pod GNU/Linuksa i OpenBSD. Jaki język nadaje się lepiej do tego celu, C czy C++?

3 odpowiedzi

0 głosów
odpowiedź 15 kwietnia 2021 przez marcin99b Maniak (71,590 p.)
C++ to w dużym uproszczeniu C z dodatkami

ja na twoim miejscu poszedłbym w c++
dodatkowa wiedza nie zaszkodzi a może sie okazać pomocna
komentarz 15 kwietnia 2021 przez mattaha Użytkownik (690 p.)
Czy nauka C po C++ będzie prosta?
komentarz 15 kwietnia 2021 przez marcin99b Maniak (71,590 p.)
największy problem to będą różnego rodzaju "kurde, szkoda że tego nie ma, w c++ ten mechanizm był pomocny a tutaj musze samemu to robić"

przykładowo w C nie ma typu string, musisz używać tablicy charów (czyli to czym string jest w rzeczywistości)

w C nie masz obiektowości, także odpada wiele możliwości

i tak dalej...
troche jakbyś przesiadał się z motocykla na rower
komentarz 15 kwietnia 2021 przez Oscar Pasjonat (22,170 p.)

Są miejsca, do których można dojechać jedynie drogą tylko dla rowerów. smiley

 

Moduły jądra do linuxów, w tym drivery chyba jeszcze ciągle muszą być pisane w C.

komentarz 15 kwietnia 2021 przez marcin99b Maniak (71,590 p.)
No tak
Ale jak ktoś nie jest pewny co dokładnie chce robić, to prościej będzie opanować motocykl i ewentualnie przesiadać sie na rower niż odwrotnie
komentarz 15 kwietnia 2021 przez reaktywny Nałogowiec (27,750 p.)
Podobno Linus Torvald powoli przekonuje się do RUST-a :)

https://thenewstack.io/linus-torvalds-on-diversity-longevity-rust-and-arm-chips/
Linus Torvalds on Diversity, Longevity, Rust, and ARM Chips – The New Stack

https://arstechnica.com/gadgets/2021/03/linus-torvalds-weighs-in-on-rust-language-in-the-linux-kernel/
Linus Torvalds weighs in on Rust language in the Linux kernel | Ars Technica

https://www.zdnet.com/article/linus-torvalds-on-where-rust-will-fit-into-linux/
Linus Torvalds on where Rust will fit into Linux | ZDNet
komentarz 15 kwietnia 2021 przez Oscar Pasjonat (22,170 p.)

@marcin99b,
 Jak chcieli przelecieć nad kanałem La Manche mięśniolotem, to zdecydowano, że prościej będzie wziąć zawodowego kolarza i nauczyć go pilotowania, niż wziąć pilota i wyćwiczyć go na kolarza....

 

Jak ktoś będzie się uczył C++ to pewnie nie nauczą go jak zrobić prostą dwukierunkową listę na strukturach ze wskaźnikami...

0 głosów
odpowiedź 15 kwietnia 2021 przez mokrowski VIP (146,880 p.)
C, C++, Python, Rust. W tej kolejności.
komentarz 15 kwietnia 2021 przez reaktywny Nałogowiec (27,750 p.)
Python to tak średnio się nadaje do programowania systemowego IMO.
komentarz 15 kwietnia 2021 przez mattaha Użytkownik (690 p.)
Nie rozumiem tej mody na Rust. W czym on lepszy od C/C++? W C++ da się pisać w pełni bezpieczny kod, od tego jest RAII, std::unique_ptr etc.
komentarz 15 kwietnia 2021 przez reaktywny Nałogowiec (27,750 p.)
Niby w każdym języku da się (i powinno się) pisać bezpieczny kod, ale nie wszystkim to wychodzi(ło) dobrze. Dobry przykład z Microsoftem, na pewno czytaliście.

Rust jest tak zaprojektowany, że nie da się napisać programu który będzie miał wycieki pamięci  (chyba że zdecydujesz się na tryb unsafe), podjęcie próby napisania czegoś takiego sprawia, ze kompilacja się nie powiedzie.

Rust ma trochę więcej zalet, jedną z nich na pewno są czytelne i zrozumiałe komunikaty błędów, coś czego nie ma jeszcze wiele języków :) Wynikowy kod jest lekki i szybki.

Może ktoś kto zna Rusta jeszcze coś dopisze, ja o produkcie Mozilli wiem niewiele.
komentarz 15 kwietnia 2021 przez Wiciorny Mędrzec (196,740 p.)

@mattaha,a w czym C/c++ jest lepsze od Rusta? 

1
komentarz 16 kwietnia 2021 przez tkz Nałogowiec (41,420 p.)

@mattaha,

W C++ da się pisać w pełni bezpieczny kod, od tego jest RAII, std::unique_ptr etc.

Raczej nie... Przy większych projektach w C++ odstrzelisz sobie nogę w kolanie przez samo UB. 

komentarz 16 kwietnia 2021 przez reaktywny Nałogowiec (27,750 p.)

@Wiciorny, Większy, starszy bardziej dojrzały ekosystem ze znacznie większą liczbą bibliotek + dużo większa społeczność.

Rust nie jest dokończony, często pojawiają się zmiany, które powodują, że stary kod przestaje działać.

komentarz 16 kwietnia 2021 przez mokrowski VIP (146,880 p.)

@reaktywny,

 

 

inżynierii wstecznej...

Zapytaj pentesterów czego używają

Ale widzę że nie do końca byłem zrozumiały....

1. C - mocna standaryzacja, obecność na rynku, wymagany często standard C90 i C99. Bez względu na wady i zalety języka, obecny w normach wytwarzania oprogramowania dla kolei, lotnictwa, medycyny i .. RTV/AGD

2. C++ - podobna rola co do C, także coraz częściej stosowany i wybierany szczególnie do bardziej złożonych systemów gdzie potrzebna jest standardyzacja.

3. Python - w pytaniu była część o inżynierii wstecznej. Ten język bywa używany w trybie "kombinerek i młotka" do bieżących potrzeb. Pentesterzy, inżynierowie bezpieczeństwa, osoby odpowiedzialne za testowanie... używają.

4. Rust - interesująca nadzieja na lepszy język dla pisania w systemie. Niestety nie ustandaryzowany, ciągle się rozwijający i dopiero niedawno zabezpieczony biznesowo jeśli chodzi o rozwój (wydzielony z Mozilla).

Inne języki także.. np. znajomość ASM także pomaga. Nawet pobieżna.

A w szczegółach? Oj długo pisać. Np w OpenBSD nie będziesz raczej szalał w C++ tylko skupisz się na C i to nieco starszym ale za to bardzo mocno połatanym kompilatorze gcc. Taki system i podanymi założeniami i tyle.

 

komentarz 16 kwietnia 2021 przez reaktywny Nałogowiec (27,750 p.)
OK, "inżynieria wsteczna".

Zakładający wątek zatytułował go "programowanie systemowe", a później pisze o trochę innych rzeczach :)
komentarz 16 kwietnia 2021 przez Wiciorny Mędrzec (196,740 p.)

@reaktywny, Większy, starszy bardziej dojrzały ekosystem ze znacznie większą liczbą bibliotek + dużo większa społeczność.

mówimy o programowaniu systemowym, gdzie C++ - nie wykorzystujesz nowych, lepszych bibliotek- nawet STL'a w systemowym raczej byś nie korzystał, stąd to moje pytanie- bo porównywanie tych dwóch języków nie ma sensu w kwestii programowania systemowego, w ogóle porównywanie 2 całkiem różnych języków moim zdaniem nie jest dobre- bo to wszystko zależy. 
Społeczność okej, ale ile z tej społeczności używa c++ w celu tak nisko-poziomowym jak system  ( a nie C- a to nie jest to samo ) i ludzie źle to pojmują myśląc że C to takie małe C++ bez sterydów  ?

0 głosów
odpowiedź 16 kwietnia 2021 przez profesorek96 Szeryf (88,040 p.)
Jeśli chcesz programować aż tak nisko poziomowo to obowiązkowo C oraz NASM.

Podobne pytania

86,448 zapytań

135,207 odpowiedzi

300,348 komentarzy

57,196 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...