chill bro. spending some time on Elm is not the end of the world and not a serious issue! the question was about learning and not concerned about production and this was one of the available examples to maybe have a look at.
one of the options for fast iterations would be Forth. in its circles, it famous for generation targets and cross compiling between archs.
seaech the net you shold find plenty.
I concur. not intermediate code directly machine code, even no tests.
It will take human specs internally understand them (maybe formal methods of reasoning) and keep chatting with the user asking about any gaps (you. mentioned a and c, what about b) or ask for clarification on inconsistencies (i.e. in point 16 you mentioned that and in point 50 you mentioned this, to my limited understanding doesn't this contradicts? for example if we have that based on point 16 and have that based point 50,how do you resolve it. in short will act as business analysis with no (imagined) ego or annoyance in the middle by the user. from talk to walk
Achieving Correctness is really satisfying. however it is hard and difficult. IMOH this does in general polarize the scene (proving fanatics on one extreme and the other side who are not even testing the code)
IMHO flushing out what you are designing does help and goes along the way of having fewer bugs. one old relatively yet easy and accessible formal toolkit which helpful in flushing out process is Z notation . one of the accessible books, old yet an easy read and rewarding is
"Software Development with Z. A practical approach to formal methods in software engineering"
there are other notations developed later. but its simplicity and easiness even while scribling on paper or word processor gets me back to using it every now and then
MMV But for me at least i tend to use it for brain storming, aka intial sailing through a subject/topic/task, getting intial idea. the idea is to use as an admin who is guided by you throgh chatting. for example im given a task to translate a user description/requirement to pull something from the database. like (simplistic example) what are the top grossing films by category within each rating. so igive the AI the database tables schema and give it literally the user requirement. and see what it gave back and compare it with how I'll do it. ask it more for optimizations what else can be done more.... etc.. keep chating with the AI until I'm bored ;)
for these critical applications which require reliable oprations as lives are at stack. formal verfication will help by reducing bugs more than traditional testing. they are not bullet proof but still better. z notation is one of many.
i'd like to know the source.
and the reasons i know long time ago are about more innovative work. like more compression, keyboard layout optimization, like having the code compiled in the source and utilizing the space to embed the meaning so there is no multiple parsing and compiling. even vars are living inthe code alive. and others i don't remember now.
its really leads to all sorts of question. when markets for eggs and sperms to be sold directly to interested (the layman) are there and the buyer funds the rent of the artificial womb and the food/nutrition + bio conditions. will he be the father or the owner? if more over the buyer have a farm (so to speak) of wombs?
this may be interseting (YMMV) read page 50 of "Compiler Construction for Digital Computers" 1971 which lists other reason some which are still valid and good to know
i like awk. but i hate Regexp (YMMV). but for different perspective check out SNOBOL or its speedier variant Spitbol. although not one liner, but i find patterns easier to compose like functions.
$anchor = 0
digits = '0123456789'
patt = "foo=" SPAN(digits) . num
while line = INPUT
if line ? patt
OUTPUT = num
endif
end
end
NOTE1: reading variable INPUT. reads from input. assignment to OUTPUT writes to output. normally assigned to STDIN and SDTOUT, and can be configured.
NOTE2: there is no real while or if. flow is through labels and jumps (considered by some as power but i disagree). above example uses another script to transform while and if into labels and jumps. the point is that patterns composition and success match assignment.
YMMV, but thats why i love Forth. it compiles the full app (not interpret) in ms. some think its dead or only for the embedded, but for me and my projects its a deadly combination + ultra fun.
we need just the correct expectations. APL is like mathematics for me. i need to read it several time to understand dense unfamiliar terms and formulas. same goes for APL. it is not the typical language which i assume can be read while driving