LINUX.ORG.RU

Какой язык программирования должен быть первым? Предлагаю bc


0

1

Наверное, такая тема поднималась и уже не раз — какой язык программирования стоит изучить в первую очередь тому, кто только начинает и никогда до этого не программировал.

Обычно таким языком становится pascal или basic в школе. Но почему? Ведь существует язык bc, причём уже давно. Язык простой, позволяющий производить вычисления с произвольной точностью, но при этом с довольно мощным си-подобным синтаксисом (единственное, жаль там тернарного оператора ?: нет).

Конечно, он не позволяет рисовать картинки, но для рисования картинок можно взять какую-нибудь Kturtle.

Так вот, поддерживаете ли вы bc как первый изучаемый язык? Заодно, для знакомства с другой концепцией программирования, будет интересен и язык dc, который можно давать одновременно — стековый. На мой взгляд, обратно-польский синтаксис самый прогрессивный из известных — странно, что им так редко пользуются.

★★★★★

>На мой взгляд, обратно-польский синтаксис самый прогрессивный из известных — странно, что им так редко пользуются.

Да, один из моих первых языков программирования — ассемблер МК-61.

Но почему? Ведь существует язык bc, причём уже давно.

Лучше чем C, это точно. Начиная с C студент будет учится избегать сегфолтов, утечек памяти и неинициализированных переменых. Вместо того чтобы учится программированию. Не зря же в MIT Scheme преподают.

elverion
()

> си-подобным синтаксисом

Нельзя детей приучать к вредному.

dave ★★★★★
()

только C и кресты, ИМХО

erfea ★★★★★
()

ассемблер же. желательно для RISC/MISC-архитектуры, чтобы мозги не расплавились раньше времени ;)

arsi ★★★★★
()

пыхапэ и 1с. чтобы сразу начали привыкать к нашей суровой реальности.

devl547 ★★★★★
()

В физ-мате - C, в гуманитарном - html.

C++ — зло, с него нельзя начинать. Неоднократно здесь на форуме видел плюсовиков, беспомощно пасующих перед стандартным сишным приемом («помогите! какой метод здесь использовать?»). Это ужасно.

ttnl ★★★★★
()

Главное для первого языка - толковое руководство для начинающего. У bc такого не найдено.

unsigned ★★★★
()
Ответ на: комментарий от alienclaster

> Scheme / Oberon-2 / Assembler

Хотя Logo кажется веселее. Этакий правильный qbasic.

alienclaster ★★★
()

Схема и только схема.

ugoday ★★★★★
()

Точно не стоит: C, Pascal, Basic и их производные.

Возможно стоит: Racket или Logo.

поддерживаете ли вы bc как первый изучаемый язык?

Нет. Узкоспециализированный язык для десятеричных вычислений произвольной точности — это ужасно далекая от программирования вещь. Вдобавок еще и калькулятор, где крайне мало людей смогут самовыразиться. А ведь нужно, чтобы им еще и интересно было... Короче, не подходит абсолютно точно.

На мой взгляд, обратно-польский синтаксис самый прогрессивный из известных — странно, что им так редко пользуются.

По-моему, ничего странного. Особенно, если взглянуть на арифметику.

Ассоциативность сложения:

a b c + + = a b + c +

Дистрибутивность сложения с умножением:

a c * b c * + = a b + c *

Ассоциативность при сложении 4х элементов:

a b c d + + + = a b c + d + + = a b c + + d + = a b + c + d + = a b + c d + +

sanuda
()
Ответ на: комментарий от ttnl

> C++ — зло, с него нельзя начинать. Неоднократно здесь на форуме видел плюсовиков, беспомощно пасующих перед стандартным сишным приемом («помогите! какой метод здесь использовать?»). Это ужасно.

Не столь ужасно то, сколь ужасно это. Особенно, когда этим отвечают на вопрос про ЯП, лучше всего подходящий для обучения.

sanuda
()
Ответ на: комментарий от sanuda

Неправильно, надо так:

Ассоциативность сложения:

a b c + + a b + c + = => true

Дистрибутивность сложения с умножением:

a c * b c * + a b + c * = => true

anonymous
()
Ответ на: комментарий от splinter

