Clipper Programming Interview Preparation Guide
Prepare comprehensively for your Clipper interview with our extensive list of 21 questions. Each question is crafted to challenge your understanding and proficiency in Clipper. Suitable for all skill levels, these questions are essential for effective preparation. Download the free PDF now to get all 21 questions and ensure youre well-prepared for your Clipper interview. This resource is perfect for in-depth preparation and boosting your confidence.21 Clipper Questions and Answers:
1 :: What does CLIPPER stand for?
► A clipper is a fast or prestigious ship.
► CliPPer = C Plus Plus
► cLIpper = LIbrary
► clippER = ER, thats enough acronym for now.
► Or if you prefer, "Cross-crystal Likelihood Phase Probability Estimation and Refinement, which is what I hope it will be used for.
► CliPPer = C Plus Plus
► cLIpper = LIbrary
► clippER = ER, thats enough acronym for now.
► Or if you prefer, "Cross-crystal Likelihood Phase Probability Estimation and Refinement, which is what I hope it will be used for.
2 :: Do I need CCP4?
No. CCP4 is an optional dependency which is only needed if you want to access CCP4 file formats.
3 :: Why C++ used in Clipper?
This is where I'm supposed to tell you that C++ is a great language. It isn't (at least not for my purposes). A good programming language allows you to think in the language of the problem, not the language of the computer. In C++ you keep having to return to implementational details, such as whether to use a pointer or a reference or a value, a derived class or a template. This is probably unavoidable if good performance is going to be achieved.
But the main reason is a lack of alternatives. Java is (generally) slow, and clumsy in places. Maybe Objective-C, Delphi, or even C# have solved some of these problems, but they are less portable and less widespread than C++.
But the main reason is a lack of alternatives. Java is (generally) slow, and clumsy in places. Maybe Objective-C, Delphi, or even C# have solved some of these problems, but they are less portable and less widespread than C++.
4 :: Why use references rather than pointers in the public API, particularly for arguments which are modified?
The C++ provides the most precise statement of the priciples:
No pointers in the public API, except when returning a pointer which might be null. The above reference also describes the problem of wrong attitudes brought over from C.
No pointers in the public API, except when returning a pointer which might be null. The above reference also describes the problem of wrong attitudes brought over from C.
5 :: Can I use Fortran/C/Python/Visual Basic?
You can provide SWIG wrappers for the parts of your program you need to access.
6 :: What is the license for Clipper?
If you get it from here, the code is licensed under the LGPL with an additional clause allowing for the distribution of binaries without object files. If you get it from CCP4, it is licensed under the CCP4 library license.
7 :: Why do not you use GNU autoconf or SCONS for building?
The short answer is that if you get it from CCP4, it does. If you get it from me it doesn't, becuase autoconf is unreasonably complex and I have better things to fill my head with.
The long answer is that when Paul (who is an autoconf guru) and I set up autoconf for clipper it took us a week, and required sufficient specialist knowledge that I couldn't really maintain it. By contrast, when I set it up with SCONS, it took me less than a day and was easily maintainable, however at that stage SCONS didn't handle other platforms very well. So I distribute development versions of clipper with simple build scripts which actually work for me, CCP4 distribute release versions with autoconf because they have enough experience to maintain it, and PHENIX distribute it with SCONS because that's what they use. If you want an autoconf version, use the CCP4 release (granted its always a bit out of date).
The long answer is that when Paul (who is an autoconf guru) and I set up autoconf for clipper it took us a week, and required sufficient specialist knowledge that I couldn't really maintain it. By contrast, when I set it up with SCONS, it took me less than a day and was easily maintainable, however at that stage SCONS didn't handle other platforms very well. So I distribute development versions of clipper with simple build scripts which actually work for me, CCP4 distribute release versions with autoconf because they have enough experience to maintain it, and PHENIX distribute it with SCONS because that's what they use. If you want an autoconf version, use the CCP4 release (granted its always a bit out of date).
8 :: Why not PHENIX, the Zelinka/Otwinoski libraries, etc?
I'm writing this library to solve my own problems, and to help CCP4 developers transition to OO programming. You should find the best tool for the problem you need to solve, and use that. If Clipper fits the task, then I am happy to provide advice on implementation and make changes which do not lose generality.
Having said that, it is certainly possible to use CLipper in association with CCTBX.
Having said that, it is certainly possible to use CLipper in association with CCTBX.
9 :: What is NetLib for Clipper?
NetLib is a multi-faceted networking library for CA-Clipper. While it focuses on network functionality it also has many features which make it valuable even on a stand-alone system.
10 :: If I use NetLib, will I find many other users to network with?
NetLib has been around since 1986, and has over 20,000 users world-wide. You will easily find other users who may be willing to exchange their tips and tricks.