AnnaK78 Posted February 22 Share Posted February 22 Hello friends, I don't know if any of you are familiar with or use the Ring programming language. You can find more information about it at https://ring-lang.github.io/" is fantastic language easy like Autoit but power like c and c++ and multiplatform , I wanted to suggest if possible a potential merger with AutoIt or a fork because it could allow for the integration of AutoIt or whatever may come out of it (a combination like AutoRing or a separate project named Ringo). I have already created some classes in the AutoIt style func GuiCtrlComboBox(Refer,X,Y,Xw,Yh,alist,Tooltip){ new QComboBox(Refer) { settooltip(Tooltip) setGeometry(X,Y,Xw,Yh) oFont = new qfont("",0,0,0) oFont.fromstring("Arial,8,-1,5,50,0,0,0,0,0,Regular") setfont(oFont) oFont.delete() for x in aList additem(x,0) next } } GUICtrlCreateButton(pageCO1,5,60,51,25,"BUYmk","pWork()","Green","") GUICtrlCreateButton(pageCO1,163,60,51,25,"SELLmk","pWork()","Red","") GUICtrlCreateButton(pageCO1,5,90,51,25,"BUYlmt","pWork()","Green","") GUICtrlCreateButton(pageCO1,163,90,51,25,"SELLlmt","pWork()","Red","") sBuyLimtImput=GUICtrlCreateInput(pageCO1,5,120,90,21,"") sSellLimtImput=GUICtrlCreateInput(pageCO1,124,120,90,21,"") GUICtrlCreateButton(pageCO1,5,145,75,25,"BUYStplmt","pWork()","Green","") GUICtrlCreateButton(pageCO1,140,145,75,25,"SELLStplmt","pWork()","Red","") sBuy4STPImput=GUICtrlCreateInput(pageCO1,5,175,90,21,"") sBuy4LimtImput=GUICtrlCreateInput(pageCO1,5,195,90,21,"") sSell4STPImput=GUICtrlCreateInput(pageCO1,124,175,90,21,"") sSell4LimtImput=GUICtrlCreateInput(pageCO1,124,195,90,21,"") GUICtrlCreateButton(pageCO1,5,220,75,25,"BUYOCO","pWork()","Green","") GUICtrlCreateButton(pageCO1,140,220,75,25,"SELLOCO","pWork()","Red","") sBuyOCOSTPImput=GUICtrlCreateInput(pageCO1,5,250,90,21,"") sBuyLimtOCOImput=GUICtrlCreateInput(pageCO1,5,270,90,21,"") In my opinion, the weaknesses of Ring are: limited documentation and support only through the mailing list, making it challenging to retrieve discussions that could be beneficial for growth. It would be great to see a merger or fork to create a unified community. Ring is a dynamic programming language designed to provide a simple and versatile development environment. Here are some of its strengths: Clean and clear syntax: Ring is designed with a clear and readable syntax, making it accessible even to those new to programming. This contributes to easy code understanding and rapid development. Multi-paradigm: Ring supports multiple programming paradigms, including imperative, functional, and object-oriented programming. This allows developers to use programming styles that best suit their project needs. Dynamic typing: Ring is a dynamically typed language, meaning that the type of a variable is resolved at runtime. This provides greater flexibility during development, allowing for more concise and adaptable code. Portability: Ring is designed to be highly portable and can run on various platforms, including Windows, Linux, and macOS,Android without requiring significant modifications to the source code. Integrated libraries: Ring includes a set of integrated libraries to facilitate application development. These libraries cover a wide range of functionalities, from string handling to file manipulation, making it easier to create complex software. Link to comment Share on other sites More sharing options...
Andreik Posted February 22 Share Posted February 22 You can't just merge two programming languages. You can replicate some functionalities but I doubt anything more. When the words fail... music speaks. Link to comment Share on other sites More sharing options...
AnnaK78 Posted February 22 Author Share Posted February 22 yea ofcourse i tell merge but is much better fork , the idea is porting some autoit "pylosophy" in ring and therfore create a fork , AutoIt would benefit from the possibility of being cross-platform, natively compiled for increased stability and speed, while still remaining very user-friendly even for non-programmers. It could also benefit from multi-threading capabilities, the ability to program for the web like CGI pages, and much more. However, this might just be an idea. I'm not suggesting it must be done. In fact, I would like to hear opinions, especially from those who have developed AutoIt, not so much about the feasibility, but whether they would consider making such a switch Link to comment Share on other sites More sharing options...
Andreik Posted February 22 Share Posted February 22 It would be a huge amount of work so I don't know if there are someone around ready to invest so much time but none died because he tried. Probably you should have post in AutoIt Projects and Collaboration so anyone interested in your idea can join. When the words fail... music speaks. Link to comment Share on other sites More sharing options...
AnnaK78 Posted February 22 Author Share Posted February 22 Then, it would be enough to replicate the functions of AutoIt, using the underlying engine of Ring. They won't be exactly the same as AutoIt, but very, very similar. This would be helpful for those who want to transition to multi-platform and multi-threaded programming. It would certainly take quite some time. I asked here because if the idea is well-received, especially by the authors of AutoIt, it might be easier, given a larger community and potentially with the assistance of ChatGPT, to write functions that syntactically resemble AutoIt. Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted February 22 Moderators Share Posted February 22 Reminds me of Python without the closing lines. The syntax kinda gives me a headache to look at (I know you posted "Clear/Concise" and others say the same about Python, but I truly find the archaic spaghetti styling syntax garbage (no offense, just a personal appearance thing, not a performance one)), but I can see there was a lot of work put in the past decade+. I didn't get into the source code to see how it was written, but based on the functions, I can tell there was a ton of effort. Before someone goes forking crazy, what is your goal for AutoIt to contribute (keep in mind, it appears Ringo is cross platform and AutoIt uses windows specific binaries). And are you speaking personally or for the developer themselves? This will be moved to the appropriate forum as well. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
AnnaK78 Posted February 23 Author Share Posted February 23 (edited) Ring draws inspiration from various programming languages, including Python, C, C++, Ruby, and others. Its main creator, Mahmoud Samir Fayed, has given Ring the ability to program in natural language. or only for windws you can use PWCT visual programming language ,If you don't like the style it uses, I have written some C extensions for myself to connect to the Binance API and another one to use PCRE. My programming knowledge is basic. My discussion is more about understanding if this idea could make sense for those who use AutoIt. I've seen people looking for a multiplatform or multithreaded AutoIt, but more than that, they would like to have the ease and power of AutoIt extended to other platforms. I believe the right modifications could be an opportunity, though I understand it's a colossal effort and not something that can be done overnight. It will probably remain just a 'nice' idea, but I wanted to share it with you. Who knows, it might lead to something useful for everyone. P.S> if you want also some code look also https://rosettacode.org/wiki/Rosetta_Code, Edited February 23 by AnnaK78 Link to comment Share on other sites More sharing options...
argumentum Posted February 23 Share Posted February 23 3 hours ago, AnnaK78 said: or whatever may come out of it (a combination like AutoRing or a separate project named Ringo) "At first the Ring compiler will be used to generate the Ring object file (*.ringo)" The word is taken. For what I see, you can jump right into it and never know it wasn't AutoIt ( give or take ) syntax wise. But you'll never have a single .exe as in AutoIt, given all the dependencies Ring has. ( for what I've seen ) I don't think that what you want is needed nor better. My 2 cents., I bet you've worked with Ring longer than my 15~20 min. reading around. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
AnnaK78 Posted February 23 Author Share Posted February 23 Yes, yes, I have worked a bit in Ring, not much though. .... But the first love is never forgotten, and indeed, like a worm in my head, I created some functions in Ring, similar to AutoIt, to create buttons, combo boxes, etc. However, it's a colossal task. That's why I thought, who knows, maybe the AutoIt developers, seeing good foundations in Ring, could perhaps get involved (as a group) and create something syntactically similar to AutoIt. Of course, it cannot be identical, but it would be profoundly different under the hood. Link to comment Share on other sites More sharing options...
junkew Posted February 23 Share Posted February 23 (edited) Ring seems to miss the power of win32 so the whole windowsbase is missing like sendkeys, sendinput, com. It seems to be a nice language but misses a lot thats available in autoit for automating and controlling other applications. Maybe i am missing the documentation on how to do win32 stuff. I installed Ring and merging it with AutoIt would be similar to other attempts in other languages by making convenience functions that are equal in name to AutoIt but probably will behave a little different. Ring installs nice huge download huge pdf help file (2000+ pages), there is plenty of documentation but finding what you need can be harder. Nice compiling to standalone exe files It feels Very different but not hard to learn scite versus ringnotepad is similar in initial usage, just load and run an example from a folder Not a small executable, huge exe distribution 250+megabytes for below example helloworld Many examples Nicely just structured in plain folders It took me a while to find out how to deal with optional parameters (basically you need to pass a hash table) very flexible including renaming keywords so you could write ChangeRingKeyword see consolewrite Here a small function MsgBox and ConsoleWrite as a starter if someone starts making a compatibility library Load "guilib.ring" new qApp { $sString = "This is an example of writing to the console." ConsoleWrite($sString) // Running this in a text editor which can trap console output e.g. SciTE, will display value of $sString $myMessage="Hello Moon" MsgBox([:cTitle="Blank title", :cMessage=$myMessage]) exec() } //MsgBox([:flag=0, :cTitle="Blank title", :cMessage="Blank message", :timeout=0, :hwnd=0]) Func MsgBox pList new qMessagebox(null) { setwindowtitle(pList[:cTitle]) setText(pList[:cMessage]) setstandardbuttons(QMessageBox_Yes | QMessageBox_No | QMessageBox_Close) show() } func ConsoleWrite $someText { see $sometext } And here an example in purebasic Edited February 24 by junkew played a little with ring Gianni 1 FAQ 31 How to click some elements, FAQ 40 Test automation with AutoIt, Multithreading CLR .NET Powershell CMDLets Link to comment Share on other sites More sharing options...
AnnaK78 Posted February 26 Author Share Posted February 26 (edited) myth i add also my code for style Autoit GeneralFunc.ring Edited February 26 by AnnaK78 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now