9

Is it acceptable to answer questions asking for software with libraries that will do most of what the OP is looking for, but would require some code to be written to utilize?

The OP can of course request only compiled/works-out-of-the-box software be considered, but what about in those cases where this is not specified? Is it reasonable to recommend libraries that will do 90% of what the OP needs and only require minimal code to be written to 'tie it all together?'

  • Can you give examples of such? – DVK Feb 13 '14 at 12:27
  • @DVK I deleted my example because I hadn't yet read the guidelines for answering, I intend to go back and edit it but time hasn't allowed as it will mean writing a little example code for the OP tying two libraries together to do what he wants. – Dan Feb 13 '14 at 14:43
11

When it's not explicitly specified, you must assume a "simple user" asking the question. For him, that would be a clear No-Go: you cannot expect any truck driver being able to code (just an example, no offense to truck drivers!).

If unsure, you can always use a comment on the question to ask for clarification. The OP then can update the question accordingly, to either in- or exclude libraries.

As long as it's not clear if it would be OK to the OP, the answer IMHO is a clear "No".

  • (see also comment on my answer), for example... If not specified t isn't clear if a CLI only option would work for compression for any particular user, however that shouldn't stop you from posting an answer with CLI only. To me a library is no different from that; sure it is more complicated in some instances to configure but if you're giving basic instructions I don't think it is a problem. – Nick Wilde Feb 12 '14 at 23:56
  • If not expressively stated by the OP, I would even then ask whether CLI is OK. Bit that's my personal opinion. There are enough "mouse pushers" out there (again, no offense meant). I remember having opened a cmd prompt on laptop just to rename a file extension (you know, sometimes explorer doesn't allow for that, or simply adds the original extension again to the end) – and just heard a scram "Don't do that, you might harm the system". // Yikes, live can be difficult #D – Izzy Feb 13 '14 at 0:31
  • makes sense. Given our convo I'm editing my answer a bit – Nick Wilde Feb 13 '14 at 0:38
  • I'm try to figure how this isn't just a glorified software review site if we're catering to the lowest common denominator. – Dan Feb 13 '14 at 0:57
3

I would say YES

with a few caveats:

  • PRIMARY MUST: from tone of question or context it appears that the asker would consider that a reasonable solution for them (ie 'As a programmer I need...', 'I don't mind fairly complicated setup requirements' etc.) OR confirm via comments.
  • MUST: include that you've used it for something similar and pros/cons
  • MUST: include EITHER:
    • quick and dirty example code (or pseudo-code) to achieve what the user wants (ie due to not knowing 100% of the user data/requirements, you don't have to write it full out)
    • OR: link to instructions on how to do similar function (i.e. to programmers.SO question etc.)
  • SHOULD: mention cost and license
  • 2
    My aunt uses a computer as well. She's around 70 years now, and even has problems configuring ready-to-go apps. She would be happy coding them herself – if you tell her which key to press when and where ;) Drastic example, sure – but you know what I mean. – Izzy Feb 12 '14 at 23:26
  • 1
    @Izzy yeah well my mother is 50 and if I told her to compile something I'd have to go quickly and compile it myself or she would not be amused - whereas my GF's mother is also 50 and is a professional engineer and probably wouldn't blink at it. That being said such an option might be the best solution to a problem - so if the user hasn't specified (in which case obviously go with the specified type) an answer of a library with code example might be best for them and you shouldn't hesitate to put it in because it might not - and it could help someone else as well. – Nick Wilde Feb 12 '14 at 23:55
  • I'm afraid that might backfire on the site ("If you ask there for an application, they tell you to compile it yourself"). You know, there are enough people who cannot differentiate. Hence my suggestion to first have it confirmed by the OP. – Izzy Feb 13 '14 at 0:26
  • well I'm not saying it should be used for all questions - some questions it should be and some it shouldn't be... I'm not sure that I could give a cogent metric to determine when is a good time to answer with a library solution – Nick Wilde Feb 13 '14 at 0:29
  • 1
    THAT I can agree on. If it seems clear from the context (e.g. "as a programmer, I have to ..."), no objection :) – Izzy Feb 13 '14 at 0:32
  • 1
    I'm try to figure how this isn't just a glorified software review site if we're catering to the lowest common denominator. – Dan Feb 13 '14 at 0:54
  • 1
    Only answer with a library, when someone explicitly asks for it. Otherwise, just leave it as a comment, because the library in itself is relevant. – Bernhard Feb 13 '14 at 6:52
  • @Bernhard what if I give some code showing how to use the library to accomplish the task (but not enough to write the whole kit and caboodle)? – Dan Feb 13 '14 at 14:44
  • Then just leave a comment. – Bernhard Feb 13 '14 at 18:31
3

TLDR: no

Why not (theory)

Software that is shipped is

  • tested
  • documented

If you need to write the program yourself, there are typically lots of caveats, which make the solution extraordinarily expensive. My opinion is that people come here and ask for software to reduce cost.

Even if someone recommends a library which is tested and documented, you

  • need to understand the library (you need training, which needs time)
  • can use the library in a wrong way (you have bugs, fixing them needs time)
  • can make wrong assumptions on the input
  • need to implement the product (which needs time)
  • need to implement unit tests (which needs time)
  • need to test the final solution (on various OS, with certain data -> time)
  • need to document the final solution (even if it's only internally -> time)

This will cause a lot of effort, which certainly contradicts the idea of software recommendations (if not asking for programming languages or libraries explicitly).

Why not (practice)

In this question, the first answer was not a full product, but a programming language + library suggestion.

It was implemented (~200 hours) including some unit tests (not many) and some automated system tests (even less), tested by 6 people doing beta testing (exact effort unknown) and documented (~40 hours).

Given an hourly rate of 50 €/h, the total cost was roughly 15.000 €. Would you ever pay that amount of money for such a simple step by step test tool? Certainly not.

The first answer focused on being free, but that refered to the cost of the programming language and libraries. Being free does not mean gratis. And even if the question was not tagged , such a solution certainly exeeds the budget, so it's not an acceptable answer.

  • Please note that the first answer in question was a suggestion to implement in python, (with it's libraries), but the actual implementation, with the huge costs, was performed in C++ which is often a much slower language to develop in and does not have the rich library ecosystem that python has. – Steve Barnes Jan 8 '16 at 16:22
  • @SteveBarnes: I don't know Python too much. What about the requirement "e.g. must not need Java or .NET since installing that may be part of the test itself". Python must also be installed and I have no idea how much impact it has on the target OS. – Thomas Weller Jan 11 '16 at 6:55
  • Python is installed by default on the majority of platforms other than windows, is a vary small and fast install or you can use py2exe - A little while back I had a very expert person demanding to know where the rest of my application was stored on the web because he couldn't believe that it was so small for what it did. – Steve Barnes Jan 11 '16 at 7:41
  • @SteveBarnes: thank you, Steve. I have realized that Python is a nice language. I bought a book to learn more about it and I'm glad you point me to py2exe. At the time I wrote the mentioned C++ program, my Python knowledge was just too little, so I couldn't have achieved the same result. – Thomas Weller Jan 11 '16 at 8:16
  • 1
    @SteveBarnes: Also, please don't think that this answer indicates that I strongly disagree with providing programming language answers. I just wanted to reflect the possible impact of such a solution and give people the possibility to vote. Especially if no "ready" product is available, a programming language plus libraries is perhaps the only way to achieve the goal. Please, keep up your efforts of answering with Python libraries so I (and others) can learn from it. – Thomas Weller Jan 11 '16 at 8:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .