Как вы относитесь к паскалю?
, (есть гипотеза)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
| Страницы: (20) « Первая ... 3 4 [5] 6 7 ... 19 20 все ( Перейти к последнему сообщению ) |
Как вы относитесь к паскалю?
, (есть гипотеза)
|
Сообщ.
#61
,
|
|
|
|
Вроде в США Яву в школах преподают. Это в России учителя только Паскаль знают.
P.S. За невозможность создавать нормальный ГУЙ в 2002г. на ТР 7 я своего учителя на Паскале вспоминаю... не добрым словом... год жизни в пустую... |
|
Сообщ.
#62
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Ты путаешь отдельную сущность с объявлением сущности, а после этого говоришь о том, что нет путаницы? Хм... Что? Разговор зашел о разделении объявлений и определений. В качестве аналога ты предлагаешь заводить еще одну сущность - интерфейс. Ну и еще одним доводом против твоего предложения является тот факт, что так никто не делает(в отличие от объявлений/определений в языках, которые поддерживают такую возможность). Цитата Ява выглядит нелепо на фоне почти чего угодно. Ну возьми trait'ы в scala. Там можно задавать реализацию. Или еще более отдаленный пример - тайпклассы в Haskell. Кстати, их ты тоже предлагаешь их использовать в данном контексте? Я бы рассматривал выделение объявлений как расширенный вариант списка экспорта модуля или что-то в таком духе. Добавлено Цитата Keepun @ За невозможность создавать нормальный ГУЙ в 2002г. на ТР 7 я своего учителя на Паскале вспоминаю... не добрым словом... год жизни в пустую... GUI как раз неважен, ИМХО. И к программированию прямого отношения не имеет. |
|
Сообщ.
#63
,
|
|
|
|
Начинал... ну, наверное, это программирование в машинных кодах на Электронике Д3-28. Причём сразу в боевом режиме - обработка статистики производства за несколько лет и прогнозирование на будущее. И ведь заработало, практически сразу...
Паскаль - только что посчитал - был шестым. Хороший? нет. Сказать, что ненавижу - тоже нет. Такой средненький на то время язычок, главным образом от того, как там сделана работа со строками. Это уже много позже к нему начали прикручивать турбо-вижн и остальные прилады. Дисциплинирует? из шести начальных моих языков только в одном можно (можно!) было не сильно париться за переменные и протчая - GW-Basic. Остальные пять - Паскаль, фортран, и три ипостаси ассемблера (машинные коды ведь тоже он), попробуй там не озаботься. Нет в нём ничего такого уникально-образовательного. Мне вообще кажется, что его как образовательный просто кто-то красиво спозиционировал (или как сейчас говорят - пропиарил). Тогда ведь всё начиналось с абсолютного нуля, с чистого листа, аналогии с программированием на БЭСМах если и просматривались, то весьма слабенькие... вот кто-то и подсуетился. А все повелись. ИМХО. |
|
Сообщ.
#64
,
|
|
|
|
Akina
Всё правильно. Дейкстра создавал паскаль как работу над ошибками это был его 3 язык. Основная концепция паскаля была то что он был одно проходным. А потому простым откуда видиммо и родилось, то что ему надо учить. А если учесть что он занимался им в вузе, то понятно что ему как-то надо было оправдать его создание. Кстати паскаль не сильно отличается от Си. Разве что в Си были другие концепции положены. Всё есть функция. И работа с указателями. Правда практика критерий истины. И реалии таковы что реализации играли существенную роль. Откуда в Borland Pascal паскаль появились указатели. Да и работа со строками. Собственно и в Фортране ввод вывод не был стандартизирован. А сейчас там и ООП есть. И боже упаси читать стандарта SQL. Макросы в ассемблере появились тоже для создания описания функций и локальных переменных. Приближая ассемблер к высокоурожайным языкам. А так как Си создавался как копия ассемблера, то первоначальное описание функции было другим. А потом только стандартизировалось в то, что имеем. |
|
Сообщ.
#65
,
|
|
|
|
Цитата korvin @ У тебя много сложных приватных методов и полей в классах? Может стоит подумать о рефакторинге? =) При чём тут сложные? Я хочу удобно увидеть всё, что есть в классе, а не в публичном интерфейсе его экземпляра. Просто увидеть, сжато и коротко. С такой возможностью гораздо удобнее поддерживать код. Цитата korvin @ А при каждом изменении приватных методов и полей (читай реализации) придется перекомпилировать все унаследованые классы? Придётся или нет совсем не зависит от чисто синтаксического разделения объявления и реализации сущности. Является ли интерфейс типом - это тонкий вопрос. Я не хочу на эту тему спорить, но даже если и является, то не тем типом, который я хочу видеть, хотя бы из-за отсутствия protected сущностей, я уж не говорю про всякие видимости в пределах пакета/сборки и т.п. Иными словами, выше я уже написал, что меня интересует удобство поддержки кода, а не вопрос предоставления пользователю списка доступных ему методов, что интерфейсы и делают. Добавлено Цитата Pavia @ Дейкстра создавал паскаль Вирт же. Цитата Pavia @ Разве что в Си были другие концепции положены. Всё есть функция. Нет там ничего подобного. Всё функция - это функциональщина. А сишечка - обычный процедурный язык. |
|
Сообщ.
#66
,
|
|
|
|
Цитата Pavia @ Дейкстра создавал паскаль как работу над ошибками это был его 3 язык. Паскаль создавал Вирт, который после Паскаля не прекратил свою "работу над ошибками", в результате чего появились Модула, Модула-2, Оберон и Оберон-2(от которых пошли компонентный паскаль и др. языки, но это уже другая история). Добавлено Цитата --Ins-- @ И у меня нет рационального объяснения для этого, почему в новых языках так не делают Кстати, Вирт и сам убрал это разделение при переходе с Модула-2 на Оберон. В статье где он поясняет, почему он убрал/добавил то или иное средство, он ничего по этому вопросу не прояснил... Цитата Интерфейсная и исполнительная частислиты воедино: имена, которые должны быть видны в клиентных модулях, т.е. экспортируемые идентификаторы, помечаются специальными знаками и они обычно предшествуют описаниям тех объектов, которые не экспортируются. При компиляции генерируется измененный объектный файл (object file) и новый символьный файл (symbol file). В последнем содержится информация об экспортируемых объектах, которая впоследствии используется при компиляции модулей-клиентов данного модуля. |
|
Сообщ.
#67
,
|
|
|
|
Видеть результат выполнения своей программы на компе тоже надо. Иначе велик шанс, что обучаемый просто не заинтересуется программированием. Добавлено Цитата Qraizer @ Только в одном случае: кастомная реализация на каждый случай. При этом никто не мешает так же поступать в Плюсах, коли припечёт. Думаю, нельзя сбрасывать со счетов то, что компилятор Си более простой, чем С++. Поэтому запросто может быть так, что под ту платформу, что ты пишешь, С++ компилятор хоть и есть, но генерит плохой код. |
|
Сообщ.
#68
,
|
|
|
|
korvin похоже и вправду не понимает чем синтаксическое отделение интерфейса от реализации отличается от интерфейсного типа
|
|
Сообщ.
#69
,
|
|
|
|
Цитата MyNameIsIgor @ Да фигня это всё. Лично меня в плюсах разделение объявления и определения очень радуют. А в этих джавошарповских портянках фиг разберёшься. Это самое, а есть ли в шарпе кодеэксплорер как в дельфях? Типа чтоб сам сбоку выписал что там в классе есть. А то сидишь в кокретном методе и вынужден сбоку держать дубль окна со сверутыми объявлениями((( |
|
Сообщ.
#70
,
|
|
|
|
Цитата Keepun @ За невозможность создавать нормальный ГУЙ в 2002г. Гы, а я как раз в том же 2002-м на паскале запилил свой гуй-фреймворк для графического (не текстового) режима DOS, в ту пору, когда еще не был избалован готовыми подобными фреймворками. Считаю, что это внесло огромный вклад в обучение программированию, по крайней мере - гораздо больше, чем если бы просто формошлепил на готовом. В обучении без изобретения велосипедов никуда |
|
Сообщ.
#71
,
|
|
|
|
Цитата --Ins-- @ Считаю, что это внесло огромный вклад в обучение программированию Вряд ли огромный. Сомневаюсь, что в ходе данной работы удалось познакомится с реализацией большого количества алгоритмов и типов данных Добавлено Вообще, я убежден, что наибольший вклад в обучение программированию вносит чтение кода, а не его написание. |
|
Сообщ.
#72
,
|
|
|
|
Цитата D_KEY @ Разговор зашел о разделении объявлений и определений. В качестве аналога ты предлагаешь заводить еще одну сущность - интерфейс Не надо заводить, она и так есть. Цитата D_KEY @ Или еще более отдаленный пример - тайпклассы в Haskell. Кстати, их ты тоже предлагаешь их использовать в данном контексте? Крайне неудачный пример, в Хаскелле нет классов. Цитата MyNameIsIgor @ Просто увидеть, сжато и коротко. Там выше скриншот был. Цитата OpenGL @ Видеть результат выполнения своей программы на компе тоже надо. Иначе велик шанс, что обучаемый просто не заинтересуется программированием. Какой программы? Ты же про алгоритмы говорил. Цитата --Ins-- @ korvin похоже и вправду не понимает чем синтаксическое отделение интерфейса от реализации отличается от интерфейсного типа Да ну? Может ты расскажешь? |
|
Сообщ.
#73
,
|
|
|
|
Цитата Мяут-Настоящий @ Вообще, я убежден, что наибольший вклад в обучение программированию вносит чтение кода, а не его написание. Но только после написания своего Иначе читать бесполезно. Для того, чтобы лучше понять полезность того или иного подхода и решения, нужно самому до него созреть, а потом узнать как это называется и как делается правильноЦитата korvin @ Да ну? Может ты расскажешь? Да ну нафиг, тут было попробовали - как горох об стену. Первая и последняя попытка. Объявление интерфейса модуля/класса как в Паскале/Дельфи - это чисто синтаксическая вещь. Цель - чисто визуальное отделение объявлений и заголовков от реализации для лучшей читаемости кода. Интерфейсный тип данных в свою очередь - это новая сущность, новый тип. И цель у него совсем другая - не визуальное отделение объявлений от реализации, а предоставление клиенту набора доступных ему методов. Вовсе не для читаемости кода, а для совершенно конкретных практических соображений. Оно вообще никак не пересекается с целью синтаксического отделения потому как лежит совсем в другой плоскости потребностей, так что использовать его для этой цели - это забивание гвоздей микроскопом. Мало того, что микроскоп используется не по назначению, так еще и хреново гвозди забивает - нельзя с помощью интерфейского типа отразить объявления целого ряда членов, о которых было сказано выше (протектед, приват, статик и т.д.) |
|
Сообщ.
#74
,
|
|
|
|
Цитата Цитата Какой программы? Ты же про алгоритмы говорил.Видеть результат выполнения своей программы на компе тоже надо. Иначе велик шанс, что обучаемый просто не заинтересуется программированием. алгоритмы - алгоритмами, но начинающему очень полезно наглядно видеть то, что он делает. Мало кому приносит удовольствие решать академическую задачу с вводом двух чисел в консоли и последующим выводом туда же. Лично у меня был дельфи (5й) в институте (первым, был и асм, но позже), и по началу меня бесило что я не мог сразу разобраться со св-вами (да, нам на первых парах рассказывали про VCL) и понять как сделать процедуру. А когда разобрался - дальше я уже развивался сам, это был лишь толчок к самообучению, и к концу курса я уже сам все изучал в практическом программировании, институт лишь подкидывать задачи по алгоритмам. И насколько я знаю из моей группы больше никто не пошел дальше (по крайней мере в проф.деятельность). Небыло бы удобного гуя - и меня бы это не заинтересовало, торговал бы сейчас китайским товаром или стоял в цехе за станком. А главное в институте - не научить алгоритмам, а научить учиться дальше, подтолкнуть и вызвать резонанс, дальше учащийся уже сам попрет. Программированием можно заниматься "для себя" когда задача интересная или ее делать интересно. Кому интересны академические задачи? 99% нужны чтобы сделать, сдать лабу и забыть. Банальные алгоритмы заполнения матриц и операций над ними гораздо привлекательней выглядят в GUI, а не в архаичной консоли и выводом в тестовый файл |
|
Сообщ.
#75
,
|
|
|
|
Цитата korvin @ Какой программы? Ты же про алгоритмы говорил. Той, которую пишешь, обучаясь реализовывать алгоритмы. Интерпретатор "мозг" для этого не очень удобен. |