This Prolog question is introduced as an interview question. Can you get a job thanks to your Prolog skills? Is it used in the industry? (ok, ok, a job can be out of the industry too).
From what I've seen, it's used almost exclusively in artificial intelligence research, so I doubt that it is considered applicable for most standard software development positions. I only see 4 positions on monster.com.
But that doesn't make it any less awesome.
I'm not experienced in Prolog, but knowing a non-industry language that you just taught yourself may be of use because it shows your going to be interested in programming...
If someone asked me a Prolog question in an interview I would say "please translate to a more common language that I might know"
It depends. Prolog is like AMPL and LISP in regards to the industry. They are very problem specific, and the usage typically depends on vendor support. Many businesses don't use these languages unless it is their last resort. You will do better on interviews by claiming the knowledge, but it probably won't be the factor that makes the decision if you get the job or not. You will probably get a better review from the interviewer by expressing the problem in a more symbolic language. (Easier to explain, less for the interviewer to take in)
Regardless of how often Prolog is used in business, knowledge of Prolog indicates knowledge of that area of computer science known as "Logic Programming and Resolution." Asking a Prolog-related question might serve the purpose of determining how much CS theory the interviewee has mastered.
Probably not directly (unless you're lucky enough to be applying for one of the relatively few jobs using Prolog). That said, additional knowledge almost always helps you as a programmer. Even if you never get paid to write a single line of Prolog in your life, the different perspective logic programming provides is excellent for your lateral thinking skills, and I wouldn't be surprised if it helped you perform better on a non-Prolog interview.
I do not have any citations but you can probably also get a prolog-job in big Software companies with a huge Artificial Intelligent research budget. You probably can get a job using prolog in academia (as an instructor or an a Post-doc or research associate.) I have seen hundreds of industry-business software application development job posting but have yet to find anyone needing prolog in that regard.
As far as I know Prolog is used in the following areas:
- Scheduling Applications
- Artificial Intelligence: Used in Robotics
- Software Verification. (Microsofts SLAM engine uses oCaml which has a syntax quiet similar to prolog)
- Language Translation: Used to migrate legacy systems.
- Compiler Construction: you can write compilers incredibly quickly using prolog.
- Some of the NP-C and NP-hard problems can be solved easily using prolog.
Prolog might not be the most efficient language but it certainly wins over its expressiveness.
I would recommend every programmer to get their hands dirty with this. You may not use this to solve commercial problem, but it certainly will give you a different perspective of solving problems.
The more you use your Brain the better it gets. :)