LINUX.ORG.RU

Выбор ЯП для системного программирования.

 ,


2

4

Добрый день, задумался я тут о том чтоб начать учить один из низкоуровневых ЯП для развития и разработки. До этого писал только на Python, но он на роль языка разработки системных инструментов не подходит. Так как тут народ опытный хотел бы узнать что в данный момент лучше начинать учить? Пока выделил следующие ЯП. C,C++,JAVA,RUST.


Плюсы и Жаву сразу выкидывай — оно для прикладухи. Для начала учи C, он всяко популярнее будет(соответсвенно больше литературы, и прочего stackoverflow). Ну а Rust пока ещё на стадии активной разработки(хотя писать на нём безусловно можно и даже приятно), к тому же не зная С — никогда не осознаешь тех плюшек, что даёт Rust.

На правах ИМХО

Singularity ★★★★★
()

Все языки говно. Но для каждого оно воняет по разному.

v9lij ★★★★★
()

Java под очень большим вопросом, хотя вот смс-ки (телефонные), бывает, что и на java перемалывают в большом количестве в режиме софтового рилтайма, но это, скорее, исключение. Впрочем, лучше сразу исключить java из списка для верности, ибо нужны знания, чтобы так писать.

К списку можно смело добавить Ada и Pascal (Lazarus), а потом выбрать то, что больше нравится

dave ★★★★★
()

Так как тут народ опытный

Вот до этой фразы все было хорошо.

anonymous
()

Главное, не вляпаться в C++ по молодости. Вот годков через 10 можно. Правда к тому времени стандарт будет на миллион страниц, и писать на плюсах смогут только ИИ.

bread
()

Учи сишечку. Ибо с ней очень просто понимать суть алгоритмов и структур. В расте говна много. Этим он даже с++ переплюнул.

anonymous
()

Во-первых, что такое «системные инструменты» и с чего ты взял что питон для них не подходит? А если не питон, то C++. C безнадёжно устарел, писать на нём неэффективно и небезопасно. Rust ещё не взлетел, писать на нём сейчас - ходить по граблям. Хотя на будущее можно изучить. Java в приличном обществе не принято упоминать.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

ну для примера, утилиты BusyBox. Python как по мне довольно медленный в этих целях, хотя можно использовать PyPy.

vgbnd
() автор топика

после питонячего гербедж коллектора, тебе только в Golang или в Dlang

для контроллеров, лучше, конечно, Clang, но для тех, которые аппаратно поддерживают java - лучше java

anonymous
()
Ответ на: комментарий от bread

Написал 100 строк кода на C за всю жизнь и не изучал его никогда. И раст не планирую.

И системный софт писать проблемы никогда не встречал. Хватит уже пихать Си и раст во все дыры.

dzidzitop ★★
()
Последнее исправление: dzidzitop (всего исправлений: 1)
Ответ на: комментарий от Shadow

Ты имел в виду SMPP? Ну, вот используют java. Факт.

dave ★★★★★
()
Ответ на: комментарий от bread

Си - говно и нафиг не нужен.

Без понимания работы компьютера никуда. А это понимание Си не принесёт на блюдечке.

А раст - это как ПСВ студия. На заборах скоро писать RUST ЖИВ! будут.

dzidzitop ★★
()
Последнее исправление: dzidzitop (всего исправлений: 2)

Rust, после питона на Си будет писать очень больно ввиду отсутствия каких-бы то ни было высокоуровневых инструментов.

А в Rust есть более-менее привычный инструментарий и Zero Cost абстрации, включая итераторы и набор функций высшего порядка к ним (как в itertools)

С++ будет не удобен ввиду огромного количества материала для изучения и отсутствия удобного пакетного менеджера для библиотек, да и вообще какой-либо унификации в экосистеме. ИМХО.

mersinvald ★★★★★
()
Последнее исправление: mersinvald (всего исправлений: 2)
Ответ на: комментарий от bread

Главное, не вляпаться в C++ по молодости.

почти во всех вакансиях к си требуется обязательно с++, причем на с++ там гораздо больше придется кодить, поэтому не вляпаться в с++ не получится

anonymous
()

Си можно выучить за недельку другую, по книге Кернигана и Ритчи - Полезно для общего развития.

А так, конечно, же Rust.

AntonyRF ★★★★
()
Ответ на: комментарий от Singularity

Ну а Rust пока ещё на стадии активной разработки

Таки релиз стабильный уже был пару лет назад, просто язык дальше развивается, так что ни чего не мешает брать уже сейчас под прожекты

AntonyRF ★★★★
()
Ответ на: комментарий от vgbnd

Для busybox да - не подходит, но не из-за скорости, а из-за некомпактности. Скорость там совершенно нигде не нужна.

slovazap ★★★★★
()

До этого писал только на Python, но он на роль языка разработки системных инструментов не подходит.

На пистоне сейчас пишут в том числе и для микроконтроллеров.

Если надо Bare metal, то тогда:

  • С (язык анархистов),
  • С++ (язык анархистов-быдлокодеров),
  • Ada/SPARK (есть далеко не везде),
  • Nim (есть практически везде где есть C, как и C - язык для ценителей анархии),
  • Rust (после появления C-backend для LLVM, будет много где).

Если достаточно платформы, для которой есть нормальная ОС, то добавь сюда:

  • PyPy, rpython.
  • Pony,
  • Go (ну так-то Х.З.)

Может что-то ещё...

shkolnick-kun ★★★★★
()
Ответ на: комментарий от Singularity

