LINUX.ORG.RU

Язык: больше фана, ниже уровень

 , ,


0

6

Доброго времени суток, ЛОР.
Наверное тем таких хватает, но не смог пройти мимо и не спросить. На работе java хватает за глаза, в очень редких случаях приходится накидать пару строк на питоне, баш за язык не разжигания ради, в расчет не берем.
Хочется иногда пописать для себя что-нибудь на более низкоуровневом языке, чтобы можно было паматью руками поуправлять (не обязательно, но тоже интересно), по массиву инкрементацией указателя пройтись. Что бы ты выбрал для этого сейчас, $username?
[ ] C++ (слегка смущает сложность, да и садиться за него без знания C религия не позволяет)
[ ] Rust
[ ] Go
Хаскель и прочие функциональные лиспы не предлагать. Перл тем более.
P.S.: Выглядит толсто, но на самом деле ни разу не хотел разжигать.
P.P.S.: Если вместе с ответом последуют пара идей, что на нем можно понаписать, welcome и спасибо.

да и садиться за него без знания C религия не позволяет

Ну так осиль C.

asaw ★★★★★ ()

Хочется иногда пописать для себя что-нибудь на более низкоуровневом языке, чтобы можно было паматью руками поуправлять (не обязательно, но тоже интересно), по массиву инкрементацией указателя пройтись.

C

Stil ★★★★★ ()

C++ (слегка смущает сложность, да и садиться за него без знания C религия не позволяет)

Учить C для того, чтобы потом пересесть на кресты - вредно.

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

Go

по массиву инкрементацией указателя пройтись

В го нет адресной арифметики. Ручного управления памятью тоже нет. Осиль C. Ну или уже совсем ассемблер.

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

Ченить типа модуля для того же перла или питона. На сях ессно.

conalex ★★★ ()

Смотря что именно тебя интересует. Если железо как таковое — ассемблер. C слишком высокоуровневый язык и скрывает все особенности современного железа от программиста. Если интересен язык как таковой — Rust очень интересный язык, ну и C++ интересен, если не знаешь его. Go это ни разу не низкоуровневый язык, это скорее замена Java, вряд ли тебе он будет интересен.

Legioner ★★★★★ ()

Си - устаревшее говно, в Rust не ходят по массиву инкрементом указателей. Остается Си++. Си++11 - ничего так язык.

tailgunner ★★★★★ ()

C++ (слегка смущает сложность, да и садиться за него без знания C религия не позволяет)

IMHO C++ ближе к Java чем к C.
По теме: все зависит от твоей цели. Одни вещи в перечисленных языках мне нравятся, другие же наоборот люто бесят, только вот ни один из трех не нравится мне полностью. Если хочется с указателями, то вариантов у тебя два: C++ и Rust. При чем у обоих синтаксис обезображен горой спец-символов.

m0rph ★★★★★ ()

C для C++ не нужен от слова «совсем». Это совершенно разные языки, общая в них только форма фигурных скобочек

stevejobs ★★★☆☆ ()

Вообще, мне нравится Go, но тебе явно нужна живительная инъекция pure c

derlafff ★★★★★ ()

Когда я говорил про низкий уровень, это я без фанатизма. Assembler дико уважаю, но не интересен. И да, ООП из головы не выветривается и мои тараканы его очень любят, так что C также не совсем подходит.
Особенно радует, что часть из вас считает, что для плюсцов не нужны знания pure C. Даже хочется поверить. ООП в плюсах мне конечно не очень по душе, но моё подсознание таки хотело, чтобы именно плюсов посоветовали.

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

Кстати, вот. C++11, C++14, C++17. В мире java я привык, что чем выше версия, тем больше плюшек. Но также я привык, что самая свежая версиия в продакшене по многим причинам порой остается во влажных мечтах. В мире плюсов всё так же?

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

для плюсцов не нужны знания pure C

Тут смотря, что под знаниями подразумевать. Если, например, укзатели не осилишь, то, скорее всего, точно также и не поймешь r-ссылки и move-semantics.

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

4.2. Общее у них - С. Берёшь любой сишныц код и пихаешь себе в проект на плюсах - профит.

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

В мире плюсов всё так же?

Конечно. В С++14 лямбда-функции лучше, чем в 11-й версии.

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

Похоже, особенно под оффтопиком. Если проект новый и не отягощен никаким legacy, то шансов, что будет доступен C++14 гораздо больше.

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

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

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

Наоборот будет намного хуже. Лучше сначала пожрать кактуса в С, а потом насладиться шаблонами, специализациями, вычислениями во время компиляции, автоматическим управлением памятью при нулевой стоимости и другими преимуществами С++

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

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

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

