Kaj de Vos Posted November 15, 2021 Share Posted November 15, 2021 (edited) Introduction thread here: Meta is a new, human-friendly programming language that supports and started on Atari: https://language.metaproject.frl The old links from the early development period in the introduction thread are gone, and a few of the method names in the program examples have changed. I will post progress here now, so that the website is on top, and examples on the website, where they can be updated. Release thread here: Edited November 15, 2021 by Kaj de Vos 2 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/ Share on other sites More sharing options...
Kaj de Vos Posted December 8, 2021 Author Share Posted December 8, 2021 I released a new compiler client with better checking of networking errors: https://language.metaproject.frl/#get Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962406 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 I open-sourced the compiler client: https://language.metaproject.frl/#get The ABBUC had the scoop on this, in the ABBUC Software Contest. Now I am publishing the source code for everyone. Everything that runs on your machine is now open-sourced: the remote compiler client and the sample programs. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962840 Share on other sites More sharing options...
ilmenit Posted December 9, 2021 Share Posted December 9, 2021 (edited) 20 minutes ago, Kaj de Vos said: I open-sourced the compiler client: https://language.metaproject.frl/#get Um... Looking at this source... Are you sure the language fulfills the promise of "human-friendly syntax" and the tagline "Meta, Human-Friendly Programming Language"? [..] Either headers= try open meta [ Until any [ is-tail headers text?= find/match find/match/tail take/line headers "Content-type: " "text/plain" ] [] Close headers Either text? [ either report= try open out [ Write report Close report ][ ; Save the occurred error from overwriting Error: system/error Write/error "File error: could not access " Write/error out Write/error ": " Write/error/line error ] ][ Write "Result is in file " Write/line out ] [..] Edited December 9, 2021 by ilmenit 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962846 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 Yep, still sure. This has been the opinion in the REBOL community for decades, and in the Logo academic research before that, so I'm pretty sure kids can learn it, and grown-ups can do it, too, if they set themselves to it. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962848 Share on other sites More sharing options...
TGB1718 Posted December 9, 2021 Share Posted December 9, 2021 But it's ***NOT*** Human Readable!!! I have many programming languages etc. that I've used over many, many years and this one confuses me completely 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962849 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 That's because it's different, and therefore, I keep stipulating, you need to learn it, like every other computer or human language. You could start with Atari Logo if you want to learn the different principles. Nowhere do I claim it is human-readable. I claim it is human-friendly. There is a difference. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962855 Share on other sites More sharing options...
TGB1718 Posted December 9, 2021 Share Posted December 9, 2021 50 minutes ago, Kaj de Vos said: Nowhere do I claim it is human-readable. I claim it is human-friendly. There is a difference. My bad, even so it's not human friendly as I've stated before, I look at the examples and think I may have some remote idea what the code is doing, apart from the rare obvious ones, the rest might as well be hieroglyphics Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962877 Share on other sites More sharing options...
ilmenit Posted December 9, 2021 Share Posted December 9, 2021 (edited) Every language that you've already learned is simple, even ones like Arabic, Hungarian or Polish - even small kids can use them, so they are human-friendly. Logo (that Rebol and Meta base on) was designed to teach kids programming. However: 1. the way of learning by children is not the way for learning by adults and teaching methods are different. 2. what kids need to learn is different from the adult use-cases e.g. you teach children to write "BOB HAS A CAT" but for adults other form and syntax is required "Alice's sister, Bob, has a Persian-like cat.". Logo was designed to teach "BOB HAS A CAT" of programming. It is looking great and is very readable... but for simple cases. It is looking great for linear execution of code of functions with 1 parameter, so it's good for 1 line examples or for teaching children a "turtle graphics", example: to square repeat 4 [ fd 100 rt 90] end then conditional/decision instructions come, that still look good for 1 condition and one execution path, example for teaching recursion: to spiral_recur :n if :n < 1 [stop] fd :n rt 20 spiral_recur 0.95 * :n end still looking great, or for other cases: to randomwalk make "r random 3 if :r = 0 [ fd 20 ] if :r = 1 [ rt 90 fd 20 ] if :r = 2 [ lt 90 fd 20 ] end very readable and human friendly. And then we are coming to 'ifelse' in Logo or 'either' in Rebol/Meta and we hit a wall of "human friendliness" of this syntax (from one Meta example): either is-odd RND [write "/"] [write "\"] Until you know how many parameters 'either' takes and how many 'is-odd' takes and how many RND takes (or if it's function call or variable), you have no idea if it's not: either(is-odd,RND(write("/"),write("\")); lets compare the friendliness with e.g. Python: if is_odd(RND): print("/") else: print("\") we know that RND is not a function call, we know what 'if' and 'else' are, because they are reserved keywords, we know how many parameters is_odd takes. All because the syntax isn't as reduced as in Meta/Rebol. However yes, it's just a syntax that you can learn. I think Rebol has many more issues as a language than syntax. Also learning curve for some concepts like Series and their internal enumerators/smart-pointers in my opinion is steeper than working with arrays/lists and their indexes. I'm also curious how you are going to implement a few highlighted features like "The language design is homo-iconic" (code is data) that allows self-modification but here in compiled language. Other promise is "Dialects can be constructed from it that do have grammar. Any computer language could be constructed.". Considering that "any computer language could be constructed" I'm curious how Meta will allow to construct C language dialect with its finesse syntax, functions with variable number of parameters, pointers etc. Seems that Rebol cannot make 1:1 dialect of even as simple DSL as SQL (take a look at ORDER BY) on http://www.rebol.org/documentation.r?script=sql-protocol.r . Edited December 9, 2021 by ilmenit 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962880 Share on other sites More sharing options...
zbyti Posted December 9, 2021 Share Posted December 9, 2021 (edited) @ilmenit good questions, I'm eager to know the answers. Edited December 9, 2021 by zbyti Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962887 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 (edited) 41 minutes ago, ilmenit said: either is-odd RND [write "/"] [write "\"] Meta offers training wheels. You can write it like this if you want, pretty much like in Lisp: (either (is-odd (RND)) [(write ("/"))] [(write ("\"))]) 41 minutes ago, ilmenit said: Until you know how many parameters 'either' takes and how many 'is-odd' takes and how many RND takes (or if it's function call or variable), you have no idea if it's not: How can you write or even read this? It seems to have no structure. How do you know the arity of "until", "know", "takes", etcetera? Edited December 9, 2021 by Kaj de Vos Lots of Irritating Single Parentheses Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962892 Share on other sites More sharing options...
ilmenit Posted December 9, 2021 Share Posted December 9, 2021 (edited) 42 minutes ago, Kaj de Vos said: Meta offers training wheels. You can write it like this if you want, pretty much like in Lisp: (either (is-odd (RND [(write ("/"))] [(write ("\"))]))) maybe it's personal opinion but while solving ambiguity it's making it even less readable. 42 minutes ago, Kaj de Vos said: How can you write or even read this? It seems to have no structure. How do you know the arity of "until", "know", "takes", etcetera? Why it has no structure? English language HAS structure defined by English grammar, look for instance here https://www.scientificpsychic.com/grammar/enggram1.html . Like in the most of programming languages there is even a syntactic sugar in form of a Capital letter, coma, colon, brackets, apostrophe and so on to improve readability. Because of ambiguity English language cannot be fully parsed by EBNF, but majority of it can be , so well... still better than Meta Edited December 9, 2021 by ilmenit 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962910 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 2 minutes ago, ilmenit said: maybe it's personal opinion but it's making it even less readable. Exactly, that's why Lisp earned the nickname of "Lots of Irritating Single Parentheses", why REBOL programmers never write it like this, and why I assume that Meta programmers won't write it like this after their learning period. Still, it can very well be used in training courses, for kids and adults. 4 minutes ago, ilmenit said: Why it has no structure? English language HAS structure defined by English grammar, look for instance here https://www.scientificpsychic.com/grammar/enggram1.html . Like in the most of programming languages there is even a syntactic sugar in form of a Capital letter, coma, colon, brackets, apostrophe and so on to improve readability. Because of ambiguity English language cannot be fully parsed by EBNF, but majority of it can be. Right, and in a similar way, Meta also has structure, which can be learned like English, but which is unambiguous like Lisp. And the syntactic sugar can also be applied if you want. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962917 Share on other sites More sharing options...
zbyti Posted December 9, 2021 Share Posted December 9, 2021 1 hour ago, ilmenit said: I'm also curious how you are going to implement a few highlighted features like "The language design is homo-iconic" (code is data) that allows self-modification but here in compiled language. Other promise is "Dialects can be constructed from it that do have grammar. Any computer language could be constructed.". Considering that "any computer language could be constructed" I'm curious how Meta will allow to construct C language dialect with its finesse syntax, functions with variable number of parameters, pointers etc. Seems that Rebol cannot make 1:1 dialect of even as simple DSL as SQL (take a look at ORDER BY) on http://www.rebol.org/documentation.r?script=sql-protocol.r . Gentlemen, answers first, philosophy later :] Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962920 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 I still don't have time to answer everything in detail. I worked most answers to most of Ilmenit's questions into the website in the past weeks. I will keep giving priority to progress on the project, so you can continue with it. 1 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4962924 Share on other sites More sharing options...
drac030 Posted December 9, 2021 Share Posted December 9, 2021 That declared "human-friendliness" seems to cause much confusion here, perhaps it would help if you defined it more precisely. Because, as stated several times already, pretty much everything in this world is human-friendly, even king cobra, once you have already learned how to deal with one. From the mere declaration one expects the language to be intuitive, but it apparently is not your intention, for nobody needs to learn things which are intuitive (that is the definition of intuitiveness). So what does this mean really? 2 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963044 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 I agree about the confusion, so I added many qualifications to the website. And from the start, I have stipulated that Meta requires learning and effort. Frankly, I don't know why some people keep insisting that Meta should require no learning at all. This has never been the case in all of history. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963049 Share on other sites More sharing options...
danwinslow Posted December 9, 2021 Share Posted December 9, 2021 I think it's your repetition of the claim that it is easy to read and understand. You've promoted that as a selling point, so people are mentioning when they don't agree. I don't find it readable at all either, but of course everything takes some effort and if I were interested I would put the effort in. 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963054 Share on other sites More sharing options...
drac030 Posted December 9, 2021 Share Posted December 9, 2021 16 minutes ago, Kaj de Vos said: I agree about the confusion, so I added many qualifications to the website. Maybe some of these qualifications could be moved to the beginning of the explanations in the website, such as: Quote It's a project for REBOL fans and Quote REBOL has a human-friendly syntax of great clarity and is highly productive. because these two are greatly clarifying your definition of "human-friendly" Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963059 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 54 minutes ago, danwinslow said: I think it's your repetition of the claim that it is easy to read and understand. You've promoted that as a selling point, so people are mentioning when they don't agree. I don't find it readable at all either, but of course everything takes some effort and if I were interested I would put the effort in. The thing is that I have never claimed that it is easy to read and understand. I claim that it is user-friendly after you have learned it, and that the process of learning it is closer to human language than other computer languages. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963077 Share on other sites More sharing options...
Kaj de Vos Posted December 9, 2021 Author Share Posted December 9, 2021 45 minutes ago, drac030 said: Maybe some of these qualifications could be moved to the beginning of the explanations in the website, such as: and because these two are greatly clarifying your definition of "human-friendly" I thought long and hard about the order of sections on the website, and adapted the order when I added new paragraphs. The problem is that everybody wants their current question answered right away, so everyone wants that answer to be on top, but everyone has a different question, and when it's answered, they want their next question to be on top. I have to make choices, the website is not a mind reader. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963083 Share on other sites More sharing options...
zbyti Posted December 9, 2021 Share Posted December 9, 2021 6 hours ago, Kaj de Vos said: I still don't have time to answer everything in detail. I worked most answers to most of Ilmenit's questions into the website in the past weeks. I will keep giving priority to progress on the project, so you can continue with it. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963156 Share on other sites More sharing options...
drac030 Posted December 10, 2021 Share Posted December 10, 2021 4 hours ago, Kaj de Vos said: I have to make choices, the website is not a mind reader. That is perfectly understandable. However, the website's title says: Quote A New, Human-Friendly Programming Language And so, whereas "new", or "programming language" are not obviously striving for strict definition, "human-friendly", for the reasons specified above, may need some explanation on the top of the website, at least as long as the rest of it suggests in a veiled way that "human-friendly" = REBOL-like. Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963257 Share on other sites More sharing options...
zbyti Posted December 10, 2021 Share Posted December 10, 2021 53 minutes ago, drac030 said: may need some explanation on the top of the website yes... something like this: 3 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963285 Share on other sites More sharing options...
zbyti Posted December 10, 2021 Share Posted December 10, 2021 (edited) What's wrong with you guys? The author claims Meta to be human-friendly... Big deal Each visitor of his website can see examples of the code and quickly assess whether it is true or not in his case. Edited December 10, 2021 by zbyti 1 Quote Link to comment https://forums.atariage.com/topic/327189-meta-language/#findComment-4963291 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.