LINUX.ORG.RU
ФорумTalks

А чем плох синтаксис современного BASIC?

 ,


0

1

Прежде всего речь о FreeBASIC.

На мой скромный взгляд, синтаксис весьма хорош и только местами излишне многословен.

Пример неудачного синтакиса (но ИМХО далеко не худшего) :

' Предварительное объявление функции 
' Перегружен по количеству символов
declare function getSomething () as integer
' Но зато можно отличить функцию от процедуры, и это хорошо:
declare sub doSomething ()
' А ещё аргументы читаются по-человечески:
declare function getSomebody (ByVal id as long, ByRef person as PersonalCard) as string

Примеры удачного синтаксиса:

for i=100 to 0 step -1
 for j=20 to 40 step 5
  ...
 next j
next i 
' can be written as "next"

do until A>B
...
loop

do
...
loop until A>B

do while A>B
...
loop

if A>B then
...
else if C>D
...
end if

For i As Integer = 1 To N
    Select Case i
    Case 1, 3, 5, 7, 9
        dummy += 1
    Case 2, 4, 6, 8, 10
        dummy += 1
    Case 11 To 20
        dummy += 1
    Case 21 To 30
        dummy += 1
    Case 31
        dummy += 1
    Case 32
        dummy += 1
    Case 33
        dummy += 1
    Case Is >= 34
        dummy += 1
    Case Else
        Print "can't happen"
    End Select
Next

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

Так почему же ныне так популярен обфусцированный вырвиглазный синтаксис?

Неужели физически набивание кода программы у кого-то отнимает столько времени, что объём кода действительно становится проблемой, и ради сокращения объёма в жертву приносится выразительность синтакиса, его человекочитабельность?

★★★★★

Последнее исправление: DRVTiny (всего исправлений: 2)
Ответ на: комментарий от Ivan_qrt

Т.е. плохо в нём то, что его авторы не родили ничего хорошего.

Например, в нём работают полноценные треды.

А в Python они есть?

Что важнее - свистульки для ТП в виде «женериков» или конкретная полезная функциональность? Мутексы, семафоры - об этом большинство пихтонщиков даже не слышали. А во FreeBASIC - обычный штатный функционал. Как и развитый графический движок, например. Я уж не говорю про банальную компиляцию.

И FreeBASIC же не только в машинный код транслирует исходники. Вы не знали?

Понятие хорошего у всех «разное». Для тех, кто пишет небольшие программы, зачастую разовые, а не какие-то программные комплексы для говнорекламинга и прочего подобного - важна функкциональность по дефолту, и во FreeBASIC для очень широкого класса задач её хватает. Если не хватает - есть возможность вызова библиотек на Си.

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

Например, в нём работают полноценные треды.
А в Python они есть?

Multiprocessing. Но сравнивать python с freebasic бессмысленно. Первый динамически типизированный интерпретируемый язык, нацеленный на быструю разработку, второй си с классами. Я уверен, что сделать на freebasic что-то, сопоставимое с sqlalchemy, без отдельного препроцессора с новым яп внутри, просто невозможно. А в питоне без проблем. Но и скорость выполнения кода на этих двух языках тоже не сопоставима.

Языки имеет смысл сравнивать в определённых нишах. На мой взгляд, для freebasic разумная ниша - это системное программирование. Но в ней он абсолютно не в состоянии конкурировать с Си или крестами. С растом, впрочем тоже. Причины уже не раз озвучивались.

Что важнее - свистульки для ТП в виде «женериков» или конкретная полезная функциональность?

Одно другому противоречит? Наличие дженериков только способствует наличию полезной функциональности. А вот отсутствие дженериков разработку этой функциональности порой затрудняет.

Мутексы, семафоры - об этом большинство пихтонщиков даже не слышали.

Питон для параллельного/конкурентного программирования не особо подходит. Для этого есть другие яп.

Ну и говорить о каком-то неведомом большинстве не стоит. Это большинство весьма разнородное. Кому-то, вполне вероятно, действительно нахрен не нужно параллельное программирование.

А во FreeBASIC - обычный штатный функционал. Как и развитый графический движок, например. Я уж не говорю про банальную компиляцию.

Ещё бы он привносил что-нибудь посвежее 99 года. 2017 всё-таки на дворе.

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

В большинстве случаев хватает производительности питона/руби/пхп и т.п., потому они и берут их, т.к.:

- важна функкциональность

а по дефолту она, или добавляется одной коммандой через менеджер пакетов, абсолютно насрать. Так вот, функциональность, доступная для питона несравнимо богаче, чем для freebasic. И да, я в этом настолько уверен, что утверждаю это, даже не интересуясь, какая там функциональность для freebasic есть. Можешь опровергнуть?

И абсолютно пофиг, что там по дефолту, а что нет, для этого есть pip install.

Если не хватает - есть возможность вызова библиотек на Си.

Это не киллер фича. Это есть практически везде, за очень редким исключением. Много где есть и для крестов.

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

На мой взгляд, для freebasic разумная ниша - это системное программирование.

Неверно. То, что на нём можно системно программировать - не говорит вообще о том, что это его ниша. Я писал на FB, довольно много. Могу сказать, что не зря большинство известных приложений на нём так или иначе связано с визуальным отображением: это действительно удобный язык для отрисовки всего подряд, начиная графиками функций и заканчивая 3D-играми. Системщину нужно писать на Си, иначе придётся на каждый чих толкать из FB соотв. сишные библиотеки.

Ещё бы он привносил что-нибудь посвежее 99 года.

