Re: Eu's poor design

new topic     » goto parent     » topic index » view thread      » older message » newer message

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

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu