1. Questions from a Beginner.
- Posted by rowrasaur May 15, 2009
- 1143 views
Hello,
I'll have to start with an apology: I'm 99/100ths newb. I haven't touched code since learning qbasic in grade 11, a program I didn't master. Now, I'd like to take the time to learn a language, mess around with it, and see where it takes me.
What I'd like to know is if you, the people who use Euphoria, would reccomend it for someone of my little experience, or if not, is there a language that caters more to beginners?
What are its limitations? What sort of applications would you not write with Eu?
And lastly, what do you like about it? What keeps you in this community?
On a sidenote, if I could kindly offer some early feedback, while all of the instruction and tutorials I've read so far offer an excellent explaination of the abstract concepts of how EU functions, none have really yet provided a practical and detailed tutorial of the steps you need to do to create an executable program. IMHO, the tutorials in the download package need to be revamped so that they are more understandable to first-time programmers.
2. Re: Questions from a Beginner.
- Posted by DerekParnell (admin) May 15, 2009
- 1211 views
Hello,
Hi, glad to have you around. There are lots of helpful people around and plenty of useful tips and thought-provoking discussions.
I'll have to start with an apology: I'm 99/100ths newb. I haven't touched code since learning qbasic in grade 11, a program I didn't master. Now, I'd like to take the time to learn a language, mess around with it, and see where it takes me.
Excellent! Don't be worried about asking 'noob' questions. We all have to start somewhere.
There are no silly questions even though there is sometimes sily answers. So jump in freely.
What I'd like to know is if you, the people who use Euphoria, would reccomend it for someone of my little experience, or if not, is there a language that caters more to beginners?
Absolutely. It is a good learning language, as well as being serious enough for commercial applications, if that's your desire.
What are its limitations? What sort of applications would you not write with Eu?
It not suitable for rendering real-time 3D animations, or anything that requires massive amounts of processing power. Euphoria is primarily an interpreter rather than a compiler. It converts your programs into a special format which is then run by an 'emulated' machine. This makes it easy to write a program that runs on different platforms without changing anything.
Compilers on the other hand, convert your program into machine language which is specific to one platform and computer architecture.
Even though interpreted programs run slower than compiled ones, the Euphoria interpreter is extremely fast - much faster than well known interpreters such as Ruby, Python, Perl, and Javascript.
However, Euphoria also comes with a tool that converts your program into the C programming language which can then be compiled to make it run even faster.
And lastly, what do you like about it? What keeps you in this community?
One of its most defining features is the simple data type system in Euphoria. The 'sequence' is extremely versatile and simple. An 'object' can hold any sort of data you like. A 'sequence' is a variable length list of objects. There are only really two data types in Euphoria - numbers and lists. Numbers are divided into 'atoms', which can hold any type of number, and 'integers' which can only hold integers (surprise, surprise). The reason for the 'integer' type is that for certain things it can make programs run a lot faster, but the choice is up to you. That's it - the whole type Euphoria system.
Type | Description | Example |
---|---|---|
atom | Any number. | atom A = 3.4129 |
integer | Only whole numbers. | integer B = 42 |
sequence | A list of objects. Each element in the list can be referenced by index and you can reference subsets of a sequence, called slices. | sequence S = {1, 2, 9.8, { 5, 4} } |
object | Can hold any of the above. | object X X = 1 X=2.3 X={5,6} |
In Euphoria, text is just a sequence of integers - one for each character. But to make it easier to write and read, you can use single characters in single quotes - 'q' - or whole text strings using double quotes - "Euphoria".
-- Sample sequence name = "Euphoria" puts(1, name) -- Write whole name to screen puts(1, name[2]) -- Write only the second character to screen puts(1, name[3 .. 5]) -- Write slice starting from 3rd character to 5th character inclusive.
On a sidenote, if I could kindly offer some early feedback, while all of the instruction and tutorials I've read so far offer an excellent explaination of the abstract concepts of how EU functions, none have really yet provided a practical and detailed tutorial of the steps you need to do to create an executable program. IMHO, the tutorials in the download package need to be revamped so that they are more understandable to first-time programmers.
Agreed, they do need improvement. We are in the process of preparing the next version of Euphoria for release, and we'd love help in improving the documentation. There are some improvements coming but more are welcome.
There is a project called 'Think Euphoria' being developed by a member of the OpenEuphoria team that will be available with v4. You can have a look at a draft of it (very incomplete).
Also, I can provide a step-by-step programming example if you'd like one.
3. Re: Questions from a Beginner.
- Posted by vmars May 15, 2009
- 1154 views
Yes, there are some IMO really good online Tutorials:
A Beginners Guide To Euphoria, by suninyoureye@linuxmail.org , @
http://www.axyp43.dsl.pipex.com/abgte.html
and Jubilation, by cklester, Programming with Euphoria
http://www.usingeuphoria.com/books/jubilation/?entirebook
and EUIphoria, by cklester, Programming GUI Applications with Euphoria
http://www.usingeuphoria.com/books/guiphoria/?entirebook
I am chugging thru 'Beginners Guide' right now.
Also, I have turned these 3 online Tutorials into OffLine ones. So you can read them offline, and also on Kindle and iPod. I sent the offLine versions to the Authors, so maybe they will Post them somewhere online.
If someone could tell me: where can I Post these offline versions for Download, on this Forum, or elsewhere handy. Thanks!
4. Re: Questions from a Beginner.
- Posted by cmr May 20, 2009
- 1035 views
Being in a similar position to rowrasaur, I'd like to echo the comments about making the tutorials more beginner-friendly. Can I also put in a request (I think I mentioned this before) for a tutorial specifically about producing an elementary program using the IDE. I like your IDE a lot, but getting at the information I need even for a simple program is like looking for a needle in a haystack.
I would say that, as a near-beginner and hobbyist, I'm finding Euphoria as a language easy to pick up. Even if I have to leave it for ages owing to lack of time, I don't come back to it and find I've forgotten what I learned before. I'm sure it'll meet all my needs. I'll never reach an advanced enough stage to know if it can meet everybody's needs, but it obviously doesn't meet Critic's. Every thread I've looked at so far on this forum seems to end in a lengthy argument with Critic, it's getting tedious. Don't you have any provisions for banning people from the forum so as to leave the forum free for those who just genuinely want to make the most of Euphoria?
5. Re: Questions from a Beginner.
- Posted by irv May 20, 2009
- 987 views
Being in a similar position to rowrasaur, I'd like to echo the comments about making the tutorials more beginner-friendly. Can I also put in a request (I think I mentioned this before) for a tutorial specifically about producing an elementary program using the IDE. I like your IDE a lot, but getting at the information I need even for a simple program is like looking for a needle in a haystack.
Tutorials are difficult, because once someone gets past the "create a window with a button" stage, the programming language (any language) fades into insignificance. Dealing with Windows (or other GUI) becomes the primary focus, and even Microsoft (who built that haystack), with all its resources, doesn't provide much in the way of good tutorials. Same applies if you are using another GUI such as GTK.
The two things I've found useful?
1. Running programs which come with source code. If the program has a feature that I'd like, I can find out how it was implemented, and put that into my own code.
2. Asking specific questions. A very specific question will usually get several good answers. An unspecific question may get lots of different answers. They may all be correct answers, in their own way, but conflicting and confusing. If you had to ask the question, you may not yet have the skills to sort through the answers to find the one most appropriate for YOUR need.
I'll never reach an advanced enough stage to know if it can meet everybody's needs, but it obviously doesn't meet Critic's. Every thread I've looked at so far on this forum seems to end in a lengthy argument with Critic, it's getting tedious. Don't you have any provisions for banning people from the forum so as to leave the forum free for those who just genuinely want to make the most of Euphoria?
Critic's only need is to draw attention to himself. In other words, a troll. He doesn't have any programming needs, because he doesn't do any programming.
I completely agree that there should be some way to prevent every topic from being hijacked. Some forums use a moderator, but it might be better to just create a separate area for off-topic posts (sometimes those can be interesting) and know-nothing posters (aka Critic). It's fun to bait them and watch as they make fools of themselves.
6. Re: Questions from a Beginner.
- Posted by cmr May 21, 2009
- 1076 views
Thank you for your comments. Yes, obviously programming from a GUI point of view is a different ball game and the actual language isn't the sole consideration any more - that's why I think it would be helpful to have an introductory guide to bringing the two together. I'm amazed at what you can do with the IDE, it's very comprehensive so there's obviously going to be a lot of information to pack in - it's just finding the bits you're most likely to need in the early stages, for example the GUI equivalents of "print" and "puts", so you can get something simple up and running quickly. It's a psychological thing as much as anything, I suppose, and I admit I'm not the most patient type!
The language tutorials themselves are basically very good, it just needs to be made clear at the outset that (a) you need something like "atom a" and "a = getc(0)" to stop the console disappearing and (b) to get that to work you also need to put in "include get.e" at the beginning of the program.
Perhaps there could be a separate branch of the forum specifically for newbies so we can sift out the basic things more quickly and leave the technical arguments to the advanced people?
7. Re: Questions from a Beginner.
- Posted by andi May 21, 2009
- 1013 views
If someone could tell me: where can I Post these offline versions for Download, on this Forum, or elsewhere handy. Thanks!
If I understand this right (my native Language is not English) you are looking for some Webspace to put the downloads on. Maybe, I can offer some Webspace for this.
Please tell me how big there are and we can try it out.
8. Re: Questions from a Beginner.
- Posted by rowrasaur May 28, 2009
- 929 views
Hey,
Thanks to whoever cleared the gargabe out of this thread.
Just a small question for anybody who can answer:
The short version is: how do I convert ascii text in a sequence to numerical atoms in a sequence?
Here's the long version
I'm trying to compare parts of two sequences.
An example of the first sequence would be something like {E,0,0}
The second would be something like { {70,0,0}, {69,0,0}, {68,0,0} }
I can't seem to get EU to recognize that sequence 1 is equal to the second sequence of sequence 2 (I thought it might see it as equal because the ascii code for "E" is 69)
So I'm assuming I need to convert the ascii value to an atom value. How do I do this?
9. Re: Questions from a Beginner.
- Posted by doncole2009 May 28, 2009
- 929 views
- Last edited May 29, 2009
Hey,
Thanks to whoever cleared the gargabe out of this thread.
Just a small question for anybody who can answer:
The short version is: how do I convert ascii text in a sequence to numerical atoms in a sequence?
Here's the long version
I'm trying to compare parts of two sequences.
An example of the first sequence would be something like {E,0,0}
The second would be something like { {70,0,0}, {69,0,0}, {68,0,0} }
I can't seem to get EU to recognize that sequence 1 is equal to the second sequence of sequence 2 (I thought it might see it as equal because the ascii code for "E" is 69)
So I'm assuming I need to convert the ascii value to an atom value. How do I do this?
An example of the first sequence would be something like {E,0,0}
The second would be something like { {70,0,0}, {69,0,0}, {68,0,0} }
key="E" printf(1,"ascii=%d\n",{key})
First you must determine if the values should be converted or not. What about the 2 0s?
The best thing is to make sure your sequences have like values before you compare.
Don Cole
10. Re: Questions from a Beginner.
- Posted by irv May 28, 2009
- 935 views
- Last edited May 29, 2009
First of all, you cannot make a sequence {E,0,0}.
If you put single quotes around the 'E' then you can make a sequence, which is exactly the same as {69,0,0}
sequence s1,s2 s1 = {'E',0,0} s2 = {{70,0,0},{69,0,0},{68,0,0}} if equal(s1,s2[2]) then puts(1,"They are equal\n") else puts(1,"They are not equal\n") end if
11. Re: Questions from a Beginner.
- Posted by rowrasaur May 28, 2009
- 930 views
- Last edited May 29, 2009
perfect, thank you.
for the record, I did have the single quotation marks, but my if statement was wrong.
I thought the end had an "= 0" like this
"...if equal(s1,s2[2]) = 1 then..."
again, perfect, simple example, thanks
12. Re: Questions from a Beginner.
- Posted by DerekParnell (admin) May 29, 2009
- 951 views
perfect, thank you.
for the record, I did have the single quotation marks, but my if statement was wrong.
I thought the end had an "= 0" like this
"...if equal(s1,s2[2]) = 1 then..."
Yes, it is easy to get equal() and compare() confused.
if compare(x,y) = 0 then
is the same as
if equal(x,y) then
13. Re: Questions from a Beginner.
- Posted by vmars May 30, 2009
- 1001 views
If someone could tell me: where can I Post these offline versions for Download, on this Forum, or elsewhere handy. Thanks!
If I understand this right (my native Language is not English) you are looking for some Webspace to put the downloads on. Maybe, I can offer some Webspace for this.
Please tell me how big there are and we can try it out.
Gee thanks for the cleanup. I had given up on this hread.
A Beginners Guide To Euphoria, by suninyoureye@linuxmail.org , @
http://www.axyp43.dsl.pipex.com/abgte.html -Actually, this is already an OffLine Version = 530kb (just saveAs)
and Jubilation, by cklester, Programming with Euphoria
http://www.usingeuphoria.com/books/jubilation/?entirebook -OffLine Version = 25k .zip (inc graphics)
and EUIphoria, by cklester, GUIphoria-Programming-Part-I
http://www.usingeuphoria.com/books/guiphoria/?entirebook -OffLine Version = 86k .zip
and EUIphoria, by cklester, GUIphoria-Programming-Part-II
http://www.usingeuphoria.com/books/eugui/?entirebook -OffLine Version = 28k .zip
...Vern
btw: Will we soon have a track thread 'notify by email' option? Thanks
14. Re: Questions from a Beginner.
- Posted by andi Jun 12, 2009
- 970 views
If someone could tell me: where can I Post these offline versions for Download, on this Forum, or elsewhere handy. Thanks!
If I understand this right (my native Language is not English) you are looking for some Webspace to put the downloads on. Maybe, I can offer some Webspace for this.
Please tell me how big there are and we can try it out.
Gee thanks for the cleanup. I had given up on this hread.
A Beginners Guide To Euphoria, by suninyoureye@linuxmail.org , @
http://www.axyp43.dsl.pipex.com/abgte.html -Actually, this is already an OffLine Version = 530kb (just saveAs)
and Jubilation, by cklester, Programming with Euphoria
http://www.usingeuphoria.com/books/jubilation/?entirebook -OffLine Version = 25k .zip (inc graphics)
and EUIphoria, by cklester, GUIphoria-Programming-Part-I
http://www.usingeuphoria.com/books/guiphoria/?entirebook -OffLine Version = 86k .zip
and EUIphoria, by cklester, GUIphoria-Programming-Part-II
http://www.usingeuphoria.com/books/eugui/?entirebook -OffLine Version = 28k .zip
...Vern
btw: Will we soon have a track thread 'notify by email' option? Thanks
Hi
I missed a week or so....
http://www.indonesianet.de/eu/abgte.html
I put this there for download and viewing. I gonna put the rest of the books also there if you think this okay. Maybe i should create a little start-page...
Bye
15. Re: Questions from a Beginner.
- Posted by vmars Jun 12, 2009
- 963 views
- Last edited Jun 13, 2009
Hi
I missed a week or so....
http://www.indonesianet.de/eu/abgte.html
I put this there for download and viewing. I gonna put the rest of the books also there if you think this okay. Maybe i should create a little start-page...
Bye
Ok, how do you want me to pass these files to you, email, ftp . Thanks!
16. Re: Questions from a Beginner.
- Posted by andi Jun 13, 2009
- 837 views
Ok, how do you want me to pass these files to you, email, ftp . Thanks!
You, can send them to andi(at)indonesianet(dot)de.
bye