не зная С — никогда не осознаешь тех плюшек, что даёт Rust.

Раст даёт безопасные абстракции и типобезопасность. В Си этого нет. Тут нужно на С++ смотреть.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

найди UB

Во-первых: ты идиот и не понимаешь, что такое UB.

Во-вторых: Не можешь осилить управлять памятью - вон из профессии. ПХП - твой выбор, но никак не системщина. Кривые руки и гнилой мозг ни один раст не исправит.

anonymous
()

Си. Даже если потом вздумаешь перейти на что-то другое из перечисленного, знание сей сильно поможет

XMs ★★★★★
()
Ответ на: комментарий от anonymous

Ретрограды в треде. На расте, если тебе не нужен ансейф (а в миддлвейре он, в общем-то, почти нигде и не нужен), ты никогда не столкнешься ни с UB ни с ручным управлением памятью.

И на выходе ты получаешь быстрый бинарник, сравнивый по скорости и жору памяти с аналогом, писанным на Си (без байтодроча, конечно).

При значительно большей безопасности и меньшей длительности и стоимости разработки. Считать что это плохо могут только ретрограды и идиоты.

mersinvald ★★★★★
()
Ответ на: комментарий от RazrFalcon

Ну, в настоящее время от Си и Си++ он никуда не денется, но я так понял, что ему для себя надо. А тогда можно писать и на чем-то более приятном. Почему бы и нет?)

dave ★★★★★
()
Ответ на: комментарий от mersinvald

И на выходе ты получаешь быстрый бинарник,

В голосину поржал.

хваленому редоксу нужно полтора гига чтоб просто запуститься

хваленый серво сжирает гиг на страницу, при этом он нихера не умеет.

anonymous
()
Ответ на: комментарий от anonymous

Анон, сравнивать надо эквивалентные реализации. Найдешь сишную кодовую базу, копирующую архитектуру servo — тогда поговорим об этом.

А пока ты не нашел, сравнивать, всё же, будем эквивалентные вещи.

mersinvald ★★★★★
()
Ответ на: комментарий от eao197

Неверно выразился, да. В расте память выделяется контейнерами и смартпоинтерами.

С malloc/free new/delete и голыми указателями с мутабельной памятью в Safe Rust не столкнуться, вот что я хотел сказать. А это большой источник проблем для начинающих (и не очень) программистов, начиная от UB и фантомных багов, заканчивая критическими уязвимостями.

mersinvald ★★★★★
()
Ответ на: комментарий от mersinvald

лалка. Я сейчас пишу на линуксе, написаном на Си, с брузера, писанного на крестах. Из гнома, писанного на Си.

копирующую архитектуру servo

архитектура кнривущей поделки, которая не умеет ничего, кроме жора памяти, паников и кривой отрисовки хтмля? Я думаю такое любой студент на 2 курсе накидает и получит за это «неуд».

anonymous
()
Ответ на: комментарий от anonymous

Если у тебя есть претензии к Redox или Servo касательно их архитектуры или размеров выделяемых буферов — обратись к команде этих проектов, при чем тут язык?

Если можешь в локализованных примерах показать где раст тормозит или выжирает много памяти (на системном malloc), можно обсудить.

А поделка и не предполагается как продукт для практического использования. Наработки из него портируются в Firefox (Stylo, Quantum, скоро WebRender). И это официальная позиция.

mersinvald ★★★★★
()
Ответ на: комментарий от mersinvald

При значительно большей безопасности и меньшей длительности и стоимости разработки

Безопасность ладно, но длительность и стоимость - это явная неправда. По крайней мере на данный момент. И если, наняв среднего уровня сишников, ты таки получишь результат, то наняв раставцев ты играешь в лотерею, т.к. почти все они доморощенные фанбои, а это таки накладывает специфику на процесс и результат разработки. Это как лисперы 2.0, шуму много, а результат получается у единиц.

anonymous
()
Ответ на: комментарий от anonymous

Да, сошлашусь, я скорее говорил про ситуацию, когда ты разрабатываешь с командой растоводов известного тебе уровня свой продукт.

Для среднего интерпрайза это всё еще лотерея, конечно.

mersinvald ★★★★★
()
Ответ на: комментарий от shkolnick-kun

На пистоне сейчас пишут в том числе и для микроконтроллеров.

имхо, ты путаешь распбери и ардуино

anonymous
()
Ответ на: комментарий от anonymous

Не, он скорее всего про MicroPython.

anonymous
()

Начни с Си хотя бы на уровне чтения.
Потому что будет необходимо знать как работать с системными вызовами.
Для этого не лишним будет посмотреть сорцы системных программ, которые написаны на Си.
А если захочешь лезть в ядро, то Си просто показан.

Попутно посматривать на Раст не помешает.

Deleted
()

Rust. Можешь для общего развития изучить для начала С. А потом сравнить его с Rust и понять, какое же оно (С) говно.

Unicode4all ★★★★★
()

Учи C. Затем Rust. x2

Deleted
()
Ответ на: комментарий от anonymous

Вот только линукс на C не потому что C хорош, а потому что раньше ничего лучше не было, писатели одного браузера осознали всю печальность крестов и теперь делают свой язык, а гном пишут на Vala потому как делать это на C - извращение. Уот так уот.

Deleted
()
Ответ на: комментарий от Deleted

гном пишут на Vala

Что, новости к вам в дурку долго доходят? Вала ващет того, немножечко умерла.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.