1. Minimalism and Euphoria

I am interested in minimalist programming languages and someone pointed out to me OpenEuphoria. Does OpenEuphoria still retain the 'minimalist' philosophy of the original Euphoria? What OE features/concepts are most relevant to minimalism?

Lastly, how does (Open)Euphoria compare to other minimalist languages? (Actually, I only know of one other language that claims to be minimalist: Oberon).

Thank you very much.

new topic     » topic index » view message » categorize

2. Re: Minimalism and Euphoria

Can you point us to a definition of minimalist? Do you mean languages with the fewest reserved words (see also Wikipedia)? Or do you have something else in mind?

Bugmagnet

new topic     » goto parent     » topic index » view message » categorize

3. Re: Minimalism and Euphoria

YuriZyuriz said...

I am interested in minimalist programming languages and someone pointed out to me OpenEuphoria.

My understanding is that a minimalist (and the term is purely relative) language is one that aims to have as few as possible "built-in" functionality items. As an example, I'd suggest you take a look at the group of languages based on Forth and Lisp.

I would not categorize Euphoria as a minimalist language, even though a huge part of it is written in Euphoria itself.

new topic     » goto parent     » topic index » view message » categorize

4. Re: Minimalism and Euphoria

Minimalism is the main reason I like Eu so much. I've been using it since 2000 and have yet to see a programming language which better suits the needs of the casual programmer. This changed somewhat with the eu 4, which is why I'm still using 3.1.1.

new topic     » goto parent     » topic index » view message » categorize

5. Re: Minimalism and Euphoria

Slacker said...

Minimalism is the main reason I like Eu so much. I've been using it since 2000 and have yet to see a programming language which better suits the needs of the casual programmer. This changed somewhat with the eu 4, which is why I'm still using 3.1.1.

At first this seems odd, because one would assume that, in general, new language features make users jump to the newest versions. On the other hand, the addition of new features make a language less minimalistic, and this is non-trivial in languages that aim to be minimalistic. It seems that Euphoria, while still remaining easy to learn and to use, is moving away from the minimalist paradigm. Maybe minimalism was never a primary aim, after all, but just a temporary state of affairs while the language was not fully developed, in the earliest stages.

I am now wondering: are there many users who still prefer using v3 because it is more 'minimalistic'? Or for any other reasons? (e.g. better performance?)

new topic     » goto parent     » topic index » view message » categorize

6. Re: Minimalism and Euphoria

GreenEuphorian said...
Slacker said...

Minimalism is the main reason I like Eu so much. I've been using it since 2000 and have yet to see a programming language which better suits the needs of the casual programmer. This changed somewhat with the eu 4, which is why I'm still using 3.1.1.

At first this seems odd, because one would assume that, in general, new language features make users jump to the newest versions. On the other hand, the addition of new features make a language less minimalistic, and this is non-trivial in languages that aim to be minimalistic. It seems that Euphoria, while still remaining easy to learn and to use, is moving away from the minimalist paradigm. Maybe minimalism was never a primary aim, after all, but just a temporary state of affairs while the language was not fully developed, in the earliest stages.

I am now wondering: are there many users who still prefer using v3 because it is more 'minimalistic'? Or for any other reasons? (e.g. better performance?)

I use Euphoria a lOT at work (a shipping company) for various data conversion utilities. I wanted to use the latest 4.x but the start up is just so _slow_. On my new laptop it would take 20 seconds just to run a win32 (not Winlib32) app. So I am using the euiw.exe dated from Dec 2010 (4.0.0). With it I get 2 seconds.

I dread to think how slow an equivalent Win32lib app would be, even worse for our users that have old computers - perhaps upwards of 2 minutes?

What happened, guys?

Spock

new topic     » goto parent     » topic index » view message » categorize

7. Re: Minimalism and Euphoria

Spock said...
GreenEuphorian said...
Slacker said...

Minimalism is the main reason I like Eu so much. I've been using it since 2000 and have yet to see a programming language which better suits the needs of the casual programmer. This changed somewhat with the eu 4, which is why I'm still using 3.1.1.

At first this seems odd, because one would assume that, in general, new language features make users jump to the newest versions. On the other hand, the addition of new features make a language less minimalistic, and this is non-trivial in languages that aim to be minimalistic. It seems that Euphoria, while still remaining easy to learn and to use, is moving away from the minimalist paradigm. Maybe minimalism was never a primary aim, after all, but just a temporary state of affairs while the language was not fully developed, in the earliest stages.