> Начни сразу с ООЯП - java, vala, ada а то потом трудно будет, по себе знаю.

Какой ужас. Бедные дети.

sanuda
()

modula(2,3), Оберон. Крайне простые языки, замена Си.

chinarulezzz ★★
()
Ответ на: комментарий от splinter

> Начни сразу с ООЯП - java, vala, ada а то потом трудно будет, по себе знаю.

то потом трудно будет, по себе знаю.


Аватарка намекает ;)

alienclaster ★★★
()

Кенгурёнок Ру и Пылесосик из, кажется, Роботландии ИМХО вне конкуренции.
Потом по усложнению наверное Лого с черепахой.
Ну а дальше пути расходятся - лиспо/С - образные.

GAMer ★★★★★
()

perl ещё никто не вспомнил почему-то...

nanoo_linux
()

начинать с C/C++/ASM это курс на 5 лет дальше или уходить из программирования (желательно) здоровый образ жизни нужен а не гнить за монитором опять же будеш там где сможеш заработать больше далеко не факт что это программирование будет или если ты «ПРИЗВАННЫЙ» дальше сам разберешся

anonymous
()

TeX/LaTeX

А потом уже все остальное...

Eddy_Em ☆☆☆☆☆
()

Петросянотреды в development... прикатились в СГ.

sanuda
()
Ответ на: комментарий от anonymous

не глупи не иди в программисты экономика финансы политика куда нить туда
потом сможеш наворовать себе на безбедную жизнь и старость
да или даже чем нить нелегальным займешся когда будеш в экономике финансах
шарить воруй это единственный способ жить в россии нормально
пойдеш в программисты ты просрал свою жизнь считай


anonymous
()
Ответ на: комментарий от sanuda

>haskell

Ну, если вот так, то возможно.

Идеальный старт

nCdy
()
Ответ на: комментарий от anonymous

>html - это не язык программирования

Гуманитариям хватит и его

ttnl ★★★★★
()
Ответ на: комментарий от Raving_Zealot

Правильная формализация исходной задачи путь к быстрому и успешному решению. Для формализации блоксхем достаточно :)

Jetty ★★★★★
()
Ответ на: комментарий от ttnl

> C++ — зло, с него нельзя начинать. Неоднократно здесь на форуме видел плюсовиков, беспомощно пасующих перед стандартным сишным приемом («помогите! какой метод здесь использовать?»). Это ужасно.

Да я вообще не понимаю, зачем C++ нужен. Ну разве что для Qt-й.
Всё, в тч и классы можно и на чистом C сделать, но C проще и понятней.

В физ-мате - C, в гуманитарном - html.

Не согласен про C — ведь вначале важно показать саму суть программирования. Я считаю, что лучше всего это показывать на простом языке с удобным синтаксисом, но тем не менее пригодном для решения практических задач. И в этом смысле bc идеален — он проще любого бейсика, на нем легко научиться писать и даже почти ничего не умея, им уже можно пользоваться как калькулятором.

А HTML вообще не язык программирования, так что идет мимо кассы. Или ты про жабо-скрипт?

Xenius ★★★★★
() автор топика

Либо С, либо ассемблер.

Zhbert ★★★★★
()

basic/pascal->( asm + C )->все-что угодно, таки начинать надо с простого и понимать как что работает «внизу»

aho
()

имхо, не императивный. Можно что-нибудь типа пролога, только почеловечнее, дети всё же. Или хаскель, но тоже попроще какой-нибудь, возможно, схема подойдёт, не знаком с ней.

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

> Или хаскель, но тоже попроще какой-нибудь
Тогда pure

имхо, не императивный.

Почему? Мне кажется, надо знать и о тех и о других. А с какого начать не так уж важно.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от unsigned

> Главное для первого языка - толковое руководство для начинающего. У bc такого не найдено.

man bc. Но если не устраивает, то его не так уж и трудно написать, ведь язык-то простой.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от sanuda

> По-моему, ничего странного. Особенно, если взглянуть на арифметику.

Ассоциативность сложения:


a b c + + = a b + c +


И что в этом не так?

Xenius ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Лучше просто
a b c + + a b + c + =
a c * b c * + a b + c * =

Xenius ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.