With the future MAUI will be close, but no Linux.
And XAML is not a dream to use.
Uno?
Theonly Language I found where I can use all the logic on all platforms without any modification is - I am really sorry for all the C# and C++ lovers - Java.
And⌠what will you choose if you do not want to create your own business (search an employee job) ?
What the company needs. Choosing Java and C++ to learn is definitely the best option to do. Because all other Stuff youâll be able to learn really fast. If a Company where I want to work would use Xojo I would run away from the offer whileâŚ
I agree, it seems like Java is very good for most platforms and most applications. I do use C++ for creating apps that require high performance, such as graphics and electronics.
Electronics is mostly python, since there is a large number of people and forums that use the language.
I must say that the last time I heard about it it was many years ago and it wasnât complete or stable. Need to revisit it again to read about it.
Iâm not a C# lover, but Iâm certainly a Java hater.
So was the guy who invented Kotlin that was initially just a transpiler to convert a better language to Java and use the JVM framework. Now it goes directly to bytecode or machine code.
After a fast play with it, still feel the same.
I am producing electronics for medical environment. We use Python never for production. Python was never and will never be better than Java. All I can do in python I can do in Java. and even more. If my nearly entire Software and especially always the Guy is programmed in Java, for what I should need and use Python? There is no need. What we use is Java for GUI and all Linux/Windows/MacOS/BSD Programming and C++ for Firmware Programming and for Rtos programming. There is nothing else at the end.
We had Python Tools for communication but after we found out that they are sometimes real troublemakers we changed them into Java Software and where it was needed we wrote Drivers for Java. Even our GPIO Framework for Raspberry we had to rework in Java. (No, Pi4J was never an alternative).
So as far as I can say: we do industrial electronic development and use Java for GUI and for Web (most Web-Applications I wrote in Java Wicked, our Web Applications are always Server based) and also for command line development. We had Xojo Apps out but the problem was, that authorities are not accepting a deprecated Software). So we changed to Java environment.
We use for our Web Interfaces often WebSwing which has the ability to provide a Java Swing Application as a web Application running entirely on the Server. That is convenient and runs like a charm.
So: no experiments in Stuffs like Xojo for us anymore cause the experiment was more than expensive for us (license costs of Xojo are not interesting n that calculation, we had to exchange the Xojo Application while it was deprecated Version of Xojo and the new Version had not even the ability that we could write our Software in the new Version). Next time I want to do an experiment I will build a house. That is Cheaper and makes less stress.
This is really exciting! You mention that the firmware programs are written in C++ and do not use Pi4J. Is there a library that is stable with Java on the Raspberry Pi, or do you use a C++ library on the Raspberry Pi and then send the information to Java to show the data on a GUI?
It would be nice to write a GPIO program on the Raspberry Pi that allows microcontroller functions while being able to create a GUI with the Raspberry Pi. Could this be created with just Java, or would it be better with Java and C++?
Is this a special library that your company created, or is this a public library that I can use?
We wrote an own library for our needs and thatâs it. This while there was only pi4j. But we needed something proprietary with more functionality. So we wrote a c++ krrnel module and wrapped it for java.
My company was developing it while I decided that the existing stuff isnât that what I need. So I decided that we do have to develop our own
The firmware is written in c++ with mplab and behind that there comes the interface. Often I use api interfaces while we need to isolate all outputs (body float and cardio float) from the power supply and from all others. Letâs see the example we have ten dpi channels to the channel firmwares. Now we have simply ten hour ports for selecting active spi client and communicate with spi interface with the hardware interface of the mcu. Means we have for every spi connected firmware an own api. This we use for our java software. Often we have also serial communication. All we do is implementing the communication api on both sides and it lives. Our javagpio is a bit more stable and reliable than wiringpi. Most you can also do with pi4j . Including spi bus. Now we can communicate between mcu and Pi and java GUI directly in one Codename. For me the best way. With max 150 Mbit per second itâs fast enough mostly.
As Isolator we use often silicons si8641bb or bd series with external discrete signal controller for spi active switching / slave select. Works more reliable than analogs adze spi isolators.
MPLAB has a wide variety of good chips, and are very stable. Although I found MPLAB programming examples to be poor.
I will look at Pi4J and see how stable it is. It sounds very exciting
Pi4j is very stable. But it has a few restrictions I could not accept. For me it was so that it was less complex to write a new going manager for example with a more flexible soft pen generator. For normal uses it should always be a nearly perfect solution.
Another thing was the gluon driver which was deprecated. So we also had to rewrite while pigpio was no alternative. So we done That job for our uses.
this has drifted way away from what I was hoping what I thought might be considered
If you had to stand in front of the board of directors/CEO etc and say "I was given the task of setting overall technical direction for our company and it development efforts I here what I think ⌠"
How would you justify the choice you made ?
Why this vendor and not some other ?
Why this language and not some other ?
What pros are the about this vendor ? cons ?
What other kinds of questions would you expect to be asked when making such a presentation and how would you justify your choices ?
Thats kind of what I was hoping to see
That I wrote above. What you want more? Ide and Language vendor havelock be reliable and stable. Therefore no quick and dirty shit like xojo for production. Alternatives like flutter: idäf itâs not really cross platform: nope. Igors not a compiled Language but a script language: nope. Use this filter and the results are c++ and java. Rocking platforms. Is using other stuffs: for special purposes. But writing one app with flutter and the other in c# and the next in c++ is loss of time and money.
And then it comes. The never rnding discussion why Python can do all better or other languages what ever.
My experience: professional languages and not kids toys. Playing I can do with xojo. Programming with java and c++. So in the end there is no real alternative. C# but no GUI for Linux âŚbut itâs a question of platforms. Only windows desktop would be okay with c#.
- A language that works cross platform (desktop and mobile)
- Allows use of declares since no language will have 100% customization of all methods and controls
- Can create dllâs, so, etc.
- Allows implementation of future libraries. An example is the Vulkan graphics library has been created for quite a while, and has not been converted to many other languages. Should conversion be needed?
- Drag-and-drop control interface.
- Allow mostly full control customization from IDE
- Allow use of interrupts
- multi core, processor execution
- The structure of the language will need to be simple
- Have a context-sensitive online/offline help system
- Have an intellisense system to complete commands at the current location
- Allow easier implementation with Microsoftâs Component Object Model (COM)
- Have the code allowed to be modified by contributors, while maintaining a âgatekeeperâ. An example is someone can create code for the language and the âlanguage gatekeeperâ will be allowed to check and implement the code or run tests and show that the code is âtoo buggyâ. No individual person or team can create all the code needed for the many applications in the wild anymore.
- Have a high speed-of-execution.
- The ability to execute machine code
- The language should be verbose and human-readable
- Once an internal method has been created, it is not deprecated. Overloading can be implemented.
- Will create native executables (eg: .exe on Windows, etc)
- Allowed to create websites which execute programs quickly. No long delays between starting and loading webpages
- The language can be implemented to control other languages (example: VBA in Excel, Word, etc.)
- Ability to report bugs, and 1) contribute to make the code work, or 2) allow the database to record and keep the data for fixing/reporting bugs
- Uses 32 and 64 bit programming (There is soooo much code for 32-bit programming that is used and can be converted to 64-bit, and this canât be ignored.)
- Easy to install the IDE (doesnât need to install 15 supporting libraries/programs to be installed)
- Easy to install the final completed program (possibly an internal innosetup-ish-like program?)
- Have one large line of code that can be saved in text (similar to the VB6-type code). Having multiple areas of code (press pushbutton action event will only show code in the action event is poor in my personal opinion)
- Debugging data shown in hexadecimal format.
- The development team will need to use each of the operating systems (creating the language on one operating system and porting it to others has MANY issues for native OS users)
- Low startup time for the IDE (not waiting 2 minutes to load a large program)
- Allow updates to the program, as updates to the IDE/programming language can break existing code
- Ability to support/create plugins
- Allows code to be organized, and clearly maintained (Ability to make modules, classes, etc)
- Did I say backward compatibility yet? If I did, its worth saying it twice
- Allows creation of reports
- Allows the ability to use creation templates for making programs (possibly wizards or making custom templates)
- Code highlighting and syntax colouring
- Low memory and size of final program
- Must execute graphics fast
- Allow the use of code examples (VB6 still has billions of code examples)
There is more that I can add, and this is a good start. I hope this helps further the discussion
Do the CEO and the BOD do know anything technical at all? At Opel/GM we always joked that the deals were done at golfing.
CEOs donât need to know the technical details, really. CEOs (should) think strategic and longterm. At best you must need to do a very high level overview. Oh gods, I hated that term â30k foot overviewâ.
Eugenes list is very thorough. But itâs not for the CEO.
Does anyone already have experience with the selected languages?
Is there some training available?
How would you need to plan training?
Can you get developers in the selected language?
What is the status of the tools/IDE?
What is the long term strategy with the language or is it the Google playground of the year?