5 ms·
> but when doing real work (which includes side project), just pick something you can get shit done with the fastest/best (some balance between those). This is
by fiedzia 10y ago
> but when doing real work (which includes side project), just pick something you can get shit done with the fastest/best (some balance between those).
This is where I disagree. If you do that, you are trading quality for your convenience, and as (potentially) your user, I do want you to work harder.
- tluyben2 10y agoHow am I trading those? The user has hardly ever anything to do with whatever it is built with? How would they care if the end result for them is the same? If I build a SaaS in C# because my clients will work on the sourcecode and only have C# employees while, for another SaaS project I feel I need a lot of JVM libs and no one will use the source code so I use Clojure as I have a lot of experience there; how is that trading quality for convenience? In that case it is a better tool for the job. Also: why do you want me to work 'harder'? That is a weird remark in this context potentially... I am very good at different assembly languages (mainly very restricted embedded ones like 8-bit with 16 kb etc); I would work really hard if I implement a SaaS for you in that but you really would not want me to.
- fiedzia 10y ago> How am I trading those? If you choose the easiest thing for you instead of the one that provides some guarantees of quality for me, I may be the one who loses something here. > How would they care if the end result for them is the same? There is no issue if that's the case, problem is that it often isn't. > I use Clojure as I have a lot of experience there; how is that trading quality for convenience? I am not talking about this situation. You are clearly making well informed choice (and sufficiently good one for me). Functional languages do not fall into the "easy" scope I had in mind. > Also: why do you want me to work 'harder'? So that I am not left with never ending bug chasing or exposed customer data. I expect you to adhere to certain quality standards, not to bash some code as fast at possible for your convenience. Just that.
- tluyben2 10y agoI agree with what you say. I do not see the relation between working hard or picking difficult languages or frameworks and the points you make. But generally I agree with you here. That was also the reason I mentioned the word balance in my comment; I was raised by a Dijkstra student (my father) and proofs were mentioned a lot; I studied under students of Dijkstra at the TUE when I went to uni. These people all would say you do not work 'hard enough' if you did not provide proof for your code and I am pretty sure you do not. Which means you balance your, in that respect (!), very sloppy code which you write very fast compared to when you add proofs, with stability and security which you and your users value? So why do you not work harder and provide 100% covering formal verification of your code? Because that would make little sense in most cases. So you balance.
- fiedzia 10y ago> if you did not provide proof for your code and I am pretty sure you do not. I am not entirely there yet, but it is where I am aiming. I may not prove total correctness, but I already am close to proving (or make very likely) absence of certain types of bugs that comes from my compiler and language guarantees. > So why do you not work harder and provide 100% covering formal verification of your code? Because that would make little sense in most cases. I'd like to, but its not practical yet for me. And I balance. But every now and then we are getting tools that shift the balance a bit further, and the boundary of what's practical and acceptable moves too.
- tluyben2 10y agoSo we agree largely again :) Basically it makes no sense to go far beyond what users ever want to pay; you will have to balance that. For projects that might end up there, I prove things (with Coq). Never 100% because it is really a lot of work to provide even proofs for small parts of the code base. But vital parts yes, for fun and profit. In that order.
- fiedzia 10y ago
- matt_wulfeck 10y agoBut users almost never care about the underlying technology. In my experience they care about usability above all else. Most the time they have no clue what's powering the other side and that's by design. I think the GP and yourself have different values. I don't want to speak for him/her but I think I can relate: don't allow perfect to be the enemy of good.
- fiedzia 10y ago> But users almost never care about the underlying technology. I guess it heavily depends on who are you working with. If your users don't understand and don't require security, it will not be provided. My users often have customers who care about those things, so it goes back to me.
- akiselev 10y ago> This is where I disagree. If you do that, you are trading quality for your convenience, and as (potentially) your user, I do want you to work harder. If you actually wanted quality, you'd pay them for it with your time and/or money. Otherwise, I congratulate you on the overwhelming display of a self entitlement that is entirely undeserved.
- fiedzia 10y ago> If you actually wanted quality, you'd pay them for it with your time and/or money. To large extent, its true. But still I expect that the mechanic servicing my car for some reasonable price will not disconnect breaks and I will not have to pay extra for not being killed. Whatever cost is required for that should be included in the base price, as I cannot imagine someone not willing to pay for it.
- akiselev 10y ago> But still I expect that the mechanic servicing my car for some reasonable price will not disconnect breaks and I will not have to pay extra for not being killed. That's not even remotely comparable because that would be fraud or some other crime. You can safely assume that your open source software are not malware. That's all you get for "free." In fact, you explicitly agree to use software all the time that has this in its license: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- fiedzia 10y ago> That's not even remotely comparable because that would be fraud or some other crime. I consider work of substandard quality to fall into the same category. Maybe not to the same extent, but still. If I am using software you created for me (that I paid for) and it has a flaw that exposes my data that you could have prevent with proper quality standards, its a fraud for me (in the "unjustifiably claiming or being credited with accomplishments or qualities" part of definition). > You can safely assume that your open source software are not malware. That's all you get for "free." You get nothing for free obviously. But I assume we all here are getting paid, open source or not.