New year's resolution: Have a 3rd attempt at CodeSnip v5

Where have we heard this before?

OK, it was way back in 2013 when I first decided to try to develop CodeSnip 5 - a quite radically different version of CodeSnip than version 4. It was code named parsnip, as in pa[r]scal codesnip - really! Along the way that morphed into CodeSnip pagoda (I can't remember why) and then floundered. 

In 2020 there was a partial reboot: pavilion. This was based on parsnip and was used to investigate one of two possible ways to strip the web service code out of CodeSnip before the services closed in June. It turned out it was quicker to revise CodeSnip 4, so pavilion got abandoned too.

Introducing CodeSnip Belvedere

And now, on 1st January 2022, I've just created a new belvedere branch off the CodeSnip 4.19.0 code tree to have yet another attempt at CodeSnip 5.

What makes me think I might succeed this time?

Well, I think the main reason the other attempts failed is that I tried to grow v5 from the a code base that goes all the way back to CodeSnip 1 in 2005. At 16 years old the code has been bludgeoned and battered into supporting four very different versions, so it's not exactly the tidiest and most coherent code you've ever seen. And that's probably where I stumbled - that mangled code is not easy change as radically as I need to for v5.

And then there's the fact that CodeSnip 4 really doesn't like compilers after Delphi XE - see CodeSnip Compiling & Source Code FAQ 11 if you want to know why.

So for belvedere I've decided to try to start from scratch. I'm using Delphi 11 Alexandria and FireMonkey [EDIT: VCL see this post]. Although belvedere has all the v4.19.0 code in it, I'm not going to use it by default. I'm starting development afresh in a new belvedere sub-directory and will only copy in the old code where it is suitable. The default position is that code will be new.

Will this approach succeed? I dunno. Progress will depend on my available time and enthusiasm.

New Year's Resolution - is that wise?

Hmm. Probably not. I don't usually make them.

But this year I have made two essentially contradictory resolutions. The first is this whole CodeSnip belvedere thing and the other is to play more guitar. Let's see if I can manage both.

More info & have your say

For details of what I'm planning see the new README attached to the belvedere branch on GitHub.

If you want to suggest anything then I've set up a CodeSnip 5 Belvedere discussion on GitHub where you can do just that.

Progress so far

Want to see how far I've got? About as not far as it's possible to be without actually doing nothing is how far. But, give me a chance, I only decided to do it today.

All there is so far in the belvedere branch is a .gitgnore file and README.md. There's also a blank Delphi 11 project - CodeSnip5.dpr - in the belvedere/src directory.

No forms? Nope - CodeSnip 4 uses a hierarchy of forms, which has proved to be one of the better design decisions, so I'm taking my time considering and how best to (re)design this for belvedere before adding any forms to the project.

Watch, as they say, this space. And now, I'm off to practise guitar.
If you celebrate it today, have a happy new year.



Comments

Popular posts from this blog

Released v2.2.0 of the Code Snippets Collection

CodeSnip v4.23.0 Released

Never make new year's resolutions - dumping CodeSnip Belvedere