Re: Ideas for next Eu
- Posted by Michael Nelson <mike-nelson-ODAAT at WORLDNET.ATT.NET> Nov 08, 1999
- 742 views
------=_NextPart_000_0042_01BF29D9.35CC80A0 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I really don't see the need for any fundamental change in the way = Euphoria works. A GUI and better file handling would be highly = desireable--in my mind, better as includes than built-ins so that those = who prefer alternatives can use them easily. With regard to routine_id, = I find it essential--there is no other means for indirect function and = procedure calls--and it's MUCH easier than pointers! I might like to = have something comparable for data to allow indirect references, but = this isn't critical. I would like to see the restriction on forward = references dropped, but can live with it. A possible compromise: C's = method of requiring functions to be declared before use but not = requiring them to be defined before use could be implemented in = Euphoria: declare function foo(integer,sequence) bar=3Dfoo(15,"ABC") function foo(integer i,sequence s) return s[i] end function This would be more readable than the routine_id equivalent and might not = be too hard to implement. And of course namespaces must be addressed. But all of these ideas are = improvements to Euphoria, not fundamental changes of direction--IMHO, = changes like variables global by default or passing by reference, etc. = would be. Actully, the more I think of that last isssue, the more I like the idea = of data_id: integer x,y x=3D17 y=3Ddata_id("x") then y could be passed as a parameter to a routine which could use if to = maipulate x indirectly--the power of pointers without the enormous = complexity. And it wouldn't get in anyone's way who didn't want = it--just don't use it. Actually all the OOP ideas I've seen do this, but having it built in = would be useful in some non-OOP contexts as well. --MIke Nelson ------=_NextPart_000_0042_01BF29D9.35CC80A0 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN"> <HTML> <HEAD> <META content=3Dtext/html;charset=3Diso-8859-1 = http-equiv=3DContent-Type> <META content=3D'"MSHTML 4.72.3110.7"' name=3DGENERATOR> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT color=3D#000000 size=3D2>I really don't see the need for any = fundamental=20 change in the way Euphoria works. A GUI and better file handling = would be=20 highly desireable--in my mind, better as includes than built-ins so that = those=20 who prefer alternatives can use them easily. With regard to = routine_id, I=20 find it essential--there is no other means for indirect function and = procedure=20 calls--and it's MUCH easier than pointers! I might like to have = something=20 comparable for data to allow indirect references, but this isn't = critical. =20 I would like to see the restriction on forward references dropped, but = can live=20 with it. A possible compromise: C's method of requiring = functions to=20 be declared before use but not requiring them to be defined before use = could be=20 implemented in Euphoria:</FONT></DIV> <DIV><FONT color=3D#000000 size=3D2></FONT> </DIV> <DIV><FONT color=3D#000000 size=3D2>declare function=20 foo(integer,sequence)</FONT></DIV> <DIV><FONT color=3D#000000 size=3D2></FONT> </DIV> <DIV><FONT color=3D#000000 = <DIV><FONT color=3D#000000 size=3D2></FONT> </DIV> <DIV><FONT color=3D#000000 size=3D2>function foo(integer i,sequence = s)</FONT></DIV> <DIV><FONT color=3D#000000 size=3D2> <FONT = color=3D#000000>return=20 s[i]</FONT></FONT></DIV> <DIV><FONT color=3D#000000 size=3D2><FONT = color=3D#000000></FONT></FONT><FONT=20 size=3D2>end function</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>This would be more readable than the routine_id = equivalent and=20 might not be too hard to implement.</FONT></DIV> <DIV><FONT size=3D2>And of course namespaces must be addressed. = But all of=20 these ideas are improvements to Euphoria, not fundamental changes of=20 direction--IMHO, changes like variables global by default or passing by=20 reference, etc. would be.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>Actully, the more I think of that last isssue, the = more I like=20 the idea of data_id:</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>integer x,y</FONT></DIV> <DIV><FONT size=3D2>x=3D17</FONT></DIV> <DIV><FONT size=3D2>y=3Ddata_id("x")</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>then y could be passed as a parameter to a routine = which could=20 use if to maipulate x indirectly--the power of pointers without the = enormous=20 complexity. And it wouldn't get in anyone's way who didn't want = it--just=20 don't use it.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>Actually all the OOP ideas I've seen do this, but = having it=20 built in would be useful in some non-OOP contexts as well.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2>--MIke Nelson</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT color=3D#000000 size=3D2></FONT> </DIV> ------=_NextPart_000_0042_01BF29D9.35CC80A0--