avva: (Default)
[personal profile] avva
(контекст)

Я время от времени вспоминаю это его высказывание:
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.


Первая нетривиальная программа в моей жизни была мной написана на Бейсике.

Ещё и какая забавная была программа: она вычисляла число пи до любого знака после запятой (это в теории; на практике больше тысячи было нереально, Бейсик начинал задыхаться). Делала она это, суммируя тригонометрический ряд, который сходился к пи с точностью до коэффициента. Притом самый естественный ряд такого рода -- а именно 1 + 1/3 - 1/5 + 1/7 - 1/9 + 1/11 .... = pi/4 -- использовать было нельзя, так как он сходится до невозможности медленно. Поэтому я пошёл в библиотеку, зарылся в справочники и нашёл быстро сходящуюся формулу. Это было разложение по арктангенсу: пользуемся тем, что pi = 16*arctan(1/5) - 4*arctan(1/239), а эти два арктангенса раскладываем в ряды по формуле arctan(x) = x - x3/3 + x5/5 - x7/7 + .... Такой метод давал больше одного значимого знака на каждую итерацию. Цифры я хранил в бейсиковском массиве, и ещё там были какие-то оптимизации, не помню.

Мне было, кажется, тринадцать лет. Я был безмерно горд и счастлив.


А афоризму Дейкстры этому я не верю, и никогда не верил. Он, несомненно -- забавен? остроумен? не знаю, какое слово подобрать взамен идеально подходящего здесь английского cute -- но одновременно глубоко неверен.

Date: 2002-08-07 02:11 pm (UTC)
From: [identity profile] sergeax.livejournal.com
Современный Visual Basic в исполнении Microsoft к Бэйсику прошлых лет со строчками 10 20 30 и т.п. отношения не имеет вообще никакого. Это язык, практически эквивалентный C или Java, с более жестким синтаксисом (что отчасти даже хорошо).
From: [identity profile] zc2.livejournal.com
Фразу "практически эквивалентный C или Java" я не могу простить. Вы уж извините...
From: [identity profile] anton.livejournal.com
А как это назвать, если они сделали все языки одинаковыми. C#, который в душе java, записанный операторами васика?
From: [identity profile] sergeax.livejournal.com
Вот сразу видно человека, незнакомого с понятием "эквивалентность языков программирования по Дейкстре".

Date: 2002-08-07 02:20 pm (UTC)
From: [identity profile] shaulreznik.livejournal.com
Не имеется ли в виду оператор GOTO, который действительно способен развратить нафиК будущего программера?

А я в 12 лет рисовал концентрические круги. И был счастлив :-)))

10 FOR R=5 TO 50 STEP 5
20 CIRCLE (100, 100, R)
30 NEXT R

Date: 2002-08-07 02:25 pm (UTC)
From: [identity profile] rydel23.livejournal.com
Класс. Я тоже.

Под Yamahu?

CP/M (предшевственица MS-DOS) + MSX Basic зашитый в ROM.

Хотя эти круги и в Корветском байсике были...

Date: 2002-08-07 02:41 pm (UTC)
From: [identity profile] shaulreznik.livejournal.com
Под советский какой-то компьютер. Львовский ПК-1? Нет, что-то более солидное.

(no subject)

From: [identity profile] rydel23.livejournal.com - Date: 2002-08-07 02:54 pm (UTC) - Expand

Date: 2002-08-07 02:28 pm (UTC)
From: [identity profile] avva.livejournal.com
Ну дык. Я до сих пор помню, как меня научили называть команды:

РУН
СКРЕЕН
КИРКЛЕ

(no subject)

From: [identity profile] rydel23.livejournal.com - Date: 2002-08-07 02:37 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2002-08-08 01:03 am (UTC) - Expand

(no subject)

From: [identity profile] syarzhuk.livejournal.com - Date: 2002-08-07 02:38 pm (UTC) - Expand

(no subject)

From: [identity profile] shaulreznik.livejournal.com - Date: 2002-08-07 02:39 pm (UTC) - Expand

в защиту Дейкстры ;-)

Date: 2002-08-07 02:27 pm (UTC)
From: [identity profile] zc2.livejournal.com
IMHO, смысл высказывания Дейкстры можно трактовать как верный с одной оговоркой: если под "ориентированных первоначально" имелось в виду выбранная самими студентами ориентация на то что попроще, разумеется при равной доступности других средств программирования. А Дейкстра, наверное, и представить себе не мог, чтобы талантливые математики пользовались бейсиком и вообще допотопной техникой как это происходило повсеместно в совке.
(deleted comment)

