Паскаль vs С

Jan 31, 2014 18:24

Что такого расчудесного есть в паскале, что делает его офигительно хорошим первым изучаемым языком программирования ( Read more... )

программистское, преподавательское

Leave a comment

Comments 18

pphantom January 31 2014, 14:59:25 UTC
Как известно, "любая случайная последовательность символов является синтаксически корректной программой на C". Шутка, конечно, но не так уж далеко ушедшая от правды, а для первого языка это категорически недопустимо.

Reply

potan January 31 2014, 15:13:14 UTC
Если вторым брать K... ;-)

Reply


potan January 31 2014, 15:10:50 UTC
В паскале нет адресной арифметики, которая порождает странные ошибки.

Я бы первым языком давал Haskell. Элегантный синтаксис, удобный REPL, алгебраические типы данных и pattern matching, функции высших порядков, вывод типов - очень хорошо для первого языка.
Не должно быть в таком языке привязки к фреймвокам и IDE с автогенерацией большого количества кода, трудных понятий, которые необходимы уже в самом начале (адреская арифметика из таковых, другой пример - implicit в scala, хотя для нее есть удачная обучающая среда).

Reply

tat_ti January 31 2014, 18:38:29 UTC
В Паскале нет? ^

хаскель первым языком - это уже тянет на статью. За совращение несовершеннолетних.

Reply

potan February 1 2014, 08:41:43 UTC
Указатели там есть. Но нет арифметических операций с ними. От указателя на элемент массива нельзя перейти на указатель на соседний элемент.

Reply

pphantom February 1 2014, 08:56:25 UTC
Это не совсем верно.

Во-первых, уже много лет под Паскалем обычно понимают язык с расширениями (по крайней мере, от TP), поскольку компиляторов, поддерживающих только исходный вариант Вирта, просто нет. Соответственно, по крайней мере функции Inc() и Dec() для указателей всегда есть, и перемещаться по области памяти можно.

Во-вторых, массив - не обязательно выделенный непрерывный участок памяти. Это в C вместо массивов, по сути дела, "синтаксический сахар", полностью заменяемый адресной арифметикой, но вообще-то подобное не обязательно.

Reply


avnik January 31 2014, 15:16:51 UTC
паскаль -- он как латынь, мертвый язык.

Питон, может быть go (если хочется чего-то более низкоуровневого).
(можно взять какую нибудь книжку типа dive into python, и на ее основе налабать курс)
Ну и какие-то более менее практические задачи давать -- питон в этом плане хорош тем, что у него стандартная библиотека весьма развесистая.

Reply

tat_ti January 31 2014, 18:35:59 UTC
Да, вот стомильёнов за питон. Он на место "обработать данные эксперимента" и "налабать скрипт для конфига и запуска" подходит. И еще для тысячи новых задач.

Reply


(The comment has been removed)

tat_ti January 31 2014, 18:34:21 UTC
Ага, а потом у них курс использования юниховых сисколов и "группа же знает с, да?"

Какие нах методички? Нет.
Учебники? Уж лучше Окулов с его паскалем для школьников, чем К&R для среднестатистического "мой первый язык" студента.
Берем Дейтла или Прата. Наклепали несколько страниц в вики. Записали видео теории для проболевших.

Набор задач. Сделала. Заточила под С. Теперь буду делать квизы, которые между теорией и решением задач.

Мечтаю о первом питоне. Там учебники внятнее и для начинающих проще.

Reply


aywen January 31 2014, 18:06:58 UTC
Паскаль прекрасен именно тем, что там все элементы алгоритма записаны простым человеческим английским языком. Видно, где начало, где конец, где в функцию передаётся переменная, где значение. Никакой путаницы со скобками и звёздочками.

Reply

tat_ti January 31 2014, 18:46:24 UTC
В С везде значение. Это же вообще просто запомнить.
Просто иногда передается значение адреса.

Reply

potan February 1 2014, 08:45:49 UTC
Как раз параметры var в паскале и & в плюсах мне сильно мещали понимать чужей код. Видешь вызов процедуры и не знаешь, что произойдет с аргументами, не посмотрев сигнатуру. В C с этим значительно проще.

Reply


Leave a comment

Up