1. Euphoria as an addiction...

------=_NextPart_000_01BC609F.FA6C4F40

This is about the ideologie of Euphoria, and how to it could  be improved.
My ideas are nothing compared to what might be in your head...
So lets begin the discussion about new features that should be in a new
version of Euphoria...

I also want to start with an apologize for my lame English,
        I'm 15 and from Holland, where Dutch is our mother language.
        (On TV, music and at school English is being pussed up our minds.)
        (Like the Net does too...       )
   -- Ralf Nieuwenhuijsen     (Most moran's write Ralph, why????)

 First, I want to compare Euphoria and it's language flexibilities with
other languages.

        Euphoria is in memory mangement one of the most powerfull tools created.
(but far from perfect.) It's flexible, clear and very clean, not like the
fixed memory of C or assembly (yak!) or the memory mangement of the new
version of Visual Basic (I've got VB 5 *FINAL* ENTERPRISE EDITION), which
simply accepts everything.
If you count  "2" with 3 and then add " money" you'll get a string like
this: "5 money". That's flexible, but not very clear and esppecially not
very clean. (takes CPU time and irregular memory sizes!)
Euphoria's code would count the ascII-value of "2" with 3 and then made
        a
sequence wich would also be
"5 money". You might not believe it at first sight, but trust me it, works!
(The ascII-value of "5" is 3 more then that of "2"). But the Euphoria code
would be clean, clear and logical.
        Still all that flexibility takes up CPU and memory, and you might
sometimes prefere to use a quicker memory mangement. But in an interperted
language like Euphoria it wouldn't be that much quicker cause it was
interperted. And if you're going to use assembly and peek/poke in Euphoria
you are losing one of most important benefits of an interperted language,
that is portability. However if you don't your program runs too slow.
How does other language solve this?? The most languages are being
        compiled
for the best code possible, so that you'll loose time at design-time
instead of at run-time. When you think about it you'd rather loose that
time when you're designing your program then when you running it.
        But interperted language have other advantages, like the dynamic memory
structure Euphoria is using could almost only be possible in a language
like Euphoria. Also your system will never hang if you do not use any
system specific commands like peek(), poke(), call() and those interrupt
routines. You'll also have full error diagnosis, and the language could be
a lot more flexible, cause most thing will be processed at run-time and
therefor can depend on information that is only available at run time. Also
and update for ex.exe would automatically update all euphoria programs wich
when they don't use any system specific routines can't contain any system
specific bugs (it's written in and high-end language wich does not use any
system-specific commands). And all other types of bugs will also occur on
the designers computer. Beta-testing is almost not needed when you program
in Euphoria.

        So to all of you wich use any system specific routines...   ....DON'T!!!

        What is then the solution to our problem ??? Let every aspect of the
flexibility be an option wich you can enable only there where it's needed.
You've problely have a lot of trouble with that last sentence so i'm giving
you an example:

atom menu_key by 8 from 1 to 256                -- would create a 8 bits
        atom with a
range between 1 and 256

Yes, the 8 stands for 8 bits and the 'from 1 to 256' stands for a range
        of
1 to 256 and when you enter an value wich is too precise to fit in the
bits, the number will automatically be rounded to the nearest value that
does fit. But you might want Euphoria to round an value down for a specific
atom!

atom meny_key by 8 from 1 to 256 down   -- would create the same atom,
        but
always rounds a value down.

atom esc_key by 8 from 1 to 256 up              --              ... or
        up!!

And what happens when my range is too large for the value of bits???
        Well,
nothing, the precision of the atom is just not so high. When you have a
range of 1 to 4 and a precision of 1 bit, the only two values every stored
are 1 or 4, however that value is not really stored, the value 0 or 1 is
stored and the code is changed by an smart preprocessor wich only
calculates the virtual value when needed.
Also i would like to see a table data type, a table is a fixed
        dimensioned
sequence with a fixed sized atom spaces. It would not be so flexible on his
own but they could be stored in sequences and there you've got your
flexibility, also it would allow us to add a new future, that is dimensoned
cutting.

        table logo by {100, 100, 8} from 1 to 256 only  -- would create a table
named logo of 100*100 where an 8-bit value can                                  
                       be stored from 1 to
256 and when assinging values wich do not fit
result in an
                                                                error

        Sorry for such a vague example but i'll explain it all now. The table
named logo is being used to store a picture (the logo) wich has an
dimension of 100 by 100 and holds 8-bit values. The values are from 1 to
256 and when an value is given that does not fit the bits presicion (like
1.5) an error occurs cause we used the keyword only. Which can be add to
make sure the value that is give is stored without rounding. If it needs to
round, it will cause an error. In this table all whole numbers between 1
and 256 can be add cause 8-bits has 256 different combinations. I used an
sequence so that the dimensions can be determined by run-time variables,
some value the user has typed for example.
        The advantage of table are speed, memory, easy conversion(i'll explain
later) and dimensioned cutting.
About that last term, dimesioned cutting i mean refering to a inside table
like this: logo[25..75][25..75] = 1
Wich sets all values in the table from row 25 to row 75 from column 25 to
column 75 to 1.

This mail is getting too long so i'll save the rest for later, first i
wanne see what kind if respond i can expect....

Ralf Nieuwenhuijsen
nieuwen at xs4all.nl




------=_NextPart_000_01BC609F.FA6C4F40
Content-Transfer-Encoding: quoted-printable

<html><head></head><BODY bgcolor=3D"#A0A0A8"><p><font size=3D3 =
color=3D"#800000" face=3D"Arial">This is about the ideologie of =
Euphoria, and how to it could &nbsp;be improved.<br>My ideas are nothing =
compared to what might be in your head...<br>So lets begin the =
discussion about new features that should be in a new version of =
Euphoria...<br><br><i>I also want to start with an apologize for my lame =
English,<br>	I'm 15 and from Holland, where Dutch is our mother =
language.<br>	(On TV, music and at school English is being pussed =
up our minds.)<br>	(Like the Net does too...	)<br> =
&nbsp;&nbsp;-- Ralf Nieuwenhuijsen &nbsp;&nbsp;&nbsp;&nbsp;(Most moran's =
write Ralph, why????)<br><br></p>
<p><ul><li></i><font color=3D"#000080"><b> First, I want to compare =
Euphoria and it's language flexibilities with other =
languages.</b></ul></p>
<p><font color=3D"#800000">	<br>	Euphoria is in memory =
mangement one of the most powerfull tools created. (but far from =
perfect.) It's flexible, clear and very clean, not like the fixed memory =
of C or assembly (yak!) or the memory mangement of the new version of =
Visual Basic (I've got VB 5 *FINAL* ENTERPRISE EDITION), which simply =
accepts everything.<br>If you count &nbsp;&quot;2&quot; with 3 and then =
add &quot; money&quot; you'll get a string like this: &quot;5 =
money&quot;. That's flexible, but not very clear and esppecially not =
very clean. (takes CPU time and irregular memory =
sizes!)<br>	Euphoria's code would count the ascII-value of =
&quot;2&quot; with 3 and then made a sequence wich would also be =
<br>&quot;5 money&quot;. You might not believe it at first sight, but =
trust me it, works! (The ascII-value of &quot;5&quot; is 3 more then =
that of &quot;2&quot;). But the Euphoria code would be clean, clear and =
logical.<br>	Still all that flexibility takes up CPU and memory, =
and you might sometimes prefere to use a quicker memory mangement. But =
in an interperted language like Euphoria it wouldn't be that much =
quicker cause it was interperted. And if you're going to use assembly =
and peek/poke in Euphoria you are losing one of most important benefits =
of an interperted language, that is portability. However if you don't =
your program runs too slow.<br>	How does other language solve =
this?? The most languages are being compiled for the best code possible, =
so that you'll loose time at design-time instead of at run-time. When =
you think about it you'd rather loose that time when you're designing =
your program then when you running it. <br>	But interperted =
language have other advantages, like the dynamic memory structure =
Euphoria is using could almost only be possible in a language like =
Euphoria. Also your system will never hang if you do not use any system =
specific commands like peek(), poke(), call() and those interrupt =
routines. You'll also have full error diagnosis, and the language could =
be a lot more flexible, cause most thing will be processed at run-time =
and therefor can depend on information that is only available at run =
time. Also and update for ex.exe would automatically update all euphoria =
programs wich when they don't use any system specific routines can't =
contain any system specific bugs (it's written in and high-end language =
wich does not use any system-specific commands). And all other types of =
bugs will also occur on the designers computer. Beta-testing is almost =
not needed when you program in Euphoria.<br><br>	<b>So to all of =
you wich use any system specific routines... =
&nbsp;&nbsp;....DON'T!!!</b><br><br>	What is then the solution to =
our problem ??? Let every aspect of the flexibility be an option wich =
you can enable only there where it's needed. You've problely have a lot =
of trouble with that last sentence so i'm giving you an =
example:<br><font size=3D3>	<br><font color=3D"#800080">	<font =
face=3D"Times New Roman">atom menu_key by 8 from 1 to 256		-- =
would create a 8 bits atom with a range between 1 and 256<br><font =
size=3D2 face=3D"Arial"><br><font size=3D3 color=3D"#800000">	Yes, =
the 8 stands for 8 bits and the 'from 1 to 256' stands for a range of 1 =
to 256 and when you enter an value wich is too precise to fit in the =
bits, the number will automatically be rounded to the nearest value that =
does fit. But you might want Euphoria to round an value down for a =
specific atom!<br><br>	<font size=3D3 color=3D"#800080" =
face=3D"Times New Roman">atom meny_key by 8 from 1 to 256 down	-- =
would create the same atom, but always rounds a value =
down.<br><br>	atom esc_key by 8 from 1 to 256 up		-- =
&nbsp;&nbsp;		... or up!!<br><br><font size=3D3 =
color=3D"#800000" face=3D"Arial">	And what happens when my range is =
too large for the value of bits??? Well, nothing, the precision of the =
atom is just not so high. When you have a range of 1 to 4 and a =
precision of 1 bit, the only two values every stored are 1 or 4, however =
that value is not really stored, the value 0 or 1 is stored and the code =
is changed by an smart preprocessor wich only calculates the virtual =
value when needed.<br>	Also i would like to see a table data type, =
a table is a fixed dimensioned sequence with a fixed sized atom spaces. =
It would not be so flexible on his own but they could be stored in =
sequences and there you've got your flexibility, also it would allow us =
to add a new future, that is dimensoned cutting.<br><br>	<font =
size=3D3 color=3D"#800080" face=3D"Times New Roman">table logo by {100, =
100, 8} from 1 to 256 only	-- would create a table named logo of =
100*100 where an 8-bit value can =
								be stored from 1 to 256 =
and when assinging values wich do not fit =
<br>								result in an =
error<br><br><font face=3D"Arial">	<font size=3D3 =
color=3D"#800000">Sorry for such a vague example but i'll explain it all =
now. The table named logo is being used to store a picture (the logo) =
wich has an dimension of 100 by 100 and holds 8-bit values. The values =
are from 1 to 256 and when an value is given that does not fit the bits =
presicion (like 1.5) an error occurs cause we used the keyword only. =
Which can be add to make sure the value that is give is stored without =
rounding. If it needs to round, it will cause an error. In this table =
all whole numbers between 1 and 256 can be add cause 8-bits has 256 =
different combinations. I used an sequence so that the dimensions can be =
determined by run-time variables, some value the user has typed for =
example.<br>	The advantage of table are speed, memory, easy =
conversion(i'll explain later) and dimensioned cutting.<br>About that =
last term, dimesioned cutting i mean refering to a inside table like =
this: <font color=3D"#800080">logo[25..75][25..75] =3D 1<br><font =
color=3D"#800000">Wich sets all values in the table from row 25 to row =
75 from column 25 to column 75 to 1.<br><br>This mail is getting too =
long so i'll save the rest for later, first i wanne see what kind if =
respond i can expect....<br><br><i>Ralf =
Nieuwenhuijsen<br>nieuwen at xs4all.nl<font color=3D"#FF0000"><br></i><font =
color=3D"#800000"><br><br>	<b><br><font size=3D2><br></p>
------=_NextPart_000_01BC609F.FA6C4F40--

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu