HLFX.Ru Forum Страницы (5): [1] 2 3 4 5 »
Показать все 64 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Безумно сложный язык программирования (https://hlfx.ru/forum/showthread.php?threadid=2362)


Отправлено Дядя Миша 04-10-2010 в 09:59:

Talking Безумно сложный язык программирования

Так уж исторически сложилось (и мне не кажется, что это правильно), что С\С++ традиционно считаются самими сложными языками высокого уровня.
Этим меня помнится пугали еще хрен знает с какого года: мол изучение новичком С++ - это как удар головой в закрытую дверь с разбегу.
Но я, как человек, непонаслышке знакомый с булевой алгеброй, и коротавший время в пятом классе за составлением таблиц истинности для очередного цифрового устройства на советских логических элементах, им не поверил. Потом мне конечно приходилось сталкиваться с другими языками и каждый раз они вызывали стойкое отторжение совершенно уродским синтаксисом. В том же делфи, меня к примеру бесит begin\end и :=. В каком-нибудь C# вообще нихрена непонятно что происходит - там конструкции совершенно немыслимые, такое ощущение, что половину кода дописывает компилятор. Но опять же - дело привычки, не спорю.
Вопрос в другом: почему С\С++ считаются самыми сложными языками для освоения? Из-за прямой работы с памятью? Или из-за отстутвия нормальных инструментов для работы со строками по умолчанию?
Те, кто осваивал язык - напишите, что вам давалось труднее всего.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 04-10-2010 в 11:00:

>> мол изучение новичком С++ - это как удар головой в закрытую дверь с разбегу.

У меня это именно так и происходит.

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено PomanoB 04-10-2010 в 11:04:

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

Делфи тоже бесит, он наверное бесит всех кто не изучал его в школе

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

Особо сложного в С++ вроде нет, но труднее всего виртуальные функции, мне кажется, но, опять же, это не так трудно разобраться с ними


Отправлено Дядя Миша 04-10-2010 в 12:24:

Цитата:
PomanoB писал:
С# для меня казался непонятным, пока не начал его изучать, там действительно много таких вещей которые преобразует компилятор, но всё равно, достаточно похоже на С

Это современная замена бейсику, микрософт его позиционерует именно так.
Цитата:
PomanoB писал:
Особо сложного в С++ вроде нет, но труднее всего виртуальные функции, мне кажется, но, опять же, это не так трудно разобраться с ними

Самое жуткое в С++ - создать указатель на функцию внутри класса и правильно к ней чего-то присвоить. Я до сих пор этого толком не умею кстати. Да и сам Страуструп не одобряет указатели на функции ЕМНИП, как раз и рекомендует юзать виртуальные функции, хотя они не перекрывают указатели на функции по возможностям.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено DEAD MAN 04-10-2010 в 14:57:

Что мне даётся труднее всего? А то, что препод. в универе несёт ахинею себе под нос, видимо считая, что всем всё понятно у всех до у до универа уже была какая-то база знаний. А при попытке одновременно втыкать какую-нибудь книгу, типа Язык программирования Си от Б. Кернингана и Д. Ритчи - получается когнитивный диссонанс и в итоге вообще ничего непонятно.

Фух, высказался.


Отправлено Дядя Миша 05-10-2010 в 09:43:

Цитата:
DEAD MAN писал:
препод. в универе несёт ахинею себе под нос

например?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-10-2010 в 09:50:

С++ - очень простой язык для тех, кто его не знает, и очень сложный для тех, кто его знает. Звучит как парадокс? Вовсе нет. Просто многие видят в нем "Си с структурами, в которые можно пихать функции". Если же смотреть глубже, начать работать с шаблонными классами и функциями, реализовывать в нем различные паттерны, тщательно разобраться с STL и Boost (я уж не говорю о том, чтобы попробовать самому написать шаблоны, подобные бустовским!) - приходит понимание того, что язык очень сложен. Но тот, кто разобрался во всём этом - сможет писать эффективный и (внимание!) читабельный код, который в дальнейшем легко поддерживать другим людям.
В С# все эти же вещи реализуются зачастую скрыто от пользователя, поэтому нечитабельный код на нём написать несколько сложнее
Современная замена бейсику - это вовсе не С#, а VB.Net. Но я его смотреть так и не стал. С# пришлось изучать и даже сдавать по нему экзамен, впечатление осталось примерно такое "ну java как java..."
Обжект паскаль - очень мощный язык, содержащий в себе практически весь функционал Си и при этом намного читабельнее. Но увы, ООП-надстройки его сильно изуродовали, да и видно, что не только VCL для языка, но и местами язык под VCL подгоняли

Что в С++ было сложно для меня, когда я начал его изучать? Ну вот примерный список:
1) Что такое void и почему оно встречается в таких количествах?
2) Почему нельзя просто присваивать строки? Почему надо постоянно юзать strcpy? (до этого я работал в бейсике и делфи, ну вы понели)
3) Почему конструкция for выглядит так дико?
4) Почему у массивов нет функций LBound и UBound?
5) В чем разница между указателем на константу и константным указателем?
6) Зачем нужна эта сцаная стрелка у указателей? Почему нельзя обходиться той же самой точкой?

Ну может, что-то еще было. Всего не вспомнишь

__________________

xaerox on Vivino


Отправлено Дядя Миша 05-10-2010 в 09:59:

Цитата:
XaeroX писал:
Почему нельзя просто присваивать строки? Почему надо постоянно юзать strcpy? (до этого я работал в бейсике и делфи, ну вы понели)

это по-моему для всех было больным местом. Ведь даже в примитивном куси строки можно присваивать.
Цитата:
XaeroX писал:
Почему конструкция for выглядит так дико?

а как надо?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Wealth 05-10-2010 в 11:39:

А может ктота посоветовать хорошый учебник ?


Отправлено Дядя Миша 05-10-2010 в 12:31:

Цитата:
Wealth писал:
А может ктота посоветовать хорошый учебник ?

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-10-2010 в 13:37:

Цитата:
Дядя Миша писал:
а как надо?

Ну, как во всех остальных языках.

паскаль:
for i = 0 to 10 do
begin
...
end;

бейсик:
For i = 0 to 10
...
Next i

__________________

xaerox on Vivino


Отправлено Дядя Миша 05-10-2010 в 15:28:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 05-10-2010 в 15:37:

Дядя Миша вложенные вот так:

for i := 0 to 10 step 2 do begin
for j := 0 to 10 do begin
...
end;
end;

For i = 0 to 10 Step 2
For j = 0 to 10
...
Next j
Next i

А несколько итераторов в одном условии - нельзя.
В том то и смысл, что в С++ конструкция for это целый блок кода, где можно какую-то логику реализовать, а в остальных языках - именно цикл "от и до" и ничего больше. Что логично и читабельно.

__________________

xaerox on Vivino


Отправлено Government-Man 05-10-2010 в 16:10:

Тем кому C++ кажется слишком трудным для изучения - не надо пытаться сразу освоить весь язык. Пишите сначала простые программки с использованием самых простых возможностей. Когда начнете писать их уверенно - переходите к более сложному. Главное - практика. Лично я до сих пор иногда узнаю какие-нибудь новые для себя нюансы, хотя C++ начал изучать почти 5 лет назад...


Отправлено FiEctro 05-10-2010 в 16:49:

Government-Man
Можешь привести пример таких задачек? Я и сам простенькое писал, но написать что то сложнее, даже в голову не пришло.
Особенно интересуют матрицы, обратные матрицы, и т.п.


Временная зона GMT. Текущее время 09:10. Страницы (5): [1] 2 3 4 5 »
Показать все 64 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024