Jump to content

A cross-platform implementation of the AutoIt language


How interested are you?  

61 members have voted

  1. 1. How interested are you?

    • I am willing to work on the code
    • I am willing to help with testing
    • I would love to see this becoming a reality
    • Nah mate, I don't think this is a good idea


Recommended Posts

@Earthshine I appriciate your opinion, though I felt like responding to your opinion to clarify my point of view, nothing more :)

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

By all means give your opinion, but the negativity here sometimes saddens me ... not picking on you specifically.

He's also asking others if they want to share his journey, and for any helpful ideas etc.

He's young but I respect his mind ... most of us learn the hard way and have to deal with enough negatives as it is.

Whether or not he can possibly succeed in this difficult endeavor is very debatable, but he deserves an A+ for trying ... and some encouragement, rather than discouragement. He will get the discouragement soon enough.

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

I too voted No for essentially the same reasons exposed above by [Flat?] @Earthshine. AutoIt strength isn't the language per se, it's the large number of core functions and UDFs, both standard and add-ons. A very significant part of all this is intimately tied to Windows API and behavior. Just consider how hard it would be to port (the goal is porting AutoIt) GDI+, anything COM-related, All of GUI and _GUI, messaging ... and the huge rest.

If I were you I'd start with Ruby or Python + free Qt or something similar. If you insist on making a user-friendly language à la AutoIt, create the grammar and syntax you dream of and develop a preprocessor aiming such a platform.

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Link to comment
Share on other sites

4 hours ago, jchd said:

AutoIt strength isn't the language per se, it's the large number of core functions and UDFs, both standard and add-ons.

Very true, couldn't agree with you more on that. I have no idea what I was thinking when I wrote the original response, but I somehow seemed to have overlooked the fact that you stated AutoIt's strength wasn't the language per se. I still agree that AutoIt has a very rich collection of UDFs, but the language is also a fundamental strength... which allowed those UDFs to be written in the first place I reckon. The language is what drew me into it, I only discovered about the UDFs later.

4 hours ago, jchd said:

A very significant part of all this is intimately tied to Windows API and behavior. Just consider how hard it would be to port (the goal is porting AutoIt) GDI+, anything COM-related, All of GUI and _GUI, messaging ... and the huge rest.

You are right about WinAPI, but my goal is not to port the whole of AutoIt, but rather make an implementation of it with the subset of features which are portable and not dependent on WinAPI (like COM, GDI+ or GUI).

The good thing about GUI is that we can essentially implement an UDF for backward compatibility which would deal with the native GUI implementation that I would be using if we ever get to that stage.

 

Thanks for the suggestions in the end but can you clarify what you mean by this?:

4 hours ago, jchd said:

create the grammar and syntax you dream of and develop a preprocessor aiming such a platform.

 

Edited by TheDcoder
Correction for response to first quote

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

You say the AutoIt language is (essentially) fine for you and friendly to both new users and seasonned developpers. You also say you wouldn't like switching to something else, which I can understand. What you can do is create your own version of the language you whish (call it AutoToolIt) and develop a preprocessor, producing compilable Ruby, Python plus free Qt or whatever target language of your choice. It's much (very much) easier to write a syntax checker and preprocessor than a ful-blown compiler.

AutoToolIt source -> syntax check & preprocessor -> Ruby or Python + Qt -> compiler + linker -> executable

Note than even this easier path isn't a strait highway with no traffic nor speed limit.

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Link to comment
Share on other sites

@jchd Ah, so essentially you are recommending me to make a cross-compiler which would produce output in another language... so that it can be compiled/run in that language. I understand now :)

There have already been several attempts to create essentially which are code converters, I don't really want to go down that path... since I will have to learn those languages too. Easier for me to write an interperter which perform the actions itself.

16 minutes ago, jchd said:

ful-blown compiler. 

Depends on your definition of full-blown I guess, I am aiming for a very basic compiler which would produce byte-code which the interperter can later use to execute the script.

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

2 hours ago, TheDcoder said:

Very true, couldn't agree with you more on that.

Really?

