RE: RE: Eu's poor design

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

Peter Willems wrote:
> 
> 
> Hello Andreas,
> 
>    Although I have decided against Euphoria (currently) as a viable
>    option for professional development, I have some remarks to make
>    here.....
> 
> Andreas Rumpf wrote:
> > 
> > Lets face it, at its current state, Euphoria is rather useless for 
> > programming real applications, for several reasons:
> 
>    I do agree that it is not there yet, but for different 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
> 
>    OK, but.....
> 
> > 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!)
> 
>    If that is a great aprovement over "call by reference" then why
>    do you need "call by reference. Your stament is confusing.
That statement was meant ironically.

>    And the lack of such an option doesn't mean you can't write
>    serious or professional applications with it.
Well, agreed, you CAN, but you probably won't. If call by reference is 
not needed, why nearly every language (every non-functional language) 
has it? In Pascal, I can return arrays/records (i.e. sequences) too, but 
there is also call by reference. (Guess, what people use - call by 
reference!) I can't see why one implies not to have the other.
>  
> > (The reason why call by reference is missing is probably because Rob 
> > didn't understand functional programming properly.
> 
>    Maybe, but.....
> 
> > 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.)
> 
>    Where is it stated that Euphoria is a functional language.
>    And if it is not a functional language (which I think it isn't)
>    then why would Rob have to "understand functional programming
>    properly" ?? I have no idea why you are stating this.
Ok, it's quite difficult to explain, but I'll try: I don't like 
functional programming (though I have done it by the way!). What Rob 
probably did was to look at functional programming and thought, the 
reason why functional programming produces better programs are the lack 
of call by reference. So he probably thought, "if Euphoria doesn't have 
call by ref, it will lead to better coding".
But that's a shortcoming. It leads to usage of global variables which is 
NOT better coding!

>    Besides (and again) this has nothing to do with the usability of
>    a language for serious tasks. Most used languages are NOT
>    functional languages. C and C++, Python, Perl, Java, etc. are
>    NOT functional languages. Prolog, Haskell, Erlang, Clean and the
>    likes are functional languages but apart from Erlang, most are
>    used in research and not in enterprise applications.
Yes that's true, but most companies don't want to produce quality apps, 
they want to make money. As long as people buy minor/bugged programs 
that won't change. 


> > - 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.
> 
>    This has been discussed before. Every good programmers editor
>    handles this for you. Btw, if you are on windows I recommend
>    you take a look at PSPad. I use it currently for my Euphoria
>    coding and it's the closest to a real IDE.
> 
> > 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!)?
> > 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!
> 
>    Why would # be better. Just because other languages use it ??
>    There are other languages that use -- also. Besides, tmo -- gives
>    much better readability as it stands out much better. Take a look
>    at any big chunk of PERL code and you know what I mean.
Well you are right, that's a minor detail (but # stands out better, I 
think).

>    But more important, what does this have to do with using a language
>    for serious tasks. I've never heard of any case where the token
>    used for comments had any influence on the resulting quality of
>    the application.
You are right here. This example was not really an argument against the 
usability for Eu.

>  
> > But there are other drawbacks: 
> > allocate() and free() ??? I thought Euphoria had a garbage collector!
> 
>    I think it's stated clearly in the Euphoria docs that they are 
>    available for those that want to use them. I also recall that it
>    is adviced in the docs to STAY AWAY from those statements as much
>    as possible.
>  
Ok, that's a minor detail either. (But I am right, if gargabe collection 
than please for allocate() too! Be consequent!) 

> > 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!)
> 
>    Yes, and that way you are forced to actually *learn* the language.
>    Oh, and using PSPad, I just add function names to the language
>    definition for the highlighter and it shows me when I'm forgetting
>    the correct case.
> 
>    But again this does NOT impact the quality of the programs that
>    can be written with the language.
Ok.
> > 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!
> 
>    Wrapping integers can be a big PITA in several other applications,
>    especially business oriented calculations.
Sorry, I don't know what PITA means.
>  
> > 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.
>  
>    Euphoria as a language is very well suited for serious large
>    projects. The points you make here are of non importance when
>    a company (like my own) is deciding on a development platform.
I don't think so.

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

Search



Quick Links

User menu

Not signed in.

Misc Menu