LINUX.ORG.RU

Стоит ли учить С для развития или скриптовых языков достаточно?


0

5

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


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

> Указатели во все поля, в т.ч. любимый массажёр всех C программеров char*. Нет нормальных классов, только костыли и т.д.

Вот жеж молодежь тупая пошла.

Указатели - неизбежность. Указатели есть в железе - следовательно, они обязаны быть и в портабельном ассемблере (каковым Си и является). Классы - вообще не ясно, каким боком к низкоуровневому языку (если даже забыть о том, что ООП вообще не нужно).

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

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

Ололо, а вот и старпёры. «Потрабельный ассемблер» это для ССЗБ и драйверописателей. Пусть там и остаётся.

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

> Сколько тебе годиков, дитятко?

Сявка, на ассемблере PDP-10 ты не писал? Перфокарты только в музее видел? Свободен. Права иметь мнение о программировании ты еще лет двадцать не заслужишь.

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

Дооо. ЧСВ то заверни в трубочку и уноси уже :3

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

Сявка убогая, «портабельный ассемблер» - это как минимум переносимый целевой язык для компиляторов, это язык для реализации рантаймов все тех же твоих любимых скриптовых языков, это язык для ядер ОС. Не владеть этим языком - значит быть не программистом, а тупым говном. Не владеть всеми остальными основными языками и парадигмами - так же.

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

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

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

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

Молодец, свою илитность засветил, получи плюшку.

Си - один из самых простых языков из практически применимых.


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

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

верно, конечно. но тем не менее в общих чертах это представлять стоит.

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

> Речь шла про сложность использования языка на практике.

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

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

> Речь шла про сложность использования языка на практике

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

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

> как, например, можно писать многопоточные программы не зная всяких там семафоров/мьютексов/блокировок?

С развитием технологий это становится элементарно (параллельная функциональщина, STM)

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

> Вот когда встанет надобность писать такие программы, тогда и изучайте.

Ты лузер.

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

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

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

Поправлюсь - сложность изучения языка на достаточный уровень, чтобы применять его в профессиональной деятельности. Область применения С ясна - системное программирование. Мне понадобилось два года, чтобы осилить С на уровне студенческой подработки, правда сейчас бросил работать с С.

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

>С самого начала речь шла про сложность языка, т.е. сложность изучения, сложность понимания языковых конструкций и т.п.

Я ошибся, постом выше поправился. Думал про другой тред и всплыло это «применение на практике».

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

> Мне понадобилось два года, чтобы осилить С на уровне студенческой подработки

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

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

вот приходит к вам заказчик, и говорит что нужна большая и многопоточная софтина. про эралнги/кложуры слушать не хочет, с++ ему подавай. что делать?

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

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

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

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

Линду делать, естественно. Использовать message passing и на ассемблере никто не запретит. В большинстве случаев прекрасно можно без shared memory обходиться, без мутексов с семафорами.

Ну и, да, Пи-исчисление учить придется по любому, независимо от инструмента.

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

> Я с нуля учил.

Как первый язык? Зря. На роль первого языка Си не подходит совершенно.

Уровень знаний который требуется от С-программиста осилить за две недели - нереально.

Если уже умеешь программировать - реально. Не умеешь - не надо браться за Си.

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

Зависит от того сколько денег предлагает. Если много, то можно и с C++ потрахаться.

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

В Си нет потоков, они будут добавлены в C201x.

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

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

>Как первый язык? Зря. На роль первого языка Си не подходит совершенно.

Заигрывания с ассемблером в школе и паскаль в первый семестр института не считаем за изучение программирования. Зато после достаточно легко далась Java и C++.

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

>А если без лоровского позёрства?

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

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

Значит, Паскалю учили в универе очень херово. После Паскаля в Си учить-то нечего.

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

>На роль первого языка Си не подходит совершенно

Почему же это? Я выбрал в качестве первого именно С и даётся он довольно легко. В качестве первого - потому что очень поверхностные столкновения с Паскалем несколько лет назад практически не в счёт.

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

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

Всё зависит от того, что заказчика интересует. Вполне возможно, что его ограничения принципиальны для совместимости с чем-то, что обсуждаемого проекта не касается.

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

А кто тебе сказал, что ты хорошо научился программировать? Тебе еще много лет предстоит выбивать из головы ту дурь, которая там образовалась от изучения Си без подготовки.

Дается-то он, конечно же, легко, язык по любому простой, но первым языком он быть не должен, вредно это для здоровья.

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

Кроме того что он дебил, в этом посте он все правильно написал.

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

>А кто тебе сказал, что ты хорошо научился программировать?

А что вообще значит «хорошо научился программировать»? Где эта грань?

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

Дается-то он, конечно же, легко, язык по любому простой, но первым языком он быть не должен, вредно это для здоровья.

