angle-up arrow-clockwise arrow-counterclockwise arrow-down-up arrow-left at calendar card-list chat check envelope folder house info-circle pencil people person person-plus phone plus question-circle search tag trash x

Zögern Sie nicht, das Rad neu zu erfinden, wenn Sie möchten, dass Ihre Software mit open source -Komponenten länger lebt.

10 März 2020 durch Peter
In Flask

Die Lebensdauer vieler open source -Komponenten kann kurz sein. Schreiben Sie Ihre eigenen, wenn Sie sicherstellen wollen, dass Ihre Software weiterlebt.

post main image
https://unsplash.com/@neilsoniphotography

Das Problem: Ein Kunde wünscht sich eine Anwendung mit einer bestimmten Funktionalität und wollte dies gestern. Was Sie tun, ist, nach einer Plug-and-Play-Lösung, Bibliotheken und/oder Erweiterungen zu suchen. Sie sagen Ihrem Kunden, dass Sie das können, der Kunde ist zufrieden, Sie machen es. Sie nehmen zum Beispiel Wordpress, wählen und konfigurieren einige Plugins. Ist das Problem gelöst, oder ist es das?

Ja, das Problem ist gelöst, aber für wie lange? Nach einigen Monaten wird Wordpress wegen einer Schwachstelle aktualisiert. Dann funktionieren plötzlich einige Plugins oder Themes nicht mehr. Dann wird PHP auf PHP 7.4 umgestellt und wieder funktionieren einige Plugins oder Themes nicht mehr. Am Ende zwingt dies Sie oder Ihren Kunden dazu, ältere, oft anfällige Softwareversionen zu verwenden. Aber das kann auch Ihr Geschäftsmodell sein, Updates.

Große Technologieunternehmen erzwingen Veränderungen, um den Wettbewerb auszuschalten

Die Entwicklung von Software, die ein paar Jahre dauert, ist sehr schwierig. Die Änderung von Standards wird oft von großen Technologieunternehmen initiiert. Natürlich wollen sie die Standards ändern. Sie nennen es Verbesserung, sie nennen es Fortschritt, aber es ist für ihr Unternehmen einfach unerlässlich, neue Funktionen hinzuzufügen und alte abzuschaffen. Es ist ein perfekter und legitimer Weg, den Wettbewerb auszuschalten.

Schauen Sie sich zum Beispiel an, was Google mit Android macht. Jedes Jahr wird eine neue Version veröffentlicht. Und alle Telefonhersteller müssen folgen. Ist die neue Version besser? Meistens nicht! Sie schreiben bestimmte Teile des Codes in großem Umfang neu, so dass, wenn Sie versucht hätten, die Interna der Version X zu verstehen und sich an sie zu gewöhnen, Ihr Wissen nichts wert ist, wenn die nächste Version veröffentlicht wird. Ja, sie führen auch neue Schwachstellen ein, aber das sind nur Fehler. Eine Multimilliarden-Softwarefirma hat natürlich nicht die Ressourcen, um ihre Software gründlich zu analysieren und zu testen. Google zwang auch Websites, HTTPS zu verwenden. Ich weiß, dass dies für viele Nicht-Techniker eine gute Idee ist. Aber jetzt verwenden viele Websites Zertifikate von Letsencrypt, eine weitere Abhängigkeit. Und Letsencrypt Wettbewerber sind nicht erlaubt, vielen Dank an alle!

Open source Entwickler erstellen Änderungen

Ich möchte feststellen, dass ich mit der Verfügbarkeit der Software open source sehr zufrieden bin. Ich respektiere die open source -Entwickler und -Communities sehr. Ohne sie wäre die Software, die wir heute verwenden, völlig anders. Open source -Software zwingt die Big Tech dazu, über Änderungen nachzudenken, ständig neue Versionen zu entwickeln, um weiterzukommen. In vielerlei Hinsicht schaffen open source -Entwickler oft Änderungen, ohne dass sie es wissen.

Die Lebensdauer der Software open source ist oft kürzer als bei kommerzieller Software.

Wenn Sie die Software open source zum Erstellen Ihrer Anwendungen verwenden, haben Sie viele Gründe, sehr vorsichtig zu sein. Wie viele Leute gesagt haben, ist es sehr schwierig, mit open source Software und Projekten Geld zu verdienen. Open source Software wird oft von einer oder wenigen Personen entwickelt, weil sie sie für etwas gebraucht haben und sie dann mit der Welt teilen, ja sogar verschenken. Viele Entwickler hoffen, dass sich andere Personen auf ihr Projekt einlassen, aber oft ist dies nicht der Fall. Nach einiger Zeit fängt der Entwickler an, an anderen Projekten zu arbeiten, oder er bekommt eine zeitraubende Arbeit und hat nicht die Zeit, seine Software zu pflegen. Man kann dies die dunkle Seite der open source -Software nennen.

Schauen wir uns die Software an, die ich für diese Website verwende

Diese Website ist mit Python 3, den framework , den Flask, einigen Flask Erweiterungen, SQLAlchemy, Bootstrap 4, jQuery, MariaDb. Wird Python 3 die nächsten fünf Jahre überleben? Ich hoffe es. Python 2 war ein Fehler, weil er wesentliche Funktionen nicht erfüllt hat. Die Verantwortlichen für Python beschlossen, Python 3 nicht rückwärts kompatibel mit Python 2 zu machen. Aus diesem Grund sollte Python 2 als eigenständige Sprache von Python 3 weiterleben, aber die Gemeinschaft beschloss, es nicht mehr zu unterstützen. Nicht gut, aber ich kann das verstehen. Der Hauptgrund dafür ist, dass die Gemeinschaft kein Geld mit der Unterstützung von Python verdient, also entscheiden sie sich für Python 3. Python 2 ist ein sehr gutes Beispiel dafür, was mit der Software open source schief gehen kann.

Wird Flask die nächsten fünf Jahre überleben? Ich hoffe es, aber ich habe Angst. Der Schöpfer und Hauptentwickler von Flask wird seine Zeit in den nächsten Jahren vielleicht auf andere Projekte verwenden wollen. Können andere Personen die Arbeit übernehmen? Ich bin nicht überzeugt. Flask Erweiterungen sind eine andere Sache. Sie werden normalerweise von Einzelpersonen entwickelt. Flask wurde 2010 eingeführt, und bereits eine große Anzahl von Erweiterungen wurde seit Jahren nicht mehr aktualisiert. Wie wird das Schicksal der Erweiterungen sein, die Sie heute in Ihr Produkt aufnehmen?

Dasselbe gilt für SQLAlchemy, ein wunderschönes Stück Software, ORM so, wie es sein sollte. Aber was wird passieren, wenn der Schöpfer sich entscheidet, aufzuhören und etwas anderes zu tun? Bootstrap ist open source , und es scheint, dass sie eine Politik haben, um mit früheren Versionen zu brechen. Ich bin jetzt bei Bootstrap 4 , nehme aber an, dass Sie bei Bootstrap 3 waren und zu Bootstrap 4 migrieren mussten. Keine leichte Aufgabe. Bootstrap hat bereits die Version 5 angekündigt, die auch ohne jQuery funktionieren wird. Ich freue mich auf diese Migration ... NICHT.

jQuery wird sehr häufig verwendet, wird aber versuchen, mit den durch die große Technik erzwungenen Änderungen Schritt zu halten. Ich kann nur hoffen, dass sie dazu in der Lage sind. Projekte wie jQuery-UI und jQuery-Mobile sind mehr oder weniger tot. Und dann ist da noch MariaDb. Ich glaube, dass sie für mindestens fünf Jahre hier sind, weil sie ein sehr gutes Produkt liefern. Ich glaube auch, dass Oracle möchte, dass sie existieren, da sie die Entwicklungen von Oracle MySQL stimulieren. MariaDb verkauft auch Unterstützung, verdient Geld, sehr wichtig.

Sollten Sie die Software open source für die Entwicklung Ihrer nächsten Anwendung verwenden?

Ist Software von kommerziellen Organisationen besser? In vielen Fällen ist die Antwort nein. Aber Sie erhalten Unterstützung, und es ist wichtig, dass sie auf dem neuesten Stand bleiben. Dennoch denke ich, dass es eine gute Wahl ist, open source -Komponenten zu verwenden, um neue Software zu erstellen. Aber nur, wenn Sie zuerst das Lebensproblem der Komponenten gründlich untersuchen. Und natürlich müssen Sie vor allem die Lizenzierung überprüfen.

Minimierung risikoreicher Abhängigkeiten durch das Schreiben eigener Komponenten

Vor vielen Jahren habe ich ein Projekt übernommen, das in Perl geschrieben wurde. Als PHP ankam, baute ich mein eigenes kleines framework und konvertierte es in PHP. Da ich keine Bibliotheken benutzte, war alles unter meiner Kontrolle. Glücklicherweise schien PHP einigermaßen abwärtskompatibel zu sein, so dass die Migration auf neue Versionen nicht viel Mühe kostete. Viele PHP frameworks kamen und gingen, aber meine PHP -Software läuft immer noch. Aber natürlich konnte sie nur überleben, weil ich dort war. Ich sehe oft auf Websites wie Stackoverflow Kommentare, dass man das Rad nicht neu erfinden sollte. Aber die Entwicklung eigener Komponenten ist oft NICHT die Neuerfindung des Rades!

  • Sie können das Wissen aus bereits bestehenden ähnlichen Projekten nutzen.
  • Sie können aufgedunsene
  • Sie können fehlende Funktionalität hinzufügen, anstatt den Code eines anderen zu bekämpfen.
  • Sie können schwer verständlichen Code von anderen überspringen
  • Sie können Ihre Komponenten selbst aktualisieren, anstatt auf andere zu warten.
  • Sie lernen eine Menge, indem Sie sich den Code anderer ansehen.

Ich habe im Internet gelesen, dass manche Leute das für eine Art Arroganz halten, wenn jemand beschließt, eine eigene Komponente zu schreiben. Ich stimme dem absolut nicht zu, es gibt kein Schwarz-Weiß, und es liegt an Ihnen oder Ihrem Team, die Entscheidung zu treffen, wann Sie Ihre eigene Komponente bauen. Es gibt viele Gründe, es nicht zu tun, aber auch viele Gründe, es zu tun. Wägen Sie sie sorgfältig ab.

Zwei Komponenten, die ich kürzlich gebaut habe: Datepicker und Jinja Bootstrap Makro

In einem früheren Projekt habe ich den jQuery Datepicker verwendet. Nett, aber ... nach einiger Zeit brauchte ich Funktionalität wie z.B. den Wechsel zu einem anderen Monat ohne Auswahl eines Datums. Das war der Beginn vieler Kopfschmerzen, um diese und andere Einschränkungen immer wieder zu umgehen. Für diese Website brauche ich auch einen Datepicker, er muss mit Flask und WTForms integriert werden und er muss sich an die Content Security Policy halten. Letzteres kann durch den Export der Datepicker-Parameter aus Python als application/json gelöst werden.
Das Makro Jinja Bootstrap sollte es sehr einfach machen, alle Arten von Formularen zu generieren, es muss flexibel sein und eine große Anzahl von Feldern unterstützen, einschließlich meines eigenen Datepickers. Ich hasse es, Formulare 'von Hand' zu erstellen, d.h. alle Formularfelder separat in eine Vorlage zu setzen, wenn dies mit etwas zusätzlichem Aufwand im Makro nur durch Schreiben möglich ist:

{{ bootstrap_form(demo_form, id='demo_form') }}

Da ich beide Komponenten für meine zukünftigen Bemühungen für wichtig halte, habe ich beschlossen, beide selbst zu schreiben.

Zusammenfassung

Wenn Sie Ihre Software mit open source -Komponenten erstellen, gehen Sie oft mehr Risiken ein als bei der Verwendung kommerzieller Komponenten. Hören Sie nicht auf andere, treffen Sie Ihre eigenen Entscheidungen und scheuen Sie sich nicht, Ihre eigenen Komponenten zu schreiben. Wenn Sie Ihre eigenen Komponenten schreiben, ist die wichtigste Regel, sie lesbar zu halten, damit andere sie verstehen können. Ein Problem bei vielen open source -Komponenten ist, dass sie optimiert sind. Das ist schön und gut, aber Optimierung führt oft nicht zur Lesbarkeit. Heutige Computer und Telefone sind viel leistungsfähiger, und Optimierungen sollten nur dann in Betracht gezogen werden, wenn sie absolut notwendig sind.

Links / Impressum

How to make money from open source software
https://www.cio.com/article/3178621/how-to-make-money-from-open-source-software.html

Open Source, SaaS and Monetization
https://lucumr.pocoo.org/2019/11/4/open-source-and-saas/

REINVENT THE WHEEL | meaning in the Cambridge English Dictionary
https://dictionary.cambridge.org/dictionary/english/reinvent-the-wheel

Mehr erfahren:
Flask

Einen Kommentar hinterlassen

Kommentieren Sie anonym oder melden Sie sich zum Kommentieren an.

Kommentare

Eine Antwort hinterlassen

Antworten Sie anonym oder melden Sie sich an, um zu antworten.