All languages have defects. You will read up the problems of various languages in various places. If it is in a place where people like C#, they will hear very badly of Java. And the opposite is true too. I’m not saying people are telling lies. If it’s a place of good professionals, it’s probably true, maybe a little biased. Read all this carefully. Look for other sources. And generally don’t rely so much on random people on the internet.
Bad code causes far more problems than bad languages. Learn to make good code. Start with the foundation. Understand computing as a whole. Do not go in cake recipes, in such "good practices". Learn!
Most languages suit every kind of application, no matter what it does or how it fits. Your problem seems to be clear to resolve on desktop. There is no doubt about that. Java, C#, C++, Delphi, etc., all work well with commercial applications, including external automation equipment such as PDV, TEF, etc.
The existing libraries are more important than the language. I will mention some that have good libraries for the commercial automation area.
Do you know how to handle any? If you know, it should be an indication of what to use. The differences between them are small to justify the idea of "using the right tool for the problem". In this case I think that fits more the "the best tool is the one you know".
Analyzing the languages a little
PHP and web
PHP is not usually recommended for desktop. I even find it strange to jump from Java to PHP. They are very different philosophies. PHP is basically used to backend web. Forget about it.
Forget the idea of making this kind of application as web, it doesn’t work. The user experience will suffer and the integration with external equipment is from suffering to unviable.
Java
Java isn’t that bad either. If you can choose, I think you’d better choose something else, but it’s just my opinion, don’t choose because of it. Just don’t discard as a valid option. It’s not as slow as they say, it’s been a day (PHP is absurdly slower). And it has improved in every version.
If you already know her well, it may be the best option. I think she does not enjoy the GUI well. I even see the Javeiros complaining that Javafx is for some kind of very specific application. If you go that way, do more research on the subject, ask very specific questions here about the subject.
C#
If Java doesn’t suit you, maybe the choice lies on C#. I don’t know if you’ll answer either. There’s no way to say what’s good for you.
For desktop, C# works great on Windows. There are technologies that fit very well with Windows available for C#.
If you need to run on Linux, that works, but it’s not as good (although it’s not exactly worse than what Java offers). The same goes for Macos. It’s a little better for the mobile world. It is not the initial concern of this project, but it can expand and need to run on the 3 main mobile platforms.
The language is totally free, has all its open source and even the Almost complete Visual Studio is free for most situations (should be your case).
If I didn’t know anything I’d go with C#. But backup, it’s personal taste.
C++
Some would recommend C++, but it is not for beginners. Using the Qt it is better if you need the application to run on multiple platforms taking advantage of all the best that each one has. But I doubt that’s your case.
Some not so suitable
Others would say about Delphi, I particularly consider legacy technology, though not in fact. It’s a paid, closed language and almost no one starts new projects on it. I would only go on it if you were already very comfortable with it. Then it will even be a viable technical option for Windows (not on Linux).
I will not talk about VB that is actually legacy and if it is of VB.NET it is better to choose C#, I see no advantages.
Other static typing languages are either legacy or not mature, or do not have good desktop libraries (GUI), such as Go, Rust, D, etc.
I’m not going to talk about specific dynamic typing languages because it doesn’t seem to be the original intention. I’ve seen something on desktop using Python. I do not know the level of success, but I saw very little. A large application that I saw was not good, but it does not mean that it is the language’s fault. But it can also be. If the original intention was Java, I think this type of language will be less suitable, although technically it works.
Database
Use what suits you best or what you already have. If it’s Postgresql, use it. It doesn’t matter what language. If you have any reason to choose another, choose. These are independent decisions. All these languages work well with it, with Mysql, SQL Server, Oracle, Firebird, Sqlite (is even an option for some), among others. All work on servers.
All are or have limited versions viable for a lot of free stuff. They all run on early platforms (SQL Server for Linux is almost ready). In mobile and desktop client only Sqlite is actually viable in the client. There are those who use Firebird. But this is another subject.
Completion
If you have such a basic doubt, I would suggest trying to find someone more experienced to share the project and thus acquire the necessary experience.
I think no one is in favor of java! ok except legal persons.
– rray
Hello, your question is based on opinions, so it is not accepted on the site. In php it is not possible to develop desktop applications (except for gtk), all languages have their pos and cons, and there is only Java, for desktop try C#, or do Wb with PHP.
– Leonardo
Which one would be better for this situation? a desktop application or a desktop application ?
– Bruno
It depends more on the client, can do both ways, but I see the web as a better option, because in many places the company’s machines are weak, if the desktop system does not perform well on the company’s pc the company will put the blame on the system and not on the bad pc. A Web System Wouldn’t Be This Problem, But Many Are In Doubt About the Security of a Web Application.
– Leonardo
java fx serves both desktop and web. And I still believe in the precept that whoever does the bad language is the bad programmer. If you don’t "misuse" language resources, it will hardly cause you any problems.
– user28595
I think so, but I heard that java becomes slow and it would take a computer in a certain way "better" to run the programs without crashing, is that true? java is really slow?
– Bruno
With respect to java you can tell me if it is easy to integrate tax printers and specific keyboards ?
– Bruno
Any desktop program that misuses available resources will weigh the computer down to C itself#.
– user28595
When I talk about it, it’s not even a matter of languages, because it depends more on the developer. But when I quoted this was more in question of the user, who is usually layman, and in companies gets worse because it unites weak pc and layman, soon also binds virus + slowness of the pc = fault of the system.
– Leonardo
It all started wrong when I read the phrase "What is your opinion". Maybe there was an issue for the question.
– Wallace Maxters
@diegofm have you developed any application with javafx for web? you can tell me if it is good?
– Bruno
@rray at least my legal person is not kkk.
– Bacco