Ist Java die richtige Sprache für mein Problem?
StefanB.
- java
Hallo,
vielleicht kann mir hier jemand bei der Auswahl einer Programmiersprache helfen.
Ich möchte gern Programme schreiben, die zum Beispiel jpg Bilder verändern (als Beispiel: jedem Bild oben rechts eine Zahl hinufügen oder Dateien auf dem lokalen Dateisystem umbenennen, vergleichen o.ä.)
Es soll keine Internetverbindung zum ausführen nötig sein (also fällt php raus)
Sie sollen von jedem Anwender ausführbar sein (ggf. nach einer Installation). --> also keine Abhängigkeit von irgendwelchen Browsern oder anderen Programmen
Es sollen also kleine Programme werden, wie solche, die man sich irgendwo als freeware-utility herunterladen kann.
Welche Sprache nimmt man dafür am Besten?
Zuerst stieß ich auf Delphi. Aber damit kann man offensichtlich nur bmp's bearbeiten. C bzw. C++ scheint auch nicht das richtige zu sein.
Nach langem suchen wurde ich dann doch auf JAVA aufmerksam. Ich dachte zunächst, dass JAVA nur im Internet sinnvoll ist. Ist aber ja offensichtlich nicht so.
Jetzt ist die Frage, ob JAVA meine Anforderungen von oben erfüllt.
Kann ich mit damit .exe-Dateien erstellen? Ich habe in diversen Büchern herumgelesen, aber nichts darüber gefunden.
Anscheinend benötigen JAVA-Programme auch immer eine JAVA-Laufzeit-Umgebung, die man dann wohl mit installieren muss?
Kann mir jemand helfen?
Hat jemand einen Vorschlag, welche Programmiersprache man für sowas üblicherweise nimmt?
Vielen Dank für eure Hilfe!!
mfg
Stefan
Hi,
- Sie sollen von jedem Anwender ausführbar sein
also auf jeder Plattform. Daher wundert mich, dass Du Dich später auf .exe (also Windows) reduzierst.
also keine Abhängigkeit von irgendwelchen Browsern oder anderen Programmen
Du hast _immer_ eine Abhängigkeit - letzten Endes vom Betriebssystem.
Welche Sprache nimmt man dafür am Besten?
Bei einem definierten Betriebssystem: eine dort übliche, kompilierbare. Bei gewünschter Einschränkungsfreiheit: eine plattformunabhängige, die dadurch andere Anforderungen ans System stellt. Im Fall von Java[1]:
Anscheinend benötigen JAVA-Programme auch immer eine JAVA-Laufzeit-Umgebung, die man dann wohl mit installieren muss?
Ja. Diese ist auf den allermeisten Systemen allerdings vorhanden. Nicht auf allen, wohlgemerkt, aber auf mehr, als wenn Du Dir nur ein einziges Betriebssystem rauspickst. Das Stichwort für das, was Du erzeugen willst, lautet Applikation.
Cheatah
[1] Das ist übrigens kein Akronym, deswegen heißt es "Java", nicht "JAVA".
Hallo,
- Sie sollen von jedem Anwender ausführbar sein
also auf jeder Plattform. Daher wundert mich, dass Du Dich später auf .exe (also Windows) reduzierst.
Das ist leicht. Kompiliere die Programme einfach für jede existierende
Plattform. ;)
Anscheinend benötigen JAVA-Programme auch immer eine JAVA-Laufzeit-Umgebung, die man dann wohl mit installieren muss?
Ja. Diese ist auf den allermeisten Systemen allerdings vorhanden.
Ist das so? Windows ist das am weitesten verbreitete System, und
dort wird kein Java mitgeliefert. (Das Microsoft-Java zähle ich
absichtlich nicht als Java, weil das verwendete Java 1.1 schon vor
6 Jahren veraltet war.)
Ich bezweifle einfach mal, daß sich übermäßig viele Benutzer eine
Java Laufzeitumgebung nachträglich installieren möchten, nur um ein
Mini-Tool verwenden zu können.
Nicht auf allen, wohlgemerkt, aber auf mehr, als wenn Du Dir nur ein einziges Betriebssystem rauspickst.
Sehe ich nicht so. Wenn es unter Windows läuft, läuft es auf den
allermeisten Maschinen. Vermutlich sind das erheblich mehr System, als
Systeme, auf denen eine JRE installiert ist. Leider.
Achtet man darauf, das Programm möglichst plattformunabhängig zu
schreiben -- was bei einem solchen Mini-Tool vermutlich nicht
sehr schwer sein sollte -- kann man Binaries für die 3 am häufigsten
verwendeten System zur Verfügung stellen, z.B. Windows, Linux und Mac.
Man würde also damit fast jede Plattform abdecken.
Andererseits:
Es würden damit nur 3 Systeme unterstützt werden, während bei der
Verwendung von Java prinzipiell jedes beliebige System unterstützt
wird, sofern eine Laufzeitumgebung installiert ist.
Jemand der z.B. Solaris verwendet, hätte damit trotzdem eine Chance
das Programm zu verwenden.
Aber wem sage ich das. :)
Ich selbst würde vermutlich versuchen Binaries UND eine Java-Version
zur Verfügung zu stellen.
Gruß
Slyh
Hi,
Ist das so? Windows ist das am weitesten verbreitete System, und
dort wird kein Java mitgeliefert. (Das Microsoft-Java zähle ich
absichtlich nicht als Java, weil das verwendete Java 1.1 schon vor
6 Jahren veraltet war.)
naja, das war der IE auch. Trotzdem wird er benutzt.
Sehe ich nicht so. Wenn es unter Windows läuft, läuft es auf den
allermeisten Maschinen. Vermutlich sind das erheblich mehr System, als
Systeme, auf denen eine JRE installiert ist. Leider.
Ich zähle jenes MS-Java durchaus dazu - es ist mangelhaft, aber vorhanden. Damit stimmt meine Aussage wieder.
Aber wem sage ich das. :)
Dem Fragesteller, denke ich, für den das durchaus nützliche Informationen sein können :-)
Ich selbst würde vermutlich versuchen Binaries UND eine Java-Version
zur Verfügung zu stellen.
Das wiederum halte ich für potenziell unsinnig. Natürlich wieder mit einem "kommt drauf an" - ganz sicher gibt es Fälle, in denen dies ohne Schwierigkeiten machbar ist. Wenn man aber die Java-Entwicklung darauf ausrichten muss, es problemarm kompilieren zu können, kann ich mir erhebliche Mängel bei der Codequalität ausmalen. Möglicherweise bin ich dazu aber in Java einfach noch zu unerfahren.
Cheatah
Hallo,
Ist das so? Windows ist das am weitesten verbreitete System, und
dort wird kein Java mitgeliefert. (Das Microsoft-Java zähle ich
absichtlich nicht als Java, weil das verwendete Java 1.1 schon vor
6 Jahren veraltet war.)naja, das war der IE auch. Trotzdem wird er benutzt.
Ja, er ist scheiße. Und die Leute sind zu faul sich was besseres
runterzuladen und zu installieren. (Genau wie bei Java.)
Der Unterschied ist nur der, daß man für den IE trotzdem noch
ansehnliche Seiten bauen kann.
Mit Java 1.1 (in der verkrätzten Version von MS) kann man nur schwer
brauchbare Anwendungen schreiben...
Ich selbst würde vermutlich versuchen Binaries UND eine Java-Version
zur Verfügung zu stellen.Das wiederum halte ich für potenziell unsinnig. Natürlich wieder mit einem "kommt drauf an" - ganz sicher gibt es Fälle, in denen dies ohne Schwierigkeiten machbar ist. Wenn man aber die Java-Entwicklung darauf ausrichten muss, es problemarm kompilieren zu können, kann ich mir erhebliche Mängel bei der Codequalität ausmalen.
Dann würde ich das natürlich auch nicht tun. Vielleicht muß ich meine
Aussage etwas präzisieren:
Ich würde Binary-Versionen und eine Java-Version bereitstellen,
sofern/sobald GJC so weit ist _jedes_ Java-Programm "verlustfrei" zu
kompilieren.
Gruß
Slyh
Hi,
naja, das war der IE auch. Trotzdem wird er benutzt.
Ja, er ist scheiße. Und die Leute sind zu faul sich was besseres
runterzuladen und zu installieren. (Genau wie bei Java.)
bzw. sie wissen es nicht besser.
Ich würde Binary-Versionen und eine Java-Version bereitstellen,
sofern/sobald GJC so weit ist _jedes_ Java-Programm "verlustfrei" zu
kompilieren.
Okay, dem kann ich mich anschließen :-)
Cheatah
Vielen Dank für eure Hilfe.
Ich werde mich wohl für Delphi entscheiden, da ich mich mit C / C++ /C# nicht auskenne.
Suche erstmal die von euch erwähnten Biliotheken.
Vielleicht klappt es ja dann.
mfg
Stefan
Hallo Stefan,
Zuerst stieß ich auf Delphi. Aber damit kann man offensichtlich nur bmp's bearbeiten. C bzw. C++ scheint auch nicht das richtige zu sein.
Das "Problem" liegt bei Windows vor .NET, nicht bei den Programmiersprachen. Das GDI, sozusagen der Grafikteil von Windows, kann nur mit Bitmaps und Metafiles umgehen. Erst GDI+ kann auch mit Jpegs umgehen. Im Framework von .Net sind dann auch Klassen dafür. Aber sicher gibt es auch für Delphi Freeware-Bibliotheken. Kostenpflichtige auf jeden Fall, z.B. LeadTools.
Ich dachte zunächst, dass JAVA nur im Internet sinnvoll ist. Ist aber ja offensichtlich nicht so.
Ist Java überhaupt sinnvoll? SCNR, nicht ernst nehmen.
Kann ich mit damit .exe-Dateien erstellen? Ich habe in diversen Büchern herumgelesen, aber nichts darüber gefunden.
Irgendwo gibt es glaub einen Compiler oder in der Art, womit man aus Java-Programmen Exe machen kann. Aber damit verliert man den Hauptvorteil einer Java-Anwendung, die Plattformunabhängigkeit.
Anscheinend benötigen JAVA-Programme auch immer eine JAVA-Laufzeit-Umgebung, die man dann wohl mit installieren muss?
Ja.
Hat jemand einen Vorschlag, welche Programmiersprache man für sowas üblicherweise nimmt?
Da ich mich lieber in .Net einarbeite, rein subjektiv: ich würde C# nehmen.
Gruß,
Martin
Hallo,
- Ich möchte gern Programme schreiben, die zum Beispiel jpg Bilder verändern (als Beispiel: jedem Bild oben rechts eine Zahl hinufügen oder Dateien auf dem lokalen Dateisystem umbenennen, vergleichen o.ä.)
Das kannst du mit ziemlich jeder Programmiersprache.
Entweder indem du alles selbst programmierst, oder indem du fertige
Libraries nimmst, die es für jede Programmiersprache geben sollte.
- Sie sollen von jedem Anwender ausführbar sein (ggf. nach einer Installation). --> also keine Abhängigkeit von irgendwelchen Browsern oder anderen Programmen
Für Java wird üblicherweise eine Java Runtime Environment benötigt.
Für dich ist ein natives Programme (z.B. EXE) vermutlich interessanter.
Es sollen also kleine Programme werden, wie solche, die man sich irgendwo als freeware-utility herunterladen kann.
Welche Sprache nimmt man dafür am Besten?
Ziemlich egal. Nimm Java oder Delphi oder C/C++. Was du willst. Dir
muß nur klar sein, daß Java von sich aus erstmal eine Laufzeitumgebung
benötigt.
Zuerst stieß ich auf Delphi. Aber damit kann man offensichtlich nur bmp's bearbeiten.
Für Delphi gibt es sicherlich passende Libraries, die auch JPG
laden und speichern können. (Sobald die Grafik geladen wurde, kannst
du diese üblicherweise unabhängig vom ursprünglichen Dateiformat
bearbeiten.)
C bzw. C++ scheint auch nicht das richtige zu sein.
Warum? Da gilt das gleiche wie bei Delphi.
Nach langem suchen wurde ich dann doch auf JAVA aufmerksam. Ich dachte zunächst, dass JAVA nur im Internet sinnvoll ist. Ist aber ja offensichtlich nicht so.
Kommt drauf an. Es wird aktuell (noch?) primär im Serverbereich
eingesetzt. Das liegt aber vor allem daran, daß eine Laufzeitumgebung
installiert werden muß, was die meisten Anwender vermutlich überfordert.
Leider.
Ansonsten spricht gegen Java nichts. Es ist sogar so, daß die mit-
gelieferte API bereits das tun kann, was du willst, ohne daß du noch
zusätzliche Libraries verwenden müßtest.
Jetzt ist die Frage, ob JAVA meine Anforderungen von oben erfüllt.
Prinzipiell ja.
Kann ich mit damit .exe-Dateien erstellen? Ich habe in diversen Büchern herumgelesen, aber nichts darüber gefunden.
Du kannst Java-Programme mit GJC in native Programme für verschiedene
Plattformen kompilieren. Allerdings ist GJC aktuell noch in Entwicklung.
Inbesondere AWT und Swing funktionieren nur sehr eingeschränkt.
Du müßtest selbst rausfinden, ob die von dir benötigte Funktionalität
bereits unterstützt wird.
Ansonsten ist eben, wie geschrieben, die Laufzeitumgebung notwendig.
Anscheinend benötigen JAVA-Programme auch immer eine JAVA-Laufzeit-Umgebung, die man dann wohl mit installieren muss?
Mit o.g. Einschränkung, ja.
Hat jemand einen Vorschlag, welche Programmiersprache man für sowas üblicherweise nimmt?
Um kleine Freeware-Tools zu schreiben, wird üblicherweise (Visual) Basic,
C/C++ oder Delphi verwendet. Java eher seltener, weil eben eine
Laufzeitumgebung heruntergeladen und installiert werden muß, wozu
die meisten Leute nicht bereit sind.
Gruß
Slyh
C bzw. C++ scheint auch nicht das richtige zu sein.
Ich glaube es gibt nichts das nicht in C oder C++ programmiert werden kann!
Java wäre eigentlich meine erste Wahl da deutlich einfacher als C/C++ aber in Java ist die notwendige Runtime ein Problem.
Wenn Du hingegen Plattform unabhängig sein willst (Win, Max, Unix,...) dann ist Java wieder klar im Vorteil.
PHP, Perl,... würde ich da nicht nehmen da Du dort den Quellcode weitergeben müsstet (bei Java zumindest nur den P-Code).
Bye
Gerd