А что нужно превносить? На мой взгляд «технологии разработки» - абсолютно пустопорожняя хрень, потому что с точки зрения функционала ничего не даёт и решает чаще всего весьма откровенно надуманные проблемы. По большей части это просто абстракции ради абстракций. При этом использование этих абстракций напрямую влияет на читабельность кода, делая его невразумительным набором закорючек. Товарищам нердам, не способным связно изъясняться простым человеческим языком, такие вещи откровенно на руку: это при минимальных умственных усилиях делает их «илиткой», с первого взгляда понимающей мешанину закорючек. Но для нормальных людей без «илитарных» амбиций, на мой взгляд, куда ближе традиционный гуманный BASIC-подход: быть ближе к естественному человеческому языку и быть в целом бить ближе к людям, а не к «гикам» в засаленных футболках с неисправимой профессиональной деформацией мозга.

И, кстати, в том же VB.Net реализовано предостаточно «технологий» - это вполне современный язык пользующйся заслуженной популярностью везде, де нужен конечный результат, а не промежуточное меряние органами размножения.

DRVTiny ★★★★★
() автор топика
Последнее исправление: DRVTiny (всего исправлений: 1)
Ответ на: комментарий от DRVTiny

Я писал на FB, довольно много. Могу сказать, что не зря большинство известных приложений на нём так или иначе связано с визуальным отображением: это действительно удобный язык для отрисовки всего подряд, начиная графиками функций и заканчивая 3D-играми.

Ну в 3D-движках плотнейшим образом засели кресты. И выбить их оттуда не представляется возможным. А насчёт графики - что-либо уровня Qt под freebasic есть? Без этого сложно конкурировать.

А с графиками и иже с ними, их, как правило выводят на том же, на чём получили данные. Хоть в питоне, хоть в джаве, хоть в крестах, хоть в экзеле. Уже давно вывод графиков не является сложной задачей, а библиотек, в которых всё сделано за тебя хоть попой жуй.

Ниша графики слишком размыта. Нужно определится, где именно у fb есть конкурентные преимущества над остальными. И в чём они заключаются. А то за 4 страницы от тебя конкретики так и не было.

На мой взгляд «технологии разработки» - абсолютно пустопорожняя хрень, потому что с точки зрения функционала ничего не даёт и решает чаще всего весьма откровенно надуманные проблемы.

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

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

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

А то я всю дорогу думал, что наоборот, всякие дженерики, полиморфизмы, исключения, raii и т.п. читабельность улучшают, т.к. сокращают кол-во кода, и позволяют не делать 100500 одинаковых функций с невразумительными именами и месивом из указателей на void(any).

это при минимальных умственных усилиях делает их «илиткой»

Так не бывает. То, что требует минимальных усилий не может делать тебя «илиткой». Остальную обиду на прогеров пропущу, ибо там только необоснованный вымысел.

И, кстати, в том же VB.Net реализовано предостаточно «технологий» - это вполне современный язык пользующйся заслуженной популярностью

Ну окей, на мою не правоту за vb мне уже указали. Собственно это единственный заметно популярный бэйсик. Посмотрим, когда и его сожрёт шарп.

Но лично меня ниша dotneta не интересует, так что не могу рассказать про конкурентные преимущества у шарпа. Если у vb есть какие-то киллер фичи над шарпом, помимо другого синтаксиса, то озвучь, не стесняйся.

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

Да, я считаю, что синтаксис Python гораздо менее понятен для человека «со стороны», нежели синтаксис BASIC

скажу как непрограммист, для которого любые хоть си, хоть руби, хоть хаскели - абсолютно непонятная китайская грамота

я выучил basic в 1990 на zx spectrum (хотя чё его учить, там всё подписано). потом на рубеже веков открыл для себя visual basic и делал на нём мелкие игрульки. потом написал свой веб-сервер на freebasic, и делал уже через http-интерфейс и самодельное окно браузера ;) в 2002 году выучил РОВНО 4 КОМАНДЫ php, и писал на них весь веб (html я в базовом виде выучил ещё году в 1997, случайно) - не использовал даже базу данных - только чтение из файла, запись в файл, цикл и вывод на экран :)

в 2011 перешёл с php на python

так вот, для меня, как для полного непрограмиста, python в разы проще всего, что было и что будет. просто в смысле того, что не только хелловорды, но и подключаться к базе данных тоже очень просто :) и вообще, любые ПРАКТИЧЕСКИЕ, а не абстрактные задачи, решаются просто

хотя думаю, конечно, только на BASIC. в FIDO в RU.VISUAL.BASIC даже таглайн такой у кого-то был :)

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

Т.е. хороший ЯП - это такой ЯП, который не вызывает отторжения у неспособных к обучению идиотов, так?

у всех людей восприятие разное

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

Неверно. То, что на нём можно системно программировать - не говорит вообще о том, что это его ниша. Я писал на FB, довольно много.

и как же там делать

1. gui

2. кроссплатформенное gui

я его, правда, более 10 лет не видел, мож там наконец хоть что-то появилось? если появилось - сам попробую :)

buratino ★★★★★
()
8 июля 2018 г.
Ответ на: комментарий от MrClon

Там с отступами неочевидно. А в остальном — таки-да

1) Отступы

2) self

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

А получается у большинства языков - какое-то уродство, которое ни к машинному языку, ни к человечякскому не имеет отношения. Абстракции на абстракциях с забубёным синтаксисом.

Согласен с вами!

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

Он, конечно, внук Бейсика, но любим мы его не за это. И у синтаксиса Питона пресловутый порог вхождения намного выше.

Таки да.

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

Держите некропостера!

тема не в архиве. А если вам не интересно таки не пишите в теме.

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