CD-Sammlung & Klienten-Datenbank - mit welcher Programmiersprache erstellen?
Hallo
Ich habe eine Frage bezüglich dem Erstellen einer Softwarelösung.
Ich habe 2 Projekte die gerne machen möchte:
Projekt 1:
Eine App/Software für meine CD Sammlung (Ziel wäre es den Barcode zb. mit dem Handy zu Scannen und dann die Infos gleich in meiner eingetragen bekäme)
Projekt 2:
Eine Klienten-Software in der ich Klienten erfassen und managen kann.
Neben den Koordinaten des Klienten sollen auch Termine, Kalender und Sitzungsprotokolle eingebunden werden.
Nun um das gleich klarzustellen, das sind Langzeitziele und müssen nicht morgen fertig werden, noch muss ich sie "zwingend" haben ;)
Aber...ich möchte schon seit längerer Zeit das Programmieren lernen und frage mich, mit welcher Programmiersprache ich sowas umsetzen kann.
Ob diese jetzt besser als Desktoplösung oder als Webanwendung nutzbar sind, kann ich nicht sagen. Ideal wäre, wenn ich mit dieser Programmiersprache beides machen könnte.
Wenn ich Mr.Google frage führt er mich immer auf Seite die Java, Java Script, Python empfehlen.....Aber eine konkrete Antwort konnte ich nicht finden
Ich hoffe dass mir hier jemand einen guten Ratschlag geben kann.
Ich bin Anfänger, beginne also praktisch bei 0
Danke und Gruss
3 Antworten
Eine App/Software für meine CD Sammlung (...)
Das Zauberwort heißt API. Genauer gesagt nicht nur eine API, sondern mehrere und darüber derlei Informationen abgerufen werden. Alles weitere hängt dann von dir und der Implementierung ab, wie diese Informationen weiter verarbeitet werden.
Schau dir unter anderem EANData und Discogs sowie MusicBrainz API an. Du kannst dich aber auch an der Spotify API bedienen. Es gibt jedenfalls genügend kostenfreie wie kostenpflichtige Schnittstellen, um so eine App auf die Beine zu stellen. Wenn es nur für dich sein wird, sollten auch die kostenlosen API Anfragen ausreichend sein.
Eine Klienten-Software in der ich Klienten erfassen und managen kann.
Also ein CRM-System. Die Wahl der Sprache ist eher zweitrangig und es mehr von dir und deinem Wissen/Können abhängt. Wenn du es darauf anlegst, derlei bereits mit JavaScript samt Zusatz (u.a. React Native) hinbekommst. Was nicht heißen soll, dass es zwingend der beste Stack ist, den man für solche Projekte verwenden sollte.
- Welche Ansprüche stellst du an Software?
- Bringst du bereits Vorwissen mit - wenn ja, welchen Sprachen?
- Welche APIs, Frameworks und Bibliotheken möchte man nutzen?
- Dient die App nur dem Eigenzweck?
- Welche Anforderungen muss oder möchte man erfüllen?
- Wie sieht es bzgl. der eigenen Lernbereitschaft aus?
Unter der Voraussetzung, dass du ein Android-Gerät besitzt, würde sich für Projekt 1 Java sehr gut eignen. Zum einen kannst du mit dem Android SDK eine native App entwickeln und zum anderen gibt es bereits Programmbibliotheken wie ZXing, mit denen du Barcodes parsen kannst. Für die Aufschlüsselung der Produktinformationen würde ich eine API wie die von Discogs nutzen.
Die Daten kannst du dann in irgendeiner Datenbank speichern. Sei es auf dem Android-Gerät in einer SQLite-Datenbank oder (besser) in einer extern verwalteten Datenbank (z.B. MySQL). Eine Java Webanwendung (z.B. eine REST-API) könnte die sichere Kommunikation zwischen App und Datenbank steuern.
Solltest du eine App für iOS entwickeln wollen, wäre Dart eine gute Alternative. Mit Dart kannst du relativ leicht mobile Apps für iOS und Android sowie Webanwendungen erstellen.
Für Projekt 2 würde ich die Wahl wohl am ehesten davon abhängig machen, ob du für die Umsetzung der grafischen Oberfläche nun eine native Desktopanwendung erstellen möchtest oder eine Webanwendung.
Für Ersteres sind meines Erachtens C#, Java, Swift (nur für macOS) und C++ aufgrund der für sie verfügbaren GUI-Toolkits (Avalonia UI, JavaFX, Qt, WPF, wxWidgets, ...) stark aufgestellt.
Bei Letzterem hingegen sollte die Wahl (für die Backendimplementierung) weniger relevant sein. Ob nun C#, Java, JavaScript, PHP, Ruby, o.ä.. Bei keiner der genannten Optionen sollte es bezüglich der von dir beschriebenen Anwendungsfälle große Probleme geben. Hauptsache, die Sprache erfährt für das Web einen entsprechenden Support (bspw. durch dafür konzipierte Frameworks und Hosting-Services). Um die Interaktion zwischen Nutzer und grafischer Oberfläche zu beschreiben (Frontend), kommst du im Regelfall an JavaScript (oder TypeScript) kaum vorbei.
Wenn du keinerlei Programmiererfahrung hast würde ich dir zu Python raten, leicht erlernbar, große Community und viele Bibliotheken. Wenn du allerdings sagts du möchtest direkt tief in die Programmierung einsteigen, evtl auch Objektorientierung, kannst du natürlich auch auf Java oder C++ setzen. Da musst du dir aber drüber im Klaren sein dass es dann auch recht kompliziert werden kann. Und prinzipiell kannst du mit Python alles machen was du mit dem Rest auch kannst
Javascript kannst du (ausschließlich) für Webanwendungen nutzen. Mit Python kannst du aber auch Web Backend programmieren. Fürs Frontend sind Kenntnisse in HTML, CSS und je nachdem auch Javascript jedoch zwingend erforderlich, falls man nicht auf Tools wie Wordpress zurückgreifen will
Edit: Da fällt mir noch was ein, google mal Flutter. Ist eine Art Framework mit dem man sowohl Desktopanwendungen als auch Webapps entwickeln kann. Genutzt wird hierfür die Sprache Dart die sehr Java und Kotlin ähnlich aufgebaut ist
Ich werde jetzt garantiert nicht anfangen mich mit dir über sowas zu streiten. Klar hätte ich es anders formulieren können, im Endeffekt sollte aber wie ich geschrieben habe eigentlich jedem klar sein was gemeint ist. Dass man immer so Detail Diskussionen führen muss die nichts mit der ursprünglichen Frage zu tun haben...
Das ist nicht richtig. Mit einer Bibliothek wie React Native kann beispielsweise eine mobile App entwickelt werden oder mit einer Bibliothek wie Proton Native, eine Desktopanwendung.