1. Important features not highlighted on main page
- Posted by rneu Jun 20, 2017
- 2007 views
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.
2. Re: Important features not highlighted on main page
- Posted by _tom (admin) Jun 21, 2017
- 1958 views
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
3. Re: Important features not highlighted on main page
- Posted by rneu Jun 21, 2017
- 1909 views
- Last edited Jun 22, 2017
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.
4. Re: Important features not highlighted on main page
- Posted by _tom (admin) Jun 22, 2017
- 1852 views
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
5. Re: Important features not highlighted on main page
- Posted by rneu Jun 22, 2017
- 1842 views
Looks good, though overdone.
One observation: I see that 'safety' is not being emphasized very much. My impression may be wrong.
6. Re: Important features not highlighted on main page
- Posted by _tom (admin) Jun 22, 2017
- 1851 views
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
7. Re: Important features not highlighted on main page
- Posted by _tom (admin) Jun 23, 2017
- 1836 views
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
8. Re: Important features not highlighted on main page
- Posted by petelomax Jun 27, 2017
- 1795 views
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:
- hundreds or maybe thousands of data-types (eg https://msdn.microsoft.com/en-gb/library/windows/desktop/aa383751(v=vs.85).aspx just for starters)
- terse syntax with pitfalls aplenty (eg dangling else)
- when indexing the first element is zero
- efficient, but difficult to program
- often displays very cryptic error messages
- usually compiled-only
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
9. Re: Important features not highlighted on main page
- Posted by petelomax Jun 27, 2017
- 1740 views
duplicate post removed
10. Re: Important features not highlighted on main page
- Posted by _tom (admin) Jun 27, 2017
- 1733 views
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
11. Re: Important features not highlighted on main page
- Posted by ghaberek (admin) Jun 27, 2017
- 1703 views
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
12. Re: Important features not highlighted on main page
- Posted by _tom (admin) Jun 27, 2017
- 1691 views
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
13. Re: Important features not highlighted on main page
- Posted by ghaberek (admin) Jun 27, 2017
- 1696 views
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
14. Re: Important features not highlighted on main page
- Posted by petelomax Jun 27, 2017
- 1720 views
Is it reasonable to tell a curmudgeon that he can not be ornery?
I dunno.
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.
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).
As you develop a program in an OOP language you can't help but feel clever.
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.
There is a "Diamond Lite" http://www.rapideuphoria.com/diamondlite.zip
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
15. Re: Important features not highlighted on main page
- Posted by petelomax Jun 29, 2017
- 1728 views
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