Ask coding questions

← Back to all posts
About the THAIL project
xolyon (343)

Imma ask the people who I know are involved:
@coder100 , @LizFoster , @LiamDonoHue , and @AdriaDonohue

here's a link to their development:
https://repl.it/@LiamDonohue/ThailDevelopment

Why are you making this? I know that its a cool exercise and project to do but if you seriously want to make a new language then why? what advantages does it have over others,

That's how I think all the current popular languages have survived, their use and popularity and efficiency people didn't need a whole new language especially if the differences were tiny between them as well as that it's especially risky dedicating yourself to a language no one else knows, so your language must be pretty good at something - to be at least used.

(and also explain this please: `printline = "hello".)

I dunno what that rant was but I think you get my point...here as some examples of modern languages and why they popular

Python: very easy to use and learn .Used for AI and data analysis
Java: I dunno why it is popular but it's pretty good for making games
and apps
HTML : basically e language the web is made up of, quite easy to
learn - not this is a front end language so it doesn't really
count
JS: goes pretty well with HTML and allows for interactivity on
websites and now games
c++: very popular among game developers and some app makers as it is
a very powerful league and allows for procedural stuff and other
(don't know that much)

Yeah obviously these languages could do anything but this is what they are best at...

Answered by LiamDonohue (291) [earned 5 cycles]
View Answer
Comments
hotnewtop
LiamDonohue (291)

Well this language is built for math. The team has been working on tons of math functions

xolyon (343)

@LiamDonohue Oh, nice like the generic maths every language has or some high-level algebra stuff?

Even still what are the uses its god if it has maths as long as you can use that maths for something (for example python is usually a backend thing for a lot of websites)

xolyon (343)

@LiamDonohue and why do you have printline = "hello"

LiamDonohue (291)

High level math stuff like calc @xolyon

LiamDonohue (291)

Idk i just wanted to do something different @xolyon

xolyon (343)

@LiamDonohue lol ok, if it weren't for the [type of data] [variable name] = [data] it would've been really confusing but still quite interesting, hope it works out

xxpertHacker (865)

@LiamDonohue Umm... you ought to look at Wolfram Language. Your already outmatched. Do you happen to be a mathematical genius? Do you have an AI helping you code and find answers? Do you have a cloud server to help too? A massive community? A super easy language to learn? Ehh, you have some competition.

xolyon (343)

@StudentFires I think they doing it for fun really

CaptainAnon (144)

@LiamDonohue I have a few questions, If you wouldn't mind obliging me in answering them I'd be grateful.
1. Do you have a Github repository?
2. Are the mathematics functions written in THAIL or some other language?
3. Can I join?
4. What is the first version of the translator being written in?

CSharpIsGud (931)

@LiamDonohue People have been making math orientated languages since forever, you used to have things like R and Fortran, now we have a bunch of modern ones that took their place

CSharpIsGud (931)

@LiamDonohue A language that is built for math should be made in something like C or C++, especially if it is interpreted

LiamDonohue (291)
  1. Yes
    2 & 4. we will probably be writing it all in js for now, we are using ace
  2. absolutely
    @CaptainAnon
LiamDonohue (291)

@lizfoster is the math genius lol, also currently its for math but i want it to be a powerful allpurpose language @StudentFires

LizFoster (648)

@LiamDonohue Awww, no, I'm no genius. You speak too highly of me!wwwwwww

Thank you, though ^ ^*

xxpertHacker (865)

@LiamDonohue Umm, pretty sure she doesn't come close to Stephen Wolfram. Also, I'm a math genius too, me and Liz would work well together! You ought to invite me to work on the language. I know a ton of random coding and computer science stuff that might come in handy.

AmazingMech2418 (1039)

@LiamDonohue @LizFoster @Coder100 @AdriaDonohue This seems like a very cool programming language. Based on the documentation markdown file, it seems to be sort of a mix of C++ and Python with its own additional parts as well (like ending in periods instead of semicolons and the printing syntax, although somewhat similar to the C++ cout << "Whatever you want to print with the command line application, at least given that you are using the namespace std."). However, just for the implementation may I recommend attempting to add in a custom constructor system for functions, especially for the syntax for printing lines? What I mean is that with certain functions with a custom constructor of <function name> = <parameters>, it will automatically run the function instead of setting variables. Also, I'm not sure how far in this project is, but is there any way I can join? I've been thinking about creating a language called Adapt with custom constructors and syntaxes, but haven't started it really and think THAIL could be a great programming language that I would definitely be happy to join the development of.

LizFoster (648)

@AmazingMech2418 I have no problem with you joining, but I'm not the host (really just there to help with the math, of course), so we'll see what they have to say. ^__ ^

AmazingMech2418 (1039)

@LizFoster It seems like the host is either @LiamDonohue or @Coder100 . Hopefully they say I can join... By the way, I'm not sure if you all have a system for complex numbers yet (it seems like you are using JavaScript based on the repl in this post), but I just created one just in case. However, It does not have division yet because that will likely require synthetic division. This is what I have so far: https://repl.it/@AmazingMech2418/Mathjs

LizFoster (648)

@AmazingMech2418 Liam is the host. I don't understand this, but hopefully they know what it all means.. T~T

LizFoster (648)

@AmazingMech2418 I can't understand JavaScript... I can only really read Python.

AmazingMech2418 (1039)

@LizFoster Oh. Do you want me to make a Python version so you can read it?

LizFoster (648)

@AmazingMech2418 Yes, please do.. Also, yeah, those are good places I suppose (I just never find the time to get going!)

AmazingMech2418 (1039)

@LizFoster Okay. So far, I have https://repl.it/@AmazingMech2418/Mathpy, but I'm getting errors when trying to use the functions. However, you should be able to get the basics of what it does... I just rarely use Python and it is saying that it requires a positional argument, self, although that is supposed to just refer to the specific instance of the class. It seems to be reading the returned value as a class instead of a class instance.

AmazingMech2418 (1039)

@LizFoster Does the Python version help?

LizFoster (648)

@AmazingMech2418 Well, I am not sure. Really, it just depends on whether Liam likes it..

LizFoster (648)

@AmazingMech2418 It's helpful to me, of course.

xolyon (343)

@AmazingMech2418 @LizFoster, lol this thread has kept giving me notifications every min lol

AmazingMech2418 (1039)

@xolyon Sorry! I was just hoping that I could join the project and then the conversation about the complex numbers library started, and then the notifications just started rolling in.

xolyon (343)

@LizFoster @AmazingMech2418 its ok guys, replit doesn't have a complex chat system or chat outside posts and replits I found that conversation interesting anyway (on complex numbers)

AmazingMech2418 (1039)

@xolyon Yeah... It would be much better if Repl.it kind of like a group chat or forum feature thing where people could just talk about different projects and stuff. Or at least a way for people to mute notifications on certain threads so that people like you don't have an overflowing notifications list.

AmazingMech2418 (1039)

@LizFoster I have been looking to see if I could find the repl with the actual interpreter or compiler so that I could see where you all are on the project as of right now, but can't seem to find it. Either, it is not started yet or coder100 has it as a private repl (of course with multiplayer too).

LizFoster (648)

@AmazingMech2418 No, it is on one of Liam's other accounts (maybe, I don't know)..

AmazingMech2418 (1039)

@LizFoster Okay. Though, hopefully, Liam lets me join...

LizFoster (648)

@AmazingMech2418 I don't see why he wouldn't, do not worry. As they say, "the more the merrier," right~? #^__ ^#

xxpertHacker (865)

@AmazingMech2418 Well, as it appears you have quite a knowlege on C++ and JavaScript, I was planning on setting up a complex system and attempting to emulate overloaded operators such as addition by representing the numbers as "objects" {r: 0, i: 0} and using the "well-known" Symbols, such as "to primitive" to properly get this to work. My major problem figuring out how things like C++'s std::string works. Objects like string allow direct assignment even though they're objects. If you understand how that works, can you explain it to me? Do you think we can do something like that in JS? I was also trying to implement real types into JS here: TypeScriptClasses.

AmazingMech2418 (1039)

@LiamDonohue Thank you! So, how do I start? Is there a multiplayer repl or something?

AmazingMech2418 (1039)

@StudentFires With C++, the string data type works really as an array/list of chars. However, it is not std::string and requires you to import using #include <string>. If you want some examples, I have two programs that use strings in C++ on my GitHub. https://github.com/amazinigmech2418/Learning-C-/blob/master/test.cpp is from when I was first learning C++ and https://github.com/amazinigmech2418/CPlusPlus-Split was an attempted split function in C++ (I don't think it ever actually worked).

AmazingMech2418 (1039)

@StudentFires Also, for data types in JS, just use TypeScript.

AmazingMech2418 (1039)

@LiamDonohue Just to start, I'm working on the system for custom constructors. It's still a work-in-progress, but here it is: https://repl.it/@AmazingMech2418/Custom-Constructors-Demo. Please let me know if there is anything else you would like me to do for THAIL and also please invite me to any multiplayer repls required for the development of THAIL.

AmazingMech2418 (1039)

@LiamDonohue @LizFoster What do you think about the custom constructors? https://repl.it/@AmazingMech2418/Custom-Constructors-Demo Do you think this would be good to include in THAIL? By the way, you can see what functions are being run in lines 166 and 167.

LizFoster (648)

@AmazingMech2418 Oh, wow! This is cool, and I can actually sort of read its syntax!!wwwwwww

I don't really understand most of that stuff, but it could be quite helpful!

AmazingMech2418 (1039)

@LizFoster Thank you! By the way, during some of the tests, I actually used the printing syntax as stated in the documentation for THAIL for some of the tests and the other tests used the Python print function syntax (Python 3 of course, not Python 2 (I could have done 2, but didn't)).

LizFoster (648)

@AmazingMech2418 Oh, nice! and it can work well? Is it faster than the default, just as fast, or slower?

AmazingMech2418 (1039)

@LizFoster What do you mean by the default?

LizFoster (648)

@AmazingMech2418 the standard built-in print function.

Sorry, should've been clearer.

AmazingMech2418 (1039)

@LizFoster The built-in print function for Python? If so, definitely no. This is basically an interpreter for a higher-level programming language, so in order to process the lines of code to get the parameters and functions and then recursively evaluate parameters, it needs to do much more than print a line into the console.

LizFoster (648)

@AmazingMech2418 Damn. I didn't expect it to be faster, obviously. Does that mean it is way slower?

AmazingMech2418 (1039)

@LizFoster Not too much slower. It is a pretty efficient interpreter that only has to read each function once and then evaluate it. However, unlike Python and JavaScript, it is a full interpreter and not a JIT (Just In Time) compiler, so that also makes it a little slower as well, but it should still work well for a higher-level programming language like THAIL. Also, if we were to make this in C, it would probably actually be faster than Python and JavaScript which are written in C++ (well at least JS, I think Python may be C instead) which is based on C.

LizFoster (648)

@AmazingMech2418 Hmm.. I suppose you're right.

AmazingMech2418 (1039)

@LizFoster Also, JavaScript is faster than Python, so that helps it not be too far behind Python. Also, by "I suppose you're right", do you mean you don't agree that it wouldn't be too much slower?

LizFoster (648)

@AmazingMech2418 No, sorry, I worded that wrong. I agree with you.

AmazingMech2418 (1039)

@LizFoster Okay. It's fine! It's just that usually "I suppose" means someone is not completely sure about something. By the way, the custom constructors could also make JavaScript use Python syntax, so then you could program for the web without having to learn JavaScript (I would still recommend it, but know that time might be an issue).

LizFoster (648)

@AmazingMech2418 Ooh, that does sound like it's interesting. So, custom constructors let you code new syntax for custom commands, I am guessing?

AmazingMech2418 (1039)

@LizFoster Basically. However, you would need to create a new constructor for every command you want in it. However, you could also create a constructor for a function that creates a new constructor as well.

AmazingMech2418 (1039)

@LizFoster When you joined THAIL, did you get invited to a multiplayer repl or something? I'm just wondering how I can actually start now that I know that I can join.

LizFoster (648)

@AmazingMech2418 Yeah, I was invited to a multiplayer repl.

xxpertHacker (865)

@AmazingMech2418 I was referring specifically to std::string, not C string literal. std::string is an array, but it has properties and methods, including, but not limited to, replace, append, size, length, max_size, end, begin, and an overloaded assignment = operator, I believe it has an overloaded [] operator, but I haven't checked the string header file.

xxpertHacker (865)

@AmazingMech2418 I did mention "direct assignment", which is not possible with with C string literals.

auto string = "this is a C string, or array of characters";

string = "this is now a compile error, yay!";
xxpertHacker (865)

@AmazingMech2418 My main idea was emulation of some C++ types, like std::string, without using TypeScript. This allows an almost TypeScript experience in run-time, while still allowing you to optionally chose not to.

AmazingMech2418 (1039)

@StudentFires Well, I'm not sure if I used std::string or not. I used the std namespace, so it kind of hides which data types and stuff are in that specific namespace, so I am not completely sure. Also, this is C++, not C. I know that C has a different way of using strings, but what I linked was 100% C++.

xxpertHacker (865)

@AmazingMech2418 Nope, that was a mix of C++ and C.

AmazingMech2418 (1039)

@StudentFires Well, that is because it by default uses char[] instead of char* or string. It is because of the type inference. If you would change it to string string = ... or char* string = ..., at least given that you have a string data type included for the first one, it will allow direct assignment.

xxpertHacker (865)

@AmazingMech2418 Example:

std::cout << "Hello, world!";

cout is C++, "..." is C.

AmazingMech2418 (1039)

@StudentFires What do you mean by the "..."? When I was doing the examples, that was just showing that the line continues.

AmazingMech2418 (1039)

@StudentFires Also, I don't know where the C comes in in the linked GitHub repos. As far as I know, it is just C++.

xxpertHacker (865)

@AmazingMech2418

  • It doesn't use type inference.
  • char* string or string string should be an error. untested
  • Direct assignment to strings isn't possible, you cannot
    reassign arrays with another array.
auto x[] = {1, 2, 3};
x = {1, 2, 0}; // Error
AmazingMech2418 (1039)

@StudentFires Well, I guess you could just create new constructors for different data types, but you won't be able to declare the different types like in C++.

xxpertHacker (865)

@AmazingMech2418 There is a std::string literal though, using namespace::std, you can write "..."s. Note the s after the second quote. There are multiple string prefixes and suffixes, of which s is only 1.

AmazingMech2418 (1039)

@StudentFires auto is type inference... Also, you would have to use auto* anyways since the [] is what causes the inability to assign to the variable. Just look at my C Terminal if you want.

xxpertHacker (865)

@AmazingMech2418 I didn't realize you were referring to my use of auto.

xxpertHacker (865)

@AmazingMech2418 By "...", I meant any data inside double quotes.

xxpertHacker (865)

@AmazingMech2418 C++ derived from C. This is why there are specific headers to replace C, such as std::string, and std::array.

AmazingMech2418 (1039)

@LizFoster So, now I guess I just have to wait then...

LizFoster (648)

@AmazingMech2418 Oof T~T I don't know what's taking so long..

AmazingMech2418 (1039)

@LizFoster I don't know. I mean, I finished the basic interpreter yesterday and haven't been invited yet...

LizFoster (648)

@AmazingMech2418 I'm sorry, I don't know what to say. Lemme see if I'm able to invite people, actually!

AmazingMech2418 (1039)

@LizFoster Okay. Also, there's no reason to be sorry. It isn't you who is taking a long time to invite me.

LizFoster (648)

@AmazingMech2418 Darn it, only the owner can invite new members..

Yeah, I know.. I just feel bad that we're kind of leaving you hanging.

AmazingMech2418 (1039)

@LizFoster Again, it's not you who's leaving me hanging. I mean, the closest thing you can do to inviting me is somehow communicating with Liam, but I'm pretty sure the reason it is taking so long is because he is already busy.

LizFoster (648)

@AmazingMech2418 Yeah, I have not heard from him in a few days.. I hope that he is okay.

AmazingMech2418 (1039)

@LizFoster Yeah. Hopefully, he is just spending his time mostly off of Repl.it.

LiamDonohue (291)

btw the project is working again @LizFoster

AmazingMech2418 (1039)

@LiamDonohue @LizFoster Is the notes.txt file where we communicate about THAIL? If so, I already added a paragraph of ideas... If not, I still added that paragraph and guess I'll just have to copy and paste it somewhere...

LiamDonohue (291)

i guess lol i'd rather use the discord @AmazingMech2418

AmazingMech2418 (1039)

@LiamDonohue Sorry, I don't have discord...

AmazingMech2418 (1039)

@LiamDonohue I added something else in the notes.txt file along with the custom constructors code in a separate JavaScript file. After reading that, do you think that it would be best to use the custom constructors to create a basic Adapt (another in-development programming language) interpreter and write THAIL in Adapt (as an Adapt dialect first, then removing the Adapt functions required to add THAIL) or just manually add custom constructors to THAIL? Both ways, it will have the same speed, it's just that programming it in Adapt may decrease file sizes and would make it somewhat easier to program everything, but it would require a new programming language to be used that not everyone may know. However, I could make Adapt have a more Python-like syntax to help people like @LizFoster who don't know JavaScript, so that it would be easier for people like her to add functions to THAIL.

CodeLongAndPros (1589)

Java's thing is "Write once, run anywhere"

CodingCactus (4191)

Your post kinda turned into a recruitment for thail, lol

xolyon (343)

@CodingCactus unintentionally , this might be one of the biggest threads on replit, I may have accidentally advertised them too

CodingCactus (4191)

@xolyon lol, I think my cactapedia has a pretty big thread

HackermonDev (2008)

The other post got locked so you should probably delete this post or something

xolyon (343)

@PDanielY I am just interested

LizFoster (648)

How did you hear about THAIL? ^__ ^

LizFoster (648)

@xolyon @LiamDonohue And what does "Imma" mean?? T~T

xolyon (343)

@LizFoster abbreviation of I am going to - I'm gonna - imma

LizFoster (648)

@xolyon Ahhh, I see. Cool! ^ ^*

xolyon (343)

@LizFoster @LiamDonohue Yeah, why did you have to pick such a ...American name (you guys always have to make your abbreviations actual sounding words) Do something dumb like HTML it makes it sound atypical and out of the ordinary

xolyon (343)

@LizFoster I saw the post by someone called online and it had no purpose so I did some investigating and found THAIL

LizFoster (648)

@xolyon Oh, yes, I don't know why he chose to post rather than just ping us -_-;

AmazingMech2418 (1039)

@xolyon Yes, I'm online‮Yes, I'm online...

xolyon (343)

@AmazingMech2418 kk I am gonna work on the game :)

xolyon (343)

@Studentfires @AmazingMech2418 Your discussions are really interesting but because it is on this tread it keeps pining me and it's really annoying, please if you can move this conversation elsewhere

I picked you two because I always get notifications from you

hazelpy (8)

LOL YOU CONSIDER HTML A LANGUAGE? ITS A MARKUP LANGUAGE LMFAO

hazelpy (8)

@PDanielY A markup language is not the same as a programming language.

xxpertHacker (865)

@Liamdonhue Can I join THAIL development, I asked before without a response. I'm multilingual in human languages and coding languages.

@xolyon HTML is as much a coding language as JSON is.

CodingCactus (4191)

@StudentFires hey, I thought you were against this. You were saying that it was a silly idea?

xxpertHacker (865)

@CodingCactus Yup, but if they're gonna make it, it ought to be good. Also, yesterday I told you about the idea on adaptable syntax? That was #AmazingMech2418, and I believe he's in on the project too.

Once again, I did reccommend against it, but as usual, the maker is adamant about making their own language, so he didn't listen to me; he's making it anyways.

xxpertHacker (865)

@CodingCactus Honestly, I'm not about to make a new language, but maybe a new data format. Hmm...

CodingCactus (4191)

@StudentFires ok, maybe put a little Easter egg in it, like in python

xxpertHacker (865)

@CodingCactus What easter egg is in Python? I also don't know where to begin, no clue what to name it, and I can't think of a better format than JSON or XML right now. I'm trying to come up with their flaws, no luck

xolyon (343)

@StudentFires Its Front end though I see it more as Design and format and for back end languages to operate on, its still a language just no in the same logic/use way.

CodingCactus (4191)

@StudentFires make a new repl, and just have one line saying:import this

xxpertHacker (865)

@xolyon Honestly their acronym made no sense whatsoever. How do you have a "high-level" language that is also "intermediate"? These directly contradict each other. C++, JavaScript, and Python are high level, not intermediate, it makes no sense at all.

Also, what is it's "front end"? A computer that runs the binary file?

xxpertHacker (865)

@CodingCactus How would I make an Easter egg in a data format?

CodingCactus (4191)

@StudentFires I have no idea about all of these things, but it would just be like a hidden function (like print, but kinda hidden) or a library.

xxpertHacker (865)

@CodingCactus Data cannot do anything. Can HTML do anything? Nope. Running it though a browser, now we're talking. Can text hurt you? No. How about when it's interpreted by an interpreter and executed? Maybe.

I'm thinking about a data format, not a programming language.

Unless you were still referring to THAIL, in which I give my apology for the misunderstanding.

CodingCactus (4191)

@StudentFires I have no idea what i am talking about if i'm honest ;)

xolyon (343)

@StudentFires front end languages are the stuff you basically see with, (HTML , CSS etc [i don't know anymore]

Back end is the logic and is what is usually defined as 'programming language' as it is these that do processing and logic and usually work on the front end languages (don't get me wrong you can make a front end site with python but it's hard)

like basically every lauage , JS , python , c++ etc

(another way to say it is front end is everything the avg user sees and back end is what they don't see )

xolyon (343)

@CodingCactus @StudentFires you guys know any in some existing languages?

xolyon (343)

@CodingCactus when you get so deep in a conversation you don't even get what your talking about anymore

CodingCactus (4191)

@xolyon lol, i didn't even know what i was talking about in the first place :)

xolyon (343)

@CodingCactus Oh yes I remember that my memory must I've dropped it

CodingCactus (4191)

@xolyon it's the only one that I know of

xolyon (343)

@CodingCactus who knows how many more we are gonna find in area 51

CodingCactus (4191)

@xolyon lol, programming language Easter eggs hidden in area 51 :)

xxpertHacker (865)

@xolyon I never got a ping on your message, sorry for the late response.

I asked about what you meant by front-end, as you weren't specific about front-end web development.

I'm well aware of the difference between back-end and front-end, as I've made multiple servers here on Repl (We're using over 700MB storage), and have made plenty of web pages using XHTML, HTML, CSS, JavaScript, XML, and XSLT, but for a language to be front-end on a web browser, it must be adopted by a major web browser.

Unless Liam makes his own web browser too, then there is no way whatsoever that his language can be used on the front-end.

How is THAIL a front-end then?


There is one way he can still make it a front-end, and that is by transpiling to JavaScript, which StudentFires is in the process of updating a TypeScript -> JavaScript transpiler, which is relatively easy, because they're so similar, but from THAIL to JavaScript would be extremely hard and inefficient.

@LiamDonohue What is THAIL for?

xxpertHacker (865)

@xolyon You wrote "you guys know any in some existing languages."
"[Y]ou guys know any" what "in some existing languages"?

xxpertHacker (865)

@xolyon Also, because of my previous post, you cannot, by any means necessary, "make a front end site with python," as you had wrote before.

xolyon (343)

@StudentFires Yeah imma now more talking about applications with that (excluding games)

xxpertHacker (865)

@xolyon With what? You're not being very clear here.

xolyon (343)

@StudentFires with the "front end devolopment using python"

xxpertHacker (865)

@xolyon Umm, it doesn't exist, as I said. Can you make an HTML Repl and link me to it? Is it as simple as <script src="main/py" type="application/python">, or what's the secret?

CaptainAnon (144)

@StudentFires I don't think it's that hard. You can compile from whatever language you want to LLVM IR and then use Emscripten with an FFI (foreign function interface) to handle DOM manipulation and other browser APIs.

CaptainAnon (144)

@StudentFires You can get an in-browser Python interpreter (DuckDuckGo "brython").

LiamDonohue (291)

sorry about late response inviting now @StudentFires

xxpertHacker (865)

@LiamDonohue It's okay, I'd be glad to offer what I can to help, even if it's a bit late.

xolyon (343)

@LiamDonohue Imma kinda interested in this, can I join somehow?

LiamDonohue (291)

Im glad people are finding out about this

xolyon (343)

@LiamDonohue I just found out after the 'Online' post

LizFoster (648)

Oh, and also, you tagged someone named Adria, their actual username is @AdriaDonohue

xolyon (343)

@LizFoster I am kinda interested , anyway, how can I join?

LizFoster (648)

@xolyon I don't know, but you could probably just ask @LiamDonohue since he is the host..

shaanbomb123 (9)

I can ask him for you if you want, I am @shaanbomb123. I am sure he will say yes.