Forum: PC-Programmierung Nicht kommerzielle Versionen von Bibliotheken beschränken


von Tim S. (tim_seidel) Benutzerseite


Lesenswert?

Hallo Forum,

Ich entwickle eine Bibliothek zum plattformübergreifend gleichem Zugriff 
auf HF RFID Transponder, wie Mifare DESfire, Classic und ISO 7816-4 
kompatible Transponder.
Unterstützt werden dabei bisher die Plattformen Windows (Intel), Linux, 
Android, sowie geplant Windows Phone unter Java oder C# (wo verfügbar).

Die Bibliothek wird bereits im kleinen Rahmen kommerziell verwendet. Nun 
möchte ich eine Version anbieten, die für nicht kommerzielle Projekte 
genutzt werden kann.
Diese Version soll natürlich den ehrlichen kommerziellen Kunden nicht 
benachteiligen, indem unehrliche kommerzielle Nutzer zu dieser freien 
Version greifen.

Dazu möchte ich die kommerzielle Nutzbarkeit der freien Version 
einschränken. Dazu sehe ich im Moment verschiedene Möglichkeiten:
 - Minderung des Funktionsumfangs
 - Darstellung eines nicht blockierenden, aber sichtbaren Splash-Screens 
"powered by" zu bestimmten Ereignissen z.B. Start der Applikation
 - Herstellung einer Internetverbindung um die Funktion freizuschalten, 
Hostprozesse registrieren und im Extremfall auch zu blockieren für 
Prozesse wie "CommercialSoftware.exe"
 - nichts von alledem. Vertrauen auf Ehrlichkeit.

Was haltet Ihr von den verschiedenen Methoden?
Wo würden bei Euch die Grenzen liegen eine Bibliothek auch frei nicht zu 
nutzen?
Wie sieht eure Erfahrung mit Piraterie bei Softwarekomponenten aus?

Grüße,
Tim

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tim Seidel schrieb:
> - Minderung des Funktionsumfangs

Das ist die einzige sinnvolle Variante, die obendrein auch noch 
plattformunabhängig und auch bei Auslieferung des Quelltextes möglich 
ist.

Alles andere ist sinnlos bzw. nicht umsetzbar -- wie willst Du 
plattformunabhängige "Splash Screens" oder gar Internetverbindungen 
erreichen?

von Vlad T. (vlad_tepesch)


Lesenswert?

Bei der Minderung des Funktionsumfang kommt es auf die Einschränkung an.
Herstellen einer Internetverbindung wäre für mich ein No-Go, ebenso wie 
die erzwungene Splashscreeneinblendung oder Eingriffe in laufende 
Prozesse.

von Vlad T. (vlad_tepesch)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Alles andere ist sinnlos bzw. nicht umsetzbar -- wie willst Du
> plattformunabhängige "Splash Screens" oder gar Internetverbindungen
> erreichen?

Qt? Boost?

von Tim S. (tim_seidel) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Tim Seidel schrieb:
>> - Minderung des Funktionsumfangs
>
> Das ist die einzige sinnvolle Variante, die obendrein auch noch
> plattformunabhängig und auch bei Auslieferung des Quelltextes möglich
> ist.

Das ist leider mein Bauchgefühl, wie auch die ersten Reaktionen 
aufzeigen ist der Eingriff in die Souveränität des Entwicklers mit den 
anderen Methoden schon deutlich. (Und wohl auch von außen [Vlad] als 
solche gesehen)

Bedeutet leider auch die erwähnte Einschränkung in den mit der 
Bibliothek realisierbaren Lösungen. Hmm. da muss ich mir nochmal 
Gedanken machen an welcher Stelle man einschränken kann und dann evtl. 
für nicht kommerzielle Nutzer eine Möglichkeit finden auch diese 
Funktion evtl nach Registrierung freizuschalten.

> Alles andere ist sinnlos bzw. nicht umsetzbar -- wie willst Du
> plattformunabhängige "Splash Screens" oder gar Internetverbindungen
> erreichen?

Ein HAL ist bereits aufgrund des Zugriffs auf Smartcard-Hardware unter 
den verschiedenen Plattformen nötig und vorhanden. Winforms/WPF, Swing 
und Android wären also theor. bereits abhängig vom laufenden System 
ansprechbar.

von Freddy (Gast)


