• 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?

VPS Starter Arubacloud
+1 głos
561 wizyt
pytanie zadane 15 kwietnia 2021 w Rozwój zawodowy, nauka, 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 Szeryf (81,480 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 Szeryf (81,480 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 Nałogowiec (29,290 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 Szeryf (81,480 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 (40,650 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 Nałogowiec (29,290 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 Mędrzec (155,460 p.)
C, C++, Python, Rust. W tej kolejności.
komentarz 15 kwietnia 2021 przez reaktywny Nałogowiec (40,650 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 (40,650 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 Ekspert (269,120 p.)

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

1
komentarz 16 kwietnia 2021 przez tkz Nałogowiec (42,000 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 (40,650 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 Mędrzec (155,460 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 (40,650 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 Ekspert (269,120 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 (91,420 p.)
Jeśli chcesz programować aż tak nisko poziomowo to obowiązkowo C oraz NASM.

Podobne pytania

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...