Category:Phix: Difference between revisions

m
search links have now fixed themselves
No edit summary
m (search links have now fixed themselves)
 
(10 intermediate revisions by the same user not shown)
Line 15:
[https://rosettacode.org/wiki/Category:Euphoria Euphoria].
 
On [https://rosettacode.org/mwwiki/index.php?title=Rosetta_Code/Rank_languages_by_popularity/Full_list&direction=next&?oldid=350377294533 26th December 2021, Phix became the first programming language on this site to have submissions for 100% of all tasks].<br>
(On 20th June 2022 [[Wren]] became the second, albeit with [https://www.rosettacode.org/wiki/Category:WrenGo 13]+[https://www.rosettacode.org/mwwiki/index.phpSpecial:Search?title=Special%3ASearch&search=wren.h&gowprov=Goacrw1_-1 6366] of those embedded that I, for one, have been unable to run.)
 
[http://phix.x10.mx/download.php A simple 30MB download] contains a pre-compiled executable, all the sources, and'' '''everything''' ''needed to recompile them, in under 20 seconds. The download also contains a full-featured programmer's editor and about 1000 demo programs.
 
You can also [https://replit.com/@PeteLomax1/PhixInterpreter#main.sh run Phix on replit here] (1.0.3 Lnx 64 bit), and several manually transpiled and uploaded entries [https://rosettacode.org/wiki/Category:Phix/online here]
 
Perhaps the most striking feature of Phix is that it has just five builtin data types:
Line 38:
Technically Phix does not have a garbage collector, instead it is reference counted, so memory is automatically reclaimed whenever a reference count drops to zero, and hence there are no sudden pauses, although the reference counting can itself reduce performance.
 
The fundamental goal of Phix is to make debugging easier, a whole subject area that does not seem to get the attention it deserves, despite several studies finding that most programmers actually spend between 70 and 90% of their time debugging. Most of us tend to think that getting just-written code to work is somehow not debugging, but that blokeclipboard-toting with a clipboardresearcher stood behind you would disagree.
 
Since 1.0.0 you can also run (many/most) Phix programs in a browser, by using pwa/p2js (as included in the distro) to transpile the program to JavaScript (plus a bit of standard HTML and CSS). If you see "'''with javascript_semantics'''" it means the program has been tested and works fine, both on the (Windows/Linux) desktop/Phix and in a browser via pwa/p2js, and in fact unix_dict() has been added to avoid reading unixdict.txt. Conversely, "without js" being present on a rosettacode entry means that (for instance) it uses the local file system, and is therefore desktop/Phix only. It is worth pointing out that "with js" and deep_copy() have proved ''staggeringly'' effective and nowhere near as painful as first feared. In just a few months (1.0.0 was released in July 2021) I have tested, fixed where necessary, and marked as javascript compatible ''[https://www.rosettacode.org/mww/index.php?search=phixonline&title=Special%3ASearch&searchwprov=phixonlineacrw1 over 1,100200 rosettacode entries]'' for Phix, and only ''[https://www.rosettacode.org/mww/index.php?search=notonline&title=Special%3ASearch&searchwprov=notonlineacrw1 one seventh]'' of that have as yet been marked incompatible, despite things like file i/o being prohibited within a web browser. The [https://rosettacode.org/wiki/Category:Phix/online Phix/online] subcategory currently lists 7899 entries deemed interesting enough to bother (manually) uploading to the Phix website (ping me should any stop working), and the next goal is to get pwa/p2js itself runnning online, but obviously without using file i/o directly. Another long term goal is to get Phix running on ARM, and since that would be utterly pointless without a viable GUI, I am currently elbow deep in writing a new cross-platform GUI, as a stepping stone (for both ARM and p2js/online).
 
==See also==
* [http://phix.x10.mx Phix site]
* [https://github.com/petelomax/Phix github]
* [[Tasks_not_implemented_in_Phix]]
 
{{Language programming paradigm|Generic}}
7,794

edits