Date: 2002-08-07 02:39 pm (UTC)
From: [identity profile] syarzhuk.livejournal.com
Согласен - с поправкой. Все процедурные языки - C[++], Перл, Джава, Бейсик, Паскаль, PL/1, Фортран, xBase - таки да, взаимозаменяемы. Но функциональные языки - это нечто другое. Я так и не смог освоить Лисп и APL, хотя и не сильно старался :)
(deleted comment)

(no subject)

From: [identity profile] syarzhuk.livejournal.com - Date: 2002-08-07 02:44 pm (UTC) - Expand
(deleted comment)

(no subject)

From: (Anonymous) - Date: 2002-08-08 01:45 am (UTC) - Expand

(no subject)

From: [identity profile] cema.livejournal.com - Date: 2002-08-07 04:12 pm (UTC) - Expand

(no subject)

From: [identity profile] zc2.livejournal.com - Date: 2002-08-07 04:48 pm (UTC) - Expand

(no subject)

From: [identity profile] bish0nen.livejournal.com - Date: 2002-08-08 04:15 am (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] bish0nen.livejournal.com - Date: 2002-08-08 04:53 am (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] cema.livejournal.com - Date: 2002-08-08 08:25 am (UTC) - Expand

(no subject)

From: [identity profile] bish0nen.livejournal.com - Date: 2002-08-08 04:11 pm (UTC) - Expand

(no subject)

From: [identity profile] angerona.livejournal.com - Date: 2002-08-07 02:51 pm (UTC) - Expand

(no subject)

From: [identity profile] pingva.livejournal.com - Date: 2002-08-07 03:45 pm (UTC) - Expand

(no subject)

From: [identity profile] cema.livejournal.com - Date: 2002-08-07 04:18 pm (UTC) - Expand

(no subject)

From: [identity profile] pingva.livejournal.com - Date: 2002-08-07 04:46 pm (UTC) - Expand

(no subject)

From: [identity profile] cema.livejournal.com - Date: 2002-08-07 08:04 pm (UTC) - Expand

Не пробовала, но

From: [identity profile] myafa.livejournal.com - Date: 2002-08-09 12:43 pm (UTC) - Expand

Re: Не пробовала, но

From: [identity profile] cema.livejournal.com - Date: 2002-08-09 06:09 pm (UTC) - Expand

Re: Не пробовала, но

From: [identity profile] myafa.livejournal.com - Date: 2002-08-09 10:57 pm (UTC) - Expand

(no subject)

From: [identity profile] syarzhuk.livejournal.com - Date: 2002-08-08 07:32 am (UTC) - Expand

Date: 2002-08-08 01:29 am (UTC)
From: [identity profile] kukutz.livejournal.com
Зная любой из C/Java/Pascal/PHP/Perl etc. овладеть другим за два дня возможно.

Но овладеть SQL за два дня в объеме большем, чем SELECT *, UPDATE, INSERT представляется мне малореальным.

(no subject)

From: [identity profile] syarzhuk.livejournal.com - Date: 2002-08-08 09:03 am (UTC) - Expand

Позвольте оспорить.

Date: 2002-08-08 02:43 am (UTC)
From: [identity profile] prince-felix.livejournal.com
Извините, но Ваше утверждение по поводу двух дней очень спорно. Возможно выучить язык за два дня. Но применять конкретный язык для решения конкретных задач... Из "замеров" на работе мы получили 2 месяца. В этот срок человек обучается новому языку, находит особенности этого языка, находит и обучается использовать библиотеки, ориентируется в документации и т.д.

Конечно, если подходить формально, то все это к языку не относится, но ведь мы говорим о практике?
(deleted comment)
(deleted comment)

Date: 2002-08-07 02:43 pm (UTC)
From: [identity profile] syarzhuk.livejournal.com
13? Я в первом варианте диплома считал функцию Лагранжа по определению: интеграл фи-маленького по бесконечному промежутку. Считаем интеграл от -1 до +1, потом от -2 до +2, потом от -4 до +4 - пока разница между получаемыми таким образом значениями не станет меньше заданной погрешности. В результате у меня одна точка считалась по часу. Потом совершенно случайно нашел в какой-то книге аппроксимирующий полином, в результате все стало летать. Когда рассказал научному руководителю, он схватился за голову - почему, мол, раньше не спросил? А как я мог спросить о том, чего не знал?

Date: 2002-08-07 08:52 pm (UTC)
From: [identity profile] cema.livejournal.com
Это мне напомнило, извините, как один мой почти что одноклассник писал программу для раскраски карты (соседние страны разными цветами) таким образом, что для N стран у него было N вложенных циклов. Интересно не то, что он получил за это дело пятёрку, а то, что он быстро понял моё (очень дружелюбное, впрочем) объяснение, почему так делать не надо.

