Make Python or C++ the default or recommended language for Sikulix

Asked by Shengx on 2019-07-04

The current default or recommended language for creating large SikuliX programs on an IDE appears to be JAVA.

Java is a great language but its not open source or completely free. Creating large Sikulix programs with Java might trigger licensing fees from intentionally or unintentionally use of the proprietary Java libraries.

Any plans to make Python or C++ the default or recommended language for Sikulix???

And by "recommended language" i mean, for example, creating more code examples and instructions in Python or C++ only.

Question information

Language:
English Edit question
Status:
Answered
For:
Sikuli Edit question
Assignee:
No assignee Edit question
Last query:
2019-07-04
Last reply:
2019-07-04
RaiMan (raimund-hocke) said : #1

Python currently is the recommended scripting language for SikuliX scripts (though currently it is interpreted with Jython and hence restricted to language level 2.7 and Python libraries written in pure Python or libraries compatible to the Jython environment (usually written in Java)).

If you mean the C-based Python interpreter (currently at version 3.7) when saying Python language, then there will be a supporting SikuliX version later this year (see https://github.com/RaiMan/sikulix4python).

A version for using SikuliX with C++, or even an implementation in C++, will never come from my side, but there are many bridges out there, to use a Java API from C++.

Shengx (shengxyz) said : #2

Scripting is nice for small tasks i was hoping to use the full oop capabilities of python or c++ instead of using java for oop development and python for scripting only

RaiMan (raimund-hocke) said : #3

Not sure what you are talking about.

Python language is Python language! (as with every language, there are different language levels: level 2 latest 2.7 and level 3)

When you write something in Python, then all language features including OOP are available. This has nothing to do with SikuliX.

From the nature and historical development Python is a scripting (interpreted) language, because it can be run directly using an interpreter. No need to do a compile-link-run workflow in contrast to Java and C++.

The complexity you can manage only depends on the IDE you are using.

The more complex your task, the more you will need features like auto-complete, refactoring support, debugging, version control, testing support and many more.

For Python my first choice would be PyCharms.

All this is not available in plain editors like NotePad++, which only allows you to edit a file and potentially run it.

How you can make the SikuliX API available at runtime when using NotePad++: see your other question.

Can you help with this problem?

Provide an answer of your own, or ask Shengx for more information if necessary.

To post a message you must log in.