PHP PHP oder Java für mein Projekt?

taui

Newbie
Registriert
Apr. 2011
Beiträge
1
Grüßt euch,

programmiert werden soll ein Steuer- und Finanzrechner für Info. Mit dem Rechner sollen verschiedene Berechnungen wie Steuerersparnisse aufgestellt werden. Musstet ihr schon mal sowas auf die Beine stellen und könnt ihr etwas unter die Arme greifen? In unserem Kurs muss ich jeder zunächst selbst einer Teilaufgabe widmen. Für mich gab es das Gebiet Immobilien. Meine Kollegen befassen sich mit Hochzeiten, Kirchensteuern, Investitionen und Spenden. Insgesamt soll in diesem Semester dann ein Rechner entwickelt werden, der eine Prognose für die Steuererklärung gibt.

Am besten erkläre ich euch erst, was genau der Rechner können muss. Die Umsetzung des Finanzrechners dürfte nicht so aufwendig werden. Ich habe z. B. ein festes Kapital und lege das über ein paar Jahre zu einem festen Zinssatz an. Nach der Laufzeit habe ich das Kapital und die Zinsen auf meinem Konto. Eigentlich sollte die Umsetzung gut und schnell möglich sein. Umfangreicher wird es nun aber durch den Steuerrechner. Beispielsweise kaufe ich mir eine Immobilien, die verschiedene Kriterien hat. Hier gibt es wieder Unterschiede. Kaufe ich mir entweder eine Wohnung oder ein Haus und ist dieses Objekt ein Neu- oder Altbau. Der Rechner braucht auch eine Wohnortseingabe, sodass sich ein bestimmter Steuervorteil berechnen kann. Und diesen möchte ich dann bestimmen können.

Ein wenig habe ich mich umgesehen und ich hoffe, dass ich ich sie gut nutzen kann:

http://www.pp-gruppe.de/kapitalanleger/steuerrechner.html
http://www.fellowhome.de/steuern-sparen/steuerrechner-fuer-immobilien/
http://www.steuerimmobilie.de/steuerrechner.html

Nun suche ich eine Programmiersprache, die wirklich sinnvoll für eine Gruppenarbeit ist. Ich dacht da an Pascal oder Ruby bzw. an PHP oder Java, wenn es eine Webandwendung werden soll

Mit welcher Sprache sollte ich arbeiten, um ein sinnvolles Ergebnis zu bekommen und die Arbeiten der anderen ohne großen Aufwand einzubeziehen? Habt ihr vielleicht auch selbst einige Beispiele, die ihr mir zeigen könntet? Den Code brauche ich natürlich nicht unbedingt, falls ichr Angst habt, dass ich abkupfere.

Herzliche Grüße
 
Hallo und willkommen auf CB/FB :cheerlead:

Ohne mich jetzt tiefer mit der Materie auszukennen, rate ich dir von proprietären Technologien wie Java oder Flash ab. Der Brutto-Nette-Rechner der Arbeiterkammer (Österreich) hat vor kurzem auch von Flash auf HTML+JavaScript umgestellt.

Ich würde dir somit eher zu PHP+mySQL als Basis und AJAX/JS für die ganze Interaktivität und Bedienung empfehlen. Ich glaube hier erreichst du auch am meisten Leute.

Eine angenehmere Programmierung hast du vl. in Java, aber wenns im Web landen soll...
Oder meintest du JavaServerPages?
 
Proprietäre Technologien wie Java???
1. Java gibt es als OpenJDK auch als OpenSource
2. Was hat Proprietäre Technologie mit der Frage zu tun?

Die Umstellung des Rechners der Arbeitskammer ist wahrscheinlich nur deshalb vorgenommen worden, weil Flash einfach sch... ist :D:D:D


@TE: Für eine Java-Webanwendung solltest du ein passendes Webframework einsetzten (meine Empfehlung: Tapestry). Das erfordert neben der Basis-Sprache auch eine Einlernphase für das jeweilige Framework. Ich denke, da du einen sehr begrenzten Aufgabenbereich hast, würdest du mit Rails ganz gut fahren. Dazu gibt es viele Beispiele und gute Tutorials, wie man eine einfache Webseite mit Funktionalität hochzieht.

