Welche Programmiersprache dafür lernen?

Hallo Experten und Programmierer,
vielleicht kann mir jemand weiterhelfen, ohne mich für verrückt zu erklären :smile: Ich suche nach einer Programmiersprache, um mir meine Wünsche zu erfüllen, was die Praxis im Haushalt angeht.

Wir haben ein Tablet-PC im Haushalt, was eine geniale Sache ist und nun kam mir die folgende Idee:

Ich würde gerne eine Software schreiben, die aus diversen ?Modulen? aufgebaut ist und ich die auch immer wieder erweitern kann… ich schreibe mal einfach drauf los und ihr sagt mir, ob es überhaupt möglich ist und man im „fortgeschrittenen Alter“ überhaupt in der Lage ist, eine Programmierprache zu erlernen - die Herausforderung lockt mich aber, daher sei das mal egal :smile: Man(n) will ja nicht verkalten im Hirn und selbst wenn es bis zur Rente dauert, dann habe ich es halt irgendwann…

Also:
Der Tablet (oder das Tablet?) hängt an der Wand in der Küche und hat zunächst einen Schaltknopf (da ich ja mit dem ersten Modul anfange): „Einkaufen“
Da klickt man drauf und es kommt eine Auswahl der bisher eingekauften Lebensmittel auf oder ein Feld, wo man die Buchstaben eingeben kann und der das selbst vervollständigt (wie beim Navi bei einer Eingabe einer Strasse) - wenn Lebensmittel nicht da, dann soll man ein neues eingeben können.
Kann von jedem genutzt werden im Haushalt und jeder soll auch irgendwie sein Namenskürzel eintragen können, dass er/sie es auf die Liste gebracht hat und braucht. An mein Tablet ist so ein kleiner Drucker wie in einer Kasse (oder Etikettendrucker halt) angeschlossen, welcher auf Wunsch eine Einkaufsliste ausdruckt (mit so einem Feld zum Abhaken beim Einkaufen).

Wenn ich das dann gemacht habe, dann bin ich so sicher in der Sprache, dass ich zum nächsten „Modul“ komme und das ist das folgende:
Zu meiner „Einkaufen“-Schaltfläche kommt nun eine „Notitzen“-Schaltfläche dazu. Da kann ich z.B. meiner Frau eine Nachricht hinterlassen, wenn ich aus dem Haus gehe und sie, wenn sie sich mit ihrem Account einloggt, gleich sieht, dass ich etwas für sie hinterlegt habe. Sie kann es sich natürlich auch ausdrucken.

Ein weiteres Modul wäre ein Kalender, wo wir alle unsere Termine eintragen können. Dort muss es möglich sein, dass wir alle z.B. die uns alle betreffenden Termine eintragen können, die wir auch alle sehen (z.B. Geburtstage) und auch nur die Termine für einen Selbst (z.B. Tochter trägt den Termin für ihren Besuch beim Arzt ein, den sie nur sehen kann). Sowas wie eine gemeinsame Freizeit soll da auch planbar sein, dass wir alle sehen, wer wann „verfügbar“ ist oder frei hat.

Das wären so die ersten 3 Module, die mir auf dem Herzen liegen.

Die Fragen:

  1. Welche Programmiersprache sollte man lernen, um sich so eine Software selbst programmieren zu können?
  2. Eine Datenbank muss logischerweise dahinter stehen - wenn ich nun irgendwann den Kalender über das Internet abfragen wollen würde: Macht es einen Unterschied in der Sprache und der Datenbank?
  3. Wenn ich die „Software“ um weitere Module nach erlernen und Schreiben neuer erweitern möchte: wäre es möglich dies zu tun, ohne gleich das ganze neu zu installieren und die alten Daten zu verlieren?
  4. Welche der Programmiersprachen wäre denn in dem Fall so „stabil“, dass ich den Tablet einfach permanent anlassen könnte, dass er 24 h eingeschaltet bleibt, damit auch ich mal beim nächtlichen Kühlschrankgang mal schnell etwas notieren kann, ohne den Tablet neu hochfahren zu müssen?

Fragen über Fragen…

Habe schon an PHP gedacht, aber dafür müsste das ganze irgendwo fest online abgelegt sein und der Tablet soll auch funktionieren, wenn die Onlineverbindung nicht geht (aber zur Not halt die Daten irgendwann auf Wunsch online speichern können).
Dann dachte ich an C++, aber dann fand ich das neue C von Micorosoft.

