LINUX.ORG.RU

Посоветуйте язык на замену QBasic

 


3

3

Ищу язык для написания простеньких программ и прототипов. Требования:

  • Низкий порог вхождения. Хочу в будущем показывать детям. Сам программирую с 11 лет.
  • Наличие ide. vi и emacs за ide не считаются.
  • Графика «из каробки». Чтобы программка «палка, палка, огуречик - вот и вышел человечик» помещалась на одном экране без гугления сторонних либ.
  • желательно наличие в репах ubuntu
  • желательно наличие под оф.топик

Ранее эту функцию для меня выполнял qbasic.

PS свободно владею: basic, c, c++, pascal, еще десяток языков «читаю со соварем».

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

переписать это на фактор через PEG

Проще добавить его DSL'ем прямо в ред

loz ★★★★★
()

Герман бери чистый Си, будешь технофашыстом.

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

Уделать будет не просто, для начала можешь попробовать уделать 1M бинарь без зависимостей:

ldd red-17oct16-a9e707d 
	linux-gate.so.1 =>  (0xf77ee000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7770000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf776b000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75b4000)
	/lib/ld-linux.so.2 (0x56617000)
loz ★★★★★
()
Ответ на: комментарий от loz

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

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

если считать что подставляется не текст-в-текст, а AST-в-AST — получается вообще мощно. например, тот же org-mode синтаксис есть в Skribilo, на Guile. то есть org-mode babel и т.п. weave/tangle можно сделать как языковые модули на схеме.

anonymous
()

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

IDE — Geany. Очень удобный.

Графика «из каробки»

Ишь, чего захотел! Ну, в принципе, на пару страниц кода GLUT'а — и будет тебе "человечек".

ubuntu

Извиняюсь, мы на винфаке что ли?

под оф.топик

Повторяю предыдущий вопрос.

anonymous
()

C++ Qt. По всем критериям подходит. Плюс удобное формошлёпство.

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

Прежде чем тяфкнуть в ветку перечитай её.

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

Вивальди уже нарисовали морду хромиуму на жс, тормозит только в путь. Пусть лучше плюсы.

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

И ты такой прочитал руководство пользователя и сразу глазом обозревателя вселенной увидел и осознал все подводные камни

В толковых руководствах на них обычно заостряют внимание.

Язык, который работает против тебя, а не на тебя, говно и не нужен.

Йуношеский максимализм - говно и не нужен.

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

ку-ку! металлы не могут быть прозрачными

и давно алюминий перестал быть металлом? или магний?

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

Ох тыж лол, спасибо, надо попробовать

loz ★★★★★
()

FreeBASIC поддерживает инструкции QBasic и для него есть всякие разные IDE: https://www.freebasic-portal.de/downloads/ides-fuer-freebasic/

Вообще с точки зрения пользы для будущего горячо советую обратить внимание на R (язык) и RStudio (очень простая и понятная IDE к нему): в R такой же простой вывод графики, как и на QBasic'е (инструкцией plot вполне можно нарисовать дом и в нём жить) и в целом для начала это невероятно простой, интуитивно понятный язык родом «из школы/популярной науки», а не из программирования. Тем не менее, если его освоить уже на более глубоком уровне (а ещё регулярно получать 5-ки по математике и физике :) ) - детям будет очень хороший задел не только для быстрого решения домашней работы по естественным наукам, но и для дальнейшего трудоустройства. И, на мой взгляд, очень кстати тот факт, что работодатели для специалистов по R находятся в несколько более благополучных/менее похожих на «Титаник» странах мира, нежели наша Горемычная. Т.е. это не только возможность обеспечить детям хорошее будущее, но и оградить их от агонии современного рашнского IT, где каждый второй пашет в поте лица над созданием каких-то говно-веб-приложений, а каждый следующий - сочиняет протоколы банковского процессинга. Вся эта вакханалия закончится крайне печально с вместе с очередным падением цен на нефть. Поэтому нужно изучать такие фундаментальные вещи, как Data Science для того, чтобы быть востребованным везде, вне зависимости от «углеводородной коньюнктуры».

DRVTiny ★★★★★
()

Зафлудили всю тему.

Плюсую Processing. Он, правда, на джаве, но этого не надо стесняться. Ничего постыдного в том, чтобы программировать на джаве, нет.

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

паскаль

Ты еще пхытон предложи...

Не надо говноязыками детей травить! Либо начинать с С, когда придет время, либо вообще не мучить их погромированием!

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

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

anonymous
()

/Вроде ещё не упоминали/

Вы будете смеяться, но qbasic таки жив в своей новой реинкарнации - Microsoft Small Basic - https://ru.wikipedia.org/wiki/Microsoft_Small_Basic. Щупал несколько лет назад, весьма забавно. Но только под оффтопик, естественно.

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

Не надо говноязыками детей травить! Либо начинать с С, когда придет время,

Он хочет язычок «для написания простеньких программ и прототипов». Ему надо «Графика «из каробки»» и теде и тепе.