Falls du schon Java kannst, könnte Groovy was für dich sein.
 
Da es ein Kurs ist, wo das Endergebnis am Ende scheinbar von allen zusammengefasst werden soll, sollte man sich die Fähigkeiten der einzelnen Teilnehmer ansehen.
Wenn es eine integrierte Software werden soll sollte es logischerweise auf der gleichen Programmiersprache aufbauen. Man kann es zur Not über definierte Schnittstellen über die Grenzen der Programmiersprache lösen, aber das ist ein Mehraufwand der sich vielleicht von vorne herein sparen läßt.
Pascal/Delphi ist inzwischen relativ tot. Java würde sowohl für eine Desktop-Anwendung als auch für eine Web-Anwendung genutzt werden können. Bei PHP wäre es ausschließlich eine Web-Anwendung und verleitet meiner persönlichen Meinung nach zu "pfuschen".
Mit Ruby habe ich keine Erfahrung, aber ich vermute Du meinst auch eher "Ruby on Rails", was für kleinere Web-Anwendungen wie hier recht gut geeignet scheint.

Ich würde es wohl mit Java umsetzen. Dabei ist es recht einfach es so zu bauen, das der wesentliche Code (Berechnungen,...) sowohl für eine Desktop-Anwendung als auch eine Web-Anwendung nutzbar ist. Bei einer Web-Anwendung würde ich wirklich die simpelste Variante mit ein wenig JSP und JSTL nutzen und explizit kein extra Framework. Wichtig ist es die Daten in sogenannten POJOs zu kapseln (einfache Klasse mit Zugriff auf Attribute per setter/getter) und wenn Dinge aufgelistet werden, diese Objekte z.B. in eine ArrayList zu packen.


