1. Important features not highlighted on main page

On the right upper part of the main page http://openeuphoria.org/ one finds example code coming up showing OE's good features:

  • Euphoria is Inovative
  • user-defined types made simple
  • Euphoria has powerful sequences
  • Euphoria is cross platform

However, only one of these features is shown once the page is loaded. On subsequent loading, another feature is shown (apparently at random). Hence, a visitor sees only one of the features while he/she should be given a full view of good features on first visit itself.

I think the main page should be altered slightly so that the main features are prominently displayed for the visitor to get all points within first few seconds of his/her visit.

new topic     » topic index » view message » categorize

2. Re: Important features not highlighted on main page

rneu said...

I think the main page should be altered slightly so that the main features are prominently displayed for the visitor to get all points within first few seconds of his/her visit.

Good observation.

Can you suggest the text for an update to the home page? I'll give a try. Then, we can submit a revision to JB to have the home page updated.

_tom

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

3. Re: Important features not highlighted on main page

I think one only needs to add following (or similar) as first part on the page:


OpenEuphoria is a new programming language with emphasis on SIMPLICITY, SAFETY, SPEED and SEQUENCES (lists). It has following great features:

  • Euphoria is Inovative
  • Euphoria is simple- only 4 built-in types
  • Euphoria is safe- many tests are performed before executing code
  • Euphoria has speed- even interpreted is very fast
  • Euphoria has sequences- lists with powerful functions
  • Euphoria has consistent, easy to read structure
  • Euphoria has user-defined types made simple
  • Euphoria is both compiled & interpreted
  • Euphoria is cross platform (Windows, Linux, BSD, OS X)

In addition, Euphoria is free and open-source with a convenient license.

(Above points can then be detailed)


Above is just a quick write-up and can be much improved.

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

4. Re: Important features not highlighted on main page

after grabbing ideas from everywhere


Euphoria is Inovative Programming

Sequences the secret sauce to an easy to use programming language that is simple, safe, and speedy.

Euphoria is proven

  • Euphoria since 1993 by Robert Craig
  • OpenEuphoria is now open source and free
  • Phix is an established hybrid interpreter/compiler

Euphoria is simpler

  • Data is simpler when the atom type is "any single value" and when the sequence type is "any collection of values."
  • Actions on data are simpler when the same functions and operations apply to all kinds of values.

Euphoria is easy writing

  • plain English replaces tricky formatting rules and punctuation
  • freeform write in your own style
  • one is the first index
  • standard library saves effort

Euphoria is easy reading

  • coherent long after you have written your code
  • maintainable with lucid bug reporting

Euphoria is programmer friendly

  • solve your problem rather than solve the solution
  • data-types and user defined types aid development
  • index checks are always done
  • dynamic memory allocation; a small value use less memory than a large value
  • garbage-collection never reduces performance
  • efficient internals use pointers to hide complexity
  • run-time checks for uninitialized variables and safe execution

Euphoria is flexible

  • multiplatform Windows and Unix (Linux, BSD, OSX)
  • interpreting for quick development
  • compiling for distributing applications

Euphoria is fast

  • quicker than "popular" languages
  • even quicker after compiling

Programming can be hard work. Choose Euphoria and you can depend on a Friendly | Flexible | Fast language.


_tom

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

5. Re: Important features not highlighted on main page

Looks good, though overdone.

One observation: I see that 'safety' is not being emphasized very much. My impression may be wrong.

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

6. Re: Important features not highlighted on main page

rneu said...

Looks good, though overdone.

One observation: I see that 'safety' is not being emphasized very much. My impression may be wrong.

To quote Cicero, Pascal, Gauss, Mark Twain . . . I didn't have time to write a short letter, so I wrote a long one instead.

What I want is to shorten this introduction, make links, elaborate each claim, and finally prove each claim.

For now, I welcome suggestions as to why Euphoria (and friends) is better.

_tom

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