Sure all the many great parts of AutoIt make it worth using, but I wouldn't have bothered in the first place, if it wasn't for the language.

The language spoke to me.

For me, it is the simplicity and the no nonsense of the language, that probably make it Jon's greatest achievement and why so many have found it so easy to use.

EDIT

Sadly, I feel the intelligence of the language has gone unrecognized and under-appreciated by many, especially those who have conquered other languages. I would never for instance say I ever conquered AutoIt. It was a relatively straight forward path to successful use.

I can easily say I love AutoIt, but I would never say that about any other language I have used. VBA for instance, is another language I use regularly, and I wouldn't say I love that in my wildest dreams, and I have been using that much longer than AutoIt. I guess I can say I have conquered VBA to a fair degree, but the mentality of it still often clashes with my brain.

Edited by TheSaint

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

 I would still posit something like python or ruby or PS would be easier to wrap since they have a syntax you will find eerily familiar.

Look at something like Rails for Zombies,  what materially is lacking?  It at least seems a better starting point to choose a base language and start wrapping functions.  Then it’s a GH&S problem instead of hypothetical.

Edited by iamtheky

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

@TheSaint Thanks for pointing that out, I made a mistake and overlooked the part where jchd said that AutoIt's strength wasn't its language. I have clarified my response by editing my original post. Again, thanks for noticing :).

@iamtheky The syntax for most programming languages will at one point be familiar (I know from experience), so not sure about the point you are trying to make... and please explain the later part of the post, I did not understand it I am afraid:

2 hours ago, iamtheky said:

Look at something like Rails for Zombies,  what materially is lacking?  It at least seems a better starting point to choose a base language and start wrapping functions.  Then it’s a GH&S problem instead of hypothetical.

Is "Rails for Zombies" an idiom that I am not familiar with?

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

ruby on rails was the example i was providing of a high level flavor of a cross-platform language.  Ruby and RoR are used for simple automation, but also for some well established projects that are market leaders.  

https://blog.rapid7.com/tag/ruby-on-rails

https://www.pluralsight.com/courses/code-school-rails-for-zombies

59 minutes ago, TheDcoder said:

Is "Rails for Zombies" an idiom that I am not familiar with?

What you would want to do is click on any one of the first 10 google returns. 

But at least it highlights how much effort you are putting into recommendations, for anybody else who wanders onto this thread.

 

 

Edited by iamtheky

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

@iamtheky Not a fan of paying for courses which teach programming... and I just looked at Ruby on Rails, the first thing that caught my eye is how web-centric it is, the introductory paragraph says

Quote

Learning to build a modern web application is daunting

That is not what I am looking for... and it looks fairly complex anyway, not something I would recommend for causal programming or as a good starting point for beginners ;)

11 minutes ago, iamtheky said:

What you would want to do is click on any one of the first 10 google returns.  

I was busy with something else when I was replying, and that phrase didn't really strike me as something that is a related material, so didn't bother looking into it further.

13 minutes ago, iamtheky said:

But at least it highlights how much effort you are putting into recommendations, for anybody else who wanders onto this thread. 

Funny you should say that as I am replying to each and every suggestion that I am receiving here... and if you had made the effort to read my replies, it would have been clear that what you have recommended has already been mentioned and that I am not looking to go down that route.

...Oh well, I guess we can all be sometimes lazy :D

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

@TheDcoder, ...just go for it. Do your thing. Am sure that, as working code gets done, ppl will help. I for once voted for testing, as I'm not a programmer. If I was, and had the know how, and the experience, and the time, and the drive, I'd go at it. The worst that could happen is that you learn a thing or two. Follow your muse.

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

Thanks @argumentum! Hopefully I will be able to get out a working version. I am trying to figure out a good method to parse the code, when I have a somewhat clear picture of how the parser could work, I could maybe start writing code for it.

P.S Finally! Feels good to have some encouragement from someone who is not TheSaint :muttley:

Edited by TheDcoder

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

