Jump to content

Frameworks and how to treat users.


Lisias

Recommended Posts

Yesterday, I misunderstood the context of an affirmation and ended up assuming some differences on the past were still in active.

Well, I will do better next time.

However, things escalated to different subjects and one user kindly asked for a new thread. He is right, cluttering the Add'On thread with unrelated discussions is counter productive.

So I'm moving to this new one.

Quote

Given we're talking about KSP mods in this context, the whole Unity-as-a-dependency argument is just silly.

Yeah, because using frameworks doesn't makes a hard dependency on it. Right. :)

[snip]

Edited by Snark
Redacted by moderator
Link to comment
Share on other sites

Quote

Unity is more of a "framework" than a 3rd party dependency, as discussed in this context. 

Yeah, because using frameworks doesn't means you create a hard dependency on its libraries. :) 

You will always be hard dependent of something. The trick is to measure the pros and cons of each dependency and act accordnly,

You want the feature? You will have to write yourself or be hard dependent of some 3rd-party library.

Concrete example: you don't like the Stock ground shading? There're people working on the Parallax replacement. It's needed? Probably not, but it's wanted nevertheless, and that settles the matter, I think.

Quote

But to get back to the original point about treatment of users, it is dependent on the developer's intent for undertaking a project in the first place. 

Let's say you are a gardener. You make your living by doing gardens, and you like it so much what you do that you do it for free sometimes.

Then, one day someone accepts your offer and let you do his garden. But since you like to do gardens, but don't like all aspects of gardening, you neglect a detail and by some reason, you kill the user's savegame owner's favorite rose bush.

How do you think the owner will feel? And exactly how do you think this will affect your public image as a professional gardener?

Doing it for free, or doing it for a fee, what you do reflects on your reputation. Doing things for free, most of the time, exempts you from legal responsibility for final result - but you still have to cope with the moral ones.

You break people's toys, you get your ears burnt.

Quote

Im not a "modder", but I am a developer, and you and I know there's a huge difference between client projects and personal projects.

I'm both. And I respect my users the same, no matter they are paying or not. Once I put my name on a project and say "I'm supporting it", everyone knows that the product may not be bug free, but I will not let you down and I will bash my SAS out to fix whatever I break - and this is a fact, not a promise.

Accidents happens, sometimes things are bigger than me. But these will not happen by negligence or imprudence from my part. Granted, some will happen for inexperience.

Quote

I too have projects that I've done purely for myself, but have then given to other people because they found them useful/requested them. 

So do I. And my projects does exactly what I say they do, otherwise I consider them buggy and I do fix them - or withdraw the damn thing to prevent further damage.

As you said, there's no point on expending time and efforts on a project if in the end the user is not willing to use it.

Of course you can't expend all your time on free projects, so you need to compromise - what means you will have to say "no" to some of your users. The way you choose to say "no" to them makes the difference between someone stepping up to help you on the thing, or turning his/her back on you and doing the thing him/herself - besides you.

People will work with or without you, and this is perfectly fine for everybody. Just don't put yourself on a place where people may find a good idea to work over you. (If saying this to a fellow professional is considered rudeness, boy I have some bad news about this profession to you.)

Doing things for free doesn't gives you a free ticket to (intentionally or knowingly) harm users. You may not be legally responsible, but being fair or unfair, people will hold you accountable nevertheless.

Acts have consequences - and consequences affects your reputation.

Edited by Snark
Redacted by moderator
Link to comment
Share on other sites

21 minutes ago, Lisias said:

Yeah, because using frameworks doesn't means you create a hard dependency on its libraries. :) 

You will always be hard dependent of something. The trick is to measure the pros and cons of each dependency and act accordnly,

You want the feature? You will have to write yourself or be hard dependent of some 3rd-party library.

Concrete example: you don't like the Stock ground shading? There're people working on the Parallax replacement. It's needed? Probably not, but it's wanted nevertheless, and that settles the matter, I think.

 

Let's say you are a gardener. You make your living by doing gardens, and you like it so much what you do that you do it for free sometimes.

Then, one day someone accepts your offer and let you do his garden. But since you like to do gardens, but don't like all aspects of gardening, you neglect a detail and by some reason, you kill the user's savegame owner's favorite rose bush.

How do you think the owner will feel? And exactly how do you think this will affect your public image as a professional gardener?

Doing it for free, or doing it for a fee, what you do reflects on your reputation. Doing things for free, most of the time, exempts you from legal responsibility for final result - but you still have to cope with the moral ones.

You break people's toys, you get your ears burnt.

 

