Future + Futurix

I guess this is as good time as ever to publish some thoughts on the future of FuturixImager. I already did that in the previous incarnation of this website, but my thoughts were lost in the move and quite expanded since – so I will update on that.

Let’s start with the main problem:

  • About a third of FuturixImager is still written in Delphi/Pascal. While it was a decent choice back in 1999 – by now it became a huge liability. Delphi was slow to support WindowsXP, Unicode, Windows Vista, Windows 7, native 64-bit builds (it still doesn’t!). I’m not even talking about the future – like Windows 8 on ARM chipsets.
  • Worst of all is that third-party ecosystem of Delphi has died – all third-party Delphi code I used in FuturixImager is either abandoned or barely supported.
  • And finally, nowadays I grew to dislike Pascal (language) and Delphi (IDE). I used to like them a lot back in early noughties, but by now I’m totally converted to C-style languages and convenient IDEs that actually help me to work – so maintaining old code became rather painful.

So what can I do with this? Well, here is what I’m thinking of doing:

  • FuturixImager 6.x will become the legacy branch of Imager’s development – it will be supported with bug-fixes and minor improvements, but without any major new features. It will remain 32-bit only, and will not support Windows tablets and anything newer after Windows 8.
    In fact, this is what I will have to do anything (due to reliance on Delphi) and this is what already happened (how many years ago was the last major release of FuturixImager? … ).
  • FuturixImager 7.x (and newer) will be a complete rewrite based on the same concepts as FuturixImager 6 but with no common code at all.

Things I aim to support in FuturixImager 7:

  • hardware acceleration
  • new features of Windows 8 (and currently unsupported features of Windows 7)
  • x64 and ARM processors (in addition to currently supported 32-bit ones)
  • no proprietary code
    Imager 7 might not be open source itself (at least not initially), but I want to have an option of open sourcing it (which is impossible with Imager 6)

Concepts that will be reborn in FuturixImager 7:

  • minimalist user interface
  • open and flexible plug-in system
  • support for wide range of file formats
  • high customisation of everything

Now, the main question remaining is – what do I use for developing Imager from now on?
The choice is not that big: it has to be for Windows (I don’t really care about *nixes or Macs or Android), and I want to use the tools I already have (so Visual Studio), and languages I already know (so C/C++ and C#). It is obvious that a lot of C/C++ will be needed as most file format libraries are in C or C++ – however using C++ for UI development generally sucks, so C# might be an option here.

In September I will attend Microsoft’s Build conference in US where entire development stack for Windows 8 is going to be revealed – and that’s when I’m going to decide on what precisely to use. Until then I plan to release a couple of “previews” – small applications to test various technologies, so that I can decide on specific things to use in the future. FuturixImager 6 is not going to be forgotten either as I’m developing several plug-ins (in C++) to bring back missing things from Imager 5.9.x (and to reuse them in FuturixImager 7).

Summary: I got my development mojo back ;-) – so there’s going to be a lot of new stuff from now on.

P.S. Sorry for the rant, but I just had to speak up!

EDIT – last minute thought:
With the amount of stuff I wrote here you’d think that I plan a brand new operating system or something – don’t worry, for me FuturixImager is just a fun hobby project! I don’t even promote it anymore – it is just for fun.
But it is a project that I really care about – so I put a lot of thought into its future.