Äh… alles noch neu, daher kann ich eigentlich als völliger Neuling ja mit allen Schandtaten anfangen :smile:

Mir ist es klar, dass ich nie auf einen Level der heutigen Teenager komme, aber vielleicht gebt ihr mir mal eine Hoffnung, mit welcher Sprache ich das besagte am besten lösen könnte (oder zumindest versuchen). Es soll am besten so sein, dass ich zwischendurch alles mal probieren und verbessern kann. Die Programmiersprache soll also mich nicht dazu zwingen, dass es alles fertig sein muss, bevor ich es teste. Ich möchte sehen, ob ich Fehler mache oder nicht, während ich meine Haushaltssoftware schreibe.

Hoffe, das Vorhaben ist machbar und jemand weiß Rat!

Vielen Dank für Eure fachlichen Meinungen!

Hallo Xavarius,

ich würde dir empfehlen dein Programm browserbasiert zu erstellen und als Technologie Ruby on Rails zu benutzen. Dies hat den Vorteil, das auch andere aus deinem Heimnetzwerk z. B. Notizen schreiben können. Du musst die Daten auch nicht online Speichern, da du einfach einen Webserver auf dem Tablet laufen lassen kannst. Desweiteren übernimmt ROR schon viele Dinge für dich: die Datenbankanbindung ist sehr einfach und es generiert z. B. einfache Lese und Schreiboperationen auf die Datenbank.
Auch das ausdrucken einer Einkaufsliste wäre so kein Problem, da du einfach ein HTML Dokument erstellst und dies über den Browser ausdrucken kannst.
Als Datenbank würde ich dir zu Beginn SQLite empfehlen, dies ist einfach zu installieren und kann z.B. über ein Firefox Plugin verwaltet werden.
Die Stabilität deiner Anwendung hängt nur wenig von der Programmiersprache ab, sondern viel mehr von deinen Künsten, da die Qualität eines Programmes in erster Linie von Entwurf und Design(da sind eine Module schon Klasse) und in zweiter von der Qualität des Programmcodes abhängt.
Über diese ganze Technologie Ruby On Rails gibt es sehr viele Bücher. Ich habe „Rapid Web Development mit Ruby On Rails“, dies würde ich dir auch empfehlen.

Ich wünsche dir viel Spaß bei dem Projekt!

  1. ja C++ (oder Visual Basic)
  2. im Prinzip kein Unterschied
  3. ja ist möglich
  4. C++

mfG

Hallo,

ich kenne den Tablet-PC nicht und deshalb ist mir völlig unklar, wie Dein Handwerkszeug aussieht ! Um zu Programmieren benötigt man einen Texteditor und dazu natürlich eine vollständige Tastatur. Dann beötigt man noch entsprechende SW. Für den Ungeübten ist es nicht so ganz einfach eine Programmiersprache zu erlernen. Man muss da mit einfachsten Übungen beginnen. Natürlich kann man mit C so gut wie alles programmieren, doch würde ich erst die anderen Dinge abklären.

Gruss

R. Sommer

Oh je da hast dir aber was vorgenommen.
Ich schätze mal das was du da vorhast ist so komplex da brachst man über 3 Jahre
an
programmier kenntnise und erfahrungen. Selbst für einen kenner ist es eine große
leistung an arbeit.
Ich weiß nicht was du da für ein betrieb System hast.
Ich würde in deinem Fall das rad nicht neu erfinden. (was du ja vorhast) Ich kann mir
gut vorstellen, so ganz nach Google, alles Web-basiert aufzubauen. Also schon mal
auf dem Table einen Webserver installieren, MySQL, perl, python und php. Das läuft
auch alles Offline.
und dann suchst du dir diese ganze projekte zusammen. z.b. ein Forensoftware wie
http://www.phpbb.de/ für eure Notizen. Da gibt es soo viele Open Source Software
die auf dem prinzip von HTML&amp:stuck_out_tongue_winking_eye:HP aufgebaut sind.
Du könntest dir auch eine eigene Webseite Programmieren. Ups da haben wir es ja:
also Lerne HTML, PHP und javascript mit z.b. jQuery. Versuche das System auf Linux
zu installieren (besser MacOSx) damit apache (WebServer-Programm) und MySQL
(Datenbank-Programm) Reibungslos laufen.
Und mit deiner eigene Webseite kannst viel viel mehr Programmieren und einfacher
(und genau das macht google auch)

