Java verkehrt herum lernen.

Den Bauplan für ein Auto braucht man auch nur wenn man es zusammenschraubt. Danach benötigt man ihn nicht mehr und auch nicht die Funktionsweise der Maschinen, die Beteiligt waren. Und demontiert man das Auto, kann man noch lange nicht die Maschinen rekonstruieren, die beteiligt waren...
Noch deutlicher wird es wenn man einen Kuchen nimmt. Zutaten -> Teig -> Kuchen kann man nicht einfach umkehren. Den Argumentationen des TE kann ich schon lange nicht mehr folgen. Wenn er wirklich Programmierung in Java lernen möchte, sollte er sich ein Buch kaufen, sich das SDK herunterladen und dann mit einem Editor bzw. einer IDE loslegen. Programmieren lernt man im Endeffekt nur durch programmieren.
 
Vielleicht denkt er, der übliche Roundtrip beim Programmieren ist Java-Datei schreiben->Compilieren->Testen->Decompilieren->Anpassen->.... :hehehe:
 
Java-Datei decompilieren->Anpassen->Compilieren->Testen-...

Nein dies war meine Auffassung.
Gut ihr hat es nun lang und breit erklaert. Ich nehme es an. Zufrieden!
Es haette ja auch gehen koennen, wenn......
If the man is dead
he lives
endif

Im Basic geht das. Im Wahren Leben nicht.
Die Welt der Informatik hat sich geaendert. Programme die frueher in Basic liefen, benoetigten nicht viel Speicher und hatten auch nicht viel Speicher zur Verfuegung. Es musste noch alles programmiert werden.
Heutzutage wird mit Modulen, fertigen Bauteilen gearbeitet. Ob diese dann noch manipulierbar sind sei dahingestellt.
Beim VO gab es ein Befehl fuer Tabelle. Aber die Tabelle an sich war dann nicht mehr manipulierbar, dass man die 3te Kolonne rot und die vierte in Blau dargestellt bekam. Alles war schwarz weiss.
Auch konnte man zB sich nicht einen einzelnen Buchstaben in einer anderen Farbe darstellen und ueberall dort wo er auftauchte ihn in dieser Farbe sehen. Das ging aber bei dem einfachen Basic.

Es wurde vieles besser, aber auch manches fiel unter den Tisch. Man wurde mit den neuen Programmen, (VO) in Schranken gezwungen zu denken und zu programmieren. Module wurden mit Befehlen bereitgestellt, wie zum Beispiel das auflisten eines ablaufenden Monats. Ich hab das in 100 Zeilen programmiert.

Aber ich bin auch damals schon an Grenzen gestossen mit den damaligen Informatikern.
Leute die dies gelernt hatten und mir gesagt haben dass diese oder jene Funktion nicht machbar ist.
Nach 3 Monaten konnte ich sie dann vom Gegenteil ueberzeugen.

Es wuerde mich schon reizen Java zu lernen. Wenn ich da nicht so behindert waere.
 
Hallo TE!

Höre endlich auf zu jammern wie schön es doch früher war! Die Welt ändert sich.

Das womit man vo 20 Jahren zufrieden war, reicht heute nicht mehr (denke an den Funktionsumfang von z.B. Textberatbeitungssoftware oder dass man kaum imstande war Bilder zu editieren). PacMan war auch mal in, ist es aber nicht mehr.

Ich bin auch in dieser Zeit aufgewachsen. Habe meine ersten Schritte mit Basic gemacht (ohne Labels, ohne While-Schleife, ohne else bei if-then)Beim 6502-Assember musste man schauen, wie man mit 3 Registern zurecht kommt. 64kB konnte man nicht vollkriegen. An einem gemütlichen Winterabend mit einem Glas Wein schweift man gerne in die Vergangenheit. Dann bin ich aber froh, dass es heute ein Wenig anders aussieht.

Wenn du deine Energie, die du in die Trauerarbeit und Selbstmitleit steckst (hört sich hart an, aber das zieht sich wie ein roter Faden durch deine Postings) in Java investieren würdest könntest du in wenigen Tagen mit einem aktuellen Werkzeug programmieren.
 
Die Welt der Informatik hat sich geaendert. Programme die frueher in Basic liefen, benoetigten nicht viel Speicher und hatten auch nicht viel Speicher zur Verfuegung.
konnten aber auch nicht so viel, und liefen meist auch nicht wirklich stabil.
Aber tendenziell gebe ich dir schon recht: früher hat man versucht aus der gegebenen HW das letzte rauszukitzeln, heute -wo Speicherplatz und Rechenleistung inflationär vorhanden sind- wird gerne mal "schlampiger" gearbeitet. Was aber nichts daran ändert, dass heutige Programme meist stabil laufen und einen enormen Funktionsumfang haben :)
 