20 thoughts on “Future + Futurix

  1. hiya Alex,

    nice to read you’re still around.

    i understand there’s no real point in pushing the old delphi code further.
    please make it easily translatable :)

    Best Bytes®,
    Harry

  2. You could try to write it in C# and think about a port or version for Windows Phone 7. It gets really interesting to develop for mobile platforms and WP7 shows a lot of promise.

  3. I do not think a C# interface with C++ core is the right option if you want to keep Imager fast and compact.
    I would say that third party libraries like Qt for C++, may do the trick.
    Of course, if Borland/Inprise/Codegear/Embarcadero will update C++ Builder, it would be the choice, but now, it is like Delphi.

    • Well, I think there are plenty .NET applications that are quite fast – Paint.NET is a good and relevant example.

      I had a look at QT some time ago and I did not like what I saw – in my experience it is not as fast as it should be and does not look native on Windows (plus it is officially the ‘second level’ platform for QT). With QT’s main platform, Symbian, on the way out – I feel that QT will become yet another Delphi soon.

      C++ Builder is definitely not an option. It is expensive, it is from the same vendor as Delphi (as you wrote), and if I will use C++ I might as well use Visual C++ (for which I do have license already).

      Basically the choice is: C# + C++ versus C++ only. And if C#, then what framework – WPF, Windows Forms, or next gen thing that Microsoft will announce in September.

  4. …nowadays I grew to dislike Pascal (language) and Delphi (IDE). I used to like them a lot back in early noughties, but by now I’m totally converted to C-style languages and convenient IDEs that actually help me to work…
    You might consider Lazarus ( http://www.lazarus.freepascal.org/ ). It is a cross platform (Free)Pascal IDE — an open-source Delphi in other words. It is being constantly developed.

    The IDE & GUI is awesome! I am quite certain that you will like it.

    • It’s a very good suggestion – but I don’t really want to keep programming in Pascal, not to mention that FreePascal/Lazarus are not entirely compatible with Delphi, meaning that a lot of my code will have to be rewritten. And if I’m rewriting it, I might as well do it in C# or C++.

  5. The newest version of Delphi (v XE2) supports x32 and x64, supports targeting GPU, can create native OS X executables, and can create iOS applications (that’s ARM support). It has also supported UNICODE natively for the past 3 years, and even supports native generics and anonymous methods (closures)

    It’d be a shame to scrap 1/3 of your codebase considering that Delphi is capable of meeting your requirements.

    http://www.andreanolanusse.com/en/video-delphi-xe2-and-firemonkey-app-on-windows-mac-and-ios/

    And I disagree that the Delphi ecosystem is dwindling or has disappeared. In fact, since Embarcadero took over, Delphi sales have continued to increase and their is a very active Delphi community at StackOverflow and DelphiFeeds.com.

    I came from C# to Delphi ~4 years ago, and I have never looked back. Either way, good luck whatever you decide.

    • Yes, I’m super excited to see Embarcadero trying to go CLX-way once again – NOT! I don’t want them reinventing XAML, I don’t care about cross-platform, I don’t them wasting limited resources chasing something they will never be able to succeed in.

      My main issue with Embarcadero is just how bloody late they are in implementing everything I care about – yes, they finally got Unicode out – 8 years after .NET had it, and x64 ‘just’ 6 years later. Who knows how long it will take them to react to new challenges in the future.

      As for ecosystem, out of 6 products of different component vendors/developers I’m using (or used) in FuturixImager – only 1 still supported, and with prices increased threefold over the last two years (no doubt due to dwindling returns). If that’s not death of an ecosystem, I don’t know what it is!

      In the end, if Microsoft will release what I expect it to release next week at BUILD conference – I’m definitely moving Imager to their technologies. I’ve already went to the ‘dark side’ in my day-time job ages ago, I might as well move my hobbies too.

  6. Hi Alex,
    I am just thankful that you are doing the work. I gave up programming a looooong time ago. It has changed so much over the years that I don’t even want to think about that anymore.
    Just appreciate what all you “kids” (LOL) are doing. This old goat just doesn’t have the mojo anymore to do what you are doing.
    SO, once again, to you and all the other contributors, My Hat Off To You and many thanks.
    Al

  7. hi,
    thanks for all your work. I have one request – can you make a “page thumbnails” window on the left – so you can see how many pages are present like in a multipage tiff file – and also easily go to the page you want – and also easily manipulate the images – such as drag one page to another location – or select the page and just hit the delete button to delete it – or ctr-c (or ctrl-shift-c) to copy, etc. Like the original Microsoft Image and Tif viewer on office XP. They also had a feature where you could just drag your mouse – instantly selecting an area of the image – and then pressing ctrl-i would copy that image selection (not the whole picture, just the mouse selected portion) and then you could press ctrl-v and paste that image as its own page – instantly resizing itself to fit the whole page.
    I like working with multipage tiff files – but the same could be done with pdf files.
    thanks,
    Makaha

  8. Very interesting! I’ve used FI off and on for many years, though I confess it’s been more off lately. I’ll have to keep an eye on it now and see if there’s anything to test.

  9. Hello, I wanted to alert you of a bug.

    In FuturixImager 6.0+
    Press “Print Screen” to take a screenshot. Open FuturixImager and “Paste”. The image is broken. It mostly only shows buttons and everything else is transparent.

    In FuturixImager 5.9.4:
    After you press “Paste”, you will see your screenshot.

    I’m on a Windows XP system.

    I have downgraded to version 5.9.4 because of this issue. I like to use FuturixImager almost everyday to paste in screenshots and do a quick crop with F2. It’s much faster than MSPaint or whatever stupid default program that Microsoft makes.

  10. Too bad that you decide to move from Pascal family, at least you can make use of Lazarus/Free Pascal which already has 64-bit support since a long time.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>