1. Euphoria's strong and weak points?

Hi

I am curious as to what are the strong and weak points of Euphoria, today, in 2014, as compared to other languages.

From what I can tell, Euphoria wins big time in terms of simplicity and readability, which are a considerable plus and a clear advantage over most of the other languages (Python being probably the only language that could possibly rival with Euphoria in terms of readability and elegance - although it is much slower).

Speed and niftiness were always billed as major selling points of Euphoria. No doubt, Euphoria seems to have remained as nifty as ever, but speed? Is Euphoria still the fastest interpreted language? Is speed still Euphoria's main forte (along with simplicity)?

Could you please share your views as to what features still remain the biggest advantages of Euphoria vis-a-vis the other languages? Comparisons are welcome.

Likewise, what are Euphoria's weak points that most need to be improved? In short, what is preventing Euphoria from taking off?

Thanks

GreenEuphorian

new topic     » topic index » view message » categorize

2. Re: Euphoria's strong and weak points?

The most important thing to be done for Euphoria is to automate the installation of wxEuphoria.

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

3. Re: Euphoria's strong and weak points?

Clarity and readability have always been Euphoria's strong points. I can think of few other languages that are as readable (or maybe that's just experience).

I think that speed has become less important as a selling point. For most tasks, computers are "fast enough" regardless of what language you use.

Being able to bind or compile Euphoria projects to a standalone executable with no runtime or other packages to download is still a strength.

I'm not sure on weak points. Having a REPL would be nice, but I think that's being worked on.

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

4. Re: Euphoria's strong and weak points?

Jerry_Story said...

The most important thing to be done for Euphoria is to automate the installation of wxEuphoria.

I'd argue that this is a rather subject point since wxEuphoria is one of many GUI toolkits available, each in their own state of completeness. There is no One True Toolkit for Euphoria. I did, however, work on that exact problem about a year ago. Feel free to use this if you'd like: wxEuphoria-0.17.0-win32-alpha3.exe. Eventually we'll have deb/rpm packages too.

But what really needs to happen is a major update (overhaul?) of wxEuphoria to bring it up to spec with wxWidgets 3.0.0. That requires a lot of time, of which I have had very little lately. I've not given it up, but I only seem to have a few hours per month to work on it. I believe Matt has been more focused on 4.1 development than wxEuphoria development as well (not to speak for him; I'm sure he can chime in).

-Greg

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

5. Re: Euphoria's strong and weak points?

Jerry_Story said...

The most important thing to be done for Euphoria is to automate the installation of wxEuphoria.

Please, make a package for the upcoming Ubuntu Mint distributions. They are going to be long term versions so the effort will also last a long term.

_tom

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

6. Re: Euphoria's strong and weak points?

jaygade said...

Clarity and readability have always been Euphoria's strong points. I can think of few other languages that are as readable (or maybe that's just experience).

This has always been my favorite point about Euphoria. The code may be verbose (which can be bad I guess), but it is [almost always] incredibly easy to read and comprehend compared to many other languages. I think a lot of people get thrown off by more advanced features like pointers and dereferencing. If you don't know the difference between (int, int*, and int[]) then you will be in trouble using a lot of major languages.

jaygade said...

I think that speed has become less important as a selling point. For most tasks, computers are "fast enough" regardless of what language you use.

While true, Euphoria is still much faster than many other languages, especially when you factor in the "speed" of development. It's not so easy to "hit the ground running" with languages like C/C++ or Java. Alternatively, Euphoria does not really scale well to big projects like those languages do.

jaygade said...

Being able to bind or compile Euphoria projects to a standalone executable with no runtime or other packages to download is still a strength.

This is, unfortunately, only true for some aspects of Euphoria. wxEuphoria, for instance, requires several external libraries to be bundled with the executable. I would like to see a statically-linked wxEuphoria interpreter (I think Matt had worked on that along with OOEU) but doing so would be incredibly complicated and severely bloat the interpreter size by at least 20MB.

jaygade said...

I'm not sure on weak points. Having a REPL would be nice, but I think that's being worked on.

REPL, OOP, exceptions, eval(), reflection. Many "modern" languages have these features and I think a lot of people get turned off by Euphoria's lack of bells and whistles.

-Greg

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

7. Re: Euphoria's strong and weak points?

ghaberek said...

REPL, OOP, exceptions, eval(), reflection. Many "modern" languages have these features and I think a lot of people get turned off by Euphoria's lack of bells and whistles.

-Greg

Sometimes I think that the lack of these bells and whistles is a strength. smile

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

8. Re: Euphoria's strong and weak points?

jaygade said...

Sometimes I think that the lack of these bells and whistles is a strength. smile

Any program worth his salt will tell you to "use the language that best fits the task at hand" or something along those lines.

The question is - what happens when you think, "gee, it sure would be easy to do this in Euphoria, only if it had feature X?"

I can see OOP being a good feature of Euphoria. Adapting Euphoria to OOP things (like wxWidgets) is made more difficult without it.

-Greg

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

9. Re: Euphoria's strong and weak points?

My 2 cents.

Strengths:

1) One of the best programming language communities around. People in the community are generally civil and take the time to help. While this is not a language feature, it certainly helps greatly when learning and using the language.

2) Great documentation. I know the documentation is not perfect, but for an open-source project, I think the documentation for 4.x is more than good enough for someone to pick up and start using the language.

3) The tremendous improvements to the language and libraries in 4.x is also a strength. And the libraries do try very hard to abstract out cross-platform differences, so things generally just work.

