LINUX.ORG.RU

Стоит ли в нынче щас учить язык Си?

 ,


0

5

Всем привет! Стоит ли в наше время учить язык Си? Или сразу же C++ начинать? Так то не очень трудный язык этот ваш C++, все циклы в основном понятны while, do, for и т.д. Указатели тоже предельны ясны, сперва конечно немного недопонимал этих указателей, но 10-20 раз перечитал стало понятно. Но не суть. Так то я получается сразу пропустил язык Си, стоит ли его тоже овладеть или как? Совет дайте?


Ответ на: комментарий от jtootf

нет. зачем выставлять себя идиотом, категорично утверждая вещи касательно того, в чём не разбираешься?

И где здесь циклы как часть синтаксиса языка?

P.S. Достаточно было на forM из Foldable/Traversable показать, зачем ты это откопал?

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

Меня и так код Габриэля в его бложике иногда пугает, зачем ты мне ещё и это показываешь? Ну и смотри коммент выше.

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

Знания лишними не бывают.

Это время лишним не бывает. Простая прикидка «на глаз» общего объёма одних только уже известных знаний человечества к продолжительности жизненного цикла человека, как бы намекает о важности выбора.

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

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

Нет.

hateyoufeel ★★★★★
()

а что, есть какие-то варианты для микроконтроллеров?

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

Лучше выбрать что-то более дружелюбное: D, Rust

Есть подозрение, что сначала всё равно лучше будет с С/С++ ознакомиться. Хотя бы чтобы понять преимущества.

DarkEld3r ★★★★★
()

Си учить стоит,и учить по K&R. Ибо Си учит думать головой,а потом писать,в отличии от неправославного C#.

Deleted
()

Нет. Кресты строже и прагматичнее. После того, как освоишь, скатишься до plainC при необходимости без проблем.

anon1984
()

Учи короче плюсы. Смотри, как «спициалисты» их в каждом треде активно хоронят. Как никакой другой язык. А это значит кресты и Java переживут, и Rust'ы, и прочие хипстерства.

C++ до сих пор разрывает пердаки. Стоит упомянуть C++ и тред набирает 200+ постов.

На C/C++ весь мир наш держится, даже JVM на крестах.

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

Так то не очень трудный язык этот ваш C++

И тут экран залило жиром...

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

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

Там стандартная библиотека же еще описана.

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

Кому должен и для чего?

Себе. Для работы.

Чтобы Си действительно знать думаю годы практики нужны.

Но крестовику нужно знать Си. Иначе он плохой крестовик.

anonymous
()

Си стоит, плюсы не стоит даже начинать.

Хотя если ты считаешь что знаешь плюсы

Так то не очень трудный язык этот ваш C++, все циклы в основном понятны while, do, for и т.д.

Вот скажи, например, почему следует реализовывать конструктор копирования для всех классов, где используются указатели или ссылки? А то что синтаксис, да кривоват местами, но только.

Если ты знаешь плюсы, то лучше держать свои плюсы подальше от Си.

Esteban_Garcia
()

Стоит ли в наше время учить язык Си? Или сразу же C++ начинать

Лучше сразу C++. В крайнем случае, учить Си по K&R, а потом уже C++. С++ во многом лучше Си, но при этом ничем не хуже.

Так то я получается сразу пропустил язык Си, стоит ли его тоже овладеть или как?

А что ты пропустил из Си? Все, что ты перечислил, как раз оттуда. А C++ добавляет перегрузку функций, классы, RAII, шаблоны, исключения, пространства имен, примитивный rtti и пр.

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

почему следует реализовывать конструктор копирования для всех классов, где используются указатели или ссылки?

не для всех.

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

Си стоит, плюсы не стоит даже начинать.

Если ты что-либо объясняешь начинающему, то стоит обосновывать свои высказывания. Ты же не хочешь воспитать религиозного фанатика?

anonymous
()

Знания - сила. Всегда стоит что-то учить, нет предела совершенству. /тред

Deleted
()

Так то не очень трудный язык этот ваш C++, все циклы в основном понятны while, do, for и т.д.

Проблемы вызывает отнюдь не синтаксис C++ (хотя местами он не сахар). Задачи у тебя какие, чем хочешь заниматься?

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

Всегда стоит что-то учить, нет предела совершенству

Но есть предел человеческим возможностям и времени. Отсюда следует, что нужно выбирать, что учить и в каком направлении совершенствоваться.

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

Вот скажи, например, почему следует реализовывать конструктор копирования для всех классов, где используются указатели или ссылки?

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

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

Если проблема висячих указателей решается другим способом? Что я ещё упустил? Я не очень в плюсы.

Например смартпоинтерами.

m0rph ★★★★★
()

Так то не очень трудный язык этот ваш C++

Совсем нетрудный.
Программировать - вот что непросто.

все циклы в основном понятны while, do, for и т.д. Указатели тоже предельны ясны

Походу ты C++ еще даже не начал учить. Всё вышеперечисленное - С. Не удивлюсь, если ты еще и вывод на экран с помощью printf делаешь.

Да, пожалуй с С лучше начинать.

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

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

Там это как-то явно описывается? В новых стандартах что есть для этого?

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