I am now wondering: are there many users who still prefer using v3 because it is more 'minimalistic'? Or for any other reasons? (e.g. better performance?)

I use Euphoria a lOT at work (a shipping company) for various data conversion utilities. I wanted to use the latest 4.x but the start up is just so _slow_. On my new laptop it would take 20 seconds just to run a win32 (not Winlib32) app. So I am using the euiw.exe dated from Dec 2010 (4.0.0). With it I get 2 seconds.

I dread to think how slow an equivalent Win32lib app would be, even worse for our users that have old computers - perhaps upwards of 2 minutes?

What happened, guys?

Spock

Start up is definitely slower because it has to parse the entire program before executing, but i don't really notice...or perhaps I have gotten used to it. I have been using Euphoria 4.1 dev for awhile now with my FluidAE gui library, and start up is much faster than win32lib. I don't remember the start up time on my 1 GHz XP machine, probably 10-20 seconds on that old thing. But on my main work computer (Athlon X2 6000+ dual core 2GHz) that is about 7-8 years old, it's probably around 3-5 seconds, if i remember correctly. On my modern computers (i7 or APU) it is no more than 1 second. I am curious what would cause your programs to take so much time to start up.

Vversion 4 has such a great standard library that if you are still using 3.1, i think you are really missing out. It has so many nice routines that have been thoroughly tested and optimized. As far the new syntax, the developement team has done a very good job staying true to the elegant design, and have only added syntax features after much consideration. In my opinion, they only enhance the beauty of the language and make it even easier to use (such as switch..case, enum, new scope rules, etc.). Yes, there are more keywords to learn, but they make so much sense that I have learned to embrace the changes once i got used to them, and can't imagine going back. Even with all the new syntax, I would consider Euphoria 4.x to be "minimalist".

new topic     » goto parent     » topic index » view message » categorize

8. Re: Minimalism and Euphoria