Der vorteil ist wenn du dann dieses (Intranet) auf dem tabel installiert hast und es im
Home Netzwerk angeschlossen hast. Kannst du es auch mit jedem Mobile gerät
aufrufen. Und sollte es auch noch am öffentlich Internet verfügbar sein, kannst
du dein zusammen gesammeltes System auch noch von außerhalb bedienen.

So viel Spass
das würde ein ehmaliger Teenager machen :smile:
Tobi

ahh was auch noch einfacher und schneller geht (ohne das Renten alter zu erreichen)
ist es von Softwaren Firmen oder „Teenagern“ es programmieren zu lassen.

Hallo!

Ich würde gerne eine Software schreiben, die aus diversen
?Modulen? aufgebaut ist und ich die auch immer wieder
erweitern kann…

Das geht prinzipiell mit jeder Sprache und ist eher eine Frage des Programmierstils.

ich schreibe mal einfach drauf los und ihr
sagt mir, ob es überhaupt möglich ist und man im
„fortgeschrittenen Alter“ überhaupt in der Lage ist, eine
Programmierprache zu erlernen

Was sollte das mit dem Alter zu tun haben? Das ist viel eher eine Frage der Motivation. Allerdings sind (einfache) englische Sprachkenntnisse bei den meisten Programmiersprachen von großem Vorteil.

Die Fragen:

  1. Welche Programmiersprache sollte man lernen, um sich so
    eine Software selbst programmieren zu können?

Die, die dir am sympatischten ist :wink:
Auch wenn ich selbst C und C++ sehr schätze, würde ich die für den Einstieg kaum empfehlen, da sie sehr systemnah sind. Java wäre eine nette Option - relativ einfacher Einstieg und gute (auch deutsche) Doku - z.B. http://openbook.galileocomputing.de/javainsel8/. Auf hohe Leistungsfähigkeit kommt’s bei deiner Anwendung ja nicht an.

  1. Eine Datenbank muss logischerweise dahinter stehen - wenn
    ich nun irgendwann den Kalender über das Internet abfragen
    wollen würde: Macht es einen Unterschied in der Sprache und
    der Datenbank?

Warum muß da zwingend eine Datenbank dahinter? Du solltest dir natürlich möglichst ein Standardformat für die Datenablage aussuchen, aber auch XML würde sich da anbieten. Datenbankanbindung funktioniert aber auch in praktisch allen Sprachen.

  1. Wenn ich die „Software“ um weitere Module nach erlernen und
    Schreiben neuer erweitern möchte: wäre es möglich dies zu tun,
    ohne gleich das ganze neu zu installieren und die alten Daten
    zu verlieren?

Im einfachsten Fall übersetzt du dein Programm neu und ersetzt damit das alte. Die Daten liegen sowieso außerhalb des ausführbaren Programms und werden davon nicht berührt, *solange* du am Datenformat nichts änderst.

  1. Welche der Programmiersprachen wäre denn in dem Fall so
    „stabil“, dass ich den Tablet einfach permanent anlassen
    könnte, dass er 24 h eingeschaltet bleibt, damit auch ich mal
    beim nächtlichen Kühlschrankgang mal schnell etwas notieren
    kann, ohne den Tablet neu hochfahren zu müssen?

Das ist weniger eine Frage der Programmierprache mit der deine Anwendung erstellt wird, als vielmehr des Betriebssystems auf dem sie laufen soll. Aber selbst Windows sollte inzwischen mit „Dauerbetrieb“ keine Probleme mehr haben. Ich empfehle aber da den „Ruhezustand“ zu nutzen - das System ist nach wenigen Sekunden wieder da, verbraucht aber deutlich weniger Strom als im vollen Betrieb.

Habe schon an PHP gedacht, aber dafür müsste das ganze
irgendwo fest online abgelegt sein und der Tablet soll auch
funktionieren, wenn die Onlineverbindung nicht geht (aber zur
Not halt die Daten irgendwann auf Wunsch online speichern
können).

Nein. PHP läuft zwar innerhalb eines Webservers, aber der wiederum kann durchaus auch lokal auf dem Tablet selbst laufen - siehe z.B. http://www.apachefriends.org/de/xampp.html

Im Gegenteil würde ich derart sensitive Daten (Terminplanung, Notizen) keinesfalls einfach so irgendwo online ablegen.

