Paladin IDE release and next version plans


#1

Hello all. As you may have seen in Haiku Depot, Version 2.0 of the Paladin IDE has just been released during the BeGeistert conference in Hamburg, Germany.

Thanks to all the help from everyone at BeGeistert, on IRC, and in these forums that supported me in taking a handle on the development for Paladin, and getting the release out there!

Version 2.0 of Paladin works on both 32 and 64 bit Haiku systems, and is tested on the Beta 1 image. It is mostly a major bug fixing release, working on everything from stability bugs, through UI/UX issues, and basically fixing any bugs introduced by Haiku updates over the last couple of years.

There are some improved features too. Paladin now invokes g++ rather than gcc, meaning you no longer need to explicitly configure the c++ std library on your projects. Library links are now portable from/to 32 and 64 bit, removing the annoying messages you used to get due to changing library paths. This works by way of a placeholder text in the project (pld) file. This means project files in this version of Paladin are not compatible with older versions, hence the 2.0 version bump. 2.0 can open older project files, and will upgrade them on saving.

ccache and fastdep are also fully tested. This makes executing builds in Paladin even faster. A full build of Paladin itself using Paladin takes just 6 seconds now on my machine. Incremental rebuilds are even faster, especially with fastdep enabled.

I also worked with @KapiX to ensure Paladin works well with Koder. If you set Koder as your preferred system editor for Source Code files, then Paladin will launch Koder to edit them. Even better, if a build g++ error occurs, double clicking on it will open the relevant source file and line in either Pe or Koder, and for Koder will jump to the specific column too. This has maked developing Paladin very quick!

Upcoming 2.2 release

The next release will be 2.2 (I’m going to reserve the odd minor version numbers for urgent bug fixes to releases). This release is aimed at enabling Paladin to be coded, built, tested, and debugged, including version control, from entirely within Paladin. This will make Paladin a nice place to live within for developers, with a focus on removing obstacles to developers getting their work done, and making everything efficient.

A particular focus will be on preparing a set of plugin API to allow future extensions to be added by myself or others, including language support (Paladin will soon not be just for C++ development!), new build systems, source control systems, and output / log file parsers. That plugin system was tested over the weekend and is 90% feature complete. It is a generic approach, and useful for other apps that need to include easy plugin support too with minimal extra coding.

I’ll also include the initial test feature of in-app tutorials for the new features of the 2.2 release. This will form the backbone of the 2.4 release’s samples, tutorials, and template projects - greatly aiding new developers on Haiku. Initial feedback from the 2.2 release will inform how tutorials are implemented within Paladin in future.

There is no firm target date for the 2.2 and 2.4 releases, as I know I’ll be very busy over the next 2 months until the new year, and refactoring for the plugin API will take a long time due to how Paladin’s code base has evolved over the years. Doing the work now though will greatly ease future versions’ development time.

Hopefully Paladin will become your IDE of choice, or even convince you to leave the command line and embrace the open and customisable environment of Paladin! It’s not quite there yet, but over the next 3-6 months will hopefully improve dramatically.

Thanks for all your support!


#2

Sir, have a bowhat here. Nice cornerstone to begin a good development environment in Haiku


#3

Congrats! Why not publishing the news as a blog post so that newcomers (potential developers) who usually don’t bother visiting the forum, could see that the dev tools for Haiku are in active development?


#4

Now that’s a jolly good idea… Let me figure that out :slight_smile:


#5

Great work…
Well done…
If only “Create a new project” won’t crash Paladin… Haiku Beta 1; 64bit
Sure you will be fixing this bug soon.
Tutorials and Template files are great for explore and learn!

Any change to get python programming with Paladin? And how would this work?


#6

Hmmm… works fine on my machine! :wink:

Any chance of a bug report please, ideally with a screenshot of the error message, or a picture of the Debugger app that opens when there’s a crash, or a bug report from the Debugger? Also please provide an exact account of what you clicked on/typed etc. (E.g. which type of new project was it? Was it from a template? etc.)

You can log issues here: https://github.com/adamfowleruk/Paladin/issues

As you can probably appreciate, there are so many variations on hardware and libraries/versions particular people have installed, that there will always be the odd bug that crops up. I tested literally every feature of Paladin as it stands for the 2.0 release - I assure you the New Project feature was extensively tested.

Please do submit a bug report and I’ll rush out a fix for you.

With respect to Python, I’m working on a Plugin feature that will allow people (me, or others) to add support for new languages, new build environments, new runtimes, and new error/log file processing detection, as well as templates and samples. That will allow more people to contribute to Paladin. Python is high on the list, but it will require the help of someone who uses Python more than I do (I just use the occassional RNN with it :wink: )