I know there were quite a few unhappy euphoria programmers when Rob Craig handed over the reins to the new development team. I found early versions of Eu 4 slow to start up (as far as I know, that's still the case), buggy, and the size of an executable was huge in comparison to Eu 3 exes (3Mb for "hello world").

There didn't seem to be much thought put into the development process. It started off with the intention of providing a standard library, all well and good (although what was wrong with Ricardo Forno's General Functions?), but then all kinds of control structures were added like Goto, Switch, etc without any consideration of whether these features were needed or not (they weren't). Apparently the guiding principle was simply "more is better".

I'm sure there are lots of happy Eu 4 programmers out there now, but probably a significantly number of "old-timers" like me who stuck with the older versions.

I must admit I never really understood the philosophy that a programming language has to be in continual development for it to "survive". Maintenance/bug fixes, sure, and perhaps things like conversion to 64 bit, but anything else is just feature creep and changes the fundamental nature of the language and its intended niche.

The size of the documentation of Eu 4 is huge in comparison with Eu 3, and much more technical. Rob's vision was "Just Say no to complicated programming languages", but in my view, it seems that the devs lost sight of that imperative.

My two cents.

new topic     » goto parent     » topic index » view message » categorize

9. Re: Minimalism and Euphoria

I believe that to be effective and successful, most languages need to figure out their identity. Development should be focused on making sure it continues to solve the problems it's uniquely positioned to solve well.

I still think the attractiveness of Euphoria is that it's lean, fast, and the executables are small. Programs are easy to distribute as standalone applications. It doesn't require an external runtime to be installed. It's easy to use native libraries. Startup time is probably also a key feature.

These are unusual characteristics for a scripting language, and there aren't many contenders for this niche.

new topic     » goto parent     » topic index » view message » categorize

10. Re: Minimalism and Euphoria

I'm one of those who still like the old Euphoria 3. I use Judith Evans' IDE almost exclusively, and what I love about the whole thing is that I can write a dead simple program for some silly job or do some complex emulation job, and when I press f5 - it runs. Instantly. No hangups, just runs. Windows XP, Windows 7, Windows 8.1 (grr) and Windows 10 alpha. Just works. I do it rarely enough that I don't remember all the options and syntax rules in Eu4, but to compensate I have to put up with having main() as the last function and occasional namespace funnies in Eu3. I want to get away from all the code involved in making a program work, I just want to write my code and have it run. It's fabulous.

As an aside, Judith never really finished cleaning up the IDE; she went down with dementia soon after stopping work on it, and I have to say I'm not even sure she's alive. Her husband Archie has not replied to my emails recently. But the IDE, once you get used to some of its funnies, is extremely useful. Am I the only user of it?

new topic     » goto parent     » topic index » view message » categorize

11. Re: Minimalism and Euphoria

Would anybody like to get rid of the 'for' and 'loop do' statement and go back to only using 'while' for loops? For is not really needed but it is convenient. A balance has to be struck. It is 'minimalist' probably because of the amount of man hours that can be contributed to the project at least for my case for free.

It is easy to say vote with dollars but if the product is free and thus the devs unpaid, it is hard to see how there can be incentives to do what the users want. I don't know if the donations cover hosting costs because I don't pay and I don't get paid but I contribute a commit from time to time.

SDPringle

new topic     » goto parent     » topic index » view message » categorize

12. Re: Minimalism and Euphoria

Hi

so you would like to replace

for I = 1 to 100 do 
      Do stuff 
end for 

With

I = 1 
while 1 do 
     Do stuff 
     I += 1 (or other) 
     If I = 100 then exit end if 
end while 

rather than giving people the choice?

Doesn't seemto enhance the language.

Chris

new topic     » goto parent     » topic index » view message » categorize

13. Re: Minimalism and Euphoria

ChrisB said...
I = 1 
while 1 do 
     Do stuff 
     I += 1 (or other) 
     If I = 100 then exit end if 
end while 

While well intentioned, Chris, I think you might mean ...

I = 1 
label "LoopTop" 
if I <= 100 then 
     Do stuff 
     I = I + 1 
     goto "LoopTop" 
end if 

Actually, in the first program I ever wrote, I didn't know about looping so I did something like this ...

 
     Do stuff 
     Do stuff 
     Do stuff 
     Do stuff 
     ...  '96 more lines just the same' 
 
new topic     » goto parent     » topic index » view message » categorize

14. Re: Minimalism and Euphoria

I think that point is that Euphoria folklore states that Rob C wanted only "while" loops in Euphoria in very early versions. That was certainly prior to Euphoria 1.4 when I started using it. Very few people wanted the language to be that minimalist though, and lobbied for including "for" loops.

cf., Google's Go language has only "for" loops, although they are still very flexible.

-- canonically 
integer i = 1 
while i <= 10 do 
  -- Do Stuff 
  ? i 
  i = i+1 
end while 
new topic     » goto parent     » topic index » view message » categorize

15. Re: Minimalism and Euphoria

Slacker said...

Minimalism is the main reason I like Eu so much. I've been using it since 2000 and have yet to see a programming language which better suits the needs of the casual programmer.

My opinion is that Euphoria is not, and has not been, a minimalist language. This goes to show how definitions are important.

Slacker said...

This changed somewhat with the eu 4, which is why I'm still using 3.1.1.

What is there in V4 that has prevented you from coding in the same style you code using V3?

new topic     » goto parent     » topic index » view message » categorize

16. Re: Minimalism and Euphoria

HI Derek

You are of course absolutely right, I tend to use for loops where I know how the progression will be, and infinite while loops with exits where I don't, so that was just laziness on my part.

incidentally my first prgram was on a commodore pet,

10 print "hello" 
20 goto 10 

I didn't know how to stop it, so panicked and turned the computer off!

I would probably have to do the same with your example too smile

Chris

new topic     » goto parent     » topic index » view message » categorize

17. Re: Minimalism and Euphoria

ChrisB said...

incidentally my first prgram was on a commodore pet,

10 print "hello" 
20 goto 10 

Very similar to my first in AppleSoft Basic. Except I think mine was:

10 print "The orcs are coming!" 
20 goto 10 

(LOTR)

new topic     » goto parent     » topic index » view message » categorize

18. Re: Minimalism and Euphoria

ChrisB said...

Hi

so you would like to replace

for I = 1 to 100 do 
      Do stuff 
end for 

With

I = 1 
while 1 do 
     Do stuff 
     I += 1 (or other) 
     If I = 100 then exit end if 
end while 

rather than giving people the choice?

Doesn't seemto enhance the language.

Chris

I was playing a kind of devil's advocate here in asking whether we should get rid of 'for'. Sometimes it is better to describe what one is advocating instead of arguing against it. A minimal language would be a an aseembler of a virtual computer of the following type OISC : [http://en.wikipedia.org/wiki/One_instruction_set_computer]. In this link you can download one. There are some emulators at the end of the web page.

SDPringle

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu