Ask a Scientist
Niemand kann alles wissen. Auch wir nicht. Aber wir können nachfragen. Schreib uns, was dich im Bereich der Elektrotechnik & IT interessiert und wir schicken es weiter. An Expert:innen, die auch nicht alles wissen. Aber die Antwort auf deine Frage.
Wie wurden Programmiersprachen wie z.B. Python, Java, C++ entwickelt?
Von Hao
Wie wurden Programmiersprachen wie z.B. Python, Java, C++ entwickelt?
Von Hao
Vorab – diese Programmiersprachen wurden aus einem wichtigen Grund entwickelt:
Computer und Menschen sprechen unterschiedliche Sprachen. Während die Sprachen der Menschen aus umfangreichen Alphabeten bestehen, besteht das Alphabet eines Computers nur aus Eins (1) und Null (0). Wie es auch unter uns Menschen unterschiedliche Sprachen und Dialekte gibt, mit denen wir uns untereinander verständigen, haben wir für das Programmieren eines Computers Sprachen entwickelt, die es uns erlauben in einer für uns Menschen verständlichen Form Programmcode zu verfassen.
Die Informatik ist die Welt der Einsen und Nullen, eine binäre Welt. Ein Computer arbeitet ausschließlich mit diesen Werten: einzelnen Bits (1 oder 0), in Blöcken von 8 Bits auch als Bytes bekannt. In den Anfangstagen war das die Art und Weise wie programmiert wurde. In Form von Binärcode auf Lochkarten.
Der Mensch ist nun nicht so gut darin ausschließlich mit binären Zahlen zu arbeiten wie ein Computer. Stell dir vor, dein Programm, das du schreibst, wäre eine reine Aneinanderreihung von 0 und 1. Das zu verstehen und Fehler zu erkennen wäre sehr schwierig.
Der erste Ansatz, das einfacher zu machen, war Assembler-Code. Einzelne Bit-Folgen, welche für bestimmte Befehle auf der CPU stehen, wurden mit Namen versehen. Dies ermöglichte Programme wie das folgende “Hallo Welt” Beispiel zu erstellen (Alles hinter den Strichpunkten (;) ist ein Kommentar, also nur für uns Menschen. Der Computer ignoriert diese).
Assembler Beispiel
Diese Art von Programmiersprache ist auf einen bestimmten Computer (bzw. dessen Prozessor) ausgelegt und funktioniert auch nur dort. Stell dir das vor wie einen Dialekt oder unterschiedliche Fremdsprachen. Jeder Typ von CPU (auch Hauptprozessor) spricht seinen eigenen Dialekt.
Assembler ist immer noch sehr schwer zu verstehen, aber auf jeden Fall besser lesbar, reiner Binärcode. Programme in Assembler zu schreiben ist aber immer noch sehr aufwendig. Vor allem sieht ein in Assembler geschriebenes Programm für verschiedene Prozessoren von handelsüblichen PCs oder aus dem mobilen Bereich (wie Smartphones oder Tablets) komplett anders aus.
Um Programme einfacher zwischen unterschiedlichen Systemen tauschen zu können, wurden dann bald erste, so genannte höhere Programmiersprachen, entwickelt. Zu den ersten zählen Sprachen wie FORTRAN oder LISP, die auch heute noch in bestimmten Bereichen oder in moderneren Varianten im Einsatz sind. Der wesentlichste Unterschied zwischen Assembler und höheren Programmiersprachen ist vor allem der, dass höhere Programmiersprachen unabhängig vom Prozessor sind. Das bedeutet, ich kann ein Programm in einer solchen Sprache schreiben und denselben Code auf unterschiedlichen Plattformen (heute wäre dies zB. der PC und das Smartphone) zum Laufen bringen.
Eine weitere dieser Sprachen ist C, der Urvater von C++, das auch heute immer noch viel verwendet wird. Im Vergleich zum vorherigen Assembler “Hallo Welt” Beispiel findest du unterhalb ein „Hallo Welt“ Programm, geschrieben in C.
C Beispiel
Diese paar Zeilen machen im Grunde dasselbe wie die fast doppelt so vielen Zeilen Code in Assembler. Du kannst es aber unabhängig von der Art des Prozessors auf unterschiedlichen Computern ausführen, ohne etwas am Code zu ändern. Dies ist möglich Dank des Compilers. Der Compiler übersetzt den Source Code (auch Quelltext) in Maschinencode. Also im Grunde wie ein Übersetzer ein Buch vom Englischen ins Deutsche übersetzt. Beim Kompilieren wird aus dem für uns Menschen verständlichen Source Code der für den Computer verständliche Binärcode erstellt.
Ein C Programm musst du auf jeder Plattform, also Art des Computers (CPU, Betriebssystem (sofern es eines gibt), etc.) neu kompilieren. Wenn du einen Windows PC hast und dort aus dem Code ein „hallo.exe“ erstellst (das, was beim Kompilieren herauskommt), kann ich das nicht auf meinem Linux Rechner ausführen. Ich kann aber den Code ganz einfach nehmen und bei mir neu kompilieren.
Um ein Programm nicht für jede Art von Computer immer neu kompilieren zu müssen, gibt es neben den kompilierten Sprachen auch interpretierte Sprachen, häufig auch Skriptsprachen genannt. Dazu zählt zum Beispiel Python. Das Prinzip ist dasselbe wie bei C: Du schreibst deinen Source Code, dieses Mal in der Programmiersprache Python: nun willst dein Programm mit anderen teilen. Anstatt es aber jetzt immer wieder neu zu kompilieren, lässt du es von einem anderen Programm, dem Interpreter, interpretieren. Das kannst du dir in etwa so vorstellen wie einen Dolmetscher, der eine Rede live in eine andere Sprache übersetzt.
Bei Java handelt es sich um eine Mischform. Java Code wird im ersten Schritt auch einmal kompiliert – wie bei C – jedoch nicht direkt in Maschinensprache, sondern in eine Zwischensprache, Bytecode genannt. Dieser Bytecode wird dann in einem Programm, der “Java virtuellen Maschine”, ausgeführt.
Wozu braucht man nun diese unterschiedlichen Arten von Programmiersprachen?
Mit neuen Programmiersprachen wird versucht, Probleme oder Einschränkungen von anderen Sprachen zu beheben. Oder ein spezielles Problem einfacher lösen zu können. C Programme sind sehr schnell, aber auch komplexer zu erstellen, da du dich als Programmierer:in um sehr vieles selbst kümmern musst. Python und Java auf der anderen Seite erlauben dir meist, mit weniger Zeilen Code dasselbe Ergebnis zu erzielen und du kannst nicht so leicht Fehler machen. Mit C++ und Java kannst du objektorientiert programmieren (mit Python auch). Das ist eine spezielle Art, wie du dein Problem mit Code beschreibst. Neben objektorientierter Programmierweise gibt es noch funktionale Programmierung (LISP oder auch mit Python möglich) oder die klassische prozedurale Programmierweise (C).
Du siehst, es gibt unterschiedliche Programmiersprachen aus unterschiedlichen Gründen. Die „beste“ gibt es dabei im Grunde nicht – solltest du dich auch schonmal gefragt haben. Jede ist auf Ihre Art für ein bestimmtes Problem besser oder schlechter geeignet. Sie alle dienen aber dazu, einem Computer zu erklären, wie er etwas machen soll. Und das aber auch für uns Menschen noch immer verständlich.
Beantwortet von Harald Schwab (BSc), Wissenschaftlicher Mitarbeiter im Studienbereich angewandte Informatik der FH JOANNEUM Kapfenberg.
Wie erkennen Rasenmäh-Roboter, wo sie mähen müssen?
Von Laurina
Wie erkennen Rasenmäh-Roboter, wo sie mähen müssen?
Von Laurina
Wer hat das Periodensystem erfunden bzw. entworfen?
Von Katharina
Wer hat das Periodensystem erfunden bzw. entworfen?
Von Katharina
Das Periodensystem der Elemente wurde in seiner heutigen Form vom deutschen Chemiker Lothar Meyer (1830-1895) und vom russischen Chemiker Dimitri Mendelejew (1834-1907) entwickelt. Beide Forscher schufen unabhängig voneinander ein System, um die chemischen Elemente zu ordnen. Sie veröffentlichten ihre Ergebnisse jeweils im Jahr 1869.
Diese systematische Anordnung der Elemente verwenden wir heute noch. Mittlerweile umfasst das Periodensystem 118 Elemente; es beginnt mit Wasserstoff (H) und endet mit Oganesson (Og). Anlässlich seines 150. „Geburtstags“ hat die UNESCO das Jahr 2019 zum „Internationalen Jahr des Periodensystems“ erklärt.
Beantwortet von Redaktion ScienceClip.at
Würde die menschliche Haut im Vakuum platzen?
Von Nicholas
Würde die menschliche Haut im Vakuum platzen?
Von Nicholas
Die menschliche Haut ist ein erstaunlich guter Druckbehälter: Wenn ein Mensch ohne Raumanzug dem Vakuum des Weltraums ausgetzt ist, würde es zwar zu (sehr schmerzhaften) Schwellungen kommen, aber platzen würde die Haut nicht. Was aber passiert ist – ähnlich wie bei Tauchunfällen – dass aufgrund des plötzlichen Druckverlustes es zum Ausgasen von Stickstoff im Blut käme – was wiederum zum Verschluss von lebenswichtigen Blutgefäßen führt.
Es gab einmal einen Unfall in einer Vakuumkammer bei einem Raumanzugstest als ein Handschuh-Flansch nicht richtig verschlossen war: Der Techniker berichtete, dass das letzte, woran er sich vor dem Bewusstseinsverlust erinnern konnte, der metallische Geschmack auf der Zunge war, als der Mundspeichel bei dem niedrigen Luftdruck zu köcheln begann.
Wir gehen davon aus, dass ein kurzer Druckverlust von 20-30 Sekunden prinzipiell überlebbar ist.
Beantwortet von Dr. Gernot Grömer, Vorstand des Österreichischen Weltraum Forums.
Woher wissen wir eigentlich, wie schnell das Licht ist?
Von Nicole
Woher wissen wir eigentlich, wie schnell das Licht ist?
Von Nicole
Klingt einfach, aber man muss sich dazu vorstellen: die Lichtgeschwindigkeit ist riesig. Sie beträgt ca. 300.000 Kilometer pro Sekunde, ist also z.B. 50 Millionen Mal schneller als ein Fahrrad. In einer Sekunde kann ein Lichtsignal fast 8 Mal die Erde umrunden. Wählt man also zur Messung eine beliebige Entfernung auf der Erde, braucht man dazu eine sehr genaue „Stoppuhr“, die vor ca. 350 Jahren sicherlich nicht vorhanden war, als die Lichtgeschwindigkeit erstmals vom Dänischen Wissenschaftler Ole Roemer gemessen wurde.
Die Lösung bestand darin, eine größere Entfernung, in diesem Fall zu den Planeten zu verwenden. Roemer beobachtete die Bahn des Jupitermondes Io. Durch seine Bewegung „versteckte“ sich Io immer zu regelmäßigen Zeitpunkten hinter Jupiter. Roemer bemerkte, dass wenn die Erde weiter weg von Jupiter war, dieses „Verstecken“ um ca. 22 Minuten später stattfand, als wenn die Erde näher bei Jupiter war. Der Grund dafür war einfach, dass im ersten Fall die Information, dass Io sich versteckt hatte, 22 Minuten (also 1320 Sekunden) länger brauchte, um die Erde zu erreichen als im zweiten Fall. Diese Information ist nichts anderes als ein Lichtsignal. Der Unterschied zwischen der maximalen und minimalen Entfernung der Erde von Jupiter (ca. 300 Millionen Km) war bekannt. Daraus konnte man die Lichtgeschwindigkeit V=D/T=230.000 Kilometer pro Sekunde ableiten, was schon ziemlich nahe am richtigen Wert war!
Inzwischen (seit ca. 200 Jahren) hat man so präzise „Stoppuhren“ entwickelt, dass man die Lichtgeschwindigkeit auf kürzeren Entfernungen, also Entfernungen auf der Erde oder sogar in einem Labor, und mit immer besserer Genauigkeit messen kann. In diesen Fällen besteht fast immer das Prinzip darin, ein Lichtsignal zu einem entfernten Spiegel zu schicken, und die Zeit zu messen, die es braucht, bis es wieder zurück ist.
Beantwortet von Univ.-Prof. Dr. Enrico Arrigoni, Institut für Theoretische Physik und Computational Physics der TU Graz.
Warum sterben wir?
Von Esma und Pamela
Warum sterben wir?
Von Esma und Pamela
Liebe Esma, Liebe Pamlea,
“…death is very likely the single best invention of life”, sagte der charismatische Apple-Gründer Steve Jobs in seiner Rede anlässlich der Graduiertenfeier im Jahre 2005 an der Universität Standford, USA. Jobs bezog sich auf den Kreislauf des Lebens in dem Altes durch sein Sterben Platz für das Jüngere macht, das damit selbst zum Alten wird. Neben dieser sehr pragmatischen, und wie ich meine, auch richtigen Ansicht über den Sinn des Sterbens, gibt es aber auch einen biologischen Hintergrund, warum (fast) alles Lebende auf unserem Planeten vergänglich ist. Prinzipiell sollte man von zwei Prozessen des Alterns sprechen:
1. Eine Verkürzung der sogenannten Telomeren, das sind die Enden der Chromsomen, führt zu einer nachlassenden Teilungsfähigkeit der Zellen. Das bedeutet, dass sich die Gewebe nicht mehr so rasch regenerieren können und entstandene Schäden nur mehr schlecht repariert werden können. Dadurch werden Organe alt und können dann irgendwann einmal nicht mehr ihrer Aufgabe nachkommen. Es gibt sogar ein Enzym, das diese Telomeren reparieren kann, aber damit sollte man nicht „herumspielen“ denn das Vorhandensein genau dieses Enzyms ist bei vielen Krebszellen für das starke Wachstum verantwortlich.
2. Durch die ständige Aktivität der Zellen und der ununterbrochenen und notwendigen Neubildung von Eiweißmolekülen ermüdet dieses System mit der Zeit. Dabei kommt der Fehlfunktion der Mitochondrien die entscheidende Funktion zu, die in weiterer Folge auch andere Organelle betrifft. Dadurch entsteht während der Eiweißproduktion unbrauchbarer Abfall, der sich in der Zelle ansammelt und die Zelle in ihrer Aktivität mehr und mehr einschränkt. Man hat festgestellt, dass viele Menschen die über 100 Jahre alt sind, eine bestimmte Enzymform besitzen, die die Mitochondrien vor solchen Fehlfunktionen schützt. Das Gleiche hat übrigens auch der faktisch unsterbliche Süßwasserpolyp... nun ja, bei Menschen scheint’s also doch ein wenig komplizierter zu sein.
Der Tod tritt dann durch ein Versagen eines nicht mehr funktionstüchtigen Organs ein (z. B. ein Blutgefäß platzt, das Herz hört auf zu schlagen, Teile des Gehirns entgleisen). Die moderne medizinische Forschung versucht vor allem vorzeitige Alterungsprozesse oder Krankheiten zu vermeiden. Eine Verlängerung des Lebens, auch wenn dies, zumindest in einem gewissen Rahmen auch ein Ergebnis dieser Bemühungen sein wird, ist nicht das Ziel unserer Bemühungen – frei nach dem Motto, „künftige Generationen sollen nicht unbedingt viel länger leben, aber gesünder sterben“.
Beantwortet von Univ. Prof. Dr. Wolfgang F. Graier, Vorstand des Institutes für Molekularbiologie und Biochemie der Medizinischen Universität Graz.
Woher kommen Wolken?
Von Almir
Woher kommen Wolken?
Von Almir
Wolken entstehen, wenn Wasserdampf kondensiert. Von Seen, Flüssen und Pflanzen verdunstet Wasser in die Luft und wird mit dem Wind in alle Richtungen transportiert - auch in die Höhe. Wenn es kälter wird, kondensiert der Wasserdampf wieder, und es entstehen viele sehr kleine Tröpfchen. Wir sehen dies als Wolken. Wenn die Tröpfchen wieder verdunsten, lösen sich die Wolken auf, wenn die Tröpfchen wachsen, weil immer mehr Wasserdampf kondensiert, dann können sie so groß werden, dass sie als Regentropfen herunterfallen. Dann regnet es.
Beantwortet von Univ.-Prof. Dr. Helga Kromp-Kolb, Institut für Meteorologie / Department Wasser-Atmosphäre-Umwelt der BOKU Wien.
Wieso empfinden wir Melodien unterschiedlich?
Von Laura
Wieso empfinden wir Melodien unterschiedlich?
Von Laura
Diese Frage sieht auf den ersten Blick recht einfach aus, sie ist es aber nicht - aber sie ist sehr gut gestellt: Die Frage bezieht sich nämlich einerseits auf die Melodien selbst, andererseits aber auf unser Empfinden. Dies ist ein großer Unterschied, denn wir alle empfinden Dinge (also auch Melodien) niemals gleich, wir haben alle eine andere Geschichte, andere Vorlieben, und verschiedenartige Bildung. Eine Melodie mag zwar die gleiche sein, zwei Personen werden sie aber jeweils anders empfinden.
Wenn ein Mensch Musik hört, nimmt er natürlich nicht nur eine Melodie wahr. Musik besteht mindestens auch aus ihrer Entwicklung in der Zeit (also Rhythmus) und ihrer Klanglichkeit (etwa mit welchem Instrument gespielt wird, oder ob gesungen wird), aus ihrer Lautstärke und ebenso wirkt ihr Umfeld (etwa ob auf einem Konzert gespielt wird, ob man alleine mit Kopfhörer hört, usw.).
Innerhalb der Musikwissenschaft beschäftigt sich besonders die sogenannte Musikpsychologie mit solchen Fragestellungen. Ich werde zuerst versuchen, die Frage anhand von Forschungsergebnissen der Musikpsychologie zu beantworten. Mal sehen, wie weit wir damit kommen:
Betrachten wir als erstes nur die Melodien: Es gibt Studien, die recht klar zeigen, dass Melodien mit kleinen Intervallen (das sind die Abstände zwischen den einzenen Tonhöhen) weniger aktivierend wirkt als mit großen Intervallen; ebenso wirken tiefe Lagen (Bass, Alt) weniger aktivierend als hohe (Tenor, Sopran). Insgesamt scheinen also Melodien in tieferen Lagen und mit kleinen Intervallschritten eher beruhigend zu wirken, während Melodien in hohen Lagen mit großen Intervallen wohl eher aufwühlend sind.
Daneben kommt es noch darauf an, welche Töne gespielt oder gesungen werden. Wenn die Töne (auch wenn sie hintereinander klingen) eine sogenannte Konsonanz bilden (etwa einen Dreiklang, Terz, oder Sext) bringt dies eine unterschiedliche Empfindung hervor, als wenn sie Dissonanzen bilden (etwa Sekund, Septime, oder den Tritonus, das sind 6 Halbtonschritte). Eine Melodie, die mehr Dissonanzen bildet, wird allgemein eher als unangenehm, spannend oder aufwühlend empfunden, während konsonante Melodien eher beruhigend, aber auch eher langweilig empfunden werden.
Wie gesagt beinhaltet Musik aber noch andere Aspekte. Schnelles Tempo und komplexe Rhythmen, sowie hohe Lautstärke rufen allgemein auch eher Empfindungen wie Spannung oder Aktivierung hervor, während leise Musik mit einfachen Rhythmen und langsamem Tempo eher beruhigend wirkt.
Dies in etwa sagt die Musikpsychologie zu Deiner Frage. Psychologie bezieht sich aber meist auf eine Art "Durchschnittsmensch", üblicherweise mit einer westlichen, "klassischen", also europäischen Musikauffassung. Die Musiksoziologie (Wissenschaft von der Bedeutung der Musik in der Gesellschaft) dagegen würde gleich nachfragen: "Empfindet etwa ein Opernbesucher die gleiche Melodie als beruhigend wie ein Death-Metal-Fan?" Es ist ganz klar, dass dem nicht so ist. Musiksoziologen würden sagen, dass diese Art der Empfindung "konstruiert" ist, das heißt, dass sie vom sozialen Umfeld und von der Geschichte eines Individuums "gemacht" wird. Die musikalische Vorbildung ist hier ganz wichtig, z.B. je nachdem ob eine Person nun lieber Mozart-Opern hört oder vollverzerrte Stromgitarrenorgien, wird sie auch Empfindungen wie "beruhigend" oder "aufwühlend" jeweils ganz anderen Melodien oder Musikstilen zuschreiben. Neben der psychologischen Wahrnehmung und Verarbeitung spielt also auch das soziale Umfeld eine wichtige Rolle.
Eine weitere Wissenschaftsdisziplin, die Ethnomusikologie (Wissenschaft von Musik in den vielen Kulturen der Welt) hat auch etwas zu Deiner Frage zu sagen. Es gibt nämlich sehr viele Musiktraditionen auf dieser Welt, wo ganz andere Töne und Tonabfolgen verwendet werden als in der klassischen oder der Pop-/Rock-Musik. Beispielsweise die sehr kunstvolle Musik der indonesischen Gamelan-Orchester oder der ostafrikanischen Amadinda-Xylophone verwendet Klänge, die etwa in europäischem (und musikpsychologischem) Denken gar nicht konsonant oder dissonant sein können. Auch das Zeitempfinden ist ganz anders, Gamelan-Musik kann gleichzeitig extrem langsam werden, während sehr viele Töne gespielt werden, wodurch der ewig langsame Grundrhythmus wiederum als spannend empfunden wird. Amadinda-Musik wird meist so rasend schnell gespielt, dass Europäer dies stets als "aufwühlend" empfinden, obwohl die lokalen Musiker in Ostafrika vielleicht etwas für sie gerade sehr Beruhigendes spielen.
Insgesamt denke ich, dass ich Deine Frage so beantworten kann: Innerhalb einer Gesellschaft oder einer Kultur gibt es meist Regeln, Gewohnheiten, alte tradierte Musikstile, usw., die jeweils recht klar vorschreiben oder vorschlagen, was als beruhigend oder aufwühlend gilt. Diese Regeln und Gewohnheiten sind aber wiederum unterschiedlich, Heavy-Metal-Fans, Opernliebhaber, ostafrikanische Xylophonspieler oder indonesische Gamelan-Hörer folgen dahingehend jeweils ganz anderen Gesetzmäßigkeiten. Wenn bestimmte Musikrichtungen oder Melodien für Dich speziell beruhigend oder aufwühlend sind, empfindet vielleicht schon eine Deiner Klassenkameradinnen etwas anderes. Das ist ja etwas, was Musik so interessant macht, und gleichzeitig so mächtig: Wenn wir die gleiche Musik mögen, also unsere Empfindungen ähnlich funktionieren, dann verstehen wir uns meist recht gut, oder nicht?
Beantwortet von Dr. Bernd Brabec de Mori, Senior Scientist am Institut für Ethnomusikologie der Kunstuniversität Graz, Universitätsassistent am Zentrum für Systematische Musikwissenschaft der Karl-Franzens-Universität Graz.
Warum ist die Lichtgeschwindigkeit im Vakuum nicht zu übertreffen?
Von Nicholas
Warum ist die Lichtgeschwindigkeit im Vakuum nicht zu übertreffen?
Von Nicholas
Einsteins spezielle Relativitätstheorie hat die bis Anfang 1900 verwendete Newtonsche Physik verbessert. Die Theorie liefert genaue Aussagen, die in zahllosen Experimenten überpüft und für richtig befunden wurden. Ein Beispiel dafür ist unser GPS, das ohne Berücksichtigung der speziellen Relativitätstheorie nicht funktionieren würde. Zentraler Punkt der Relativitätstheorie ist aber genau diese Aussage: Die Lichtgeschwindigkeit im Vakuum kann nicht übertroffen werden.
Selbst wenn ein fiktives Raumschiff mit 0.6 facher Lichtgeschwindigkeit fliegend einen Ball mit 0.6 facher Lichtgeschwindigkeit nach vorne schießen könnte: Die Geschwindigkeiten addieren sich nicht einfach, sondern die Ballgeschwindigkeit ist kleiner als die Lichtgeschwindigkeit!
Beantwortet von Prof. Dr. Christian B. Lang, Institut für Physik an der Uni Graz.
Ask a scientist.
Wie kommt der Strom ins E-Bike? Was kann der klügste Roboter? Warum ist mein Internet heute so langsam? Oder brennt dir eine ganz andere Frage unter den Nägeln? Stelle sie hier!