Incidentally, this plugin feature won’t be specific to Paladin - so editors and other apps will be able to use the ‘Python plugin’ as required. This minimises coding by everyone on the Haiku project.


#7

hello Adam,
I just opened Paladin and clicked “Create new Project” and it crashed…
Since my nickname is taken in Git??? I sent you a mail here!


#8

Generally, we don’t announce third-party software releases or development logs on the main blogs … We could give it an honorable mention in the next progress report, though.


#9

I’m not talking about general blog posts but rather about developers posts which are visible in Blog-o-sphere section of the site.
Previously 3rd party software has already been covered multiple times:
Wonderbrush: https://www.haiku-os.org/blog/stippi/2012-10-25_new_wonderbrush/
UltraDV: https://www.haiku-os.org/blog/barrett/2016-07-18_tales_video_editor/
LibreOffice: https://www.haiku-os.org/blog/kapix/2018-07-08_libreoffice_for_haiku_a_not-so-short_story/


#10

Checked out the master git 2 days ago, built it and ran Create Project without problems (64bits Beta).
Also just ran the basic window project and all was OK.

The only think i miss, coming from other ides (VStudio, Codelite, Codeblocks, …) is having all the windows in a main one with tabs and/or miniwindows. I dont know if it matches the general behaviour of Haiku, nor if this is kinda possible tho, yet i miss that.

Something in the lines of Codelite Ide example

In any case, i repeat myself, great job here.


#11

Why not? All bloggers are welcome on the website and it’s great to have 3rd party apps (especially native ones) mentionned on the website.

This is subject to approval (as part of the pull request review) but I don’t expect any problem advertising Paladin.


#12

It is not the way of haiku. Paladin is a rework of the Beide and this ide uses windows and external Editors.

One can do a ide with yab too. It is a basic Interpreter but good for IDEs.


#13

@KapiX and I are looking at the idea of multi window/app layouts built on the layout API that will keep stacks and tiles, but allow developers to create their own ‘perspectives’ for different tasks.

This is more like Haiku native, and can include other apps, and so is more flexible than an “inside this one window” IDE. I’ve found I arrange things in a way that is consistent for me, and I’m sure others are the same.

Would this be suitable for you?


#14

Guess so. I dont mean a strong layout as other ides necessarily. I am just used to have them not independently.

Same reason i dont use gimp if i dont have to.

But i guess it will always be a matter of personal choice.


#15

So let’s try to put the Haiku vision on this in words:

Indeed, loads of floating windows is not very convenient when you have to manage them manually, and users easily get swamped in that. However, all attempts at solving this at the application level are not very convincing: “MDI” (Multiple Document Interface), browser tabs, etc. They all only provide some more specialized, but usually not as flexible, window management.

So, the idea is that window management should be left to the window manager. The counterpart is that the window manager has to be awesome, and that applications should have some control on it, as they know how they should set things up.

There is one visible part to this which is Stack and Tile. It works nicely but user surveys show that users will rarely take time to lay out their windows with it. Windows “drag to screen edge” has better results, however it falls apart on multi-display setups (they have key shortcuts to compensate).

The next step is making apps stack and tile their own windows. Koder will already stack them (for example when you drop a file onto an existing window, or when you use the shortcut to open the .h from a .cpp file. The tiling API is still missing, but it seems the next logical step to have Paladin tile its own window with the editor it opens.


#16

Did not want to call MDI just in case it could bring nightmares back for someone.

Also yes, i cannot work without multidisplay anymore (thinking in wanting 3 instead 2), with lots of putty windows going around matrixlike logging and visual studio plus it debug windows running aside.

The project parts and the code editor in paladin are ok on several windows, but having one window per file… Itches me. I normally dont do that unless I’m comparing em. Also… Suffer windows going to corner (d)effects


#17

Maybe it is a good idea if you are able to save your windows layout?
After arranging the windows to save the locations of them in the program?
Here Paladin…

Or even the layout for multiple workspaces?! Something like save Layout1, Layout2, Layout3, Layout4… and a standard layout?!


#18

Yeah that’s exactly what we’re thinking. Standard layouts to start with, but you can customise them and link them to particular tasks.

I want to ensure that we implement this as a library rather than embedded within Paladin. That way it can be used by other apps and the OS in future, if it proves useful


#19

It’s great to see that Paladin has a roadmap and is being actively developed, since it is a nice tool.

By the way, I have just completed the Portuguese translation for Paladin in Polyglot. :wink:


#20

Hello adam…
I created a ticket here: https://dev.haiku-os.org/ticket/14692
with the debug report…
hope it helps.
Strange nobody else has my problem with Paladin Creating a new project?