Wie werden Fernseher programmiert?



  • java -.-''''''''''''' schrieb:

    ne, ich glaube eher, dass sich die java-controller gut verkaufen, weil java einfacher ist als c oder eine andere hardware-nahe programmiersprache.

    Hat er doch weiter oben selbst schon geschrieben...



  • java -.-''''''''''''' schrieb:

    dies ist wahrscheinlich der einzige grund.

    Nicht unbedingt. Java ist auch portabler als eine maschinennahe Programmiersprache. Wenn der Hersteller bei dem nächten Modell einen anderen Controller verwenden will, müsste er ein C Programm vielleicht komplett neu entwickeln lassen. Und vielleicht kann man dasselbe Programm auch auf Fernsehern aus einer anderen Baureihe verwenden. Nur so ein Gedanke. Hab mich noch nie mit der Programmierung von Fernsehern an sich beschäftigt.



  • ja denkt denn keiner von euch an die jvm? ohne die läuft, wenn man java verwendet, garnix!

    wenn ein hersteller java verwenden will, dann muss er erstmal die jvm portieren. dafür braucht er c, vielleicht sogar assembler, dann kann das eigentliche java programm ausgeführt werden. man braucht auch mehr hardware (ram usw.).

    wenn er dann ein neues modell hat, dann geht das ganze von vorne los, zuerst die jvm portieren usw.

    wenn man das alles gleich in c macht, kommts aufs gleiche raus, man braucht bloß weniger gute hardware und das programm läuft schneller.


  • Mod

    Tim schrieb:

    SeppJ schrieb:

    Aber es gibt Java-Mikrocontroller und die verkaufen sich auch gut genug, um massenproduziert zu werden.

    Welche sind da zu nennen? Sind mir bisher noch nicht begegnet, würde mich interessieren.

    Ich kenne mich in der Welt der Microkontroller nicht so aus. Kurzes Googeln findet viele JVMs für viele gängige Controller. Vor Jahren habe ich bei Heise auch von einem Chip gelesen, der die JVM schon eingebaut hat. Kann den Artikel leider gerade nicht finden. Nein, der artikel erschien nicht am ersten April und ich fühlte mich nach dem Lesen so wie so mancher hier im Thread.

    java und die jvm... schrieb:

    wenn ein hersteller java verwenden will, dann muss er erstmal die jvm portieren.

    Nein. Ein Hersteller portiert die JVM (möglicherweise sogar der Hersteller des Chips), andere kaufen diese ein.

    wenn er dann ein neues modell hat, dann geht das ganze von vorne los, zuerst die jvm portieren usw.

    Dies ist ein ganz wunderbares Eigentor. Das gilt nämlich für ein natives Programm erst Recht. Wenn du direkt in Java programmiert hättest, dann holst du die fertige JVM für den neuen Chip und bist fertig.

    Worauf willst du überhaupt hinaus? Du kannst doch ganz schnell selber suchen und finden: Es gibt die Dinger wirklich! Da kannst du dir noch so viele Argumente ausdenken, warum es sie nicht geben sollte, gegen diesen Fakt kommst du nicht an! Das heißt, viele Entscheider haben bereits die Argumente für und wieder angehört und sind zu dem Schluss gekommen, dass die Entwicklung in Java in ihrem Fall ein besseres Kosten-Nutzen-Verhältnis hat.



  • gut.

    ich will jetzt ein produkt sehen, das mit einem java microcontroller läuft. und jetzt komm mir nicht mit irgendwelche handys oder kaffeemaschinen 🙄



  • SeppJ schrieb:

    Dies ist ein ganz wunderbares Eigentor. Das gilt nämlich für ein natives Programm erst Recht. Wenn du direkt in Java programmiert hättest, dann holst du die fertige JVM für den neuen Chip und bist fertig.

    Wen man allerdings einen neuen Chip vom gleichen hersteller verwendet, laufen die Programme meist ohne Änderungen. Und wen man die jvm erstmal für den Controller portieren muss kann man eigentlich auch den Compiller des alten Chips für den neuen portieren.

    0x0ERROR


  • Mod

    bla bla bla schrieb:

    gut.

    ich will jetzt ein produkt sehen, das mit einem java microcontroller läuft. und jetzt komm mir nicht mit irgendwelche handys oder kaffeemaschinen 🙄

    Und wie soll ich dir das zeigen? Es steht schließlich nicht im Werbeprospekt. Und meine Waschmaschine nehme ich bestimmt nicht auseinander um herauszufinden, auf was sie läuft. Guck in Stellenanzeigen. Meinst du ein "embedded java developer" dreht den ganzen Tag nur Däumchen für Produkte, die es gar nicht gibt?



  • ######### schrieb:

    kann gut sein. trotzdem muss die java virtual machine portiert werden. und dafür braucht man höchstwahrscheinlich c.

    Und c-compiler für den befehlssatz des chips fallen vom himmel.



  • SeppJ schrieb:

    0x0ERROR schrieb:

    SeppJ schrieb:

    Falls die nötige Rechenleistung sehr hoch ist, so dass der Java-Overhead nur wenig zählt, dann sind sogar die Stückkosten kein Argument mehr.

    Zur Rechenleistung: BEi eingien µ-Controllern stehen einem nur 1K Ram
    zur verfügung.

    Ist ja schön für dich. Es verlangt schließlich niemand, dass man alles mit Java programmiert. Aber es gibt Java-Mikrocontroller und die verkaufen sich auch gut genug, um massenproduziert zu werden. Glaubst du, die Käufer sind alle dumm und nur du bist in der Lage die Wahrheit zu erkennen?

    Gerade in der Massenfertigung geht es um jeden Cent und wenn so ein Java µC nur 1 Cent mehr kostet als ein gewöhnlicher µC der mit C usw. programmiert werden muss, dann wird weiterhin der normale µC mit C verwendet.

    Sun hat selbst nie nen eigenen µC auf PicoJava Basis konstruiert und
    die paar wenigen die es können, muss man mit der Lupe suchen.
    Der bekannteste dürfte noch ARM mit Jazelle Support sein, aber ARM µC sind schon wieder recht fette und somit auch teure µC.
    Für den Smart TV kann das okay sein, für die Waschmaschine nimmt man aber definitiv was anderes.

    http://en.wikipedia.org/wiki/Java_processor



  • Ein weiterer Punkt der gegen Java spricht ist übrigens der, dass man den Code gar nicht so gut auf den µC optimieren kann.

    Und gerade dann, wenn das nur ein kleiner schwacher µC mit wenig RAM ist, wird das Optimieren umso wichtiger und C gewinnt Meilenweit gegen Java.



  • eben, wie ich es vorher schon sagte.

    es macht eben doch einen unterschied, ob man ein sparsames, genügsames c-programm hat, das mit ein paar Kb auskommt, oder ein java-monstrum, das die Megabytes nur so verschlingt.



  • µC schrieb:

    Und gerade dann, wenn das nur ein kleiner schwacher µC mit wenig RAM ist, wird das Optimieren umso wichtiger und C gewinnt Meilenweit gegen Java.

    Wie weit würde dann wohl Assembler gegen Java gewinnen 🙄

    0x0ERROR



  • 0x0ERROR schrieb:

    µC schrieb:

    Und gerade dann, wenn das nur ein kleiner schwacher µC mit wenig RAM ist, wird das Optimieren umso wichtiger und C gewinnt Meilenweit gegen Java.

    Wie weit würde dann wohl Assembler gegen Java gewinnen 🙄

    0x0ERROR

    java < c < asm

    das galt schon immer.



  • ######### schrieb:

    kann gut sein. trotzdem muss die java virtual machine portiert werden. und dafür braucht man höchstwahrscheinlich c.

    Wenn man auf einen JIT verzichten kann, ist es gar nicht unbedingt so viel Arbeit, eine JVM auf eine neue Architektur zu portieren. Meist dürfte sich die Frage aber gar nicht erst stellen, weil der Chipvendor schon ein JRE bereitstellt.



  • µC schrieb:

    Und gerade dann, wenn das nur ein kleiner schwacher µC mit wenig RAM ist, wird das Optimieren umso wichtiger und C gewinnt Meilenweit gegen Java.

    Wenn du so einen µC hast, dann verwendest du natürlich kein Java. Aber ich hab im Zusammenhang mit Fernsehern auch was von verbauten Quadcore Prozessoren gelesen. Bei weitem nicht jeder µC ist so leistungsschwach.



  • ja. schrieb:

    0x0ERROR schrieb:

    µC schrieb:

    Und gerade dann, wenn das nur ein kleiner schwacher µC mit wenig RAM ist, wird das Optimieren umso wichtiger und C gewinnt Meilenweit gegen Java.

    Wie weit würde dann wohl Assembler gegen Java gewinnen 🙄

    0x0ERROR

    java < c < asm

    das galt schon immer.

    bzw. da hab ich mich wohl verschrieben. das ist genau andersrum

    die kleineste speichernutzung hat natürlich asm.

    asm < c < java

    ich denk mal, das gilt immer, auch wenn man die jvm aufs maximum optimieren würde.


  • Mod

    edit schrieb:

    asm < c < java

    Tja, trotzdem werden in der realen Welt Computer mit Java und C programmiert. 😮 Erstaunlich! Man könnte meinen, es gibt noch andere Größen, die wichtig sein könnten 🙄 .





  • SeppJ schrieb:

    edit schrieb:

    asm < c < java

    Tja, trotzdem werden in der realen Welt Computer mit Java und C programmiert. 😮 Erstaunlich! Man könnte meinen, es gibt noch andere Größen, die wichtig sein könnten 🙄 .

    ach? welche betriebssysteme werden denn in java programmiert? also windows, linux und macos bestimmt nicht.

    java ist für sowas nicht gemacht und auch nicht geeignet. oder versuch mal, einen kernel in java zu schreiben.

    was soll denn das jetzt hier überhaupt? es kann schon microcontroller in java geben. aber aktuell sind und bleiben es c-controller.

    theoretisch kannst du wahrscheinlich auch in python einen microcontroller schreiben. das braucht eben bloß keiner.



  • Microcontoller sind heute ziemlich fett. Da geht schon mal Java. Und Linux. Es kommt auf die Anwendung an. Sicher gibt es Geräte, da kommt es auf jeden Cent an, wie beispielsweise Kinderspielsachen mit einem Microcontroller. Aber bei einer Waschmaschine kann der Controller ruhig ein paar Cent mehr kosten. Und bei einem Fernseher kommt es echt auf Features an. Da läuft sicher schon ein ausgewachsenes Betriebssystem. Und die ursprüngliche Frage bezog sich auf Fernseher und nicht auf Kinderspielsachen.

    Mit unserem Fernseher kann ich Youtube-Videos anschauen. Da wird der Hersteller (Toshiba) kaum einen Browser und Flash programmiert haben, sondern eher ein Linux genommen und ein wenig angepasst.

    In der Bedienungsanleitung ist übrigens die GPL abgedruckt mit dem Hinweis, dass die Software bei Bedarf geliefert werden kann. So viel zu der anti-GPL-Haltung der Hersteller.

    Und kein Hersteller von irgendwelchen Geräten wird eine JVM oder eine Compiler auf den Prozessor portieren. So etwas wird von der Stange beim Prozessorhersteller gekauft.


Anmelden zum Antworten