Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   C и С++ В чём разница? (https://javascript.ru/forum/offtopic/4718-c-i-s-v-chjom-raznica.html)

Riim 17.08.2009 13:38

Цитата:

Сообщение от Kolyaj
то только с C/C++.

Я часто слышу об ошибках в проектировании языка.
Цитата:

Сообщение от Kolyaj
Если именно изучать программирование

Возможно, изучать C/C++ стоит для того, что бы понять эти ошибки и знать как плохо?

Kolyaj 17.08.2009 13:43

Цитата:

Сообщение от Riim
Я часто слышу об ошибках в проектировании языка.

Я щас не говорю о промышленном применении языка, с этими вопросами не ко мне. Я говорю про изучение основ программирования.

Riim 17.08.2009 14:19

Цитата:

Сообщение от Kolyaj
Хорошая статья Спольски на эту тему

Прочитал, довольно интересная точка зрения.

Kolyaj 17.08.2009 14:32

Цитата:

Сообщение от Riim
довольно интересная точка зрения.

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

Dmitry A. Soshnikov 17.08.2009 14:47

Цитата:

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

Да, С/С++ знать желательно, и мнение автора статьи тоже с одной стороны понять можно. С другой стороны, как он сам пишет:

Цитата:

Неужели я всего лишь один из тех старомодных ворчунов, вроде Четырёх Йоркширцев, которые хвастаются тем, как тяжело было жить в суровые старые времена?
Да, тоже возможно. Как правило, когда усиливается уровень абстракции, у людей, которые застали предыдущий уровень, начинается подобный эффект. И в лучшем случае, можно призвать мыслить на обоих уровнях абстракции - на новом и на старом (на котором "было тяжело жить в старые времена"). Но. Всё дело в том, что ниже своего первоначального уровня, они тоже не опускаются. Пусть пишет хотя бы про ассемблер тогда, не говоря уже о bin и hex-кодах. Пусть пишет, что надо подключать кабели и программировать так. Это нормальная закономерность. С/С++ - это сверхвысокие, высоко абстрагированные языки (относительно, конечно). Питонисты и Рубисты, уже могут называть Си - низкоуровневым языком. Всё движется. Через несколько лет (может, десятков), будет вообще всё по-другому. Будет такое же нытье про "вот вы, лодари, мы учили когда-то Ruby, а вы...".

Но и, повторю, призыв автора мыслить/знать несколько уровней абстракции, конечно, важный и нужный, каждый сам выбирает. Фишка в том, что в подобных призывах задействованы всегда лишь ближайшие к автору абстракции, сам он (абстрактно), как выяснится (в 90% случаев), не захочет углубляться в более низкие.

Цитата:

Сообщение от Kolyaj
Я говорю про изучение основ программирования

Ага, не забывай дописывать - (сверх)выскоуровневых основ.

Riim 17.08.2009 14:57

Цитата:

Сообщение от Kolyaj
все большее количество программистов не знают разницу между оператором << и умножением на степень двойки

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

Андрей Параничев 17.08.2009 20:01

Kolyaj,
Мне показалось, что автор считает С/C++ легкими для изучения и понимания основ программирования исключительно потому, что хорошо знает эти языки (а возможно и сам начинал с них). Но это не обязательно правда.

Как я уже писал в какой-то теме на форуме, я искренне считаю, что изучение программирования на примерах Паскаля и С++ (С#, Java) — глупость. И совсем не потому, что это промышленные платформы, просто потому что обучение на этих языках идет "от начала до конца", в них очень высокий порог вхождения. Гораздо выше, чем в скриптовые языки. И я считаю, что обучать программированию лучше на простых скриптовых языках, уходя "вглубь" и спускаясь "вниз", к тому, как это работает на низком уровне. И отдельно показывать особенности объектно-ориентированных и функциональных языков.

Цитата:

Сообщение от Kolyaj
Если именно изучать программирование, а не выучить какой-нибудь язык и стать очередным быдлокодером, то только с C/C++.

Быдлокодерами становятся только те, кто останавливаются на одном уровне знаний и не развиваются дальше, а совсем не те, кто начал, например, с php или perl. Быдлокодить можно и на C++, причем многие так и делают.

Эта тема вообще не про то, "с чего начинать учить программирование", но если человек уже знаком с программированием, то изучать С++, имхо, становятся просто бессмысленно. Учить, чтоб работать? В .NET доминирует C#, а не C++. Учить, чтоб понимать? Для этого совершенно необязательно учить именно C++, да и вообще понять можно и без привязки к языку.

Я вот начинал с php3, но про битовые сдвиги, почему-то, знаю. Может не в языках проблема, а в головах?

JSprog 18.08.2009 07:20

Умножение на степень двойки это перевести число в двоичную систему? или умножение на 2 в какой то степени?


Часовой пояс GMT +3, время: 06:43.