Lesenswert?

Tim Seidel schrieb:
> - Minderung des Funktionsumfangs

es gibt hier noch ein paar Dinge die man machen kann und ich z.B. schon 
in anderer Software gesehen habe:
- künstliche Delays einfügen (immer oder abhängig von der Nutzdauer, 
Anzahl der Aufrufe, etc.), z.B. bei den Model Sim Versionen für Altera 
oder Xilinx soll angeblich zu der ModelSim SE oder PE langsamer 
gerechnet werden
- in PSpice (Student Version) wird auf eine bestimmte Anzahl von 
Berechnungsknoten limitiert

Die Frage ist ja wer sind Deine kommerziellen Kunden?
Wer würde die Bibliothek kostenlos nutzen wollen bzw. für wen würdest Du 
es kostenlos bereitstellen ? Sind es Schüler, Studenten, Hochschulen für 
a) Forschungsprojekte oder für b) Lernprojekte?
Sollen es Anwender sein die ggf. testen wollen bevor sie eine 
kommerzielle Lizenz erwerben? Wie sieht es mit Heimanwendern aus?

Meiner Meinung nach sollte man ganz offen mit den Einschränkungen 
umgehen und sagen was man einschränkt. Wenn das Programm oder die 
Bibliothek von alleine bzw. ohne meine Kentniss nach 4h langsamer wird 
würde ich mich verarscht fühlen.

Natürlich hängt auch der Kundenkreis von den Preisen ab.
Als Heimanwender bin ich je nach Kosten/Nutzen bereit ein wenig Geld 
(ca. 20-40 €) zu zahlen. Als Student werde ich wohl nichts bezahlen 
wollen.
Als angestellter Entwickler kommt es auf Kosten/Nutzen an. Will ich es 
nur testen oder brauche ich es für eine einmalige Aktion wird es schwer 
sein meinen Chef meinen Chef davon zu überzeugen >300 € auszugeben. 
Weiss ich aber dass ich es längerfristig brauche und es mir viel Zeit 
und Arbeit erspart sagt mein Chef auch bei 1000 € nicht nein.
Möchte ich es in einem kommerziellen Projekt einsetzen und ich weiß, 
dass es keinen Support gibt oder ich in die Quellen gucken kann würde 
ich es nicht kaufen. Weder für 500 noch für 10000 €. Das Risiko das beim 
Kunden in China was nicht geht ist mir dann zu teuer.

von Tim S. (tim_seidel) Benutzerseite


Lesenswert?

Freddy schrieb:
> Die Frage ist ja wer sind Deine kommerziellen Kunden?
> Wer würde die Bibliothek kostenlos nutzen wollen bzw. für wen würdest Du
> es kostenlos bereitstellen ? Sind es Schüler, Studenten, Hochschulen für
> a) Forschungsprojekte oder für b) Lernprojekte?
> Sollen es Anwender sein die ggf. testen wollen bevor sie eine
> kommerzielle Lizenz erwerben? Wie sieht es mit Heimanwendern aus?

Mittelständische Unternehmen die Softwarelösungen für einen Endkunden 
entwickeln sind die eigentliche Zielgruppe.

Sowohl zur Evaluation als auch für den privaten Nutzer soll eine freie 
Version zur Verfügung stehen. Diese soll z.B. auch für die auf der 
Webseite geplanten und bereits vorhandenen Nutzungsbeispiele verwendet 
werden.

> Natürlich hängt auch der Kundenkreis von den Preisen ab.
> Als Heimanwender bin ich je nach Kosten/Nutzen bereit ein wenig Geld
> (ca. 20-40 €) zu zahlen. Als Student werde ich wohl nichts bezahlen
> wollen.

Für diese Gruppe möchte ich es auch prinzipiell frei von Kosten 
anbieten. Ich erhoffe mir dadurch natürlich auch eine Verbreitung durch 
diese Nutzer und einen daraus folgenden Werbungseffekt. (Der Student von 
heute ist der Entwickler von morgen und Projektleiter von übermorgen)

