<div dir="ltr">Hi All,<br>
<br>
I'm pleased to announce the first beta release of Pythonect interpreter.<br>
<br>
Pythonect is a new, experimental, general-purpose dataflow programming language based on Python. <br>
<br>
It aims to combine the intuitive feel of shell scripting (and all of its
 perks like implicit parallelism) with the flexibility and agility of 
Python. <br>
<br>
Pythonect interpreter (and reference implementation) is written in Python, and is available under the BSD license.<br>
<br>
Here's a quick tour of Pythonect:<br>
<br>
The canonical "Hello, world" example program in Pythonect:<br>
<br>
>>> "Hello World" -> print<br>
<MainProcess:Thread-1> : Hello World<br>
Hello World<br>
>>> <br>
<br>
'->' and '|' are both Pythonect operators. <br>
<br>
The pipe operator (i.e. '|') passes one item at a item, while the other operator passes all items at once.<br>
<br>
<br>
Python statements and other None-returning function are acting as a pass-through:<br>
<br>
>>> "Hello World" -> print -> print<br>
<MainProcess:Thread-2> : Hello World<br>
<MainProcess:Thread-2> : Hello World<br>
Hello World<br>
>>> <br>
<br>
>>> 1 -> import math -> math.log<br>
0.0<br>
>>><br>
<br>
<br>
Parallelization in Pythonect:<br>
<br>
>>> "Hello World" -> [ print , print ]<br>
<MainProcess:Thread-4> : Hello World<br>
<MainProcess:Thread-5> : Hello World<br>
['Hello World', 'Hello World']<br>
<br>
>>> range(0,3) -> import math -> math.sqrt<br>
[0.0, 1.0, 1.4142135623730951]<br>
>>><br>
<br>
In the future, I am planning on adding support for multi-processing, and even distributed computing.<br>
<br>
<br>
The '_' identifier allow access to current item:<br>
<br>
>>> "Hello World" -> [ print , print ] -> _ + " and Python"<br>
<MainProcess:Thread-7> : Hello World<br>
<MainProcess:Thread-8> : Hello World<br>
['Hello World and Python', 'Hello World and Python']<br>
>>><br>
<br>
>>> [ 1 , 2 ] -> _**_<br>
[1, 4]<br>
>>><br>
<br>
<br>
True/False return values as filters:<br>
<br>
>>> "Hello World" -> _ == "Hello World" -> print<br>
<MainProcess:Thread-9> : Hello World<br>
>>><br>
<br>
>>> "Hello World" -> _ == "Hello World1" -> print<br>
False<br>
>>><br>
<br>
>>> range(1,10) -> _ % 2 == 0<br>
[2, 4, 6, 8]<br>
>>><br>
<br>
<br>
Last but not least, I have also added extra syntax for making remote procedure call easy:<br>
<br>
>> 1 -> inc@xmlrpc://localhost:8000 -> print<br>
<MainProcess:Thread-2> : 2<br>
2<br>
>>><br>
<br>
Download Pythonect v0.1.0 from: <a href="http://github.com/downloads/ikotler/pythonect/Pythonect-0.1.0.tar.gz">http://github.com/downloads/ikotler/pythonect/Pythonect-0.1.0.tar.gz</a><br><br>
More information can be found at: <a href="http://www.pythonect.org/">http://www.pythonect.org</a><br>
<br><br>
I will appreciate any input / feedback that you can give me.<br>
<br>
Also, for those interested in working on the project, I'm actively 
interested in welcoming and supporting both new developers and new 
users. Feel free to contact me.<br><div dir="ltr"><br><br>Regards,<br>Itzik Kotler | <a href="http://www.ikotler.org" target="_blank">http://www.ikotler.org</a><br></div>
</div>