Жрание кактуса не зря, а с образовательными целями.

vertexua ★★★☆☆ ()

контроллер какой-нибудь на ассемблере попрограммируй

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

Зачем на это тратить время, если можно сразу начать изучать С++ ?

Если знания Си есть — это хорошо, но они совсем не обязательны для начала изучения С++.

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

потом насладиться шаблонами

где нужны шаблоны, не нужен си

специализациями

в вузе надо было получать

вычислениями во время компиляции

толсто

автоматическим управлением памятью при нулевой стоимости и другими преимуществами С++

преимуществами перед чем? (еще толще)

unt1tled ★★★★ ()

C

С++ — не подходит. ООП ты знаешь из Java, шаблоны ты не просил, не говоря уже про сложность

Rust — не подходит, потому что ты вроде бы хотел в ногу пострелять, там всё делается для того, чтобы это было сделать сложно, хоть памятью и вручную управляешь.

Go — сборщик мусора, не спортивно.

Так что только сишечка, только K&R

jeuta ★★★★ ()

Что бы ты выбрал для этого сейчас, $username?

Или Rust, или кресты, в зависимости от наличия всех нужных под задачу библиотек.

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

В мире java я привык, что чем выше версия, тем больше плюшек. Но также я привык, что самая свежая версиия в продакшене по многим причинам порой остается во влажных мечтах.

В целом согласен, но в последнее время наблюдаю, что проекты на Java всё быстрее обновляются. Даже в моём проекте java 8 + wildfly 8 и в начале года мигрируем на wildfly 9

Irben ★★ ()

С, потом С++. А потом ждем в Development с вбросами.

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

Весь живой продакшен давно на C++11. C++14 еще нет, так как компилятор MS его не поддерживает

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

толсто

Ну я могу использовать сложноструктурированые шаблонизированые классы и все смещения в памяти будут вычислены правильно и автоматическию. Чтобы делать шаблонизированые структуры в С нужно городить очень сложные директивы препроцессора. А читать вообще нереально

преимуществами перед чем?

Перед вызовом malloc и забытым вызовом free.

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

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

vertexua ★★★☆☆ ()

Форт тоже достаточно низкоуровневый. Можно нагородить своё ООП с классами и методами.

Fermion ()

Учи Rust, он сейчас как-бы самый перспективный.
Заодно
— частично выучишь плюсы и Си
— частично поймёшь типы и функциональщину
— погрузишься с головой в управление памьятью
— порвёшь все шаблоны которые сложились при программировании на Java (я гарантирую)

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

Весь живой продакшен давно на C++11

Даже по ЛОР ясно, что это не так.

tailgunner ★★★★★ ()

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

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

Тебя не добивает бесполезность поиска утечек памяти

Нет, я за 6 лет на последней работе искал утечки аж 2 раза.

через valgrind

Скучно. Я без утилит искал. Вдумчивый взгляд и аналитический ум рулят.

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

Да, мне тоже показалось, что 8 в проде стало больше. Главное не оказаться на долгострое с хвостом в N лет позади. Еще, субьективно, JEE по популярности все сильнее сливает спрингу. Даже вот Oracle считает, что это уже не так интернсно. Ну ок, тред не о том.

bytecode ★★ ()

Окей, сделал выводы, спасибо. Сначала покурю C, ибо изучал давно в универе, по стольку, по скольку. Потом и плюсы покурю. Единственное что удручает - на это придется спустить немало времени. Зато интересно и полезно.

bytecode ★★ ()

чтобы можно было паматью руками поуправлять (не обязательно, но тоже интересно), по массиву инкрементацией указателя пройтись

Сишечка. В других языках инкрементацией по массиву уже не ходят, а часть управления памятью лежит на RAII и умных указателях.
Но если тебе нужно не yolo-программирование, а понимание, как работать на уровне ниже — бери раст.

quantum-troll ★★★★★ ()
Ответ на: комментарий от invy

Берёшь любой сишныц код и пихаешь себе в проект на плюсах - профит.

Берешь любой JavaScript код и пихаешь себе в проект на Java

Берёшь любой C++ код и пихаешь себе в проект на ObjectiveC - профит.

Берёшь любой ассемблерный код и пихаешь себе в проект на Си - профит.

===

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

И вместо 1 языка всем пришлось знать 2

И если это сделано не по острой необходимости, а из уверенности что Си и С++, или Java и JavaScript - один и тот же язык, тебя будут долго и со вкусом бить ногами

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