Von Datenbanken war noch nicht die Rede, aber wenn es klein und in die Anwendung integriert werden soll bietet sich bei Java H2 (Hypersonic2 an - http://h2database.com/) an.

Von den ganzen Wrappern halte ich nicht viel, was darauf beruht das ich hauptsächlich mit "Massendaten" zu tun habe und Wrapper wie Hibernate ein ziemlicher Performance Killer und Speicherverschwender sind. Für das doch sehr überschaubare Projekt hier wäre es aber wohl kein Hindernis.
Ansonsten würde ich PostgreSQL immer MySQL vorziehen. Beide sind kostenlos, PostgreSQL ist dichter am SQL Standard und der Funktionsumfang von PostgreSQL ist auch deutlich höher, auch wenn MySQL in den letzen 10-Jahren aufgeholt hat. Bei der Geschwindigkeit tun sich beide nichts. Problematisch ist bei MySQL die Wahl des "Speicher-Backends". Will man Transaktionssicherheit muss es das InnoDB Backend sein, will man Volltextsuche, muss entweder nur die betroffene Tabelle oder alles mit dem MyISAM Backend gemacht werden, man verliert dann aber die Transaktionssicherheit. Von Constraints reden wir lieber nicht. Man kann sie bei MySQL anlegen (es gibt zumindest keine Fehlermeldung), aber MySQL ignoriert sie weitgehen stumpf (Check Constraint werden völlig ignoriert; Foreign Key Constraints bei InnoDB/BDB weitgehen unterstützt [http://dev.mysql.com/doc/refman/5.1/de/innodb-foreign-key-constraints.html], sonst ignoriert; etc.).
Auch hier gilt: Beim beschriebenen Projekt ist es völlig egal.

@Lord_Alti: Von Flash war nicht die Rede und Java ist nicht proprietär.
 
Zuletzt bearbeitet:
Ich gehe mal davon aus, dass der Threadersteller Anfänger ist. Ihr gebt ihm ja den vollen Overkill und schreckt ihn ab. :D

Wenn wirklich nur die Funktionalitäten dargestellt werden soll dann wäre BlueJ gar nicht mal so schlecht. Allerdings macht es optisch nicht wirklich was her und die Zusammanarbeit / Einbindung des Codes der anderen Teammitglieder wäre schwieriger.

Daher schlage ich den Klassiker vor:
http://www.apachefriends.org/en/xampp-windows.html#641

Damit kannst du dir einen lauffähigen Webserver z.B. auf einen USB Stick installieren.
Dazu noch Phase5, den es für Schulangelegenheiten für umsonst gibt.
http://www.phase5.info

Zum Einlernen:
http://www.schattenbaum.net/php/anfang.php

Bei PHP musst du alles über den XAMPP Server laufen lassen.
Also immer über localhost drauf zugreifen. z.B.
http://localhost/phpinfo.php

Eine Mysqlanbindung ist meiner Meinung nach nicht nötig wenn er nichts dauerhaft speichern möchte. Dann kann dir noch Session helfen um Variablen nicht zu verlieren.
http://www.mywebsolution.de/workshops/1/page_2/show_Sessions-in-PHP---Sessions-starten.html#up

Für das Eingabeformular:
http://www.fincher.org/tips/web/SimpleForm.shtml
Um die Werte dann wieder übernehmen zu können:
$_SESSION['eingabe_2'] = $_GET["eingabe_2"];

echo ("$_SESSION['eingabe_2']");

Bei Formularen das Escapen der " nicht vergessen. z.B.
echo ("<form name=\"form1\" method=\"get\" action=\"seite.php\"> ");

Du wolltest ja, dass dort noch Eigenleistung drinsteckt.
Damit solltest du das gröbste schon mal hinbekommen.

Den Code deiner Kollegen kannst du dann einfach einbinden indem du oben auf
deiner Seite einfach 4 - 5 Links hast. (Immobilien, Heirat, usw.) Der Anwender kommt dann einfach auf eine Seite deiner Kollegen, die die selben Links oben stehen haben.

So könnt ihr dann immer wechseln und jeder kann an seinem Projekt arbeiten ohne auf die anderen Leute angewiesen zu sein. :cool_alt:
 
Zuletzt bearbeitet:
Die Frage wäre einfach welche Darstellungsform du möchtest:
  • Webseite
  • Desktop-Applikation
  • Kommandozeilen-Programm
  • Handy-App

Und auf der Basis kann man dir dann weiterhelfen ;)
Deine Anforderung gehört zur "Mini-Software", das lässt sich eben in jeder Sprache umsetzen, da zählt dann die Darstellungsform, wie einfach eine Sprache zu lernen sein soll oder ob die Sprache auch noch für spätere Projekte in Richtung X passt.
 
taui schrieb:
Nun suche ich eine Programmiersprache, die wirklich sinnvoll für eine Gruppenarbeit ist. Ich dacht da an Pascal oder Ruby bzw. an PHP oder Java, wenn es eine Webandwendung werden soll

Da du diese Kombination von "Sprachen" reingeworfen hast, nehme ich mal an du hast kein Peil wie die genau Funktionieren und nochweniger weißt du wie dein "Programm" am Ende aussehen soll.

Lass uns mal aufzählen:
Pascal - eine übelst veraltete Programmiersprache, die man für kein (ernstzunehmenden)Projekt der Welt benutzen sollte (ja ich weiß C zum Beispiel ist auch "ALT" aber damit lassen sich auch Sachen entwickeln...)
Ruby - eines der mondernsten Skript/Programmiersprachen überhaupt. Genial um OO zu entwickeln. Mit Rails lassen sich auch Webappliaktionen erstellen.
PHP - das wohl verbreitetste Skriptsprache überhaupt. C syn ähnlich. Sogut wie nur für die Webentwicklung gedacht.
Java - eine tolle OO Sprache. Hier könntest du wie mit Ruby + Rails nicht nur Desktopanwendungen erstellen sondern das ganze für den Web fit machen.

Deswegen müssten wir wissen was du willst. Eine einfache Desktop applikation? (so per .exe anklicken und dann Programm steuern?) Oder soll das ganze als Webanwendung erstellt werden? Beides?

Das ist wichtig, weil wie oben erzählt, geht nicht alles mit allen Sprachen. Mit PHP würde ich keine Desktopapplikationen erstellen... mit Pascal kein Web (bzw. damit garnichts).

Und welche Sprache kannst du überhaupt gut? Du sollst keine komplett neue Sprache anfangen, das ist unangenehm. Ja wie du siehst, hast du noch einige Fragen zu beantworten.

Gruß
 
Zuletzt bearbeitet:
Zurück
Oben