Как вы относитесь к паскалю?
, (есть гипотеза)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
| Страницы: (20) « Первая ... 2 3 [4] 5 6 ... 19 20 все ( Перейти к последнему сообщению ) |
Как вы относитесь к паскалю?
, (есть гипотеза)
|
Сообщ.
#46
,
|
|
|
|
Почему? Это то же самое, только гибче, т.к. модули в этих ваших паскалях не «first-class citizens». Цитата --Ins-- @ во-вторых - это не будет то же самое, т.к. методы интерфейсного типа должны быть публичными И? Как будто процедуры интерфейсной части модуля могут быть какими-то другими. И что? Это часть реализации модуля/объекта, в чем проблема? А что с ними? |
|
Сообщ.
#47
,
|
|
|
|
Цитата OpenGL @ Думаю, что при обучении плюсам обучаемый будет фактически учиться языку "С с классами", что, разумеется, сложнее, чем просто Си. Да почему сложнее-то, когда классы с методами гораздо проще воспринимать и создавать, чем структуры + отдельные функции? Цитата А что такое, с твоей точки зрения, "обучение"? Я говорю про развитие алгоритмического мышления, т.е. способности реализовывать то, что еще не реализовано, пользуясь тем, что уже реализовали. А в этом случае из перечисленного тобой будут полезны, пожалуй, только динамические массивы - без остального без существенных на данном этапе неудобств можно обойтись. Я не предлагаю пуститься во все тяжкие и изучать С++ во всей его полноте. Начальные курсы вообще под язык заточены быть не должны. Я предлагаю не ограничивать себя возможностями Си. С++ позволит тебе обучить всему тому, что позволил бы обучить Си, плюс основам ООП и обобщенного программирования, исключениям, управлению ресурсами, да даже немного функциональщину можно затронуть посредством лямбд и функций высших порядков(если еще алгебраические типы данных появятся...), кроме того, позволит не обращать внимание на детали, когда это будет не нужно. В общем, не вижу смысла ограничивать себя возможностями си. Добавлено Без создания лишних сущностей(интерфейсов) в явашарпах это сделать нельзя. Ты не путай две разные сущности с разделением объявления и определения одной и той же сущности. У Бертрана Мейера это называется краткой и полной формой класса, если правильно помню. Но он предлагает, чтобы среда разработки могла легко предоставить краткую форму. Я нахожу, что это менее удобно, чем явное разделение. |
|
Сообщ.
#48
,
|
|
|
|
Eclipse Ouline? ![]() Ну или javadoc на худой конец |
|
Сообщ.
#49
,
|
|
|
|
Цитата --Ins-- @ ООП учить нужно, и мышление соответствующее, иначе потом задолбешься разбираться в чьем-то коде, где вместо того, чтобы сделать пару классов с парой виртуальных методов, стоит огромный свитч на каждый чих, а код новый код пишется методом copy/paste и поиском всех этих свитчей, куда нужно его вставить Так я с этим не спорю. Я о том, что начинать обучение с этого вряд-ли стоит. А то, что после изучения основ программирования вряд-ли станешь писать нормальный код - по-моему и так очевидно. Цитата D_KEY @ Да почему сложнее-то, когда классы с методами гораздо проще воспринимать и создавать, чем структуры + отдельные функции? Это сейчас кажется, что проще. А вот зеленому новичку так может не казаться. Я, например, не сразу понял, для чего вообще классы нужны. Верней, понял-то сразу (ибо в книге было написано), но прочувствовать это удалось только чуть позже, когда, фактически, к пониманию необходимости классов я сам пришел ![]() Цитата D_KEY @ С++ позволит тебе обучить всему тому, что позволил бы обучить Си, плюс основам ООП и обобщенного программирования, исключениям, управлению ресурсами, да даже немного функциональщину можно затронуть посредством лямбд и функций высших порядков(если еще алгебраические типы данных появятся...), кроме того, позволит не обращать внимание на детали, когда это будет не нужно. Ага, а лисп, судя по прошлым местным холиварам, позволит еще больше. Но дело же не в возможностях языка. Просто я считаю, что для обучения (в том смыле, что я озвучил выше) все это не надо - для обучения писанию алгоритмов вполне достаточно простого Си. А остальное - уже после того, как более-менее научишься мыслить хотя-бы процедурно. Да, может возникнуть вопрос, почему тогда я также за Питон. На самом деле - точно не знаю Вполне возможно, что из-за его сочетания лаконичности, возможностей и вроде как не сильно большого количества подводных камней. Цитата D_KEY @ Я не предлагаю пуститься во все тяжкие и изучать С++ во всей его полноте. Тогда зачем чуть выше про тонкости Си спрашиваешь? |
|
Сообщ.
#50
,
|
|
|
|
Цитата korvin @ Как будто в джавашарпах кто-то мешает писать интерфейс отдельно. Или в плюсах — в одном месте. Нет, в плюсах ничто не мешает всё слепить. Но интерфейсы - это не то: 1) Они ничего не говорят о приватных методах и полях, статических методах и полях. Т.е. в плюсах я просто открываю и вижу что у класса есть, это помогает читать реализацию. 2) Они не призваны служить объявления и определения, они для полиморфизма. Из этого следует некислый такой WTF-эффект читающего, если я интерфейсы для каждого класса напишу. |
|
Сообщ.
#51
,
|
|
|
|
Цитата OpenGL @ Это сейчас кажется, что проще. А вот зеленому новичку так может не казаться. Я, например, не сразу понял, для чего вообще классы нужны. Верней, понял-то сразу (ибо в книге было написано), но прочувствовать это удалось только чуть позже, когда, фактически, к пониманию необходимости классов я сам пришел ![]() Как только речь именно о структурах данных и операций над ними, классы и методы прямо ложатся на то, о чем идет речь. Я уже не говорю про абстрактные типы данных... |
|
Сообщ.
#52
,
|
|
|
|
Цитата D_KEY @ Как только речь именно о структурах данных и операций над ними, классы и методы прямо ложатся на то, о чем идет речь. Так это инкапсуляция только. |
|
Сообщ.
#53
,
|
|
|
|
Цитата OpenGL @ Ага, а лисп, судя по прошлым местным холиварам, позволит еще больше. Но дело же не в возможностях языка. Просто я считаю, что для обучения (в том смыле, что я озвучил выше) все это не надо - для обучения писанию алгоритмов вполне достаточно простого Си. Будет достаточно - ничего не имею против. Я против того, чтобы изначально ставить ненужные рамки. Используем С++ и все. А уж что конкретно мы будем использовать - будет зависеть от программы курса, а не языка |
|
Сообщ.
#54
,
|
|
|
|
Цитата D_KEY @ Без создания лишних сущностей(интерфейсов) в явашарпах это сделать нельзя. Ты не путай две разные сущности с разделением объявления и определения одной и той же сущности. Интерфейс есть всегда, хоть ты его явно прописываешь, хоть неявно в public-секции класса. Никакой путаницы. Цитата OpenGL @ для обучения писанию алгоритмов вполне достаточно простого Си. Для обучения алгоритмам используют псевдоязыки, в Си слишком много лишних подробностей и особенностей (ручное управление памятью, явная и при этом убогая система типов и прочие заморочки). |
|
Сообщ.
#56
,
|
|
|
|
Цитата MyNameIsIgor @ 1) Они ничего не говорят о приватных методах и полях, статических методах и полях. У тебя много сложных приватных методов и полей в классах? Может стоит подумать о рефакторинге? =) А при каждом изменении приватных методов и полей (читай реализации) придется перекомпилировать все унаследованые классы? Какая-то хреновая модульность получается. Цитата MyNameIsIgor @ 2) Они не призваны служить объявления и определения, они для полиморфизма. Отчего же? Интерфейс — это определение типа объекта. |
|
Сообщ.
#57
,
|
|
|
|
Цитата korvin @ Для обучения алгоритмам используют псевдоязыки Ты про блок-схемы? У языка, на котором учишься, должен же быть хоть какой-то интерпретатор-компилятор.Цитата Qraizer @ И ты им веришь? Нет. Но вполне допускаю, что они могут быть правы |
|
Сообщ.
#58
,
|
|
|
|
Цитата OpenGL @ Только в одном случае: кастомная реализация на каждый случай. При этом никто не мешает так же поступать в Плюсах, коли припечёт. Но вполне допускаю, что они могут быть правы |
|
Сообщ.
#59
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Без создания лишних сущностей(интерфейсов) в явашарпах это сделать нельзя. Ты не путай две разные сущности с разделением объявления и определения одной и той же сущности. Интерфейс есть всегда, хоть ты его явно прописываешь, хоть неявно в public-секции класса. Никакой путаницы. Ты путаешь отдельную сущность с объявлением сущности, а после этого говоришь о том, что нет путаницы? Хм... Добавлено В новой яве, например, вроде в интерфейсах можно указывать реализацию методов по умолчанию. Это выглядит достаточно нелепо на фоне твоих заявлений |
|
Сообщ.
#60
,
|
|
|
|
Цитата OpenGL @ Ты про блок-схемы? Нет. Цитата OpenGL @ У языка, на котором учишься, должен же быть хоть какой-то интерпретатор-компилятор. Да — мозг. Цитата D_KEY @ Ты путаешь отдельную сущность с объявлением сущности, а после этого говоришь о том, что нет путаницы? Хм... Что? Цитата D_KEY @ В новой яве, например, вроде в интерфейсах можно указывать реализацию методов по умолчанию. Это выглядит достаточно нелепо на фоне твоих заявлений Ява выглядит нелепо на фоне почти чего угодно. |