Paladin C++ IDE feedback

Hi all,

Sorry I’ve been away for a while and dropping out of organising an October meetup. Personal circumstances meant I had to concentrate on things much closer to home.

I’ve been getting back in to it slowly by looking at Paladin dev again. I’ve just started adding unit tests to the project itself so that when I start refactoring things I have a set of tests ready. I’ll move over time to a TDD approach for Paladin.

In order to best inform the development direction, and hopefully break down releases in to more regular and smaller feature releases, I’d like everyone’s feedback on what they want from a Haiku IDE. Although its heritage is pure C++ feel free to suggest outlandish-but-useful-to-many features.

Please can I ask that you add any features as issues (tagged as enhancements) to the GitHub site, and that if you see any features you really really want now-if-not-sooner then add a comment with ‘+5’, if it’s a feature you think is really useful and want soon, add ‘+2’, if its a feature you approve of add ‘+1’. No need for downvoting as I’ll just prioritise the top features anyway.

GitHub issues are here: https://github.com/adamfowleruk/Paladin/issues

Thanks in advance.

FYI I just released a 2.1-1 version to haiku ports which should fix an issue @lorglas reported about Paladin not working on a recent hrev.

15 Likes

A powerful, no nonsense, and easy to use Paladin IDE will be a great welcome.

1 Like

Present features to add.

  1. Create drivers in Paladin, I find JAM to be a pain in the but.

  2. Paladin made CLI and GUI programs in BeOS very easily. And while CLI program still can be created using Paladin it does not help me in making GUI programs

  3. More templates would be a real help too. I made template under BeOS be found many do not work in Haiku, I really would like some to guide me.

In case you have not guess, I am not a full time programmer, I maybe write a few times a month and can really use the help.

1 Like

That’s great feedback, thanks very much.

I think project templates are a key area focus for future development. I just recorded a few videos on initial development with Paladin on Haiku covering the existing (very basic) templates:-

I’ll be adding to this over time.

If you have links to old useful BeOS templates that’d be really useful. I can have a guess as to the GUI templates to create, but if there’s something in particular you’d like to see that’d be a better starting point for me.

I must admit I’ve not toyed with Haiku drivers at all but have tried building Haiku for arm using jam, so I know what you mean around the learning curve. Any driver templates in particular? (Storage, input devices, etc.)

10 Likes

We have some basic “templates”/demo projects here for simple GUI programming: https://github.com/drcouzelis/HaikuApiExamples

Great Tutorial…
would be nice to have some beginners Tutorials/Templates to play with… Like first window, with button and how to link the button to another program…
would be nice to have people playing and learning with Paladin.

Thanks Adam for your work, very needed.

1 Like

Just finished incorporating these as Sample templates in Paladin. Fix #194. Will appear in the next revision on HaikuDepot.

1 Like

I’ve just incorporated a lot of these as part of the samples from the above repository. Should cover a lot of things. Examples of screen savers, command line apps, GUI apps, and various GUI controls and concepts.

3 Likes

I’ve now incorporated a few more GUI samples in the templates. They’ll appear when I next push a new Paladin version to HaikuDepot. Likely this weekend.

3 Likes

Thank you, I will try them out as soon as I can get them and give them a try and report back.

1 Like

integrate the auckland layout editor features directly into paladin and sandbox the gui with debug output so that we can test the throughput of buttons and gui elements. maybe tracing to show where buttons and gui elements tie into code etc.

Maybe would be better to work on improving the QTcreator port, make it native with haiku gui toolkits etc. Pladin is very dated and Qtcreator is a very nice IDE

There are two problems with that:

  • It means rewriting it all to remove all Qt code. More work than improving Paladin
  • It is not in line with what we have in mind for Paladin. The idea is that Paladin is just a project manager. It should not do everything on its own, rather it should collaborate with other apps (text editor, GUI builder, code completion server, …). Each of the app should be independently replaceable. Paladin used to go with PalEdit, then Pe, and now Koder is recommended. But more options can be added, because the protocol between them has been documented, and any well-behaving code editor for Haiku can implement it.
3 Likes

I have some sympathy with the criticisms of Paladin. I too had them when I started working on Haiku (in the distant past, 15 months ago :smiley: )

There is a definite different philosophy around Haiku apps which I like. As an example I miss when Pages on the mac had different windows and I could create the editing environment that best suited me. Now it’s a single window app I don’t use it - may as well use MS Word.

If I were a new developer to Haiku though, I’d be like “Oh my god, why doesn’t it JustWork[tm] out of the box like every other IDE? Why are these things separate?”.

I guess my job is to make this much simpler and a nicer place to code specifically for Haiku. One idea I’ve toyed with is having the first launch of Paladin walk you through introducing you to the dev environment and setting it up how you want it. E.g. “Here’s three choices of editor. Which do you want to try?” and it installing them and linking them for you. (There’s also some compile options that aren’t documented too. E.g. use of fastdep and ccache if installed. That should be better tested and made explicit as a first launch config option IMHO). You could have a global preferences for Paladin per developer which you could move across machines. (Even better if you all shared that with me I could find patterns in usage.)

One thing I’m planning to concentrate on is releasing asked-for options ASAP (as you’ve seen the last 3 weeks), rather than just schedule them. I want more developers using Paladin so I can get more feedback, which in turn helps inform my agile dev prioritisation of features.

So my approach loosely is “Get more people on Paladin NOW, and do blue sky plans LATER”.

5 Likes

Very nice ideas you have… good way to get more devs interested in Paladin!

Btw.: Unfortunatelly the create “new project bug” in German Paladin Version is back…

  1. Start Paladin
  2. Erstelle neues Projekt
    …will crash Paladin

Really admire your approach and fully agree with. Relatively recently I began using TDD at work (in some projects), after many-many years as professional developer and I wish I would have done it earlier…
I think there is no better way than the one you described. Thank you so much for investing time on this. Also thank you to all Haiku devs that invest their personal time on the OS and apps.

2 Likes

How bizarre! Every time? I’ll have a try myself. If you have your own error output please add to a new bug report on github.

Just released the first TDD feature in Paladin, interestingly enough. Paladin now generates a compile_commands.json file on a project build. (Requested by @PulkoMandy ). Created tests first before incorporating the use of the feature in to the UI. No bugs when linked to the UI. I’ll try and do that for all features from now on. Unfortunately a lot of Paladin has business logic tightly integrated to the UI. (Easily done over time).

2 Likes

Just tried Paladin (english version from github) and it is very nice to have the templates…
I had to switch from German to English for testing a bit…

1 Like

Thanks! I think there are a few bugs with regards libraries not being specified correctly, but at least it’s a start!

1 Like

Is there a proper way to move Paladin projects? Copying the project folder lead to massive cryptic linking errors…