Make a Gnu/Linux binary
Please, make a Linux binary. Wine isn't stable.
I congratulate you for this wonderful work.
Cordialy.
-- Maxou56800
I do not want to minimize the complexity in such an endeavor, but you are an insanely gifted developer. [I am not, or I would be helping you port to Linux as of a year ago! ]
Let me point out a couple development tools which might be able to help in such a cross platform development.
See superficial discussion of Lazarus/FreePascal here: http://stackoverflow.com/questions/4385760/delphi-for-windows-and-linux
In one of the answers "avra" points to CodeTyphoon as a possible "powerful one click installation package for cross platform native Delphi like RAD/IDE based on Lazarus/FreePascal"
More and more developers (and certainly DBAs and persons with webhosting duties) use Linux for at least part of their work. Having HeidiSQL available as a native binary on Linux would really distinguish the project further.
They sure make it sound easy to make a cross platform binary: "Let's say you are creating a product on Windows using the standard Windows widgets. Now you want to create a Linux version. First you decide what widget set you want to use. Let's assume you want to use gtk+. So you copy the code over to your Linux development machine, compile, and link against the gtk+ interface unit. That's it. You've now just created a Linux version of the Windows product without any additional coding."
On the other hand, they do point out it may not be so easy to port a database project from Delphi: "Can I use my existing Delphi code?
Some of it yes. If the code is standard Delphi pascal and it uses the standard components found in Delphi then the answer is yes. If it uses some specific database, OCX, or DCU then the answer would be no."
Does HeidiSQL use OCX or DCU?
But I was watching around for alternatives to Lazarus/Free Pascal. I found Java is the "best" match here, if I want real cross OS compatibility, at least the compiled controls are by far the most pretty ones when you compare Lazarus/Free Pascal. I have not written a line of Java code in my life. Even Delphi with its FireMonkey which can compile for MacOS, iOS, Android and Windows, is ugly. You see at once that it's not a native Windows application. And even for FireMonkey, although it's Delphi, you have to rebuild the whole GUI, and worse, you have entirely VCL-incompatible events and objects.
I see the point, we need an experienced developer in some language which is capable of doing cross compile or compiles byte code compatible to Windows, Linux and MacOS. If it's Java, I'm most probably not the one.
But the code is far away from being only standard Delphi pascal and standard components. There's a ton of code using the Windows API, which surely does not work on Lazarus. Pointer code is alo very common in Delphi. Not sure if Lazarus supports that. And of course the MSSQL library, calles ADO, will not be available on Lazarus.
Do NOT compromise your health. I have a bad cold today -- probably because I have been working too hard the past few weeks. Your blood pressure situation is a lot "touchier" than a simple cold like mine.
Perhaps at some point Lazarus will have better looking Windows widgets? Or does Embarcadero (Deplphi publisher) actually license those from Microsoft (i.e. unavailable to a broke open source project like Lazarus)?
The screenshots for Lazarus on Windows actually make the UI seem quite a bit better than "ugly." Example: http://wiki.lazarus.freepascal.org/File:Windows_7.png
Of course there are a LOT of controls beyond a basic window form and maybe even the most recent Lazarus versions have ugly buttons, tables, and other critical UI elements.
It is interesting that you like Java UI elements. I remember when Java was fairly new the applications (on Windows, at least) looked absolutely horrid. Perhaps Lazarus will follow a similar path of improvement.
Also, have you considered that QT works with Lazarus? http://wiki.lazarus.freepascal.org/File:Lazarus_IDE_QT_Windows.png
That's one of the few screenshots with a form with actual controls . . . and it looks quite workable (although their color choices for text boxes are horrid!).
Perhaps one way in which you could get help (and not just for a port to Linux) would be to establish a "bounty" or some other fundraising mechanism.
Continued best luck with HeidiSQL!
And of course the MSSQL library, calles ADO, will not be available on Lazarus.
While I am dreaming . . . I'll say I would be even happier if HeidiSQL supported Firebird INSTEAD of MS SQL Server!
Just curious: do you track what percentage of HeidiSQL users use it to connect to the MS database? To me, their offering is overpriced, convoluted, limiting (particularly regarding platform) and unnecessary.
It is interesting that you like Java UI elements. I remember when Java was fairly new the applications (on Windows, at least) looked absolutely horrid. Perhaps Lazarus will follow a similar path of improvement.
Java apps can be as native (or not native) as you want and that has been true almost from the beginning. There have always been many developers putting lots of efforts in either paths. But Java is of course an entirely different beast.
Funny... Not being a desktop Linux user, I was under the impression that Linux already had some awesome open-source native apps to interact with MySQL. I guess it's just the greener-lawn-in-neighbour's-yard syndrome :)
Funny... Not being a desktop Linux user, I was under the impression that Linux already had some awesome open-source native apps to interact with MySQL. I guess it's just the greener-lawn-in-neighbour's-yard syndrome :)
HeidiSQL is bar far the best MySQL GUI client out there. SQLYog probably comes in second (and has a couple cool features which you do not, particularly syncing of DBs), but it is not free/open and also not available on Linux.
On Linux, the best (common) bet is probably SQuirreLSQL (a Java application, thus multiplatform). It has gotten a lot better over the years, but they are still a long way off from your program's elegance.
There are definitely other MySQL managers on Linux, some VERY good such as Navicat. Navicat, however, is not free/open. I don't mind paying, but a lot of clients may need to use such a tool for just a few moments each half-year or so . . .
DtSQL is quite promising. Also not free/open. Haven't tried it on Linux yet.
I have been playing with Valentina Studio on Linux. It is pretty impressive. Free of cost (basic version), but not open.
Some also use NetBeans as a front end to MySQL. I haven't tried that yet, but it sounds like it has some merit, especially if one is in the middle of developing something.
In spite of all these options, it would be nice to have HeidiSQL on multiple platforms without resorting to emulation [I know, I know Wine is not an emulator! ].
It will be interesting to see whether some other brilliant developer agrees with my assessment and joins you in your quest to improve HeidiSQL and can deliver a native binary on Linux.
However, DBeaver is very good (far more elegant than SQuirreL in my opinion). As a Java application it is also cross platform. It also supports the lesser known but excellent Firebird along with the regulars such as MySQL/MariaDB, PostgreSQL, MSSQL, Oracle, etc.
You might want to take a look for further inspiration.
* MySQL TCP/IP: 167859
* MySQL named pipe: 7
* MySQL SSH tunnel: 5962
* MSSQL named pipe: 304
* MSSQL TCP/IP: 2286
* MSSQL SPX: 1
* MSSQL Vines: 0
* MSSQL RPC: 2
* PostgreSQL: 8
Usage statistics
Thanks so much for providing this statistical data Ansgar.
It is really interesting to see just how enormously more HeidiSQL was used for MySQL/MariaDB than MS-SQL this month. [I would assume that stat is relatively constant.]
As you develop PostgreSQL functionality I am fairly sure that number will start to skyrocket, especially if this new support gets some promotion. PGAdmin is good, but as with most GUI front ends, it is not as intuitive as HeidiSQL.
Some versions can behave bad under Linux, but it's easy to find a version that works good.
I think it's better to fix few known bugs under Wine than adapt code to compile for Linux.
Please login to leave a reply, or register at first.