Welche Sprache eignet sich am besten für mein Projekt?

honse33

Grünschnabel
Hallo Leute,

ich wollte diesen Thread eigentlich nur sehr ungerne eröffnen, da sowas ja gerne im Flamewar und blah endet... Dennoch konnte ich mich durch die Stickys usw nicht wirklich entscheiden.

Es geht um folgendes Projekt:

Ich möchte gerne eine Anwendung schreiben, die Eingaben eines Barcode Scanners einliest (also ein Input-Feld), diesen Wert gegen eine Datenbank prüft, und bei einer Dublette eine visuelle Warnung ausgibt. Das Ganze natürlich so effizient wie möglich.

Die Eingaben des Barcode Scanners sind ganz normale Textstrings. Die Eingabe selbst wird vom Scanner mit einem "Enter" beendet, weshalb man schätzungsweise auf einen "Submit"-Button verzichten kann.

Es wäre natürlich am schönsten eine plattformunabhängige Sprache zu haben - dennoch liegt der Fokus klar auf Windows.

Ich selbst beherrsche HTML, JS und PHP. Ein Bash-Script könnte ich auch noch mit ein wenig Recherche hinbekommen. Jedoch brauche ich was, was unter Last nicht in die Knie geht, und wie gesagt, nicht zu sehr die Performance beansprucht.

Des Weiteren bin ich mir nicht sicher, wie ich die Datenbank realisieren soll. Es handelt sich letztens wirklich nur um einen Dublettencheck. Also Eingabe reinmeißeln, Einträge auf den Wert prüfen, bei Dublette Error anzeigen, ansonsten wieder zurück zur Eingabe.

Meine ersten Gedanken gingen in Richtung Excel+VBA. Das Problem ist nur, dass bei mal locker >10.000 Einträgen das ganze leicht unperformant laufen könnte...? MySQL+Apache mit einem PHP Script wäre ein wenig Overkill... SQLite und C/C#/Java? Vielleicht würde ja was "kleines" wie Python oder so reichen? Man weiß es nicht...

Könnt ihr mir ein paar Tips geben?
 

sheel

I love Asm
Hi

Flamewar gibt hier sehr wahrscheinlich nicht.

So ganz verstanden hab ich die Sache mit dem Scanner nicht.
Hast du einen Scanner oder doch nur Tastatureingaben?

Wie wichtig ist eine Gui?
Die Datenbank oÄ. ist nur für die Doppelkontrolle, also keine weitere Verwendung vom Inhalt?

Die Werte sind was...? Zahlen mit Bindestrichen,
Beliebiger Text beliebiger Länge, irgendein bestimmtes Format...,
irgendeine Zeichensatzeinschränkung?
 

honse33

Grünschnabel
Der Barcode Scanner wird per USB an den Pc gesteckt. Dieser wird (zumindest unter Windows7) als USB-Eingabegerät angezeigt.

Bei diesem Scanner ist es so, dass er den Code liest, und dann den ausgelesenen String+"neue Zeile" (quasi wie ein Druck auf Enter) auf den PC überträgt.

Primär ist die Performance wichtig. Ein GUI wäre somit optional - hauptsache es muss ein visueller Effekt vorhanden sein. Beispielsweise ein rot-eingefärbter Screen mit "Eintrag bereits vorhanden".

Die Datenbank ist an und für sich wirklich nur für den Dublettencheck gedacht. Also kann es auch, sofern es performancemäßig möglich ist, eine CSV, oder gar Textdatei sein.

Ich rechne mit ca. 10.000-15.000 gescannten Einträgen.

Die Werte sind ganz normale alphanumerische Textstrings. Keine Sonderzeichen, Umlaute oder ähnliches.
 

MCoder

Erfahrenes Mitglied
Hallo honse33,

das Performanceproblem würde ich ganz entspannt sehen. Wenn ich das richtig verstanden habe, wird der Scanner manuell beschickt, so dass das auf jeden Fall der langsamte Part ist.

Wie lang sind denn die Strings, die gescannt werden? Nimmt man mal 100 Byte Speicherbedarf pro Text an, so sind das bei 15.000 Einträgen etwa 1,5 MByte Gesamtbedarf. Das kannst du locker im Speicher halten, wo es schnell durchsucht werden kann. Eine Datenbank als Ablage sehe ich als Overkill an - es reicht eine einfache Textdatei.

Somit kannst du dir eigentlich eine Sprache aussuchen, mit der du glaubst am besten zurechtzukommen. Das Performanceproblem sehe ich, wie gesagt, nicht so kritisch.

Gruß
mbmun
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

ich schätze mal, du sollst das Programm für ein Unternehmen schreiben, von daher nehme ich auch an, dass nicht nur ein Benutzer dein Programm dort verwenden wird.
Von daher denke ich, dass du schon eine Datenbank brauchst, wenn es mehrere Scanner (gleichzeitig) gibt.

Wie meine Vorposter schon angesprochen haben ist hier die Programmiersprache relativ egal. Was du lieber machen willst. Ich würde auf Grund persönlicher Vorlieben eher Richtung Java tendieren, evtl J2EE.

Wenn es schnell da sein soll, dann eher PHP mit HTML. Die Performance spielt bei deinem Szenario echt keine Rolle. Im Hintergrund eine einfache SQLite Datenbank und fertig.

Grüße,
BK
 

Spyke

Premium-User
Was mich verwirrt ist eher, warum solch ein check.
Zumindest würde ich doch annehmen das es für die bisher erfassten Sachen doch auch Stammdaten geben müsste.

Für mich klingt das eher bissel nach einem vereinfachtem Warenwirtschaftssystem.

Und da ich den Sinn dahinter nicht wirklich versteh ohne zumindest das weitere Daten gehalten werden wäre ich auch eher für eine Datenbanken.

Ich persönlich wäre da für Postgre
 

honse33

Grünschnabel
Der Sinn dahinter ist ziemlich simpel: Einlasskontrolle. :)

In erster Linie soll nur ein normaler Dublettencheck (ohne Anfangswerte) erfolgen:
Person 1 wird gescannt. Code wird in die Datenbank geschrieben.
Person 2 wird gescannt: Eintrag vorhanden? Ja: visuelle Warnung. Nein: eintragen.

Von Serversoftware wollte ich eigentlich absehen. Sonst hätte ich es per PHP+JS mit MySQL/SQLite gelöst. Ich dachte in Richtung One-Click-App: Starten und fertig. Ein Input-Feld. Der Scanner gibt den Code dort ein, drückt quasi auf Submit. Per "if" wird halt gecheckt/abgeglichen.

Wenn es performancemäßig eh Wurst ist, schätze ich mal, dass ich in Richtung C/Java mit SQLite gehe.

Später wird tatsächlich der Fall noch dazu kommen, dass bereits Werte in der Datenbank vorhanden sind, die dann entsprechend geprüft werden (Beispiel: Vorverkauf). Wäre ja aber nur eine kleine Änderungen meiner Meinung nach.

Vielen Dank auf jeden Fall für die bisherigen Antworten!
 
Zuletzt bearbeitet: