Welche Codingsprache?

  • Hallo,

    in Informatik soll ich einen Steurer- bzw. Finanzrechner programmieren. Der Rechner soll nach Angabe verschiedener Kriterien Steuerersparnisse ausrechnen können. Nun suche ich alle möglichen Steuerrechner, die ihr vielleicht schon mal selbst programmiert oder eingesetzt habt. Bei uns hat jeder einen anderen Aspekt bekommen, den er beleuchten soll. Mein Thema ist Immobilien geworden. Meine Kumpels setzen sich mit Spenden und Hochzeiten auseinander. Insgesamt soll in diesem Semester dann ein Rechner entwickelt werden, der eine Prognose für die Steuererklärung gibt.

    Erstmal sage ich euch, was der Rechner alles können muss. Der Finanzrechner dürfte recht einfach werden. Ein Szenario ist z. B., dass ich eine bestimmte Summe Geld bei einem festen Zinssatz über einen gewissen Zeitraum anlege. Nach der Laufzeit habe ich das Kapital und die Zinsen auf meinem Konto. Wirkliche Schwierigkeiten sollte ich aber nicht haben, um das Vorhaben umzusetzen. Nun kommt der Steurrechner aber ins Spiel und hier soll es mehrere Szenarien geben. In einem Szenario kaufe ich mir beispielsweise eine Wohnung. Es gibt hierfür zahlreiche weitere Kriterien, die beachtet werden müssen. Nachdem ich gewählt habe, ob es sich um ein Haus oder eine Wohnung handelt, muss ich angeben, ob es ein Alt- oder Neubau ist. Je nachdem berechnet sich dann ein Steuervorteil, der auch wieder abhängig vom Wohnort ist. Mein Programm soll dann berechnen, wie großzügig dieser ausfällt.

    Ein bisschen was habe ich schon gefunden und denke, dass ich die aufgelisteten gut nutzen kann:

    http://www.steuerimmobilie.de/steuerrechner.html
    http://www.fellowhome.de/steuern-sparen…uer-immobilien/
    http://www.immorechner.de/miro498/calc_s…age=calc_steuer

    Mich würde interessieren, welche Programmiersprache ich am besten nehmen soll. Zunächst soll es sich um eine Einzel- danach um eine Gruppenarbeit handeln. Entweder entwickle ich einen Rechner für das Internet und nutze PHP mit Javascript oder ich greife auf Pascal, Ruby oder C++ zurück.

    Welche Sprache empfehlt ihr, wenn man später mehrere Projekte zusammenführen und erweitern soll? Habt ihr selbst schon passende Beispiele, die ihr mir zeigen könnt? Natürlich müsst ihr mir nicht den Code freigeben.

    Bis bald

  • Naja, Pascal, Ruby und C++ sind keine Scriptsprachen. Sie werden in Interpreter oder Maschinen Ybtecode umgewandelt. Wenn der Rechner Lokal au dem Computer als Programm laufen oll, fällt PHP weg. Dafür kannst du dann C++ nehmen, was aber in sachen GUI (Graphische Oberfläche) eher etwas schwer für Neulinge sein dürfte. Daher könntet ihr Java oder C# benutzen. Die Sind einfach was GUI angeht und auch leichter zu lernen.
    Wenn das ganze im Web laufen soll, biete sich PHP natürlich an, wobei JavaScript alleine das auch bequem hinbekommen sollte, es sind ja nur Rechnungen. Um ein Kurzes Beispiel zu für den Zinssatz zu geben:

    Das in C++ oder Java/C# wird schon um einiegs Komplexer.
    Jetzt hast du, denke ich, ne Idee von dem, was auf dich Zukommt. Meine Empfehlug: HTML/JavaScript

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    3 Mal editiert, zuletzt von Tobse (8. Mai 2011 um 13:20) aus folgendem Grund: Die Formel über dem code formatieren...

  • also es hängt immer von der anforderung ab.. wenn du es ohne verteilung von einzelnen clients haben willst, dann mach ne web-anwendung (da is meist auch das designen vom userinterface einfacher)
    wenn du einzelne anwendungen machen willst, dann schreibs einfach in einer sprache diener wahl (also c, c++, c# java, kobol, etc)

    das mit dem zusammenführen hängt weniger von der sprache, als von der eigentlichen programmierung ab, doch da denke ich isses beim web etwas einfacher die entsprechenden schnittstellen zu entwickeln ;)

  • Das hört sich nach einer typischen RIA Anwendung an.
    Ich würde Dir für etwas komplexere Anwendungen daher das FlexSDK(also Flash + AS3, MXML als sprachen) empfehlen. Es gibt neben dieser Technologie auch Silverlight bzw JavaFX die für solche Aufgaben gemacht sind allerdings ist m.E. nach Flex am ausgereiftesten. Darin hast du alle typischen Steuer-, Navigation-, Layout Elemente wie zb. Checbboxen, DropDown Liste, Buttons, Datagrid, Rich Text Editor, Labels, Validatoren, Formatter, usw.... die sich leicht in die Anwendung intergrieren lassen bzw leicht anpassen lassen. Ein Beispiels was Flex kann siehst du hier.
    Hierbei hast du zudem noch den großen Vorteil die Anwendung neben Web auch als Mobile und Desktop Version ohne große Codeänderungen zu veröffentlichen.
    Als Serverseitige sprache die zb auf die Datenbank zugreifen soll kannst du PHP, Java, Ruby, etc verwenden. Das ist meiner Meinung nach immer von den persönlichen Skills abhängig. Das Flex Framework bietet dir viele Serviceklassen um die Anwendung mit dem Server kommunizieren zu lassen.

    MfG
    Flexer

    AS3-Flex | Java-Spring | PHP-Zend | ObjC-Cocoa Developer

  • Tobse
    Was? Ruby ist eine Scriptsprache und GUI ist in C++ mit Sicherheit nicht komplizierter als in Java oder C#, man muss nur eben in allen drei Sprachen verstehen, was ne Klasse ist… Und Konsolenprogramme in PHP zu schreiben ist überhaupt kein Problem, ich gebe zu, dass Gtk+ und Qt da etwas exotisch sind, aber normal auf der Konsole, das geht wie mit jeder anderen Sprache, und da brauchst du keinen Webserver.

    Flexer
    Was soll die Werbung für irgendsoein dubioses proprietäres Framework? Spar dir das… Selbst wenn das sinnvoll wäre (äh, aber mit Flash und Silverlight, wer will sowas?), wärs das mit Sicherheit nicht für ne Hausaufgabe.

  • Soweit ich weis, wird doch (zumindest Ruby on Rails) zu bytecode compiliert. Und ich persönlich finde mich in der Java GUI programmierung (OHNE Wysiwigs!) besser zurecht als bei c++...
    Konsolenprogramme in PHP geht zwar, sprengt aber den Sinn des ganzen und ist immer auf den Interpreter und die Library angeweisen, da ist man mit einer nativen Sprache schon besser dran, da ja Java und C# ebenfalls auf eine Runtime angewiesen sind. Ausserdem finde ich konsolenprogramme sehr unangenehm zu bedienen, ich benutze die nur, wenns nicht anders geht. Für eine Konsolenanwendung bekommt man auch bestimmt eine schlechtere Note als für eine mit ner GUI.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Soweit ich weis, wird doch (zumindest Ruby on Rails) zu bytecode compiliert.


    Oh mensch, ne Scriptsprache ist nicht definiert als „wird zu Bytecode kompiliert“. Nur weil es ab Ruby 1.9 Bytecode gibt, ist das nicht auf einmal keine Scriptsprache mehr. Im übrigen haben das so ziemlich alle ernstzunehmenden Scriptsprachen mit dem Bytecode (Perl, PHP, Python…).

    Und ich persönlich finde mich in der Java GUI programmierung (OHNE Wysiwigs!) besser zurecht als bei c++...


    Mal Qt benutzt? Komm ich viel besser mit klar als mit Swing oder SWT, was ich mal probiert habe.

    Konsolenprogramme in PHP geht zwar, sprengt aber den Sinn des ganzen und ist immer auf den Interpreter und die Library angeweisen, da ist man mit einer nativen Sprache schon besser dran, da ja Java und C# ebenfalls auf eine Runtime angewiesen sind.


    Ist das verboten, dass ein Programm Abhängigkeiten hat? Und wieso darf ein GUI-Programm auf eine Runtime-Umgebung angewiesen sein, während es Konsolenprogramme nicht dürfen?

    Ausserdem finde ich konsolenprogramme sehr unangenehm zu bedienen, ich benutze die nur, wenns nicht anders geht.


    Äh, das hängt davon ab, wofür es gut sein soll. Bildbearbeitung und Webbrowsing sind vllt. nicht toll auf der Konsole, andere Sachen schon. Ich finde es lächerlich, wenn man ein GUI-Programm hat, das irgendwie nur aus zwei Dialogen besteht, wo man ein paar Sachen eingibt, dann drückt man auf Start und dann macht er das o.ä., da ist es viel komfortabler und effizienter und praktischer in der Konsele einfach das Programm mit ein paar Parametern aufzurufen.

    Für eine Konsolenanwendung bekommt man auch bestimmt eine schlechtere Note als für eine mit ner GUI.


    Ähm, das ist nicht ersichtlich, dass eine GUI zu den Anforderungen gehört. Außerdem klingt dein Satz so, als wäre eine CLI grundsätzlich ein Makel eines Programms, und das ist doch unsinnig.


  • Flexer
    Was soll die Werbung für irgendsoein dubioses proprietäres Framework? Spar dir das… Selbst wenn das sinnvoll wäre (äh, aber mit Flash und Silverlight, wer will sowas?), wärs das mit Sicherheit nicht für ne Hausaufgabe.

    Da hast du wohl etwas falsch verstanden. Das sollte keine Werbung für irgendein Produkt sein sondern lediglich eine Empfehlung (steht auch in meinem Posting ;) ) mit der man das Problem lösen könnte. Lediglich eine von vielen Möglichkeiten. Zudem deutet der Fragesteller an nicht genau zu wissen ob eine Web oder Desktop Anwendung eher in Betracht kommen könnte. Hierauf dann auch meine Empfehlung zum FlexSDK da sich damit leicht Portierungen auf anderen Plattformen realisieren lassen.
    Zudem kann ich Dich beruhigen das es sich um das FlexSDK um kein dubioses Framework handelt sondern von einem sehr bekannten Softwarekonzern kommt und u.a. oft in Verbindung mit den oben gestellten Anforderungen benutzt wird. Sehr häufig für RIAs, Intranet, ERP.... zudem ist es ein oft genutztes Werkzeug in Cloud Umgebungen.

    MfG Flexer

    AS3-Flex | Java-Spring | PHP-Zend | ObjC-Cocoa Developer

  • Klingt ja wie geschaffen für eine Hausaufgabe…
    Dass das von einer großen Firma kommt, weiß ich selber.

    Das Flash und Silverlight Zeug ist aber natürlich fragwürdig, weil es längst nicht überall läuft.


  • Das Flash und Silverlight Zeug ist aber natürlich fragwürdig, weil es längst nicht überall läuft.



    Mindesten genauso fragwürdig ist demnach auch der Einsatz von Java, Python, usw .... , das liegt nun mal in der Natur der Dinge von Technologien die eine Runtime voraussetzen. ;)

    MfG Flexer

    AS3-Flex | Java-Spring | PHP-Zend | ObjC-Cocoa Developer

  • Das Programm soll ja bedienbar sein, auch für Leute, die nicht mit der Konsole arbeiten können/wollen. Man könnte a ein konsolenprograme ntwerfen und dazu ein kleine gui-programm, das nur den konsolenbfehl aufruft.
    Mein Problem mit der Runtime ist das, dass erstens nicht jeder PHP installiert (schon garnicht immobilienmarkler) und die java-library muss geladen werden. Ich sehe das als nachteil.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Dann schreib ich eben ins rpm/deb/pacman/portage-Paket php als Abhängigkeit, wo ist das Problem? Und auch in C++ wirst du bei sinnvollen Programmen nicht darum herum kommen, Abhängigkeiten zu haben.
    Dass das Programm für DAIMs bedienbar sein muss, hat der Lehrer sicherlich nicht gesagt. Und eine GUI ist einfach Unsinn für viele Programme, du wirst z.B. keinen Compiler finden, dem man per GUI die Eingabedateien übergibt, das liegt daran, dass Compiler zum einen zu den Programmen gehören, wo eine GUI keinen Sinn macht, und zum anderen Compiler-Entwickler i.d.R. intelligent genug sind, das zu erkennen. Bei anderen Programmen, die egtl. nur eine Aktion ausführen ist das auch schonmal gerne nicht der Fall. Z.B. bei diesem Rechner geht es ja nicht darum, ein Programm zu entwickeln, um Finanzen zu verwalten, sondern eines, das die Steuerersparnisse ausrechnet. Was ist also der einfachste Ansatz: Es liest die Daten aus irgendeinem einfachen/gängigen Format aus, und gibt dann aus, welche Modelle wie viel Ersparnis bringen könnten. Das kann man vor allem auch benutzen, wenn man schon ein Programm zur Buchhaltung verwendet, indem man einfach `steuer-calc buchhatlungsdaten` ausführt. Kein Schnickschnack, keine GUI, die einem im Weg ist, und es ist einfach integrierbar. Was man erst Recht nicht braucht ist übrigens irgendein fancy Flash-webinterface, ich brauch diese Berechnungen nicht als Animationsfilm, übrigens habe ich auch keinen Flashplayer installiert.

  • Zitat von The User


    übrigens habe ich auch keinen Flashplayer installiert.


    Also warum php installieren? C++ compilierte Konsolenanwedungen werden, schon garnicht dafür, Librarys brauchen.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Vllt. brauchen sie die C++-Standard-Bibliothek? Zumindest benötigen meine Programme auch immer, dass libstdc++ installiert ist. Und für irgendeine GUI bräuchte man erst recht noch was. Natürlich kann man die statisch linken, aber das ist doch unschön, kannst auch PHP „miteinkompilieren“, ist doch nichts toll daran, wenn man alles in einer Datei hat.

  • Ich würde eine Webanwendung mittels PHP/JS/Mysql erstellen (Mysql als Datenbank ist sicher kein muss, macht aber Sinn)
    Ich finde schon das man hier eine einfach Oberfläche braucht, also fällt für mich die Konsolenanwendung weg

    Selbst wenn du irgentwann ein ausführbare Datei möchtes, kannst du deine Seite zu einer umwandeln.

  • Was ich damit meine ist, dass das fertige Programm auf einem Out-of-the-Box Windoof (von mir aus ab 2000) ohne Zusatzinstallationen läuft, denn die sind lästig.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Das weiss ich nicht, normalerweise sollte doch das OS zumindest Simple dinge bereitstellen. Allerdings besteht hier ein feiner unterschied: Eine GUI oder Mathematik-Library, die in form einerr DLL-Datei beim Programm dabei ist, muss nicht vom Benutzer installiert werden. Eine Java Runtime, ein .NET Framework oder irgendwelceh anderen Jitter/Bytecode-Interpreter schon, und PHP sollte auch.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!