heute -wo Speicherplatz und Rechenleistung inflationär vorhanden sind- wird gerne mal "schlampiger" gearbeitet.
Bytecode gab's aber damals wie heute, und damals wie heute gab's gewisse "Eigenheiten" beim Dekompilieren von Bytecode. Hier muss ich dark.rider wirklich Recht geben, die Schwierigkeiten des TOs haben nichts mit der gesteigerten Komplexität von Computersystemen zu tun, sondern schlicht damit, dass er sich augenscheinlich nicht mit Technologien abseits des ihm vertrauten beschäftigen will…
 
...die Schwierigkeiten des TOs haben nichts mit der gesteigerten Komplexität von Computersystemen zu tun, sondern schlicht damit, dass er sich augenscheinlich nicht mit Technologien abseits des ihm vertrauten beschäftigen will…
keine Frage, ja.
 
Es wuerde mich schon reizen Java zu lernen. Wenn ich da nicht so behindert waere.

:confused: Wo ist denn das Problem? Für Java gibt's doch sowohl SDKs wie auch Tools gratis und für praktisch alle Plattformen - bei fast jeder anderen Sprache ist das teurer und weniger universal erhältlich.
 
Im Basic geht das. Im Wahren Leben nicht.
Die Welt der Informatik hat sich geaendert. Programme die frueher in Basic liefen, benoetigten nicht viel Speicher und hatten auch nicht viel Speicher zur Verfuegung. Es musste noch alles programmiert werden.
Heutzutage wird mit Modulen, fertigen Bauteilen gearbeitet. Ob diese dann noch manipulierbar sind sei dahingestellt.
Beim VO gab es ein Befehl fuer Tabelle. Aber die Tabelle an sich war dann nicht mehr manipulierbar, dass man die 3te Kolonne rot und die vierte in Blau dargestellt bekam. Alles war schwarz weiss.
Auch konnte man zB sich nicht einen einzelnen Buchstaben in einer anderen Farbe darstellen und ueberall dort wo er auftauchte ihn in dieser Farbe sehen. Das ging aber bei dem einfachen Basic.

Es wurde vieles besser, aber auch manches fiel unter den Tisch. Man wurde mit den neuen Programmen, (VO) in Schranken gezwungen zu denken und zu programmieren. Module wurden mit Befehlen bereitgestellt, wie zum Beispiel das auflisten eines ablaufenden Monats. Ich hab das in 100 Zeilen programmiert.

Warum soll man das Rad immer wieder neu erfinden? Es gibt in Java viele Utilityklassen und vor allem Frameworks, die man einbinden und benutzen kann. Vorteil hierbei: Man spart Zeit, Geld und nerven. Und das beste: Ihre Funktionsweise ist meistens sogar durch Unittests abgetestet worden.

Du hast ebenfalls die Möglichkeit ihre Funktionsweise anzupassen (Stichwort Override, Extend). Auch der Aspekt mit dem Speicher ist völliger Mumpitz. Heutige Java Programme müssen nicht viel Speicher verbrauchen. Der Programmierer muss sich einfach nur an einfache Regeln in der Java Programmierung halten (z.B. muss nicht jede Variable als Field deklariert werden und es ist manchmal auch Sinnvoll große Methoden in mehrere kleine aufzusplitten oder von mir aus auch mit Blöcken zu arbeiten).

Wie du vielleicht siehst, ist Java eine wesentlich komplexere Programmiersprache als Basic. Wenn man sich an die Spielregeln hält (Dokumentieren, Unittests, Formatierung des Quellcodes nach Java-Konventionen(!)), kann man aber sehr elegante Programme schreiben, die auch andere Personen warten und verstehen können.

Das ist etwas, was damals gefehlt hat. Nur weil der Programmierer meinte, das seine Programme sicher laufen, musste das nicht zwangsläufig der Realität entsprechen.

Wie bereits schon mehrfach erwähnt, kann in Dekompiler nicht annähernd den Sourcecode wieder herstellen. Beim Compile-Vorgang wird nicht nur der Sourcecode in Java-Byte-Code umgesetzt, sondern es werden in weiteren Schritten auch vom Compiler optimierungen durchgeführt, die den eigentlichen Programmcode von der Struktur her in solch einer Weise verändern, dass man nur mit viel Know-How ein Reverse-Engineering durchführen kann.

Zu deiner Eingangsfrage, wie man am besten jar Dateien selbst erstellt:

Apache Ant oder Maven.

Beide Programme selbst vollständig zu verstehen erfordert aber auch sehr viel Zeit und man muss hierbei auch die Lust haben, sich dieses Wissen anzueignen.

Wenn du vorhast ein größeres Projekt zu Erstellen wäre es auch ratsam sich mit Subversion zu beschäftigen :)
 
TE! TO!
sagt mal was bedeutet das?
Ist wohl auf mich gemuenzt.
Na gut, es ist nicht die Software die mir zu schaffen macht.
Eher die Zeit die ich aufbringen werde und muss, um mich durchzulesen.

