1. EUPHORIA's New Name...
- Posted by C & K L <candkNOSPAM2ME at TICNET.COM> Feb 04, 1999
- 436 views
Maybe Rob would like some suggestions about language names...? I think we should get all the suggestions from the users and then vote on it. Someone can set up a voting booth OR we can simply discuss it here on the list. It's also time for a dedicated domain name for EUPH- I mean, the language we all know and love... I'd be willing to donate time in developing the site, although I'm sure the Craig's have fun doing it themselves... "Boehme, Gabriel" wrote: > "Cuny, David" <David.Cuny at DSS.CA.GOV> wrote: > > >My 2 cents on what I think make Euphoria difficult to "sell": > > > >[The Name "Euphoria"] > > > >"Euphoria" is a name that makes people giggle. I've put together a number > of > >small programs in Euphoria at work; when people ask what they are coded in, > >the answer is now a "non-standard language". I don't expect the name to > >change (there's too much invested in it at this point), but it *is* as > >issue. > > After I discovered Euphoria -- and once I finally understood the nature of > sequences -- I breathlessly described to friends and family alike all the > wonderful features of this "revolutionary programming language" I'd > discovered. They all listened seriously at first, and seemed impressed with > the ideas of sequences, run-time checking, and the other excellent features. > But the moment I told them the actual name of this "revolutionary > programming language", the unanimous response was laughter -- either > outright, or stifled. At first I didn't realize it, but I've come to realize > just how much the name prevents people from taking the language seriously. I > personally think it's an awesome name, but Dave's right -- it *is* an issue. > > Also, there's another issue somewhat related to this that just struck me. > Let's say that someone out there *is* thinking seriously about backing > Euphoria, despite the name. They've heard some of the details about it from > programmers, and they want to check it out. So they go to the official > Euphoria programming page -- and are greeted with *garish* colors, and the > following welcome message: > > "This page provides the latest info on Euphoria - a nifty new programming > language for your PC. Euphoria is fast, flexible and fun; simple, safe, and > sexy!" > > This doesn't exactly encourage anyone to take the language seriously. > > <snip> > >[Forward References] > > > >People coming from other languages are used to using forward references - > >but it's *painful* to do in Euphoria, and there is the overhead of having > to > >create a sequence to hold the arguments: > > > > -- create a holder for the forward reference > > integer foo_id > > > > -- define a prototype for the function > > function foo( integer x, integer y ) > > call_func( foo_id, {x, y} ) > > end function > > > > -- define the "real" function > > function forward_foo( integer x, integer y ) > > -- code goes here > > end function > > > > -- resolve the reference > > foo_id = routine_id("forward_foo") > > > >That's a lot of work that could *easily* be done by the interpreter - just > >allow the prototypes: > > > > -- qbasic syntax, perhaps "forward" is a better keyword > > declare function foo( integer, integer ) > > > >that are resolved later: > > > > -- define the "real" function: > > function foo( integer x, integer y ) > > -- code goes here > > end function > > > >Since the interpreter knows what the proc looks like, it could resolve the > >call *efficiently*, instead with all the overhead of the current method. > > I must disagree here. When I was first learning Euphoria, I was impressed > with how it "forced" you to structure your program routines. When searching > for a function or procedure, you *always* knew you could find its definition > *before* any place where it was used. The old QuickBasic "declare" syntax > would seem like a step backwards to me, either requiring the programmer to > write the declares themselves (which I would *hate* to do), or requiring > some utility to automatically scan the source code and create the "declare" > statements at the top or the source code. Either way, the beginning of our > Euphoria source code would be cluttered with all these "declare" statements! > > I suppose we could just have the interpreter make *two* passes through the > source code -- once to get all the routine declarations, then its usual pass > -- thereby avoiding the need for any "declare" statements at all. But then > it shoots down the whole beauty of Euphoria's initial design, requiring only > *one* pass through the source. > > I was somewhat upset with the introduction of routine_id() at first, but > obviously this was a necessity for programming in a Windows environment. My > feeling is that the current way routines are defined in Euphoria is the best > way, forcing you to organize your code logically. The "pain" involved in > creating "forward references" in Euphoria should probably be considered a > deterrent -- use them only if you really, *really* need to. > > I suppose programmers coming in from other languages will complain about how > Euphoria "forces" you to do this. Actually, Euphoria forces you to do a lot > of things -- initialize your variables, use valid subscripts, pass valid > parameters and so on -- which *greatly* helps reduce the number of dumb > errors in a program. If programmers want the "freedom" to deal with > uninitialized variables, invalid subscripts, invalid parameters and so > forth, there are already many other programming languages available to meet > those needs. > > >[Namespace] > > > >I think there is general agreement, especially by those who have tried > using > >multiple libraries. The problem even occurs with using named indexes in > >sequences: > > > > window[POSITION] > > political[POSITION] > > > >This whole namespace problem seems to beg for implementing classes. After > >all, we're trying to use the same names to accomplish different results - > >the very definition polymorphism. > > > >Obviously, there is no trivial fix for this. I had investigated putting > >together a pre-processor for structures some time back, but dropped it when > >it became apparent that because of their recursive nature, it would be > >impossible to resolve structures until run time. > > I agree totally and wholeheartedly with both points made here. Namespace > issues are a major headache for any Euphoria programmer. The whole reverse() > fiasco -- involving Euphoria 2.1 alpha and old versions of Win32Lib -- is > only the most recent example of this. I think we should be allowed to > redefine *any* routine, not just the built-in ones -- the interpreter can > generate warning messages for this, very much like the existing warnings for > the redefinition of built-ins. > > And I obviously agree with Dave's remarks about structures. I won't go into > this again, since I believe I've already made my views on this point clear. > (Do I hear strains of the "Hallelujah Chorus"?) :) > > Gabriel Boehme