7. Re: Important features not highlighted on main page

If I grab ideas from Pete I end up with:


A Euphoria language "is based on simple coherent intentional design." The symptoms of a Euphoria language are:

  • simple is better
  • two fundamental data-types
  • safety, pointer, memory, and garbage issues are handled for you
  • no surprises, coherent design and performance
  • helpful bug reporting
  • readable
  • maintainable
  • interpreted and compiled

A Euphoria language is convenient if you focus on solving the problem, rather than solving the solution.

Euphoria languages are proven:

  • Euphoria since 1993 by Robert Craig
  • OpenEuphoria open source and free
  • Phix is Pete’s Self Hosted Hybrid Interpreter/Compiler


while I was at it I classified all other languages . . .

Programming is about data and actions on data.

Data is "numerical information" because computers can only work with numbers. Action is "what you can do with your data." Typical actions include: saving data in a file, doing calculations, using the data to display images and videos, or any of things you know computers can do. A computer program "is a set of instructions that provides a computer with data and then requires actions on that data."

To learn a new computer language you have to identify how data is input|output and how to perform actions on that data.

Computer languages are a convenience invented to deal with ornery intractable computers. You can make a language "easy" in various ways. There is no point in arguing about the superiority of one language over another because you must deal with ornery intractable programmers. That is why there are thousands of programming languages available.

A hardware language "starts with 0 and 1 bits and then builds an interface to humans." Symptoms of a hardware language are:

  • many data-types depending on how many bits are in use
  • terse syntax that looks mathematical with {} marking blocks of code
  • when counting the first value is zero
  • efficient, but difficult to program
  • often compiled

A hardware language is convenient if you wish to access computer internals.

A shortcut language "introduces clever tricks to make programming easier." The symptoms of a shortcut language are:

  • variables are not declared
  • duck-typing; a data-type changes with the form of a value
  • operators and functions do different things depending on data values
  • each shortcut means a new set of rules to memorize and use
  • overall design is not coherent, but the shortcuts are great
  • often OOP (Object Oriented Programming) features are included
  • sometimes extra shortcuts are invented to make using shortcuts practical
  • often interpreted

A shortcut language is convenient if you think like the language designer or take to the effort to learn to think like the designer.

A rational language "is based on a design principle." The symptoms of an rational language are:

  • mathematical basis (functional language)
  • structural basis (list processing language)
  • central feature: pattern matching or logic processing
  • often interpreted

A rational language is convenient if you have exotic or special problems to solve.

A Euphoria language "is based on simple coherent intentional design." The symptoms of a Euphoria language are:

  • simple is better
  • two fundamental data-types
  • safety, pointer, memory, and garbage issues are handled for you
  • no surprises, coherent design and performance
  • helpful bug reporting
  • readable
  • maintainable
  • interpreted and compiled

A Euphoria language is convenient if you focus on solving the problem, rather than solving the solution.

Euphoria languages are proven:

  • Euphoria since 1993 by Robert Craig
  • OpenEuphoria open source and free
  • Phix is Pete’s Self Hosted Hybrid Interpreter/Compiler

_tom

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

8. Re: Important features not highlighted on main page

_tom said...

If I grab ideas from Pete I end up with:
while I was at it I classified all other languages . . .

Gets my vote.

I had to look up "ornery" - can I suggest replacing it with "cantankerous"?
Could not resist making a few other tweaks, feel free to take or leave them:


Trying to find the ideal programming language, one that suits you and is a joy to use, can sometimes feel like an impossible or never-ending task.

