Hello Bert
>> "Why would a programmer use Ring to Call Python"
>> "When Python has all these Impressive Features and Libraries."
>> "Just program your app in Python."
I think each programmer could provide a different answer for this question, I read the question as (Why Ring is created while Python does exist! Also, it can be like Why select Ring if we have Python?)
Before starting Ring development in Sept. 2013, I tried to use many languages from 2011 to 2013 to pick one of them to develop PWCT2
As someone who was using Visual FoxPro, I was expecting Python or Ruby to match my needs
They are great languages, and PWCT already support Python through PythonPWCT, but there are many little things in Python that I don't like
* Case Sensitive
* Index starts from 0
* You have to define functions before calling them
* Files could contain a mix of classes & functions with no specific order
* No implicit conversion between numbers/string
* Tab/Spaces for indentation have a sematic meaning (No braces or specific keywords like end or endif)
* Using : after conditions
* Passing self to each method
* GIL in the VM
* Large VM implementation (not lightweight like Lua)
Note: Many of these things could be a reason to choose Python, i.e. it depends on what you like/prefer.
I used Python in some of my projects, and I respect it as a software, free-open source, etc.
But I wanted a better language that I enjoy while using.
I prefer Ruby over Python.
But at that time, most of Ruby libraries were related to the web, and I was looking for something that I can use for desktop/tools development
Also, Ruby is case sensitive, index starts from 0, etc.
I was impressed with Lua being a lightweight language, all of these factors together encouraged me to start Ring development.
Something to be lightweight like Lua, but with batteries included like Python and DSLs support like Ruby
Then put on top of that Syntax Flexibility, Syntax Translation, Class region, Using Braces to access Objects, Using Objects during Definition, Declarative Programming, Natural Commands, Natural Library, etc. Also, an IDE with Form Designer like VB, Microcontroller support, WebAssembly support, etc.
While using Ring, I don't miss Lua/Python/Ruby and I am happy that Ring exist (and if it was created by someone else, I will choose it as I selected Visual FoxPro in the past because it's more natural IMHO)
>> "Why would a programmer use Ring to Call Python"
Ring is a new language (2016) compared to Python (1990)
Getting access to Python provides many useful opportunities
(1) It's a safety option, if what you want to do doesn't exist in Ring, and you don't have the time to create a new library/extension, there is a chance that a Python library exists and can be used. RingPython provides this choice, and We have RingWebView to use JavaScript libraries, RingQML to use QML, etc.
(2) You can use Ring as a beautiful language (IMHO) + Get the best Python advantage (Libraries)
(3) I developed some Machine Learning solutions, where Ring is used in the front-end and Microsoft Azure ML in the backend. Using RingPython I can easily use Ring & Python. The point is I don't have time to create the ML libraries myself.
>> "Just program your app in Python."
Freedom is freedom, you can choose any language you like, I love treating programming languages as tools and pick the right tool for the job.
Since Ring is a free-open source and I personally don't develop it for money and I don't care about the number of language users, but supporting users consume time (Even If I don't promise that I will support them or will answer question, I used to do so in my free time).
When someone ask me about a programming language to learn/use, in general, I don't encourage using Ring (even if it is the best tool based on the asked question)
Many of my friends/followers on social media asked me why I don't recommend Ring/PWCT when someone asks about a programming language to learn/use?
My answer is simple, I try to provide (general answers that are not specific to my work) and I reduce the load on my time by reducing the number of people in this group.
This way (attracts contributors), more than (users).
In Ring project, at this stage, I care about contributors (not users).
Users are used to complain about missing features while contributors are used to solve problems and fill the gaps, they are active and push the project forward and this is what I want for the Ring project.
Greetings,
Mahmoud