В Си нет графики из коробки, и вообще, в Си библиотеки не являются частью языка. Си для него слишком мощное средство. Для него Питон самое то. Ну или пусть осваивает какой-нибудь скриптовый язык.

А на Паскаль не гони. Н. Вирт между прочим жив ещё.

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

Зато у него есть еще более многообещающий потомок: http://www.red-lang.org/

Потыкал палочкой...

- Red и Red/System - практически два разных языка, особенно радует передача нестандартных данных из одного в другой

- нет перегрузки функций - писать как на си 48 имен функций для разных наборов параметров?

- документация местами на уровне «не ясно - читай исходники»

- новые типы полноценно (как url или time) не добавить без перекомпиляции всего?

- с такой структурой языка такое практическое отсутствие нормальной макросистемы...

Как бы он не загнулся до релиза. Но графика радует :)

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

++

Хуже паскуалия — только пхытоно-пыхпых.

Хотя, лично мне придется, похоже, пхытон таки подучить: фрикад больше ничего не понимает ☹ Прискорбно, что для полноценной работы в 3D-CAD необходимо выучить недоЯП...

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

вот эта коробочка включается

За 180 баксов? Спасибо, оставьте это добро себе.

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

Я тут пацанам кодирующим на Дельфи и Компонентном Паскале сказал, они рассмеялись. Поц., а ты смищной такой :)

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

Насчет Red/System не скажу, но

документация местами на уровне «не ясно - читай исходники»

Документация официальную еще не писали.

новые типы полноценно (как url или time) не добавить без перекомпиляции всего?

Пока возможно нет, но это не должны быть проблемой.

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

Отсутствие макросистемы? Объясни что ты считаешь макросистемой. Многие макросистемы могут такое в рантайме?

red>> args: [a b]
== [a b]
red>> body: [a + b]
== [a + b]
red>> f: func args body
== func [a b][a + b]
red>> f 2 2
== 4

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

Полную версию давай показывай

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

Наиболее близок к qbasic это VB.NET

Вы точно видели оба?

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

А body параметром можно получать/передавать? А просматривать, разбирать на куски, конструировать новое?

Подозреваю - три ответа «нет» :)

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

Tcl/Tk - rulezz

Многие макросистемы могут такое в рантайме?

% set arg {a b}
a b
% set body {return [expr $a+$b]}
return [expr $a+$b]
% proc func $arg $body
% func 2 3
5
anonymous
()
Ответ на: комментарий от yyk

Прозревать тут надо намного глубже чем кажется

red>> debug: func [f] [new-body: copy body-of :f append insert head new-body [print "before call"] [print "after call"] func spec-of :f new-body]
== func [f][new-body: copy body-of :f append insert head new-body [pr...
red>> f: func [a b] [print [a + b]]
== func [a b][print [a + b]]
red>> g: debug :f
== func [a b][print "before call" print [a + b] print "after call"]
red>> g 2 2
before call
4
after call
loz ★★★★★
()

язык для написания простеньких программ и прототипов

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

Мне лично для прототипов удобен haskell, ибо система типов позволяет проверять программы ещё до того, как они, грубо говоря, написаны. Но не буду агитировать за этот подход, особенно людей не осиливших emacs/vi.

PS свободно владею: basic, c, c++, pascal, еще десяток языков «читаю со соварем».

That's good to know!

Хочу в будущем показывать детям.

В будущем программировать будут сами компьютеры, и это ремесло отправится вслед за профессией человека-будильника. Так что детей лучше учить распознаванию привилегий.

GoodRiddance
()
Ответ на: комментарий от yyk
red>> source debug
debug: func [f][new-body: copy body-of :f append insert head new-body [print "before call"] [print "after call"] func spec-of :f new-body]
red>> source f
f: func [a b][print [a + b]]
red>> source g
g: func [a b][print "before call" print [a + b] print "after call"]
red>> source source
source: func [
    "Print the source of a function" 
    'func-name [any-word!] "The name of the function" 
    /local type
][
    print either function? get/any func-name [[append mold func-name #":" mold get func-name]] [
        type: mold type? get/any func-name ["Sorry," func-name "is" a-an type type "so no source is available"]
    ]
]

Ну и так далее

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

Хуже паскуалия — только пхытоно-пыхпых

Хуже трактора только автобусы-легковушки.

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

В списке команд процессора просто нет ничего ни про какие замыкания.

прости но ты тем самым указываешь на специфически обученую нейросеть которая у те курирует «что есть процессор» (в курсе что 99% cpu(even more 99% of cpu model's) not have closure in atomic level )

-------------------------------------

ps. программирование (включающее кодирование но не равномощное таковому) и есть понимание абстракций разного уровня - а не есть только реальность и конструкции на ней.

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

за семантический дрейф обоснуешь?

ака активные объекты и прочие коркодилы.

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

Хм, спасибо, интересно...

Где-ж со всем этим ознакомиться можно? Или читать доки по реболу и пробовать в реде?

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