I'm both. And I respect my users the same, no matter they are paying or not. Once I put my name on a project and say "I'm supporting it", everyone knows that the product may not be bug free, but I will not let you down and I will bash my SAS out to fix whatever I break - and this is a fact, not a promise.

Accidents happens, sometimes things are bigger than me. But these will not happen by negligence or imprudence from my part. Granted, some will happen for inexperience.

 

So do I. And my projects does exactly what I say they do, otherwise I consider them buggy and I do fix them - or withdraw the damn thing to prevent further damage.

As you said, there's no point on expending time and efforts on a project if in the end the user is not willing to use it.

Of course you can't expend all your time on free projects, so you need to compromise - what means you will have to say "no" to some of your users. The way you choose to say "no" to them makes the difference between someone stepping up to help you on the thing, or turning his/her back on you and doing the thing him/herself - besides you.

People will work with or without you, and this is perfectly fine for everybody. Just don't put yourself on a place where people may find a good idea to work over you. (If saying this to a fellow professional is considered rudeness, boy I have some bad news about this profession to you.)

Doing things for free doesn't gives you a free ticket to (intentionally or knowingly) harm users. You may not be legally responsible, but being fair or unfair, people will hold you accountable nevertheless.

Acts have consequences - and consequences affects your reputation.

I think you're still just completely missing the point, to be honest.

How is any of this even vaguely relevant to the original topic in the slightest?

Edited by Harrekin
Removed snarky comment...need coffee...
Link to comment
Share on other sites

5 hours ago, Harrekin said:

I think you're still just completely missing the point, to be honest.

How is any of this even vaguely relevant to the original topic in the slightest?

You tell me. You are the one that brought hard dependencies to the table.

My counter-argument is that using frameworks and complaining about hard dependencies is just nuts. There're tons of unneeded libraries on the package cluttering the namespace and making it harder to use more useful or adequate alternatives.

And I'm not even mentioning the tons of Unity's bugs that we just had to withhold in the past.

Edited by Lisias
Fixed what appears to be the autocomplete trolling me
Link to comment
Share on other sites

Various content has been redacted, either due to personal/confrontational remarks (forum rule 2.2.d) or to adjust links/quotes to content elsewhere that has been removed.

Let's keep things friendly and respectful, please.  Thank you for your understanding.

Link to comment
Share on other sites

Development / compilation pov:
Unity is a set of libraries required to be preinstalled and declared to compile the plugin.
Unity is a dependency.

Distribution / usage pov.
The whole KSP is written on Unity and includes the Unity libraries required for the plugin.
A Unity game can be run on a device without pre-installed Unity, because it distributes required libraries itself.
If an additional library is required for the particular plugin, it anyway would be distributed together with either plugin, or game.
Unity is not a dependency.

So, depends on the instruction addressee.
Is it a readme for the plugin compiler or for the plugin distributor/user.

Edited by kerbiloid
Link to comment
Share on other sites

On 15/02/2021 at 2:11 AM, kerbiloid said:

So, depends on the instruction addressee.
Is it a readme for the plugin compiler or for the plugin distributor/user.

It took me some days thinking on it to realise what you are saying. :)

(too developer biased mind, I think - I was getting a hard time to even understand why I was not understanding it! :D )

From the developer point of view, a hard dependency is something that I need to have available in order to compile and run the code. Having a bundle with all dependencies packed togheter is a deployment strategy, but the code in question still have a hard dependency on the 3rd parties' code.

Being yet more technical on the matter: when I was developing some programs for Windows (3... :) using Borland C), I remember having the option to compile the code using static libraries or dynamic libraries - at that time, the compiler runtime library was being delivered with this option, that you setup on compile time: do you want a big fat EXE file with everything amalgamated, or you want a lean an clean EXE file ? - but then you need to be sure to pack the runtime DLLs on the install file.

The big fat EXE is easier to deploy but hard to maintain - a small fix on any library and you need to compile and redistribute it again.

The lean and clean EXE is easier to maintain, when a library change you only need to redeploy that DLL otherwise the thing would not run.

But, in both cases, the hard dependency is the same: my code still needs that 3rd library code available somehow otherwise it will not work.

Going back to KSP : if I can't change the Unity 2017 from KSP 1.7.3 to Unity 2019 without recompiling the thing, than I have a hard dependency of KSP 1.7.3 to Unity 2017. Good thing KSP 1.7.3 already have the hard dependencies embedded, but the hard dependency is there.

Humm... Talking to you gave me a crazy idea for a stunt (House M.D. style)....

Edited by Lisias
Yep. Tyops!
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...