Slicer Based GUI development/implementation c++

If you implement something from scratch, specifically for a single purpose, without allowing any flexibility, then you may get better performance, and of course if you don’t build on any existing tools and libraries then you will not depend on anyone else but yourself. However, these small advantages are far outweighed by the many other advantages of building from existing open-source components.

First of all, these advantages are not always advantages. 1. The performance advantage is just theoretical. If you need to spend a lot of time developing everything yourself then you may have less time to work on performance optimization, so your system may end up being slower. 2. Not relying on others also means that you cannot use other people’s money to keep your system up-to-date: you still rely on development tools, operating system, GUI toolkit, graphics library, etc. and if those change, then you are completely on your own with the work of updating your software, testing it, and fixing whatever is broken. If you work with toolkits then platform updates are provided for free by the maintainers and if you encounter any problems then you just file a bug report and wait for the fix.

If you work from existing components then you can very easily add features and reconfigure your system to do things differently. This flexibility is very important because in most projects (and in all research&development projects) you don’t know at the beginning what exactly you will need to do and how.

I could add a lot of more reasons, but everything comes down to that if you don’t need to spend time with reimplementing things then you have more time to work on new things: things that matter and add value.

It is hard to guess why your supervisor suggested to implement everything from scratch. Probably the best is to ask him.