Re: Eu's poor design
- Posted by jbrown105 at speedymail.org Aug 16, 2003
- 495 views
On Sat, Aug 16, 2003 at 11:47:14AM +0000, Andreas Rumpf wrote: > > > Lets face it, at its current state, Euphoria is rather useless for > programming real applications, for several reasons: > It lacks: > - Call by reference (the most important feature I want to add!): > Some say, it isn't needed in Eu, because you can simply return > a sequence. Yes, that's true. But apart from being tedious to type, > it makes the code much less efficient. > example: > seq[2][3][5] = func(seq[2][3][5]) -- this is just stupid We have call by reference, of sorts. Via routine_id(). Also, for emulation of pass by reference: global sequence x ...initialize x here... procudure g(integer i, object v) ? x[i] x[i] = v end procedure integer z z = 5 x[z] = "hi" g(z, "bye") ? x[z] which is ugly, but still possible. > > So for real applications I would use global variables all over the place > (like the other Eu programmers do). (Great improvement over call by > reference!) > > (The reason why call by reference is missing is probably because Rob > didn't understand functional programming properly. Hey Rob, Euphoria is > no functional language! If you wanted to make a functional programming > language, why did you implement variables and loops? Recursion & > constants would do.) > Are you against variables and loops then? > - Block comments: While they are not essential, it is really dump > to put "--" before any line if I just want to comment out some code for > a short period time. Apart from that, line comments (though being very > useful!) are really inconsequent: If line endings are not important for > the Eu interpreter why are comments/include statements different? And > why use -- for line comments when # would do (#! is allowed in the first > line for linux compability anyway!)? What is used as the comment character is a minor detail. Also, # is used for hexidecimal in Euphoria. > By the way, the scanner should not be line-based for Euphoria (although > Rob probably did it this way - nobody knows why, it doesn't make much > sense), so block comments are NOT harder to scan than line comments! > > But there are other drawbacks: > allocate() and free() ??? I thought Euphoria had a garbage collector! These are for low level programming (i.e. interfacing with the OS or with C routines in .dll or .so files). They aren't meant for use in pure Eu programming but when mixing with elements outside of your program (such as a third party dll file written in C). > > If Euphoria is intended for programming newbies, why is Euphoria case > sensitive? (Why are so many languages case sensitive by the way? That > way I have to remember exactly how the identifier was being written!) > If a person cant be case sensitive that person will have big problems being a programmer, period. > I used to use hashing a lot. Guess what, in Euphoria most hash functions > can't be implemented (or only with poor performance!), because integers > don't wrap around but are converted to floating point when they get to > big! > > Yes, that is annoying. But, that is actually a newbie friendly function! Also, doesnt use of the 'integer' type prevent this? Since its never a floating point number... > This is really annoying because Euphoria is a great language full of > good ideas. I like it for small scripting tasks, but it is simply not > suited well for bigger programming tasks. Well, it can be, but it would be cumbersome to use in many cases due to a lot of missing pieces. > > > > TOPICA - Start your own email discussion group. FREE! > -- /"\ ASCII ribbon | http://www.geocities.com/jbrown1050/ \ / campain against | Linux User:190064 X HTML in e-mail and | Linux Machine:84163 /*\ news, and unneeded MIME | http://verify.stanford.edu/evote.html