@Earthshine Good find, it is a transpiler which compiles AutoIt into C code (if I understood it correctly). It does have its advantages and disadvantages, but I believe this strays away from my main aim to provide an alternative cross-platform implementation of AutoIt in a single executable :)

I do agree that if @scintilla4evr (or anyone else) were to extend it furthur and make it cross-platform then it would be an great thing which is perhaps more useful that the interperter I am making.

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

On 4/5/2019 at 10:57 AM, TheDcoder said:

I made the switch to Linux from Windows

I hate the command prompt. Hate is a strong word, so let me rephrase, I HATE the command prompt.
My memory sucks and with AutoIt, I can make a GUI to circumvent my shortcomings ( and make a buck coding solutions for others ).
The reason I never looked at Linux, is the command prompt. I need GUIs.
I explain this, as is the reason I'd love to have an AutoIt of sorts on Linux.

I've been looking at Linux for some time now, like, an hour, and I see that is NOT under one roof.
Desktops are a thing and what desktop are you planing your first implementation on ?, LXDE, Xfce, MATE, KDE, ???.
But I would not know, even if you answer, as I, in the time I devoted to it, know almost nothing.

So, proper question: What distro should I install, to be on par with your developing platform ?

( do consider that my fingers are used to clicking a mouse, with it's 2 options, but the keyboard has over 100 keys and looks confusing to me ) ;)

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

@argumentum That is actually a pretty natural reaction, there are many others who also prefer GUIs over command prompt (terminal as we call it in Linux).

11 hours ago, argumentum said:

I've been looking at Linux for some time now, like, an hour, and I see that is NOT under one roof.
Desktops are a thing and what desktop are you planing your first implementation on ?, LXDE, Xfce, MATE, KDE, ???.

The thing with Linux is that by itself it is not a complete desktop operating system, so it does not include things like the desktop and windowing system. So all GUIs you see in Linux are independent implementations of a desktop and window managers. It is not as bad as it sounds, because most of them follow standards which are more or less universally agreed upon in the community, there are also things like freedesktop.org who have published standards for desktop environments (GNOME, KDE, Xfce, LXDE etc.)

The other thing is that most of the Linux distros use the same X windowing system, so it is the de-facto standard for windowing systems at the moment.

So in reality they all play together nicely and all software should work on all of those desktops, so it is your personal preference to choose which you want to go with :)

11 hours ago, argumentum said:

So, proper question: What distro should I install, to be on par with your developing platform ? 

You can use any distro which is suitable for general computer usage, but I am using Fedora as my daily driver, and that is where I would be doing my development. I can recommend Fedora, you can try out their many offerings of alternative desktop environments: https://spins.fedoraproject.org/

Fedora's primary desktop is GNOME, which is somewhat different to what you are used in Windows. If you want to feel at home with the desktop, I would recommend KDE or Cinnamon.

Personally I have used many desktops over the years (GNOME, LXDE, KDE, Xfce etc.) but currently I am running KDE because I like the way it handles the GUIs... it is similar to Windows to an extent. Cinnamon is also a very good choice :)

I recommend you take them for a spin, you can download the ISO image for each desktop and write it to a pen drive, then use try it out live, without effecting any files on your computer... a pretty handy feature :D

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

@argumentum Awesome, a few words of advice:

The KDE desktop has some "exotic" behaviour by default (like opening folders with a single click), be aware that almost everything can be changed using the options, so try changing anything that you don't like, I have a few of my own customization which make it much simpler and more traditional experience.

Another thing about installing programs is that in Linux you can't just download an installer and run it like how you do in Windows. Most of the distros (including Fedora) provide their own software repository with a lot of programs, the most common way to install software is via the terminal (command prompt) unfortunatley, but I think KDE comes with an app store which should provide a GUI for this, I haven't tried it but it should work.

Still it is not hard to install software via the command-line, you can use this command to install Firefox:

sudo dnf install firefox

---

At some point in time when you would be testing, you will also be expected to use the command line to compile the alternative implementation. Shouldn't be a hard task, but just something you need to keep in mind.

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

  • TheDcoder changed the title to A cross-platform implementation of the AutoIt language

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...