Page 1 of 1

Open source

Posted: 13 Mar 2021 21:31
by null
It feels almost a shame to have such a glorious, useful tool being closed source freeware.
I know there might be a reason for staying closed source, but if there are, it is very interesting to know what they are.

I have previously been kicked out of freeware communities for raising this question, but please understand that I am in no way pressuring you into opening the source code. I am just curious, very curious.

Re: Open source

Posted: 15 Mar 2021 11:27
by Maël
I am not fundamentally opposed to making HxD open source some day in the future, the plugin framework is open source already.

But making HxD fully open source is not trivial:
  • The main reason is that some of the source code requires a license (for which I would have to find alternatives).
  • HxD is written in Delphi, which is not used by many developers.
  • Making HxD an open source project will likely not reduce the work, but add managing of code submissions, and making everything ready for public consumption (more documentation for example).
  • I haven't seen people participate much in related projects from other authors, after they were open sourced.
I participated in several open source projects and still do, but they were begun as such. My experience is that when a project does not have a very significant backing, making it open source will not reduce the work.

Sure, people might want to add some quick&dirty fixes/patches for things that irks them, but that's no the same as dedicating continuous energy to a project, and ends up creating more work for transforming such submissions into truly generic and quality solutions.

Finally, HxD started as a personal project, and I invested a lot of energy for almost 2 decades now. Open sourcing all would be giving it away completely, and would require a very strong benefit.

Thank you

Posted: 15 Mar 2021 18:25
by null
Thank you for your explanation.

You are the first to share your reasons of all the freeware developer I asked.

Out of my wild curiosity, can you share what are the major components which you could not release due to licensing.
And whether making it a "sources provided" project, without accepting submissions be considered, should you think of opening the source code?

Re: Open source

Posted: 15 Mar 2021 19:33
by Maël
@License: It's various internal code I wrote, that I also used when developing paid software / doing commissioned work.

Regarding open sourcing HxD. It's not that the code submissions are the major issue, it's about giving away the source code for free, and having to add more work into it, so that people can really use it.

I am looking for something that is of mutual benefit, and offsets my long-term investment in time (and money), so far.

When people have asked me about how some specific problems were solved/implemented in the past, I usually share and explain. But yeah, it's not about reducing the pain of going open source, it's about adding value, dare I say, for me ;)

Why would you like HxD to be open source? What are the benefits (for both sides)?

Re: Open source

Posted: 18 Mar 2021 13:40
by Maël
Any reply?

Re: Open source

Posted: 18 Mar 2021 14:59
by null
Maël wrote: 18 Mar 2021 13:40Any reply?
Sorry for late reply - been busy

My question rose purely out of curiosity.
I, possibly heavily indoctrinated by a certain "Stallman", always wondered why freeware developers, which (as it looks, at very least) don't plan on getting money out of their work, don't just release the sources along their work.

Value of open source is not that one has to clean up the code (which, imho, one doesn't)
Its not about people fixing ones code, and not about you having to coordinate the submissions.
It is that it's there, and likely will be till the end of the internet.
It's the internal feeling that no matter what, development may stop, but the effort (and donations :wink: ) are there always.
It's a feeling of security in the future of the software. Once gone open, one can effectively revert only for non-contributed code, only for future versions.
I spent much time in the environment, and with the mindset of software being made open by default unless there is a reason to keep it closed.

I understand now, that it's just not worth the effort to replace the licensed code.
And it's still uncertain whether the project can bring you money, or stay purely for public, free use.
Those are valid reasons, obtaining which was the main goal of starting this topic.

Re: Open source

Posted: 08 Jun 2021 16:39
by v0id
Thanks for developing and maintaining a wonderful software!

'm replying to this somewhat old thread but I would say some good advantage of making source available (at least to interested developers who contact you). HxD is currently the best hex editor I have seen and used. But it is not available outside Windows 32 bit. I know it is written somewhat obscure Delphi but someone might like to port it to other operating system like Linux or BSD. I personally would like to use HxD natively on Linux, if possible in Posix process aware mode (which might be easy to implement due to well defined proc in *nix).

Let me know what your plan is about porting HxD to other OS.

Re: Open source

Posted: 08 Jun 2021 17:22
by Maël
When you mentioned it was a somewhat old thread, I thought it was another one (I am sure there are similar ones somewhere, but couldn't find it with a quick search). This one is fairly recent, though, just started a couple months ago.

As you mentioned, HxD is officially available for Windows only (though includes full support for Windows 64 bit, not just 32 bit).

I wouldn't mind if people helped porting it to other platforms, such as Linux.

The real big work would be supporting a GUI under Linux, especially given that a few custom components/controls I wrote are central to HxD. The framework it relies on is the VCL, which is Windows-only. There is another one that is somewhat compatible, called FMX, which would limit the amount of porting work. A cursory look shows it's available for Mac, but you need the Enterprise version for Linux GUI support: ... _for_Linux

The Delphi IDE is Windows-only, it only cross-compiles to other platforms.

Currently, a few people use it under Linux using Wine. A possible, but not really satisfactory route could be to compile against the Wine libraries, to simplify porting (how much it helps would have to be seen).

Feel free to share any ideas on how this could be done in practice.

Re: Open source

Posted: 08 Jun 2021 17:29
by null
I don't think a thread can get old if all the participants are actively monitoring it =)

Re: Open source

Posted: 08 Jun 2021 19:27
by v0id
There is a way to use VCL in Linux or mac but it is not free (by any means).

Another possibility is that HxD is good not only because of its interface, but also for its stability and performance. It handles very large files really well. So we can start with any well built Qt/GTK UI or build a new one and integrate the core logic to it to make a new app. Okteta by KDE might be a good starting point.
I don't know the architecture of HxD but it may work.

Re: Open source

Posted: 08 Jun 2021 20:16
by Maël
The GUI is a major portion of the development time. GUI and speed go hand in hand, because the one needs to be designed for the other (handling and editing big files needs special data structures and the controls need to know how to deal with such structures).
There is also a concept of gaps in files, for the RAM editor.

On the surface all of this look simple, but it's quite involved.

Using Okteta wouldn't help much, since it's code/philosophy is really different, has a different feature set (many missing features).

Qt would be an option, but would mean a major rewrite.

I wish it was simple, but I don't think it is.

Re: Open source

Posted: 08 Jun 2021 20:35
by v0id
There is another Delphi compatible RAD programme It has LCL which is similar and to some extent compatible to VCL The migration guidelines are roughly mentioned in You may like to look if it is compatible to your project.

Re: Open source

Posted: 09 Jun 2021 12:04
by Maël
Thanks for your suggestion. I was already trying to use FreePascal/LCL when porting HxD to 64 bit (it took long for Delphi to get a 64 bit version). The two systems are still different enough that it will require lots of work.

Also when speaking of obscure, FP/LCL is even less common.

Re: Open source

Posted: 09 Jun 2021 14:24
by prino
You might want to get in touch with Romain Petges who converted his "Attribute Changer" from Delphi to FreePascal, and it doesn't look one bit different.

Re: Open source

Posted: 09 Jun 2021 22:12
by Maël
Thanks for the tip, looks like a useful software. But the issues I mentioned in the posts above remain (the Attribute Changer GUI looks like it uses standard components, HxD however uses lots of custom ones, and I already have experience in how the two systems differ, especially the IDE/comfort etc.).