4) The ability to take interpreted code and turn it into a true compiled executable is still pretty rare amongst scripting languages, so Euphoria really shines here. It is really useful to be able to provide an end-user with a single executable with no other dependencies. Those who deploy .NET, Java and Python (and other similar languages) applications will know what I mean. Of course if you're developing commercial software, this feature alone is a real plus.

5) Euphoria's sequences. It is an amazing data structure that I wish other scripting languages had. Lua's tables come close, but the entire data structure is associative, not indexed liked Euphoria's. Once you wrap your head around how to do things with sequences, you'll wish you had it in other languages as well.

6) Simple types. Unlike other languages, Euphoria's simple orthogonal type system makes it easy to pick up the language. I often wonder why other scripting languages complicate things so much.

7) Foreign function interfacing to external code, and callbacks to internal code, are built into the language. Perhaps not the easiest to use, but it's there if you need it.

And now for the weaknesses (this is really my personal wishlist for the language):

1) No REPL (or interactive console). IMHO, having a REPL really speeds up learning the language, testing code snippets and quickly trying out things. I found Python and other languages with REPL to be much easier to learn and tinker with than those without.

2) No run-time dynamism, i.e. no ability to interpret or evaluate code at run-time. Putting this into the language, however, may result in strength #4 above being sacrificed, or may bloat the resulting executable a fair bit in order to incorporate the interpreter at run-time.

3) No OOP. But with namespaces and modules in the 4.x versions of the language, I personally can live without OOP.

4) No ability to embed the language. It would be great if the language could be called from a DLL, or even embedded statically into a C application. I currently use Lua for this.

5) No native Unicode support. If you need it right now, it's not built into the language.

There are some other warts as well, which are not likely to affect most people, but these are likely to spark the run-time efficiency versus development speed debate:

1) Strings take up a lot of memory. If you do a lot of text processing, you'll need to watch out for this. On the flip-side, Euphoria has been "ready" for Unicode for a very long time!

2) The enhancements to the language and its libraries has led to the bloating of compiled executables, and to a slight drop in speed.

Taken in isolation, the above weaknesses of the language are not a major problem. But Euphoria doesn't exist in a vacuum. It exists in a competitive ecosystem of many languages vying for developer attention.

All languages and their environments exhibit a series of trade-offs. It is important for developers to understand the trade-offs and then choose their language according to the needs of their applications and the run-time requirements for those applications.

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

10. Re: Euphoria's strong and weak points?

krg said...

My 2 cents.

Strengths:

Well said, krg. I would like to take what you said and put that in the wiki. smile I think we need an updated language comparison and explanation of what is so special about Euphoria.

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

11. Re: Euphoria's strong and weak points?

Human readable error messages.

Using C++ at work feels like there's a mini Dr Evil inside the computer:
"there's a problem in your program... somewhere tee-hee-hee".

Pete

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

12. Re: Euphoria's strong and weak points?

Ryan,

Feel free to use anything from the post for the wiki. In addition, if you want to compare and contrast Euphoria with many other languages, I'd be happy to help.

krg

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

13. Re: Euphoria's strong and weak points?

krg said...

In addition, if you want to compare and contrast Euphoria with many other languages, I'd be happy to help.

Please, do. It will be a most interesting topic.

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

14. Re: Euphoria's strong and weak points?

GreenEuphorian said...

Hi

I am curious as to what are the strong and weak points of Euphoria, today, in 2014, as compared to other languages.

From what I can tell, Euphoria wins big time in terms of simplicity and readability, which are a considerable plus and a clear advantage over most of the other languages (Python being probably the only language that could possibly rival with Euphoria in terms of readability and elegance - although it is much slower).

Where is Phython much slower? Ever seen 'Frets on Fire', show this on Euphoria. Phython is slower in the bare naked benchmarks, but who cares about them in real world applications? (Interacting with the OperationSystem and different libs)

GreenEuphorian said...

Speed and niftiness were always billed as major selling points of Euphoria. No doubt, Euphoria seems to have remained as nifty as ever, but speed? Is Euphoria still the fastest interpreted language? Is speed still Euphoria's main forte (along with simplicity)?

Who cares about speed? On 3Ghz multicoremachines, even Ruby is fast enough for most tasks (who cares if it takes 0.1 second or 1 second?)
And now I'am not even talking about Jit-Compilers or things like fpc (Freepascal),Rubinius,PyPy etc . btw fpc compiles faster than Eu4.1 even start up. (and fpc is much slower than TurboPascal or Delphi7 ever was).

GreenEuphorian said...

Could you please share your views as to what features still remain the biggest advantages of Euphoria vis-a-vis the other languages? Comparisons are welcome.

Euphoria's biggest advantage is the 'readability' and it is easy to learn.

GreenEuphorian said...

Likewise, what are Euphoria's weak points that most need to be improved? In short, what is preventing Euphoria from taking off?

Euphoria is not easy to use! If your program is getting bigger and you have to interact with different libs. The Typesystem is more or less useless, it doesen't help you if you need really strict types. Sequences are nice but could be replaced in 99% by strings, or arrays etc. in other languages.

No updates since about 1.5 years (downloadpage). No support for the memstructs seems to be planned in the near future (peek and poke are a pain in the ass, especially for going from 32bit to 64bit.

No chance for OOP, even TurboPascal from 1989 (5.5) offers this (and noone was forced to use it until today).

(sorry for this, i'am just a bit tired porting my tinewg to 64bit.)

Andreas

GreenEuphorian said...
new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu