Senior Member
Täglich verrückt!
Registriert seit: 29.01.03
Style: Roter Spinat
Alter: 38
Geschlecht:
♂
Beiträge: 11.531
IRC Zeilen: 184899
Quizrunden gewonnen: 76
☆
☆
☆
☆
☆
★
★
★
★
★
★
Ich muss allerdings mal anmelden, dass in unserem Studium noch kein bisschen Assembler gemacht wurde, C mal in Ansätzen. Von Daher kann man schon sagen, dass bei vielen ein großes schwarzes Loch unterhalb der Abstraktionsebene von Java oder C# existiert.
Und das ist eben nicht gut wie ich glaube, siehe oben von mir Aufgeführte Beispiele.
Ich mache zur Zeit ein Projekt aus dem Bereich Handlungsplanung, und unser Programm an dem wir arbeiten ist z.B auch in C++ geschrieben, einfach aus Performance- und Speichergründen. Man kommt da gerne schon mal in den GB Bereich mit dem Speicherverbrauch, mit Java wär man da sicher schon beim X-fachen
Das ist so ein Bereich wo sich Java einfach nie durchsetzen wird, weil man immer Probleme hat, die nicht schnell genug lösbar sind...
Baut man hingegen ne GUI Anwendung die einfach auf allen Plattformen laufen soll, nimmt man Java, und es is egal, dass mal eben 80MB Speicher belegt sind dadurch.
@Blue: Getrennten Speicher gibts seit NT4.0
Und das ist eben nicht gut wie ich glaube, siehe oben von mir Aufgeführte Beispiele.
Ich mache zur Zeit ein Projekt aus dem Bereich Handlungsplanung, und unser Programm an dem wir arbeiten ist z.B auch in C++ geschrieben, einfach aus Performance- und Speichergründen. Man kommt da gerne schon mal in den GB Bereich mit dem Speicherverbrauch, mit Java wär man da sicher schon beim X-fachen
Das ist so ein Bereich wo sich Java einfach nie durchsetzen wird, weil man immer Probleme hat, die nicht schnell genug lösbar sind...
Baut man hingegen ne GUI Anwendung die einfach auf allen Plattformen laufen soll, nimmt man Java, und es is egal, dass mal eben 80MB Speicher belegt sind dadurch.
@Blue: Getrennten Speicher gibts seit NT4.0
Big Daddy
Registriert seit: 02.02.03
Style: Zahls Bastelecke
Alter: 37
Geschlecht:
♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3
☆
☆
☆
☆
☆
★
★
★
Zitat von Zahl
⇨
@Blue: Getrennten Speicher gibts seit NT4.0
Es geht halt um die Sicherheit bei der speicherverwaltung.
Bei Betriebssystemen (Im Linux Kernel schon seit längerer Zeit, bei Windows seit Version 6.0 [Vista]), werden Checksummen zum Prozessadressraum geführt und regelmäßig geprüft. So ist es schwieriger möglich den Adressraum mit Zeigern zu manipulieren.
Ob man Assembler macht oder nicht hängt sicher auch vom Studiengang ab. "angewandte Informatik" bei Blue heißt wohl eher kein Assembler. Weiß nichtmehr genau was du studierst Zahl aber bei uns wars quasi die normale "allgemeine Informatik"(also von allem ein bischen aber weniger Praxis) und da kam Assembler im dritten und vierten Semester im Bereich technischer Informatik dran. Im dritten Semester haben wir die theorie gemacht und im vierten Semester mussten wir dann einmal pro Woche einen Nachmittag Schaltungen und Mikrocontroller selbst auf dem Steckbrett zusammenstecken und die Assemblerprogramme für die Mikrocontroller schreiben. Wir mussten teilweise auch die Ansteuergleichungen aus Tabellen oder Zustandsautomaten ableiten, mit bestimmten Verfahren optimieren und dann umsetzen. Das war sone Art internes Uni-Praktikum und wir mussten die Aufagen an dem vorgesehenen Tag lösen oder uns einen Fehlerversuch anstreichen lassen von denen wir aber nur 2 am Ende des Semesters haben durften. Daher mussten wir auch manchmal unter Zeitdruck Assemblerprogramme noch bis in die Abendstunden debuggen. Denn die Programme waren in der Regel regel nicht einfach linear, sondern rekursiv mit verschiedenen Subprogrammen die nur über jmp-Befehle bzw gotos verbunden sind. Interessant ? Ja, keine Frage. Aber es war auch anstrengend und die meisten waren froh als das Semester rum war, denn die Vorbereitung der Versuche und das erarbeiten des Programmcodes hat verdammt viel zeit gefressen.
Geändert von RypeL (19.01.09 um 22:26:10 Uhr)
Big Daddy
Registriert seit: 02.02.03
Style: Zahls Bastelecke
Alter: 37
Geschlecht:
♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3
☆
☆
☆
☆
☆
★
★
★
Zitat von RypeL
⇨
Ob man Assembler macht oder nicht hängt sicher auch vom Studiengang ab. "angewandte Informatik" bei Blue heißt wohl eher kein Assembler. Weiß nichtmehr genau was du studierst Zahl aber bei uns wars quasi die normale "allgemeine Informatik" und da kam Assembler im dritten und vierten Semester im Bereich technischer Informatik dran. Im dritten Semester haben wir die theorie gemacht und im vierten Semester mussten wir dann einmal pro Woche einen Nachmittag Schaltungen und Mikrocontroller selbst auf dem Steckbrett zusammenstecken und die Assemblerprogramme für die Mikrocontroller schreiben. Wir mussten teilweise auch die Ansteuergleichungen aus Tabellen oder Zustandsautomaten ableiten, mit bestimmten Verfahren optimieren und dann umsetzen. Das war sone Art internes Uni-Praktikum und wir mussten die Aufagen an dem vorgesehenen Tag lösen oder uns einen Fehlerversuch anstreichen lassen von denen wir aber nur 2 am Ende des Semesters haben durften. Daher mussten wir auch manchmal unter Zeitdruck Assemblerprogramme noch bis in die Abendstunden debuggen. Denn die Programme waren in der Regel regel nicht einfach linear, sondern rekursiv mit verschiedenen Subprogrammen die nur über jmp-Befehle bzw gotos verbunden sind. Interessant ? Ja, keine Frage. Aber es war auch anstrengend und die meisten waren froh als das Semester rum war, denn die Vorbereitung der Versuche und das erarbeiten des Programmcodes hat verdammt viel zeit gefressen.
Man muss aber schon wohl sagen, dass Programmierer so etwas wie Assembler im High-Level Bereich nicht mehr nutzen. Stattdessen aber schlägt man sich mit APIs rum.
Ein weiteres Beispiel, wir lernen derzeit Java, statt GUI Anwendungen selbst zu schreiben, nutzen wir Ecplipse-Plugins und klicken uns die GUI zusammen. Theoretisch bekommen wir natürlich alles vermittelt, praktisch sieht das schon wieder anders aus.
Senior Member
Täglich verrückt!
Registriert seit: 29.01.03
Style: Roter Spinat
Alter: 38
Geschlecht:
♂
Beiträge: 11.531
IRC Zeilen: 184899
Quizrunden gewonnen: 76
☆
☆
☆
☆
☆
★
★
★
★
★
★
Ich studiere auch normale Informatik. Bei uns isses aber zur Zeit so, dass überall auf modernen Kram gesetzt wird, um irgendwie mit der Zeit zu gehen. Wir hatten auch ein Semester lang ein Hardwarepraktikum, wo wir einen Roboter programmieren mussten der einen kleinen Microkontroller hatte.
Nun sah es so aus, dass die Dozenzen die Wahl zwischen Assembler, C oder einer abgespeckten Java VM hatten... Ratet mal was genommen wurde.
Und es war nur zum Kotzen. Die VM die da drauf lief war völlig verbuggt, einige Befehle brachten das Teil sogar so zum abstürzen, dass wir es nicht mehr mit dem uns zur Verfügung gestellten USB Kabel flashen/resetten konnten, sondern zum Hiwi laufen mussten, der es dann über ein serielles Kabel richten konnte.
In dem Fall war die Verwendung von Java (hieß in dem Fall Javelin) meiner Meinung nach völliger Schwachsinn. Mit einer HL Sprache die in einer VM läuft sollte man niemals das System dermaßen schrotten können.
Insgesamt glaube ich, dass ich 10x mehr gelernt hätte, wenn wir dort C oder asm benutzt hätten.
Ähnlich sieht es in den anderen Fächern aus. Java hier, C# da..
Wer will schafft es hier problemlos ohne eine Sprache, die nicht in einer VM läuft, durchs Studium zu kommen.
Wie gesagt, ich bin nicht gegen die Verwendung dieser Sprachen, aber man sollte, wenn man ernsthafte Projekte später einmal umsetzt wissen, was eigentlich los ist.
Nun sah es so aus, dass die Dozenzen die Wahl zwischen Assembler, C oder einer abgespeckten Java VM hatten... Ratet mal was genommen wurde.
Und es war nur zum Kotzen. Die VM die da drauf lief war völlig verbuggt, einige Befehle brachten das Teil sogar so zum abstürzen, dass wir es nicht mehr mit dem uns zur Verfügung gestellten USB Kabel flashen/resetten konnten, sondern zum Hiwi laufen mussten, der es dann über ein serielles Kabel richten konnte.
In dem Fall war die Verwendung von Java (hieß in dem Fall Javelin) meiner Meinung nach völliger Schwachsinn. Mit einer HL Sprache die in einer VM läuft sollte man niemals das System dermaßen schrotten können.
Insgesamt glaube ich, dass ich 10x mehr gelernt hätte, wenn wir dort C oder asm benutzt hätten.
Ähnlich sieht es in den anderen Fächern aus. Java hier, C# da..
Wer will schafft es hier problemlos ohne eine Sprache, die nicht in einer VM läuft, durchs Studium zu kommen.
Wie gesagt, ich bin nicht gegen die Verwendung dieser Sprachen, aber man sollte, wenn man ernsthafte Projekte später einmal umsetzt wissen, was eigentlich los ist.
Hm Eclipse Plugins an der Uni zu verwenden anstatt direkt Swing/AWT zu programmieren das find ich dann allerdings auch recht merkwürdig. Und Microkontroller mit mit ner VM orientierten Sprache zu programmieren hört sich für mich auch etwas unpassend an. Naja dafür weiß ich nicht allzuviel darüber wie eine VM funktioniert. Da habt ihr dann vielleicht Vorteile bei der Optimierung von Java Code, trotzdem wäre Assembler wohl sicher interessanter gewesen.
(Btw hier mal ein, nicht ganz ernstzunehmender Beitrag zum Thema "richtige Programmierer vs Müslifresser", der zeigt, dass das Thema auch schon früher die Gemüter erhitzte . Kennt ihr vielleicht schon aber passt halt grad so schön :
http://www.informatik.tu-cottbus.de/~fsi/alt/lektuere/realprogrammers.html)
(Btw hier mal ein, nicht ganz ernstzunehmender Beitrag zum Thema "richtige Programmierer vs Müslifresser", der zeigt, dass das Thema auch schon früher die Gemüter erhitzte . Kennt ihr vielleicht schon aber passt halt grad so schön :
http://www.informatik.tu-cottbus.de/~fsi/alt/lektuere/realprogrammers.html)
Trackmaniac
Registriert seit: 10.02.08
Style: spring 09
Alter: 32
Geschlecht:
♂
Beiträge: 2.541
IRC Zeilen: 30789
Quizrunden gewonnen: 136
☆
☆
☆
☆
☆
★
Moin
Fange zwar gerade erst an, das Programmieren zu lernen, möchte aber trotzdem mal meinen Senf dazu geben^^
In der Schule (Klasse 11) soll uns wohl Java beigebracht werden. Dazu benutzen wir die Plattform BlueJ und die Bibliothek "Stifte und Mäuse()
Nun....wir kriegen jetzt Grundlagen wie Schleifen, Objekte, Funktionen usw. beigebracht.
Wir malen schöne Autos, die wir über den Bildschirm flitzen lassen und an der Wand abprallen.
Dazu benutzen wir Befehle wie:
hatStift.zeichneRechteck();
hatStift.bewege();
hatStift.runter();
usw.
.......HÄ?
Wenn ich mir das angucke, frage ich mich immer wieder, was das mit Programmieren zu tun hat. Schön und gut, wenn ich durch diese vorgefertigten Befehle ein Auto malen kann, aber das kann ich auch einfacher mit Paint machen.
Wir lernen zwar, wie Schleifen und Funktionen funktionieren, aber ohne diese Bibliothek an vorgefertigten Befehlen nützt uns dieses Wissen nicht, und im Berufsleben, da bin ich mir ziemlich sicher, is nichts mit "Stifte und Mäuse"
Also im Studium noch mal von vorne anfangen und kapieren, warum sich der Stift bewegt....
Warum zeichnet der Stift schwarz, wenn ich den Befehl "runter()" benutze?
Uns wird, der Meinung bin ich jedenfalls, weniger eine Programmiersprache beigebracht, als eine Arbeitsumgebung.
Aber wenn ich ne Ausbildung als Ingeneur mache, will ich auch lernen, wie die Maschienen, die ich baue funktionieren, und nicht, welche Tasten ich auf einer anderen Maschiene drücken muss, damit diese die eigendliche Maschiene fertigt.
Ich bringe mir nebenbei selbst C++ bei (mit Buch natürlich) und bemerke radikale Unterschiede in der Lehrmethode.
Anstatt gleich mithilfe unverständlicher Werkzeuge gleich grafischee Spielechen zu erzeugen, beginnt man hier, mir die elementaren Befehle der Sprache mittels DOS beizubringen..
Ich male keine Autos auf den Bildschirm.
Auch keine Häuser.
Alles Bereiche die mir beigebracht werden, seien es Schleifen, Funktionen oder Zeiger, werden nur mittels einer Textausgabe über DOS dargestellt.
Und doch bin ich stolzer, ein simples Zahlenratespiel zu programmieren, als ein grafisches Atorennen, dass ich nicht steuern kann, da ich die Logik hinter den Befehlen, die ich benutze verstehen kann.
Ein weiterer Punkt, der denke ich wichtig ist, wenn niemand mehr die Logik hinter der Programmiersprache versteht ist, dass die Entwicklung neuer Sprachen mit evntl mehr Möglichkeiten stehen bleiben wird. Kein Mensch wird mehr verstehen, wie Java, oder C# funktioniert, sondern nur noch, wie man die Sprache benutzt.
Wenn jeder nur noch wüsste, wie man ein Auto fährt (evntl, wie man die Teile zusammenbaut), aber nicht mehr wie die einzelnen Teile in Bezug zu einander stehen, wird die Entwicklung stehen bleiben, es werden keine neuen Modelle mehr entworfen, wir würden für immer auf dem heutigen Stand der Technologie stehen bleiben.
So...das ist meine Meinungg, was ihr davon haltet, ist euch überlassen
Fange zwar gerade erst an, das Programmieren zu lernen, möchte aber trotzdem mal meinen Senf dazu geben^^
In der Schule (Klasse 11) soll uns wohl Java beigebracht werden. Dazu benutzen wir die Plattform BlueJ und die Bibliothek "Stifte und Mäuse()
Nun....wir kriegen jetzt Grundlagen wie Schleifen, Objekte, Funktionen usw. beigebracht.
Wir malen schöne Autos, die wir über den Bildschirm flitzen lassen und an der Wand abprallen.
Dazu benutzen wir Befehle wie:
hatStift.zeichneRechteck();
hatStift.bewege();
hatStift.runter();
usw.
.......HÄ?
Wenn ich mir das angucke, frage ich mich immer wieder, was das mit Programmieren zu tun hat. Schön und gut, wenn ich durch diese vorgefertigten Befehle ein Auto malen kann, aber das kann ich auch einfacher mit Paint machen.
Wir lernen zwar, wie Schleifen und Funktionen funktionieren, aber ohne diese Bibliothek an vorgefertigten Befehlen nützt uns dieses Wissen nicht, und im Berufsleben, da bin ich mir ziemlich sicher, is nichts mit "Stifte und Mäuse"
Also im Studium noch mal von vorne anfangen und kapieren, warum sich der Stift bewegt....
Warum zeichnet der Stift schwarz, wenn ich den Befehl "runter()" benutze?
Uns wird, der Meinung bin ich jedenfalls, weniger eine Programmiersprache beigebracht, als eine Arbeitsumgebung.
Aber wenn ich ne Ausbildung als Ingeneur mache, will ich auch lernen, wie die Maschienen, die ich baue funktionieren, und nicht, welche Tasten ich auf einer anderen Maschiene drücken muss, damit diese die eigendliche Maschiene fertigt.
Ich bringe mir nebenbei selbst C++ bei (mit Buch natürlich) und bemerke radikale Unterschiede in der Lehrmethode.
Anstatt gleich mithilfe unverständlicher Werkzeuge gleich grafischee Spielechen zu erzeugen, beginnt man hier, mir die elementaren Befehle der Sprache mittels DOS beizubringen..
Ich male keine Autos auf den Bildschirm.
Auch keine Häuser.
Alles Bereiche die mir beigebracht werden, seien es Schleifen, Funktionen oder Zeiger, werden nur mittels einer Textausgabe über DOS dargestellt.
Und doch bin ich stolzer, ein simples Zahlenratespiel zu programmieren, als ein grafisches Atorennen, dass ich nicht steuern kann, da ich die Logik hinter den Befehlen, die ich benutze verstehen kann.
Ein weiterer Punkt, der denke ich wichtig ist, wenn niemand mehr die Logik hinter der Programmiersprache versteht ist, dass die Entwicklung neuer Sprachen mit evntl mehr Möglichkeiten stehen bleiben wird. Kein Mensch wird mehr verstehen, wie Java, oder C# funktioniert, sondern nur noch, wie man die Sprache benutzt.
Wenn jeder nur noch wüsste, wie man ein Auto fährt (evntl, wie man die Teile zusammenbaut), aber nicht mehr wie die einzelnen Teile in Bezug zu einander stehen, wird die Entwicklung stehen bleiben, es werden keine neuen Modelle mehr entworfen, wir würden für immer auf dem heutigen Stand der Technologie stehen bleiben.
So...das ist meine Meinungg, was ihr davon haltet, ist euch überlassen
Moderator
Zitat von steelworks
⇨
Ein weiterer Punkt, der denke ich wichtig ist, wenn niemand mehr die Logik hinter der Programmiersprache versteht ist, dass die Entwicklung neuer Sprachen mit evntl mehr Möglichkeiten stehen bleiben wird. Kein Mensch wird mehr verstehen, wie Java, oder C# funktioniert, sondern nur noch, wie man die Sprache benutzt.
Wenn jeder nur noch wüsste, wie man ein Auto fährt (evntl, wie man die Teile zusammenbaut), aber nicht mehr wie die einzelnen Teile in Bezug zu einander stehen, wird die Entwicklung stehen bleiben, es werden keine neuen Modelle mehr entworfen, wir würden für immer auf dem heutigen Stand der Technologie stehen bleiben.
Wenn jeder nur noch wüsste, wie man ein Auto fährt (evntl, wie man die Teile zusammenbaut), aber nicht mehr wie die einzelnen Teile in Bezug zu einander stehen, wird die Entwicklung stehen bleiben, es werden keine neuen Modelle mehr entworfen, wir würden für immer auf dem heutigen Stand der Technologie stehen bleiben.
Heute wird ja in der Automobilbranche ja immer noch viel geforscht und neues entwickelt. Zur Zeit sind ja Energiesparkonzepte der neueste Schrei. Wenn man jetzt deiner Argumentation folgt, dann müsste ein heutiger Ingenieur, der einen neuartigen Motor entwickelt, über alle Maschinenen- und Motorentwicklungen der letzten 100 Jahre komplett im Bilde sein.
Er sollte also genauso einen 100 Jahre alten Daimlermotor bauen können wie einen 70er Jahre Ami-Antrieb.
Das alles zu können ist aber wohl ein Ding der Unmöglichkeit.
Ich denke es reicht, wenn der Ingenieur die Grundlagen von z.b. den 80er oder 90er Jahren kennt, die ihrerseits natürlich auf den alten Sachen aufbauen, aber eben nur die wichtigsten Ergebnisse aus der alten Zeit repräsentieren.
So überspringt er zwar 70 Jahre Automobilentwicklung, aber er ist eigentlich auf dem modernsten Stand und hat das grundlegende Wissen auch neue Sachen zu entwickeln.
Also meiner Meinung nach kann man nicht immer von 0 anfangen, wenn man neue Trends entwickeln und erforschen will. Man muss da auf die Ergebnisse von anderen und früheren Arbeiten zurückgreifen.
In der Mathematik hinterfragt man ja dann auch nicht nochmal die Rechenregeln wenn man eine neue Differentialgleichung lösen möchte.
Klar hast du auch Recht, dass man auf die Sachen auf die man zurückgreift vertrauen muss und da auch genügend im Bilde sein muss. Aber um dann mal den übernächsten Schritt zu machen braucht man eben auch die Leistung von anderen auf die man aufbauen kann.
Von daher glaube ich nicht, dass wir einfach auf dem heutigen Stand der Technik stehen bleiben würden, wenn wir nicht alles bis ins Hundertste von früher wissen.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Forumregeln |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39:37 Uhr.