Re: Phix 0.7.1 released.
- Posted by ChrisB (moderator) Jan 30, 2017
- 2527 views
Hi Icy
I was gong to write a wicky article as to why I think, at the moment, Phix is better than Euphoria. As you may have noticed, I have become quite excited about Phix over the last few weeks, and am in the finishing stages of releasing an EuWinGui Phix Edition, and the win32Lib IDE Phix edition is coming along nicely too.
There are quite a few reasons why I like Phix, and I may forget to put them all here, so bear with me if I edit this from time to time.
1. There is only one version of Phix. Euphoria has become fragmented with 4.05 and 4.1, some programs working on both, some on one, and not the other. Not least of which is the DLL issue (which some people swear doesn't exist, but I have shown (to myself at least) does - ie some dlls open with 4.05, some with 4.1, an some with both). With Phix, of the ones that I have tried so far, they have opened.
2. Phix's include system. Phix uses a flat file include system, so if you list the includes in the order they appear in the program listing (including the includes), then the include, and their global functions and procedures are available to ALL of the program. Namespaces are still available if you have duplicate exported function names. Euphoria uses a (for want of a better word) a tree system, where includes can only be seen in the branch they are on, and you have to explicitly include them. SOme people may see this is as an advantage, I see this as an added layer of complication.
3. Eu has the eu.cfg file to avoid path and environment issues. This tells eu where to look for include files, but does not bypass the tree system. Although Eu can use this too, Phix uses, very nicely, an include to bring all includes into the fold. Fair enough, you could put these into the main file, I just find this a nice feature.
4. Phix does not have to explicitly include the standard library - in Phix, these are all considered builtins, and are added if they needed. In Eu you have to explicitly include the std include you want for a lot of functions. So you don't need (eg) include std/file.e at the top of your program.
5. Phix comes with edita included. Eu comes with the euphoria editor included.
6. Phix produces smaller excecutables
7. Phix produces faster executables (at least the ide seems to start faster - will run some timing tests one day). The interpreted programs also seem to start and run faster. This could be entirely subjective.
8. Phix is easier to install, and get going (no environment variables, just tell edita where Phix is, and your off)
9. Most eu programs run with very few changes
10. Phix has a very nice help file (keep this up Pete)
11. In phix, there are some syntactic differences, mostly explained in the help file. for instance if a_string = "Hello world" then end if is a valid expression. Other sequence operators and comparators are more explicit as to their function, which may require some re writing for eu to Phix conversion - not much though.
I'm sure there are other things too.
Euphoria is great, I love the language, but I just can't get away from the feeling that OpenEu has stagnated - it's certainly in a quagmire of 4.05 vs 4.1 at the moment (even though 4.1 is still meant to be a beta release, there are several programs that now depend on eu 4.1). There was a comment that cutting edge versions should not be general release a short while ago - I wholeheartedly agree with this. Unfortunately it is a small development team of highly skilled individuals, that also have real lives too, and it's not surprising that progress is slow. Phix is one man, who has no other team members to discuss stuff with, and while development isn't necasserily full steam ahead, it does seem to keep going.
Cheers
Chris