В новых стандартах что есть для этого?

В новых стандартах есть, например, смартпоинтеры(которые были уже 100500 лет как в разных библиотеках). unique_ptr для единовластного владения и shared_ptr(+weak_ptr) для разделяемого владение на основе подсчета ссылок.

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

В связке, оба языка - ракета :)

Deleted
()

Не то, что стоит, обязательно нужно. Напиши хотя бы 20-30 тысяч строк кода.

Вот C++ уже опционально. Какие-то основы выучить можно, но сильно углубляться — по желанию.

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

УЧИ! Он не самый сложный, приятный синтаксис
Сишники вымирают, а это очень грустно
Я вот сейчас начал усиленно изучать Си, хочу заниматься контрибом в такие проекты, как OpenBSD, GNOME
А для обучения делаю небольшую программу
Грустно, что для некоторых библиотек такая скудная информация, что приходится работать с ними методом тыка

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

Из перечисленного D умирает, Swift очень даже ничего, учитывая, что можно в будущем заниматься разработкой под Apple-системы - OSX, iOS
А вот Раст - ну почему все так хайпят? Ужасный синтаксис, блевать хочется от этого крапа
Лучше уж Haskell, чем Rust

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

И Haskell и Rust чудесные языки с прекрасным синтаксисом.

Legioner ★★★★★
()

Язабан.

Так то не очень трудный язык этот ваш C++

Жирно же.

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

Думаешь, JS так легко? Как надо-будет сделать нормальный фронтенд, то сразу начнуться проблемы
Можно конечно тащить кучу плагинов для jQuery, но когда сайты грузятся по 3G больше 10 секунд, становится грустно

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

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

Синтаксис вменяемый вполне. Но вот макросы вообще-то зря там. Есть кое-какие неприятные моменты, но где их нет.

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

Учитываю, что в крестах тащат все подряд, чуть ли не виртуальную машину со сборкой мусора и интерпретацию, то логично, что попроще

mystery ★★
()

Мой тебе совет. Никого здесь не слушай! Учи дальше C++ ты в правильном пути идёшь мой юный друг, если надо будет доучишь язык С (он не такой уж сложный). На C++ в основном крупные проекты строятся он быстр, универсален и вполне актуальный язык и будет ещё актуален, когда ты станешь дедушкой 70 лет. Здесь в основном троли сидят не слушай их, сами мало что могут написать простенькую программу.

anonymous
()

Не стоит. Хотя, если выучишь и просидишь на жопе 10 лет, используя его, потом даже можешь попасть на собеседование по работе. Что пройдешь не факт.

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

C++ до сих пор разрывает пердаки. Стоит упомянуть C++ и тред набирает 200+ постов.

Вот это в последнюю очередь должно быть показателем при выборе инструмента.

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

Лучше уж Haskell, чем Rust

Ничего, что области применения отличаются?

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

Нельзя не знать Си, зная C++

Очень спорное утрверждение.

По теме: C знать необходимо. C++ можно уже не учить, лучше сразу двинуть в современном направлении (Python/Go/Rust/Swift).

beastie ★★★★★
()

Даже если не собираешься использовать C, стоит его выучить, причём первым. Он ставит мозг на место, после C большинство других языков воспринимаются как надо без синдрома утёнка. Кроме того, C всегда будет находить применение. А C++, C#, Java рано или поздно умрут. Go, Rust и Swift смотрятся куда перспективнее, при этом последний позволяет использовать код на C в одном и том же проекте.

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

ибо циклы везде есть, в том или ином виде. :)

В Erlang и Haskell их нет. Только рекурсия.

я ткнул тебя носом в циклы, ты пошёл изворачиваться:

циклы как часть синтаксиса

во-первых, ты подменил утверждение. во-вторых, ты сделал это очень глупо - скажи, а рекурсия в Haskell что, имеет особую поддержку со стороны синтаксиса?

Достаточно было на forM из Foldable/Traversable показать

у тебя не получается перестать выглядеть идиотом

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

Ужасный синтаксис, блевать хочется

Когда синтаксис стал решающим фактором? Вон, многие текут от синтаксиса руби. Но это не помешало ему сгинуть в пучину забвения из-за его «ошеломляющей» производительности.

В расте есть ООП-подобные конструкции и макросы. И он компелируемый. И без GC. Этого достаточно для успеха )

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

Если планируется писать что-то специфическое, типа работы в libftdi, то с си так и так придется ознакомится. Иначе можно сразу осваивать раст как замену сишечке и плюсов, я думаю

makoven ★★★★★
()

Знание С поможет понимать остальные языки на более глубоком уровне, поэтому если планируешь писать на чем-нибудь кроме Javascript'a, то обязательно нужно знать C и желательно годик-другой на нем поработать. Чисто мое имхо.

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

я ткнул тебя носом в циклы, ты пошёл изворачиваться:

https://hackage.haskell.org/package/monad-loops-0.4.3/docs/src/Control-Monad-...

А давай я напишу функцию elephant, и что тогда? Согласишься ли ты тогда с тем, что в синтаксисе Haskell есть слоны. Или давай лучше в лиспе, там это эпичнее.

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