
Some shits about BASIC
- Колонка 1 (процедуры и функции)
- Колонка 2 (хороший стиль)
- Колонка 3 (коммерческая ценность)
- Колонка 4 (выход из употребления)
Колонка 1
procedure p1;
begin
Язык «бейсик» не имеет процедур (которые, вообще-то бесплатно не нужны), а главное не имеет блоков, называемых функциями (см. K&R, «язык Си»)
end;
Батенька, а зачем Вам функции? В Бейсике? Этот замечательный язык не пригоден для написания больших проектов, что я охотно признаю. Введение функций в него вынудило бы отказаться от столь замечательной вещи, как нумерация строк; язык бы усложнился, и не был бы так прост для изучения. Впрочем, есть DEFFN и подпрограммы
(* Ответ не убедителен. Это всё равно, что сказать, что танк не предназначен для езды на шоссе. А на фиг он тогда нужен? Deffn это макроопределение, против которых Вы так воевали. Gosub всего лишь аналог callа в Ассемблере. А для изучения гораздо проще Pascal, но об этом в следующий раз *)
Танк нужен, чтобы убивать и не быть убитым, а отнюдь не ездить по шоссе. DEFFN не макроопределение, а функция в прямом смысле этого термина. Насчет GOSUBа согласен, но что Вы имеете против? Учить проще Бейсик (и на много): для написания программы на Паскале (самой простой) надо знать: типы данных, блочность, видимость переменных и т. п. Вспомни Оккама надо отсечь всё лишнее!
function Otwet:real; begin
Но ведь мы говорим не об убийстве, а конкретно о написании программ! Deffn в GW-Basicе (а это истинный «бейсик») не дает больше, чем макрос. Единственно, это функция в Quick-basicе (shit) и в Basic-Plus (не MS). Но главное в Бейсике не реализован принцип «от простого к сложному». Все равно придется переучиваться!!!
end;
Вы же не требуете, скажем, от Паскаля поддержки, скажем, параллельного программирования на то есть, скажем, тот же Occam. Так зачем требовать от Бейсика принципа «от простого к сложному»? Юзай Паскаль, Си У Бейсика другая идеология программирования «Take it easy». Насчет «переучиваться». Почему не учить сразу C++ и ООП, все равно переучиваться? Надо знать разные идеологии и уметь мыслить в разных терминах.
(* Фортран ничуть не сложнее и значительно богаче, тем более, что для него существует огромная библиотека. А насчет изучения ООП почему бы и нет? Это Вам оно кажется диким, а Ваш сын может полюбить C++ с пелёнок. Даже TASM уже поддерживает ООП *)
Не имею НИЧЕГО против ООП, а также Фортрана. Но я бы посмотрел на того, кто начнет учиться с C++. Бедненький А зачем начинающему (Beginners All Purpose ) библиотека?
Резюме:
по-моему, мы друг друга ни в чем не убедили. Тем не менее Вы признали непригодность «бейсика» для решения сколь-либо серьезных проблем
Колонка 2
void p2(void)
{ Язык «бейсик» не формирует хороший стиль. Я сам полгода переучивался на том же Pascalе. А стиль, согласитесь, важен для ∀ уважающего себя программиста
}
А что называть «хорошим стилем»? По моему, каждый понимает это по своему. Попробуйте как-то определиться, а то о чём мы говорим?
/* Конечно, я согласен с Дональдом Ёхндтом Кнутом и с Вами. Но кроме того, программа, если это не системная утилита, должна быть
а) легко читаема
б) легко исправлена и дополнена
в) иметь возможность, чтобы её использовали как некую библиотечную функцию.
Согласитесь, что «бейсик» не обладает этими свойствами. */
1. Не согласен с в) как с элементом хорошего стиля (ХС) ХС должен быть в ∀ программе, а в) требуется далеко не всегда.
2. Язык C (пригодный не только для сист. программирования), допускает такой стиль, что хорошим его назовёшь. Даже на Паскале можно написать коряво (goto), если не соблюдать некоторые требования. А если требования соблюдать, то и на Бейсике можно писать «читабельно» и «модификабельно».
{ Ну ладно, в) это хрен с ним, с Вами можно согласиться, но согласитесь и Вы, что хорошим инструментом (см. Дональда Ё. Кнута) работать куда приятнее, быстрее, удобнее и вообще лучше. А уж если руки не тем концом вставлены ничто не поможет, даже Pascal, C и Ada. }
Соглашаюсь, поэтому я и люблю Бейсик.
// Это, батенька, сильно отдает мазохизмом.
// Вы, не спорю, имеете нек-рый опыт
// программирования, имеете свой стиль.
// Устройство же «бейсика» не стимулирует
// развитие «читабельного» и «модификабельного»
// стиля.
Всё зависит от того, как учить язык. В Универе, при изучении Паскаля, нам старательно прививались традиции «хорошего» программирования. А если бы Вы учили его сами по описанию языка? С другой стороны, при освоении Бейсика можно привить обучаемому ХС. Согласен, что некоторые вещи можно на Бейсике написать более эффективно в ущерб ХС. Но это хорошо! Надо дать программисту свободу!
char **next(void) { Скажу Вам по секрету, что Паскаль я изучал сам, а на Корухову кое-что забил, тем более что она фанат «goto». А если нужна эффективность, пиши на Си и Ассемблере. Может быть, такой инструмент, как «бейсик» Вам «по руке», но любителей того же Паскаля куда больше }
На любителей Паскаля я, мягко говоря, чхал. На мой взгляд, Бейсик позволяет при желании писать хорошо, а позволяет и эффективно что и нужно хорошему программисту. И не надо навязывать мне Си и Ассемблер (при всем моем к ним уважении).
А) Вы же меня тыкали носом в Pascal и C!
Б) На «бейсике» в силу интерпретируемости нельзя написать сколько-нибудь эффективную программу.
В) Что такое хорошо, каждый понимает по-своему, и найдется не так много извр-цев, которые с Вами согласятся.
По моему, я показал, что сформулированным Вами выше требованиям Бейсик удовлетворяет. Чего же боле?
Колонка 3
subroutine p3
Не будем «махать кулаками после p2», лучше я Вас потом просто побью (шутка).
Программа, написанная на языке «бейсик» не имеет коммерческой или любой другой ценности. Химики и те пишут на C++.
end.
Насчёт коммерческой ценности могу согласиться Бейсик не индустриальный язык. А насчет «∀ другой» готов поспорить. На Бейсике можно с успехом писать полезные программы, от которых требуется не real time, а interactive; на нём можно учиться программированию; и вообще он All Purpose.
c Как Вы заметили, «бейсик» язык не
c индустриальный => не All Purpose.
c А всё остальное прекрасно пишется и на другом
c языке. Так зачем создавать себе искусственные
c трудности, когда их и так хватает?
Каждый язык чем-то хорош, чем-то плох. Зачем мне использовать какой-то «другой» язык, если я с успехом могу сделать это на Бейсике, не поимевая никаких «искусственных трудностей», а наоборот? А создание «универсального языка» сами знаете чем кончилось (завершилось).
Я считаю, что на «другом» языке это можно сделать лучше. А Ваша «простота» потом Вам же и выйдет боком. Безусловно, чтобы постирать носки, не надо заводить стиральную машину, но «зачем надрыватся, если есть механизмы»?
Разговор перестал быть конструктивным. Я считаю, что ряд задач решается на Бейсике проще (и приятней), Вы нет. Если ничего более конструктивного Вы не имеете, предлагаю приступить к другой теме досрочно.
Пожалуй, я с Вами согласен. Но ведь и разговор-то затевался из-за разногласий. Т. е. Вы признаете, что не смогли меня убедить?
Если Вы не хотите признать, что некоторые вещи делать на Бейсике проще и лучше (чего стоят READ/DATA, встроенная графика и т. д. и т. п ), то, пожалуй, я бессилен.
Ну, «встроенная» это через зад реализованная библиотека; а разговор действительно вырождается в спор о том, кто же дурак. Поэтому переходим к следующей теме. А здесь можете что-нибудь нарисовать.
<Form Feed>
'\x0C'
Колонка 4
p4 proc near
В общем-то, все недостатки языка «бейсик» уже сформулированы невозможность расширения, плохой стиль и коммерческая непригодность. Ни по одному вопросу, к сожалению, мы не пришли к соглашению. Но скажите, ради Бога, почему же такой «хороший» язык уходит из употребления, и даже в школе переходят на Pascal и Лого?
p4 endp
Лого вообще язык детский, и кому он нужен не ясно (кроме обучения азам). А тех, кто начинает с Паскаля, мне искренне жаль они так много теряют И как правило, этим гордятся, пижоны несчастные.
; «Бейсик» тоже можно обозвать детским языком.
; А ещё заманчиво, конечно, объявить всех
; пижонами и shitом, а себя на ним, но ведь
; стащат вниз и окунут!
1. На Бейсике всё-таки можно писать приличные вещи, в отличие от Лого.
2. Насчет пижонов это личный опыт.
3. Насчет стащить пусть попробуют.
; А) Я убежден в обратном на Лого можно, на «бейсике» нет.
; Б) Пижоны Бог с ними, но кто-то не без основания считает пижоном Вас.
; В) Когда стащат будет поздно.
; Г) А на вопрос «почему» Вы так и не ответили.
Г) Время изменяется, появляются новые языки, и требовать от школы по старинке учить Бейсик по меньшей мере странно. Но совсем-то от него отказываться зачем он вовсе не плох.
А) Ну-ну, напиши что-нибудь на Лого.
Б) Ну что ж, если не без основания
В) Без комментариев.
А, Б, В) Это опять глупые пререкания. Однако если Вы достанете компилятор Лого и поставите задачу, я, пожалуй, потрачу часок-другой личного времени.
Г) Вообще-то, преподаватели тоже не такие уж дураки, и если они считают, что Pascal > Basic, значит, что-то в этом есть.
А, Б, В) Когда достану обязательно скажу.
Г) После того, как я объяснял одной преподавательнице, что такое цикл FOR/NEXT, а другому что такое многомерный массив (в 10-м классе), я в них (преподов) больше не верю.
АБВ) Ну-ну, приколемся.
Г) История знает и обратные примеры. Хотя моя информатичка тоже была тупа, как пробка. Заметь, они преподавали «бейсик»
Д) А на самом деле все это ерунда. Мы-то понимаем, что Бейсик «простой, красивый и любимый». Мне просто было интересно поспорить с тобой, но ты не проиграл. Поэтому предлагаю пожать друг другу руки.
Авторы: DouЪle W (курсив), e.g.Orius (прямой шрифт)