Вы уже который раз тут распространяетесь про вредность С в качестве первого языка, но ничего конкретного так и не сказали по этому поводу. Сдаётся мне, вы и не сможете сказать.

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

> А что вообще значит «хорошо научился программировать»? Где эта грань?

Когда дойдешь до этой грани - поймешь. А до тех пор блаб-эффект тебе мешает понять то, что за пределами твоего кругозора.

Вы уже который раз тут распространяетесь про вредность С в качестве первого языка, но ничего конкретного так и не сказали по этому поводу. Сдаётся мне, вы и не сможете сказать.

Конкретно, Си слишком низкоуровневый. Изучая Си надо одновременно изучать и устройство реального железа, и программирование вообще. В результате у студентов в голове неизбежно образуется редкостная каша - это так, эмпирическое наблюдение. Даже цепочка Лого-Паскаль-Си - и то дает намного более качественный результат за более короткий срок.

anonymous
()

>Зачем вам изучать инструмент ради просто так?

Думаю не помешает для общего развития. Вы против?

Ginki
() автор топика
Ответ на: комментарий от sched

То, что я написал — это пример из библиотеки protothreads (pt.h), самого необычного и красивого, на мой взгляд, использования Си. При помощи понятных макросов и используя только Си, она реализует абстракцию многопоточности. При подстановке макросы превращаются в switch-case, которые управляют переходом в точку, на которой происходит выполнение потока, причём переход по switch происходит внутрь бесконечного цикла («тела» потока). По-моему, это офигительно.

prischeyadro ★★★☆☆
()

Насчет первого языка для меня им стал php (когда впервые столкнулся с web), а потом изучил ruby, продолжаю в сторону pyhton, java. Я понимаю, что это плохо( начинать с php). Но языки изучал будучи не профессионально связанным с ними. Никто не учил и приходится в основном учиться на своих пробах и ошибках. А было это около года назад.

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

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

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

>Когда дойдешь до этой грани - поймешь

Грань выше это поставленная цель, сказать же «я научился хорошо программировать» можно только про уже достигнутую планку. Так вот, я научился хорошо программировать в тех пределах, что я изучил. Если же смотреть с высоты возможного мастерства, то сказать «он хорошо программирует» нельзя ни про одного человека в мире, потому что всегда есть куда расти.

Конкретно, Си слишком низкоуровневый

Ничего страшного.

Изучая Си надо одновременно изучать и устройство реального железа, и программирование вообще

Это уже ваша планка или планка тех студентов.

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

Не против, но это странно выглядит. Это как вздумать «а научусь-ка я работать перфоратором», и начать дырявить всё подряд неизвестно зачем.

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

я уже немного пересек грань дозволенного и хочу поплавать ниже. Мне никто в этом не помешает. Знать все сверху до низу это ли не прекрасно? продырявить я пока никого не могу. Может только стрельнуть разок в воздух.

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

>Заменить Си в его области применения практически нечем.

Lisp

anonymous
()

Си учить надо. Скрипты далеко не всегда подходят

cvs-255 ★★★★★
()
Ответ на: комментарий от sched

> Стандарт C++ показать?

Можешь не утруждать себя, он у меня на рабочем столе не первый год.

От того, что С++ чрезмерно сложен, Си простым не становится. Простым его считают в основном недоумки, прочитавшие K&R, написавшие пару хеллоуволдов, и внезапно решившие после этого, что с языком разобрались.

Именно такие недоумки пяток лет назад обожали устраивать многостраничные холивары про результат работы конструкций вроде ++i++. Разработчики компиляторов, чтобы хоть как-то унять эту вакханалию идиотизма, были вынуждены реализовать предупреждения про sequence points.

А сколько тонн быдлокода с нарушениями strict aliasing было понаписано, даже представить страшно. Он до сих пор в изобилии живет в vcs проприетарных говноподелок, до сих пор приходится вставлять квирки в мейкфайлы.

И такие проблемы в коде - сплошь и рядом, с эндианностью, с размерами указателей, с signed overflow. Проблемы, умноженные на зоопарк глюкавых компиляторов и молчаливый ub.

Навидался вас, простачков, до тошноты уже.

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

> Сявка убогая, «портабельный ассемблер» - это как минимум переносимый целевой язык для компиляторов

Вот только современный Си с агрессивными оптимизирующими компиляторами, от ассемблера весьма далёк.

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

> Конкретно, Си слишком низкоуровневый. Изучая Си надо одновременно изучать и устройство реального железа

Ололо. Язык Си определен в терминах больной на голову абстрактной машины. Трудами компилятора, в ней он и живет. Реальное железа от Си примерно на том же расстоянии находится, что и от Бейсика какого-нибудь.

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

>> Си - простой язык

4.2

легче только ассемблер

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

> 1) Почему это я простачок/недоумок?

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

2) У тебя ЧСВ не лопнет?


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

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