Es soll am besten so sein,
dass ich zwischendurch alles mal probieren und verbessern
kann. Die Programmiersprache soll also mich nicht dazu
zwingen, dass es alles fertig sein muss, bevor ich es teste.
Ich möchte sehen, ob ich Fehler mache oder nicht, während ich
meine Haushaltssoftware schreibe.

Das ist wiederum vom Programmierstil abhängig und weniger von der Sprache. Üblicherweise entwickelt man erst die Basisfunktionen. Stehen die, kann ab da immer getestet werden, während neue Funktionen eingebaut werden.

Gruß, Jan.

Hallo,
ich danke für die Antwort!
Es scheint wirklich die am besten dafür geeignete Sprache zu sein. Werde mich damit mal ausseinandersetzen.

Dankeschön noch einmal!

Hallo Jan,

vielen Dank für die Antwort!
Ich habe da an Visual Basic gedacht, da ich Basic noch von gaaaaanz früher kenne, aber seinerzeit hat man auf einem Atari XL noch rumgedaddelt und sich kleine Helferlein selbst geschrieben. Weiß aber nicht, ob das sich dem damaligen Basic überhaupt ähnelt und ob das auch wiederum mit einer Datenbankanbindung ist…

Ob da eine Datenbank dahinter stehen soll: Ja, denn irgendwann will ich hier meine DVD-Sammlung auch mal archivieren und etwas, womit ich die verliehenen Notieren kann - am besten mit meiner eigenen Adresssammlung von Freunden und Bekannten - aber das sind so ziemlich die Spitzen der Wünsche :wink:

Gruß und Dank noch einmal für die Antwort

Xavarius

ahh was auch noch einfacher und schneller geht (ohne das
Renten alter zu erreichen)
ist es von Softwaren Firmen oder „Teenagern“ es programmieren
zu lassen.

Das wäre ja keine Herausforderung :smile:

Mit Webbasiert habe ich meine Probleme, da es dann halt alles online ist und wenn unsicher, dann sieht ja jeder meine Notitzen an die Frau :smile:
Auch wenn das Netz mal ausfallen sollte, steh ich dann da wie Ochs vorm Berg… Muss also auch komplett offline funktionieren…

Aber danke für die Gedankenanstöße!

Gruß
Xavarius

Hallo Tablet ist ein ASUS RT1F und da läuft Windows XP drauf. Möchte aber das ganze nicht abhängig vom Tablet machen, wenn also die Frau mal irgendwann eine Kopie auf ihrem PC haben will, dann soll es da auch laufen :smile:
Ich denke, ich werde mich zwischen Ruby und Visual Basic entscheiden, wenn ich die Antworten so sehe.

Danke für die Antwort übrigens und entschuldigung für meine späte Reaktion.

MfG
Xavarius

Mit Webbasiert habe ich meine Probleme, da es dann halt alles
online ist und wenn unsicher, dann sieht ja jeder meine
Notitzen an die Frau :smile:

Nicht unbedingt! Kann man ja aus gewissen Büchern lernen.

Auch wenn das Netz mal ausfallen sollte, steh ich dann da wie
Ochs vorm Berg… Muss also auch komplett offline
funktionieren…

Das ist ja der Witz am System des „Internet“. Es braucht kein Internet mit Kabel und
t-online. Die Katze fängt ihren eigenen Schwanz. Du kannst dein PC als ein „Server“
nutzen und sich selbst wieder aufrufen lassen als Client. Also nix mit offline
Probleme (ausser du schaltest dein Table ganz aus xixi). Sowas nennt man halt
Intranet. Mit einem Router kannst du dann kontrollieren ob es sich in die weite welt
des Internet zeigen darf oder ob er sich nur Daten abrufen soll u.s.w.
Bisschen verwirrend aber eine coole Herausforderung, daran wirst du schon lange
genug zu kämpfen haben. Das wird ein mix sein aus Einstellungen, verstehen und
programmieren. Es ist ein ganz schöner Schuh. Beim Webbasiert-System finde ich
vom Vorteil das man leicht seine Oberfläche Gestalten kann und das meiste schon
vorprogrammiert wurde. Merke eines wenn die Bedienung Elemente einfach und
leicht zu bedienen sind, dann ist deine Arbeit auch lohnenswert. Bei den meisten
anderen sprachen muss man das interface kompliziert programmieren können und
da darfst du schon mal extrem lange lernen. Ohne das Ziel noch nicht mal
ansatzweise erreichen zu haben.

Mit Webbasiert habe ich meine Probleme, da es dann halt alles
online ist und wenn unsicher, dann sieht ja jeder meine
Notitzen an die Frau :smile:

Nicht unbedingt! Kann man ja aus gewissen Büchern lernen.

Auch wenn das Netz mal ausfallen sollte, steh ich dann da wie
Ochs vorm Berg… Muss also auch komplett offline
funktionieren…

Das ist ja der Witz am System des „Internet“. Es braucht kein Internet mit Kabel und
t-online. Die Katze fängt ihren eigenen Schwanz. Du kannst dein PC als ein „Server“
nutzen und sich selbst wieder aufrufen lassen als Client. Also nix mit offline
Probleme (ausser du schaltest dein Table ganz aus xixi). Sowas nennt man halt
Intranet. Mit einem Router kannst du dann kontrollieren ob es sich in die weite welt
des Internet zeigen darf oder ob er sich nur Daten abrufen soll u.s.w.
Bisschen verwirrend aber eine coole Herausforderung, daran wirst du schon lange
genug zu kämpfen haben. Das wird ein mix sein aus Einstellungen, verstehen und
programmieren. Es ist ein ganz schöner Schuh. Beim Webbasiert-System finde ich
vom Vorteil das man leicht seine Oberfläche Gestalten kann und das meiste schon
vorprogrammiert wurde. Merke eines wenn die Bedienung Elemente einfach und
leicht zu bedienen sind, dann ist deine Arbeit auch lohnenswert. Bei den meisten
anderen sprachen muss man das interface kompliziert programmieren können und
da darfst du schon mal extrem lange lernen. Ohne das Ziel noch nicht mal
ansatzweise erreichen zu haben.
.

Hallo,
danke für die kurze und prägnante Antworten.
Denke, werde mich zwischen Visual Basic und Ruby entscheiden müssen.

Schöne Grüße

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

-) Auch wieder wahr :smile:

Pffft… da iegt aber viel vor mir - aber so soll´s sein. Freue mich schon auf die ersten Ergebnisse.
Danke noch einmal für die Hinweise!

Ich habe da an Visual Basic gedacht, da ich Basic noch von
gaaaaanz früher kenne, aber seinerzeit hat man auf einem Atari
XL noch rumgedaddelt und sich kleine Helferlein selbst
geschrieben. Weiß aber nicht, ob das sich dem damaligen Basic
überhaupt ähnelt

Ich kenne erst das Basic von DOS, kann da also nichts weiter zu sagen. Aber: Die Grundstrukturen sind bei allen (imperativen) Programmiersprachen sowieso die gleichen. Variablenzuweisungen, Verzweigungen und Schleifen.

Was natürlich auf jeden Fall neu dazu kommt, ist die grafische Oberfläche. Bei VB kann man die aber recht einfach „zusammenklicken“. Zum (Wieder)Einstieg eignet es sich auch relativ gut.

und ob das auch wiederum mit einer
Datenbankanbindung ist…

Datenbankanbindung ist auch mit VB kein Problem.

Ob da eine Datenbank dahinter stehen soll: Ja, denn irgendwann
will ich hier meine DVD-Sammlung auch mal archivieren und
etwas, womit ich die verliehenen Notieren kann - am besten mit
meiner eigenen Adresssammlung von Freunden und Bekannten -

Auch dazu braucht es nicht zwingend eine Datenbank :wink:

Falls es nur um die Funktionen geht und nicht darum sich in eine Programmiersprache einzuarbeiten, dann könntest du auch probieren einfach eine Tabellenverarbeitung (MS Excel oder OpenOffice Calc) zu skripten. Da würdest du dir einen Großteil der Arbeit in Bezug auf die Oberfläche ersparen.

Gruß, Jan.

Hallo,

ich würde dir Microsoft Visual Studio empfehlen.
Die Express-Version gibts sogar kostenlos.

Ob du dann Visual Basic, Visual C# oder Visual C++ nutzt, ist eher geschmackssache.

Meiner Meinung ist Visual Basic sehr flott erlernt, und hier kannst du dein Programm/Oberflächen modular aufbauen.

Openbooks und zahlreiche Tutorials (YOUTUBE) wirst du dazu auch finden.

Beste Grüße
Leon