When comparing Basic vs J, the Slant community recommends Basic for most people. In the question“What is the easiest programming language to learn for a non-programmer (actually used for production)?” Basic is ranked 7th while J is ranked 8th. The most important reason people chose Basic is:
If you choose the Basic route, which you shouldn't, then at least make it VB.net.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Visual Basic .net
If you choose the Basic route, which you shouldn't, then at least make it VB.net.
Pro Lots of choice
Pro Lots of information available
Although there are lots of examples and tutorials to be found, for a beginner it can be difficult to find good material as there are also lots of bad examples around.
Pro Every function is an operator
3 classes of operators (verbs, adverbs, and conjunctions) with verbs the most basic function that take either 1 or 2 (infix) parameters. Operators allow function composition with a minimum of parentheses.
Pro Simpler Imperative language constructs as failback to functional programming
J also supports multiline functional definitions similar to BASIC/Pascal. Including error handling.
Pro Compiled language speed from interpreted language.
Each built in operator is a C/asm function, and special code further optimizes some operator combinations. Result is optimized C speed from quick parsing. Array orientation parses and compiles a function once, and applies it to all array items.
Pro 25 year old language, with core unchanged in last 10 years
Still actively developed, but most recent changes have been in libraries and IDE and platform support.
Language is considered "perfected"... though not quite.
Pro Language reference has simple one page index
Complete core programming functional tools allow writting programs and libraries without imports.
Pro No operator precedence rules
(... within each of the 3 operator classes) makes reading code easier. Very simple parsing rules.
Cons
Con Not highly regarded by professionals
Not the best choice when looking for a job.
Con Syntax is pure madness
quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)