> Als angestellter Entwickler kommt es auf Kosten/Nutzen an. Will ich es
> nur testen oder brauche ich es für eine einmalige Aktion wird es schwer
> sein meinen Chef meinen Chef davon zu überzeugen >300 € auszugeben.
> Weiss ich aber dass ich es längerfristig brauche und es mir viel Zeit
> und Arbeit erspart sagt mein Chef auch bei 1000 € nicht nein.
> Möchte ich es in einem kommerziellen Projekt einsetzen und ich weiß,
> dass es keinen Support gibt oder ich in die Quellen gucken kann würde
> ich es nicht kaufen. Weder für 500 noch für 10000 €. Das Risiko das beim
> Kunden in China was nicht geht ist mir dann zu teuer.

Mit dem Support und Quelltext sprichst du einen wichtigen Punkt an, der 
bisher mit jedem Kunden vereinbart wurde, aber in den Gedanken zu dem 
Thema freie Version jedoch noch nicht bei mir eingeflossen ist.

Dabei ist der Quelltext bisher immer mit übergeben worden mit 
entsprechenden Nutzungsvereinbarungen, um eine Sicherheit auch bei einer 
eventuell unfreiwilligen Geschäftsaufgabe zu bieten.

Der Preis liegt im unteren 4 stelligen Bereich in dieser Kombination. 
Darin spiegelt sich vor allem der Arbeitsaufwandt wieder, der in die 
Bibliothek geflossen ist und vorraussichtlich noch einfließen wird, 
sowie eine geschätzte Anzahl an Kunden.

Bisheriger Support fand bisher nur im Rahmen der Integration statt und 
ist (bisher) zeitlich zu vernachlässigen.

von Rolf M. (rmagnus)


Lesenswert?

Freddy schrieb:
> Meiner Meinung nach sollte man ganz offen mit den Einschränkungen
> umgehen und sagen was man einschränkt. Wenn das Programm oder die
> Bibliothek von alleine bzw. ohne meine Kentniss nach 4h langsamer wird
> würde ich mich verarscht fühlen.

Ich würde die Software für Mist halten und mir was anderes suchen. Wenn 
eine solche Einschränkung nicht angegeben ist, würde ich davon ausgehen, 
daß das in der Vollversion genauso ist.
Daß bei einer eingeschränkten Version alle Unterschiede zur Vollversion 
angegeben sind, versteht sich für mich eigentlich von selbst. Alles 
andere wäre einfach nur dämlich, da komplett kontraproduktiv.

von Bernd K. (prof7bit)


Lesenswert?

Rufus Τ. Firefly schrieb:

> Alles andere ist sinnlos bzw. nicht umsetzbar -- wie willst Du
> plattformunabhängige "Splash Screens" oder gar Internetverbindungen
> erreichen?

1985 war ungefähr das Jahr als Du aufgehört hast PC-Anwendungen zu 
schreiben und Dich anderen Dingen zugewandt hast und seit dieser 
grundsätzlichen Interessenverlagerung hast Du Dich auch nicht mehr 
großartig dafür interessiert mit welchen Tools/APIs/Frameworks man das 
heutzutage angehen würde, hab ich recht?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> hab ich recht?

Nein, ganz und gar nicht. Aber ich kann über den Tellerrand "Alles läuft 
mit Windows/Linux/OS X" rübergucken, und ich kann mir Systeme 
vorstellen, die weder über graphische Benutzeroberflächen noch 
Internetverbindungen verfügen.

Und ich kann auch über den Tellerrand "Heute macht 'man' das sowieso mit 
Java/C#/sonstwas" rübergucken.

von bal (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Bernd K. schrieb:
> hab ich recht?
>
> Nein, ganz und gar nicht. Aber ich kann über den Tellerrand "Alles läuft
> mit Windows/Linux/OS X" rübergucken, und ich kann mir Systeme
> vorstellen, die weder über graphische Benutzeroberflächen noch
> Internetverbindungen verfügen.
>
> Und ich kann auch über den Tellerrand "Heute macht 'man' das sowieso mit
> Java/C#/sonstwas" rübergucken.

Ich habe nicht den Eindruck dass der TO seine Bibliothek für Amiga oder 
Bare-Metal-ARMs anbieten möchte. Die für ihn relevanten Systeme haben 
eine hinreichend große Schnittmenge an Bibliotheken, so dass er alle 
seine Wünsche mit einer einheitlichen API umsetzen kann.

On-Topic: gib Einschränkungen auf jeden Fall an! Alles andere würde für 
einen Bug/Mangel gehalten werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.