Jump to content

EasyCodeIt - cross-platform AutoIt implementation


Recommended Posts

@JockoDundee Good stuff, GOTO is definitely a bonus that's worth having around even in high-level programming.

And I definitely agree that While True is the most redundant thing, I'll definitely be adding a Loop...EndLoop statement with no explicit exit condition :)

@argumentum It is possible to be a good coder even with GOTO, just don't start substituting it with If and you should be fine, GOTO is something which should be used sparingly and only when it makes things better compared to the traditional nested If...Else logic.

Some people try to avoid it all cost only because there is a taboo against it. To me it is just another tool in the toolkit which has its uses :)

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites
  • 3 weeks later...
  • Replies 107
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

EasyCodeIt A cross-platform implementation of AutoIt Introduction: EasyCodeIt is an attempt at implementing a programming language which is backward compatible with a sub-set of AutoIt

Hello everyone Happy belated new year, I am here to give you the monthly update on the progress, but unfortunately I don't have much to show besides 650+ new lines of code that I am working on,

I am still working on the expression parser, the code is not complete but since it has almost been a week since the last update, so I thought I'd give you guys a sneak peak Here is a screenshot

Posted Images

Interesting project.

I think some rewarding challenge would be to get window interaction to work.  What I mean is if you could make some translator that translates SendMessage and other such stuff to linux. That if I call WinGetState it would translate linux states to corresponding windows states and vice versa. And also that if I call _WinAPI_SetWindowLong to set style or exstyle it would translate styles like ws_child or ws_popup to styles that xserver can understand that visually look similar. And that if I call _WinAPI_GetWindowLong then it would translate linux states to windows states. I mean that is a lot of work to do but if you could get this work then it would really be interesting project.

I mean send and mouseclick are already implemented in java but window automation would be something that is actually new. At least I am not aware that someone has done it yet.

edited

Link to post
Share on other sites
12 hours ago, E1M1 said:

Interesting project.

Thanks.

12 hours ago, E1M1 said:

I think some rewarding challenge would be to get window interaction to work.

Yeah, but unfortunately it is not one of the goals for this project... there could be UDFs which can be made for this type of translation, but I don't really see the benefit as GUI automation is highly machine specific and wouldn't really work in a cross-platform manner.

Anyone is more than welcome to try it though, I will eventually implement functionality to call other shared libraries in both Linux and Windows :)

12 hours ago, E1M1 said:

I mean send and mouseclick are already implemented in java

Yes, those are more generic and are easy to implement.

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites

I agree that window automation wouldnt be something that you do everyday. But then again, if you want to make GUI applications you still need ws_popup or ws_child be the same on both linux and windows.  Because in AutoIt every advanced GUI application has some (ex)styles, some messages and so on.

edited

Link to post
Share on other sites

@E1M1 Oh, didn't realize you were talking about GUI creation. That is different obviously :)

It is indeed possible to make a WinAPI translation layer, but it wouldn't be a first-class feature. Once EasyCodeIt is mature enough, I am planning to implement yet another universal cross-platform GUI toolkit. It will provide generic API (basically functions) to do various things you would do with platform-specific API (like _WinAPI_SetWindowLong).

There are already other libraries which do this by the way, IUP is my favorite because it is very simple and it is written in C. It does have its drawbacks though, so I am planning to do it in a better way (I hope).

One can easily make a translation layer for WinAPI, but not all options/styles can be supported obviously. And it'd be nothing more than a learning exercise really, not a good idea to use something like that in production code.

--

If one is being really technical, Wine has already implement that translation layer :lol:

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites
Quote

If one is being really technical, Wine has already implement that translation layer

Technically you could just build compiler that packs wine and autoit exe both is single executable :P

Of course hello world would be 200MB download and 10 sec startup time but thanks to modern frameworks everyone are already used to it that simple apps are large and slow :D

edited

Link to post
Share on other sites
3 hours ago, E1M1 said:

Of course hello world would be 200MB download and 10 sec startup time

Why does this sound so familiar? 🤔... oh right, it's my email client :sweating:

3 hours ago, E1M1 said:

modern frameworks

I prefer calling them bloated frameworks :muttley:

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites
3 minutes ago, TheDcoder said:

I prefer calling them bloated frameworks

It’s not totally Software’s fault.  
Over half a century ago, Software and Hardware made a secret pact to extract the maximum $$ possible from the lowly End-Losers.

Software said, I promise to continually enhance, extend, and otherwise adopt any and all features, capabilities, protocols, file formats, api’s that are almost available into one monolithic, indistinguishable, all-in-one .exe file.  A product  that would generally not be fit for running on anything less than the next years SOA hardware.

Hardware said, And I promise to likewise to provide such hardware, replete with ever increasing MHz and GHz and GB and TB, and of course a full assortment of inscrutable buzzwords to describe the endless, if banal variations on the NP junction that has served us for so long.

Taken together, our actions will insure that no one will ever be fully satisfied with their current system, no matter how powerful, but will feel that they are on the cusp of obtaining such a setup, if only with their next purchase.  And for those who gamely fight us by holding on to their ancient programs and obsolete hardware, they will face in the inexorable onslaught of the dual indignities of discontinued hardware and End-Of-Life software support.

Alas, Hardware lets us all down, as I type this from a 12 year-old Intel i7 that is still widely available today.

So...:)

Code hard, but don’t hard code...

Link to post
Share on other sites