Date: 2002-08-07 03:08 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Моя первая программа была игра "Жизнь", написанная на PL/I. Мне было столько же лет.

Date: 2002-08-07 04:21 pm (UTC)
From: [identity profile] ullr.livejournal.com
Oh, congrats,
my first one was in PL/1 too (tick-tack-toe)
though I was only 10...

Date: 2002-08-07 03:34 pm (UTC)
From: [identity profile] eugen.livejournal.com
Приятно всё это читать.
Мои первые программы были на ДВК-2.

Не удержусь и я

Date: 2002-08-07 03:42 pm (UTC)
From: [identity profile] anton.livejournal.com
А моя первая программа (http://www.livejournal.com/talkpost.bml?journal=antonme&itemid=23019) была написана на компьютере "Нафаня" - советском (?) аналоге ZX Spectrum. Эхх.. (http://www.livejournal.com/talkpost.bml?journal=antonme&itemid=23019)

Date: 2002-08-07 03:48 pm (UTC)
From: [identity profile] pingva.livejournal.com
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.

А я еще слышал что-то такое про то, как Вирт на курсы Паскаля не брал фортранщиков. Пол, покалеченные на всю жизнь, структурно писать не научаться.

Date: 2002-08-07 11:54 pm (UTC)
ext_454496: (Default)
From: [identity profile] alexcohn.livejournal.com
я бы, в согласии с Максимом, сформулировал тезис Дейкстры более общо:
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на конкретный язык программирования: как потенциальные программисты они умственно оболванены без надежды на исцеление.
Дело в том, что в те времена, когда он это сказал, обучение программированию шло двумя путями: либо давали Бейсик как истину в последней инстанции (a.k.a. computer programming), либо говорили о структурах программ и данных, не привязываясь к языку (a.k.a. computer science). Впрочем, иногда вместо Бейсика давали COBOL или RPG - согласитесь, это еще хуже.

Date: 2002-08-08 01:38 pm (UTC)
From: [identity profile] vasja-iz-aa.livejournal.com
>А афоризму Дейкстры этому я не верю, и никогда не верил.

И я не верю. И в первую очередь, потому, что не считаю бейсик чем то ушербным. Есть разнообразные сферы человеческой деятельности, безусловно относяшиеся к категории "программирование". И в некоторых из них бейсикоподобные языки как раз удобны. В написании управляющих программ для новых ХайТек приборов, например.
Когда то, быть может, он и был справедлив. Когда слово "программирование" действительно хорошо описывало предполагаемую деятельность персонажей, потому как все занимались примерно сходными вещами в сходных условиях. Может быть, не знаю: не совсем уверен, что такое время было.
From: [identity profile] Вадим Сухотин (from livejournal.com)
Мне как-то пришлось дорабатывать программу на FoxPro, начатую другим программистом. Так вот в ней бейсиковские "уши" торчали на каждом шагу. Стиль программы был отвратителен.
1. Имена переменных соответствовали бейсиковским правилам: одна буква или одна буква и одна-две цифры.
2. Были заведены четыре массива для временных переменных разного назначения: v, w, w1, w2. При этом были ещё и переменные с именами вида v1, v5 и т.п., и эти переменные при чтении программы легко было спутать с похожими по названию элементами массива.
3. Процедуры и функции, за исключением одной (и то, судя по всему, позаимствованной у кого-то), не имели параметров. Значения в них передавались через общее пространство переменных. Если надо было передать значение в процедуру, перед её вызовом присваивалось значение определённой переменной, а в процедуре эта переменная анализировалась. В результате перед одним из вызовов этой процедуры тот товарищ забыл присвоить переменную, и процедура работала неправильно.

Я много сил потратил, чтобы сделать из этой программы что-то удобоваримое, с нормальными "говорящими" именами переменных, с параметрами у подпрограмм, с нормальными отступами и т.п.

Хотя, возможно, всё зависит от конкретного человека ?
Edited Date: 2014-06-23 06:22 pm (UTC)

dva voprosa ne po delu

Date: 2002-08-11 01:37 am (UTC)
From: [identity profile] posic.livejournal.com
1. Znaete li Vy pro raskhodyaschiesya ryady Ejlera-Maklorena? Mne kazhetsya, chto eto samyj bystryj posob vychislyat' chislo \pi i emu podobnye

2. (zlostnyj offtopik) Ne znakomy li Vy sluchajno s yuzerom [livejournal.com profile] oblomov_jerusal? On menya zaintrigoval svoej zagadochnost'yu.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 08:32 am
Powered by Dreamwidth Studios