Java für Maschinen- und Roboterprogrammierung?

...komplette Frage anzeigen

3 Antworten

Kommt ganz darauf an auf welchem Level. Einen Treiber für ein Gerät kannst du mit Java nicht schreiben, ein grafisches Programm auf Basis eines Treibers dagegen schon.

Antwort bewerten Vielen Dank für Deine Bewertung

Es ist so, dass Java eine meines Erachtens einsteiger freundlicheste Sprache ist, Java ist zwar extrem lahm, bei simplen Programmen / Apps fällt das kaum ins Gewicht und spaart viel Zeit, weil das Programm nicht für die einzelnen Plattformen speziell geschrieben werden muss.

Aber eine Sache hast du falsch verstanden, "Ich habe im Zuge meines Maschinenbaustudiums grundlegende Kenntnisse in Java erworben

Es ging nicht darum Java zu lernen, du hast Programmieren an Hand des Beispieles von Java gelernt, die Fähigkeit, die die Uni bei dir entwickeln wollte, war es Verständnis für die Syntax, die durchführung sowie die Logik es Programmierens zu bekommen.

Es ist wesentlich leichter eine programmiersprache zu lernen, wenn man bereits programmieren kann.

Meiner Erfahrung nach, wenn man von Java kommt und c übt, dauert es ein paar Stunden, dann läuft es schon verhältnismäßig unfallfrei.

Du hast programmieren gelernt und nicht Java, Java war nur das Fallbeispiel.

Antwort bewerten Vielen Dank für Deine Bewertung

Java ist eine Makro-Sprache. D.h., dass Java selbst mit C und Assembler programmiert wurde, indem man hier Befehlssätze zusammen gelegt und ein angenehmeres Befehls-Interface erschaffen hat, welches dann auch noch unterschiedlich für jede Maschine interpretiert werden muss.

Diese vielen Zwischenschritte lassen keine Echtzeit-Programmierung zu und die ist für direkte Maschinen-Programmierung unablässig, da die Maschine hier unmittelbar reagieren muss.

Stell Dir vor ein Roboter drückt beim Händeschütteln zu fest zu. Bevor er dann in Java berechnet hat, dass er den Druck wieder lösen muss, ist Deine Hand bereits Matsche.

So geht Java.

Java ist nett, wenn man plattformübergreifend programmieren will, denn so erspart man sich die doppelte Arbeit für dasselbe Programm und man muss außerdem keine plattformspezifischen Kenntnisse haben. So gesehen ist Java das Mittel der Wahl, wenn man kaum Ahnung hat/haben will. Nichts für Ungut, aber Java ist so eine lahme Krücke, doch jeder will ein Held am PC sein und da ist das nun mal der einfachste Weg. ;))

Wenn Du in Echtzeit und maschinennah programmieren willst, dann kommst Du an Assembler und C nicht vorbei. Für weiterführende System-Software kommst Du auch an C++ kaum vorbei. Alles Andere ist plattformabhängig und Makro.

Antwort bewerten Vielen Dank für Deine Bewertung
Tschoo 11.10.2017, 18:41

Der vorletzten Absatz von MarkusGenervt gehört ihm um die Ohren geschlagen (Populist einfache "Lösungen" für komplexe ... -- AfD)

Der erste Absatz ist einfach falsch.

Richtig ist, das Java nicht in Maschinencode übersetzt wird, also im Prinzip eine Interpretersprache ist, was für Echtzeit-Programmierung nicht geeignet ist, hioer dann eher C, C++ oder auch Fortran.

0
MarkusGenervt 11.10.2017, 18:46
@Tschoo

Hast Du mich gerade als AfD'ler angepisst???

Du solltest Dir mal Dein Schandmaul mit Seife auswaschen!!! Ich glaube es hackt!?!

So brauchst Du hier gar nicht erst anfangen. Das kann man auch vernünftig makeln.

0
SonRatgeb 11.10.2017, 19:04
@Tschoo

Liegt es also nur an der Geschwindigkeit mit der die Befehle verarbeiet werden können?

0
MarkusGenervt 11.10.2017, 19:10
@SonRatgeb

Ja, durch die Übersetzung brauchen die Befehle mehr Zeit. Außerdem beinhalten die Java-Befehle auch Steuerungsabläufe, die für eine bestimmte Aufgabe evtl. gar nicht nötig sind und somit zusätzlich Zeit verschwenden.

0
FireEraser 11.10.2017, 19:41

"dass Java selbst mit C und Assembler programmiert wurde"

Streng genommen wurde Java bzw. Hotspot in C++ geschrieben.

"unterschiedlich für jede Maschine interpretiert werden muss"

Da muss gar nichts kompiliert werden. Hotspot verwendet hauptsächlich JIT Kompilierung und das Android Runtime ausschließlich AOT Kompilierung.

"Stell Dir vor ein Roboter drückt beim Händeschütteln zu fest zu. Bevor er dann in Java berechnet hat, dass er den Druck wieder lösen muss, ist Deine Hand bereits Matsche."

Das ist ein richtig schlechtes Beispiel. Den Unterschied zwischen einem Java- und einem C-Programm würdest du in diesem Fall gar nicht merken.

Den Unterschied merkt man zum Beispiel, wenn man mit Java ein großes Array kopiert, das ist richtig langsam. Das macht aber auch kein Depp, denn in Java gibt es die native System.arraycopy() Methode.

"So gesehen ist Java das Mittel der Wahl, wenn man kaum Ahnung hat/haben will."

Du willst mir also sagen der Großteil der Programmierer im Enterprise Bereich hat keine Ahnung? Da ist Java klar am weitesten verbreitet.

"Nichts für Ungut, aber Java ist so eine lahme Krücke"

In diesem Fall wäre C ein Opa mit Rollator, der ist auch nicht viel schneller. Interessanter wäre da wohl eher der Unterschied von Java zu anderen nicht nativ kompilierten Sprachen wie Python.

"Wenn Du in Echtzeit und maschinennah programmieren willst,"

Echtzeit Programmierung kannst du auf einem non-RTOS sowieso vergessen und auf RTOS Systemen läuft die JVM gar nicht.

0

Was möchtest Du wissen?