Und wie ich sehe habt ihr alle damit keine Probleme.
Na probiert es mal dass ihr euch ein Auge zudeckt und das andere Auge durch ein Milchglas sehen lasst.
Und dann noch mit Vergroesserungsglas arbeiten muesstet.

Wenn das kein Handicap ist!
Ist es das Wert? Nur um wem was zu beweisen? Mir wohl nicht.
Ich habe schon grosses fertiggebracht. Mit meinen Mitteln.
Und der Kumpel der mein Programm in Java umgesetzt hat, beweist ja auch, dass es gut ist.
Ihr habt ja vielleicht etwas damit rumgespielt?

Wer keine Ahnung von Java hat, weiss auch nicht was Java ist und wie es funktioniert.
Eine Sprache lernen ist schoen und gut. Fuer manche benoetigt man 10 Jahre. Fuer japanisch das ganze Leben. Fuer Java vielleicht weniger. Dennoch ist es eine Sprache.

Ich hab gedacht ich probier es mal auf die alte Tour. Dass sich die Daten aber nicht rueckgaengig machen lassen, ist doch nicht meine Schuld. Und es reizt niemand von euch Informatikern es doch machbar werden zu lassen.
Beginnend am eigenen Programm, was man kennt.
Ach herrjeh. Ich bin auch womoeglich 50 Jahre zu spaet auf die Welt gekommen.

Informatik autodidaktisch gelernt. Mathe keine Kenntnisse.
Und ich sehe auch dass ich mich auch hier in die Reihe stellen muss, soll, sollte und nicht mehr eigen denken darf. Nur noch in Modulen denken soll.

Oder bin ich auch damit im Irrtum?
 
Und es reizt niemand von euch Informatikern es doch machbar werden zu lassen.
Und dass das zweite Gesetz der Thermodynamik noch immer hält liegt auch nur daran dass die ganzen Physiker zu uninteressiert sind…

Oder bin ich auch damit im Irrtum?
Ja. Aber da die Frage offensichtlich rhetorisch war scheinst du gar nicht daran interessiert zu sein was daran zu ändern.
 
Zuletzt bearbeitet:
Mich beschleicht langsam das Gefühl, dass der Threadersteller hofft, dass ihm jemand das Programm decompiled und ihm lesbaren Sourcecode liefert;-)
 
Mich beschleicht langsam das Gefühl, dass ich gar nicht mehr weiss was der Threadersteller eigentlich sagen will :noplan:
 
Mich beschleicht langsam das Gefühl, dass ich gar nicht mehr weiss was der Threadersteller eigentlich sagen will :noplan:

Was evtl. daran liegt, dass Deutsch nicht seine Muttersprache ist.

Ansonsten glaube ich, dass er anprangert, dass "damals" (TM) alles besser war und die Programme noch einfach und pragmatisch geschrieben wurden und er nicht "mal eben" durch Reverse-Engineering Java erlenen kann, weil das alles so komplex ist.
 
a) Durch ein Milchglas kann man nicht sehen.
b) TE = Threadersteller = Themenersteller = du, in diesem Fall.
c) Wenn der Compiler optimiert, wird der Code umstrukturiert und manches gar komplett weggelassen. Solange nicht Informationen hinzugefügt werden, um das zu rekonstruieren, ist es unmöglich, den ursprünglichen Zustand wieder herzustellen. Mittels heuristischer Verfahren könnte man eventuell "so könnte es mal gewesen sein"-Versionen erzeugen. Diese wären aber niemals eindeutig (nicht ohne entsprechende Informationen), wodurch es schier unendlich viele mögliche (von der Maschine generierte) Versionen gäbe. Allesamt (naja, bis auf eine vllt. ;)) hätten aber nicht unbedingt etwas mit der wirklichen Ursprungsversion des Quelltextes zu tun, daher wäre so etwas unsinnig.
Es gibt aber tatsächlich ein verfahren, welches aus dekompiliertem Bytecode wieder etwas sinnigeres, an den Ursprungsquelltext angelehntes, machen kann: ein erfahrener Programmierer. Leider ist meines Wissens nach kein Algorithmus bekannt um diesen hierbei zu ersetzten.
 
Ich lach mit tot, der verarscht uns doch alle ^^
 
@Diskordia
Ich verarsche niemanden. Wie kommst du darauf?
Ja stimmt ich bin auch kein Deutscher.
Frage:
Muss man ein Profi sein wenn man in euer Forum kommt?
Frage:
Darf man Probleme nicht andersrum versuchen anzupacken?

Ich hab es ja verstanden dass es nicht geht.
Warum kniet ihr denn so auf mir rum? Ich habs ja begriffen.

Kann es auch sein, dass ich, weil ich kein Profi bin, nicht in dieses Forum gehoere?
Kein Problem. Ich habe es ja oben schon erwaehnt, dass ihr mein Konto loeschen koennt.

Danke fuer eure Muehe.
 
Zurück
Oben Unten