Computer languages are a convenience invented to deal with cantankerous intractable computers. You can make a language "easy" in various ways.
There is no point in arguing about the superiority of one language over another because you must deal with cantankerous intractable programmers.
That is why there are thousands of programming languages available (eg http://rosettacode.org/wiki/Category:Programming_Languages).

One possibly way to classify them might be as follows:

A hardware language "starts with 0 and 1 bits and then builds an interface to humans." Examples include C, C++, C#, Java. Symptoms of a hardware language are:

A hardware language is convenient if your primary focus is accessing the computer internals.

A shortcut language "introduces clever tricks to make programming easier." Examples include Perl, PHP, Python, Ruby, Tcl. The symptoms of a shortcut language are:

  • variables are often not declared (simple typos raise no error)
  • duck-typing; data-type changes with value (no alerts when street_name gets set to 37.8)
  • operators and functions do different things depending on data values
  • each shortcut means a new set of rules to memorize and use
  • overall design is not coherent, but the shortcuts are great
  • sometimes extra shortcuts are invented to make other shortcuts practical
  • usually interpreted-only

A shortcut language is convenient if you already think like the language designer (or take the effort to learn to think like they do).

A rational language "is based on an academic principle." Examples include Lisp, Prolog, Racket, Scheme. The symptoms of a rational language are:

  • mathematical basis (functional language)
  • structural basis (list processing language)
  • declarative basis (logic programming language)
  • central feature: pattern matching or logic processing
  • usually interpreted-only

A rational language is convenient if you have exotic or special problems to solve (it also helps to have a PhD hanging on the wall).

A euphoric language "is based on simple consistent design." The symptoms of a euphoric language are:

  • simple is better
  • very few fundamental data-types, just enough to aid development
  • safety, pointer, memory, and garbage issues are handled for you
  • no surprises, coherent design and performance
  • helpful bug reporting
  • readable
  • maintainable
  • interpreted and compiled

A euphoric language is convenient if you want to focus on solving the problem, rather than solving the solution.

Euphoria is proven

  • Euphoria since 1993 by Robert Craig (no longer maintained)
  • OpenEuphoria is open source and free
  • Phix is a hybrid interpreter/compiler (more actively developed than OpenEuphoria but lags in some areas, especially linux)

Euphoria is programmer friendly

  • solve your problem rather than solve the solution
  • data-types and user defined types aid development
  • automatic and efficient memory management
  • run-time checks for uninitialized variables and safe execution
  • index checks are always done, and start from one
  • maintainable with lucid bug reporting
  • faster than most popular languages

Euphoria is flexible

  • multiplatform Windows and Unix (Linux, BSD, OSX)
  • interpreted for quick development
  • compiled for distributing applications

I removed "often OOP (Object Oriented Programming) features are included" since it belongs in more than one of the above categories, plus it is hardly a strong selling point, these days, that Phix/OpenEuphoria go against that grain.

I might (perhaps foolishly) say something like:
The author of Phix believes that OOP (Object Oriented Programming) is just another "reasonable paradigm" in much the same vein as imperative programming, functional programming, or declarative programming. However he also believes that there is a widespread misconception that polymorphism and encapsulation can only be provided through OOP, and that the other main tenet of OOP, being inheritance, is now widely discredited ("favour composition over inheritance"), and that despite cries to the contrary there is simply no proof that OOP /actually/ improves productivity. It also deeply conflicts with YAGNI ("You ain't gonna need it"). As such, the extra pain (boilerplate and cognitive readjustment) is simply not justified, at least in his arrogant opinion.

That said, there are several third party components readily available to permit OOP-style programming.

(I am also considering adding a cut-down version of diamond to the official Phix distro, perhaps with some (wholly optional) syntactic sugar, but I am rather busy with other things right now - like writing this!)

Guess I should get back to doing something actually useful.

Pete

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

9. Re: Important features not highlighted on main page

duplicate post removed

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

10. Re: Important features not highlighted on main page

petelomax said...
_tom said...

If I grab ideas from Pete I end up with:
while I was at it I classified all other languages . . .

Gets my vote.

I had to look up "ornery" - can I suggest replacing it with "cantankerous"?
Could not resist making a few other tweaks, feel free to take or leave them:

Is it reasonable to tell a curmudgeon that he can not be ornery?

I copied your revision to the wiki http://openeuphoria.org/wiki/view/compare_languages.wc

Everyone is invited to revise this page.

What OOP has is:

  • dot notation
  • identifiers that replace numerical sequence indexing

How practical would it be to add just these items to a language?

The rest of the OOP stuff is just more work and details that slow down the language. As you develop a program in an OOP language you can't help but feel clever. But, I have serious trouble decoding someone else's OOP code (or code written a long time ago).

There is a "Diamond Lite" http://www.rapideuphoria.com/diamondlite.zip

_tom

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

11. Re: Important features not highlighted on main page

_tom said...

What OOP has is:

  • dot notation
  • identifiers that replace numerical sequence indexing

How practical would it be to add just these items to a language?

The rest of the OOP stuff is just more work and details that slow down the language. As you develop a program in an OOP language you can't help but feel clever. But, I have serious trouble decoding someone else's OOP code (or code written a long time ago).

I think that's am oversimplification of object-oriented programming. With a proper OOP language you have classes, templates, inheritance, polymorphism, etc.

-Greg

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

12. Re: Important features not highlighted on main page

ghaberek said...
_tom said...

What OOP has is:

  • dot notation
  • identifiers that replace numerical sequence indexing

How practical would it be to add just these items to a language?

The rest of the OOP stuff is just more work and details that slow down the language. As you develop a program in an OOP language you can't help but feel clever. But, I have serious trouble decoding someone else's OOP code (or code written a long time ago).

I think that's am oversimplification of object-oriented programming. With a proper OOP language you have classes, templates, inheritance, polymorphism, etc.

-Greg

If Euphoria had dot-notation with identifiers for indexing then I have as much of what OOP offers that I want. Euphoria is already polymorphic. I probably do not want inheritance in a simple program.

So, rather than asking for OOP, I am asking about some syntactic candy.

_tom

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

13. Re: Important features not highlighted on main page

_tom said...

If Euphoria had dot-notation with identifiers for indexing then I have as much of what OOP offers that I want. Euphoria is already polymorphic. I probably do not want inheritance in a simple program.

So, rather than asking for OOP, I am asking about some syntactic candy.

Fair enough, I suppose. But I'd really like to have all of those features in Euphoria at this point. I'm constantly fighting myself between "use something I like" and "use something that works" when those two things are almost entirely exclusive.

-Greg

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

14. Re: Important features not highlighted on main page

_tom said...

Is it reasonable to tell a curmudgeon that he can not be ornery?

I dunno.

_tom said...

I copied your revision to the wiki http://openeuphoria.org/wiki/view/compare_languages.wc

Everyone is invited to revise this page.

I just changed it to "cantankerous pernikety", which I think alliterates nicely with computers and programmers.

_tom said...

What OOP has is:

  • dot notation
  • identifiers that replace numerical sequence indexing

How practical would it be to add just these items to a language?

That might not be too difficult. In one afternoon, earlier this year, I added ORAC's version of dot notation subscripts to Phix (along with a flag to quickly enable and disable it).

_tom said...

As you develop a program in an OOP language you can't help but feel clever.

Brian Kernighan said...

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

_tom said...

Yes, I have a copy and previously decided that was the thing to have a play with, once I clear up what I'm (supposed to be) doing now.

No promises, but in the meantime a quick poll on suggestions for what would be the most helpful syntactic sugar might be in order.

I'll also invite a few rants on any specific shortfalls of or difficulties with using diamondlite as well, from anyone that's tried it.

Pete

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

15. Re: Important features not highlighted on main page

I have just added a little slide show to http://phix.x10.mx/

There are countless "javascript content sliders" out there, this is the one I ended up using: https://www.sitepoint.com/make-a-simple-javascript-slideshow-without-jquery/

Pete

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

Search



Quick Links

User menu

Not signed in.

Misc Menu