Once you give programmers better hardware and more to work with they will soon eat it all and ask for more

Dude I don’t know things have never been this good my computer boots up in less than six seconds and he’s logged in and ready to work and it’s super quick and it’s just a Ryzen 3500H

 

Bloat doesn’t really matter Unless you have a real piece of shit machine

 

I love writing software in c#. I ain’t ever giving it up

Edited by Earthshine

My resources are limited. You must ask the right questions

 

Link to post
Share on other sites
29 minutes ago, Earthshine said:

Once you give programmers better hardware and more to work with they will soon eat it all and ask for more

CPU’s work for Programmers - if they’re idling, they’re slacking :)

31 minutes ago, Earthshine said:

Dude I don’t know things have never been this good my computer boots up in less than six seconds and he’s logged in and ready to work and it’s super quick and it’s just a Ryzen 3500H

Me too.  OTOH, I’m not sure it’s as much the Ryzen as the SSD.  Which has definitely been a game changer in terms of overall performance.  Remember when the annual MHz of CPU’s was like 1,2,3,4, and then 4,4,4,4,5.  And then the whole industry pivoted to multi-core arch, meh...

36 minutes ago, Earthshine said:

I love writing software in c#. I ain’t ever giving it up

Even for Java?

Code hard, but don’t hard code...

Link to post
Share on other sites
2 hours ago, Earthshine said:

Bloat doesn’t really matter Unless you have a real piece of shit machine

Actually it does, even if you have a beast of a machine, it is akin to using disposable plastics, in the short term the gains look awesome with no apparent losses, but in the long term we will be craving for more and there won't be enough resources... as they are finite... assuming we don't just leave poor old earth and turn it into a dumpster :(

And I am against the ideology of gobbling up resources like breakfast because there is plenty available, there must be a level of efficiently that should be maintained to provide the best resource:utility ratio for a piece of hardware. Older hardware and current low-budget hardware is no good for anything besides very light usage of computers, i.e basically browsing the internet.

1 hour ago, JockoDundee said:

OTOH, I’m not sure it’s as much the Ryzen as the SSD.

I can 100% attest to the fact that the storage medium is much bigger bottleneck compared to the speed of modern CPUs, my laptop was slow to boot and run programs but when I added in a SDD everything suddenly became quicker, boot time dropped down from more than a minute to less than 30 seconds!

It currently matches the signal timeout for my external monitor, so by the time my monitor shows "there is no signal" my laptop is already booted up and ready. Maybe I should disable the wait time in my boot menu?

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites
2 hours ago, Earthshine said:

It’s the cpu.

Might be, CPU isn't really a factor when running a relatively clean OS, it shouldn't load a billion things on startup. I use Arch Linux with almost everything configured by hand, so it is bloat-free compared to something like Windows 10 :)

2 hours ago, Earthshine said:

an a6

What's an A6?

 

P.S I use arch btw 😂

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites
1 hour ago, Earthshine said:

It’s the cpu. 

What’s your CPU utilization when booting, 100%?

1 hour ago, Earthshine said:

The ssd can only get you so far.

During booting, (which is what we were talking about), programs have to be loaded before they can even run, so...

2 hours ago, Earthshine said:

Try running an SSD with an a6 And get back with me let me know what you found

It says 

18:34.877<bootloader failure E756-AF00 - cannot stat iOS config missing or unreadable>

18:34:887<bootloader unable to start at segment 0000:0000 - but damn that SSD is smokin’ fast>

 

Code hard, but don’t hard code...

Link to post
Share on other sites

All you guys are just nerds.

And I'd like to invite you to TheDcoder's BIG Breakfast, where you can gobble up his resources as much as you like .... he's got plenty.

P.S. And don't forget to put all your plastic wrappers in his Wrapper Pile, which he feeds back into his Resource Maker machine.

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 post
Share on other sites
8 hours ago, Earthshine said:

An a6 is one of the weakest cpus around. It doesn’t matter running windows or Linux doesn’t do either very well

If that is the case, a storage medium wouldn't do much good. Anyway, you are just shifting the bottleneck to something else. I think most modern CPUs are fast enough to not cause a bottleneck compared to HDD.

28 minutes ago, TheSaint said:

All you guys are just nerds.

As if you aren't :muttley:

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites
21 minutes ago, TheDcoder said:

As if you aren't :muttley:

Who me? :blink:

Not bloody likely ... I went and saw an Exorcist. :tv_horror:

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 post
Share on other sites

Hi everyone,

I have a quick interim update on the project, as usual life pushed me in all other directions despite my attempts to speed up development... However I have managed to complete the expression parsing code, and I have just pushed it to GitHub: https://github.com/DcodingTheWeb/EasyCodeIt/commit/920ff107634b5ef2e6b584b189d3732e5d8df995

The next step is to parse the statements to construct the final syntax tree, and that should be the finale for the "frontend" part which takes in the code and makes sense of it. I'll keep you guys updated.

But wait! There is another major-ish annoucement, I have created a new forum at my website (forum.dtw.tools) and I intend to post more frequent shorter updates there as I plan, investigate and code. I don't want to spam the AutoIt forum with that stuff so a dedicated forum should be a good place!

The forum is effectively in alpha stage at this moment so there isn't a particular theme to it, so you can post questions, chat discussions, memes and pretty much anything else. I'll be waiting for you there :D

EasyCodeIt - A cross-platform AutoIt implementation

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to post
Share on other sites

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
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...