[00:00] Songs gespielt gestern: 0
[00:01] Alles Gute an Ja.de, souvY
[10:43] Post by HansBerner @ 100.000 Beiträge Projekt
[20:00] Lottoziehung in 02d 00:00h
[00:00] Songs gespielt gestern: 0
[00:01] Alles Gute an Golner1, inzua, Sailfast
Trackmania Minecraft Andere Spiele
Thema: Fortschritt der Anwendungsentwicklung Auf Thema antworten
Dein Benutzername: Klicke hier, um dich anzumelden
Titel:
  
Nachricht:
Beitragssymbole
Du kannst aus der folgenden Liste ein Symbol für deine Nachricht auswählen:
 

Zusätzliche Einstellungen
Miscellaneous Options

Übersicht (Neuester Beitrag zuerst)
20.01.09 19:33:20
maphios
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.
Sehe ich nicht ganz so. Ich denke eher, wenn man einmal auf einem neuen Level ist, dann kann man auch vorherige Entwicklungsstufen erstmal "beiseite legen". Klingt jetzt vll etwas komisch, darum greif ich das Beispiel mit den Autos mal auf:

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.
20.01.09 14:15:40
steelworks 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
20.01.09 00:47:01
RypeL 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)
20.01.09 00:27:56
Zahl
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.
19.01.09 22:27:44
blue
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.
Naja, ich wurde mit Abitur und im Studium ein Semester lang mit Assembler gequält .. Falls ich mehr interesse daran habe, gibt es diverse Wahlpflichfächer, aber da habe ich mir für Grafik-Spieleprogrammierung und XML entschieden


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.
19.01.09 22:18:46
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"(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.
19.01.09 21:10:46
blue
Zitat von Zahl

@Blue: Getrennten Speicher gibts seit NT4.0
Das meinte ich nicht

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.
19.01.09 20:23:25
Zahl
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
19.01.09 19:20:17
RypeL Naja im eigenen Prozessspeicher kann man mit Zeigern schon ordentlich unfug wie memory-leaks und vor allem unübersichtliche "verzeigerungen" erstellen. Man kann mit den Zeigern zumindest im eigenen Prozessraum beliebige Speicherstellen addressieren, wohingegen in Java nurnoch Referenzen auf Objekte möglich sind. Dadurch kann man auch seine Strings nichtmehr über Zeigerarithmetik wie in C verwalten, aber naja ich trauer den C Strings nicht nach. Ich hab einmal ein relativ großes C Programm geschrieben und das später nach Java portiert. In Java war das Programm viel kürzer und übersichtlicher.

Detailwissen zahlt sich immernoch aus wenn man zb Gebrauch von Collections macht. Das wichtige sind ja eigentlich die Datenstrukturen und Algorithmen, nicht etwa die Unterschiede zwischen einem C und einem Java String. Und wer weiterhin lieber in C programmieren will kann immernoch gute Jobs im Bereich embedded Hardware finden, wo C sicherlich noch eine ganze Weile zum Einsatz kommen wird.
19.01.09 17:48:31
blue
Wie Zeiger funktionieren braucht man in Java nicht zu wissen weil es da keine Zeiger gibt. Sondern nur Referenzen. Referenzen sind quasi ein Zeiger auf ein Objekt/Variable, während eine Zeiger ein Zeiger auf eine Speicherstelle ist. Das hört sich zunächst kompliziert an wenn man mal darüber nachdenkt ist das aber auch ein ziemlich simples Konzept. Vielfach verpönt unf gefürchtet und ein großes Gesprchsthema sind Zeiger immer deswegen weil man mit ihnen so gefährliche Sachen machen kann. Zeiger sind ein Mittel um irgendwohin ganz nach belieben irgendwas in den Speicher zu schreiben, ohna das das Programm oder der Prozessor das wirklich überprüfen würde ob da überhaupt noch Speicher frei ist oder ob da schon was steht oder ähnliche Konflikte auftreten.
Mit Zeigern kann man heutzutage nichts mehr böses anstellen. Seit Linux 2.4. und Windows Vista besitzen die meisten User-Betriebssysteme effiziente Speicherschutzmechanismen. Sobald man auf Speicherstellen zugreift, die nicht zulässig sind, wird die Applikation mit einem Fehler gekillt.

Zum Thema "Ein neues BS wird doch kaum noch einer entwickeln können" kann man sich zb Googles neuen Browser Chrome angucken. Browser gibt es ja auch schon ein paar Tage und Chrome revolutioniert die bestehenden Browser in ein paar Aspekten. Die Aspekte und Ideen die Chrome dabei verwendet (zb ein eigener Thread für jeden Tab) sind aber auch nichts wirklich neues. Aber Chrome zeigt, das es durchaus noch möglich ist schon bestehendes Wissen zu neuen Ansätzen zu kombinieren. Oftmals sind das neue Kombinationen die früher noch nciht möglich waren weil die Rechner oder dass Inet dafür noch zu langsam waren.
Absolut kein Vergleich. Das wirklich interessante an einem Browser ist die Rendering Engine, die beim Chrome auf das Open-Source Projekt WebKit basiert. (Ebenso der Safari basiert darauf). Das einzig interessante am Chrome Browser ist der JavaScript Interpreter, der aber mittlerweile auch nicht mehr wirklich so revolutionär ist, da u.a. der Opera in manchen Bereichen sogar noch schneller ist.
Im Vergleich dazu darf man sich bei Betriebssystemen mit Hardware Interrupts, Speicher-, Prozessverwaltung, Speicherschutz, Modulen/Treibern, Netzwerken .. sogar der allgemeinen Architektur rumschlagen.


Ok, also was ich so ungefähr sagen wollte ist, dass ich nicht finde das es so ist das die Informatik immer unverständlicher werden würde. Im Gegenteil, es verändert sich an den Konzepten fast nie was weil sich schon genügend schlaue Köpfe damit befasst haben und die Datenverarbeitung schon ziemlich durchgekaut. Schaut man sich verschiedene Programmiersprachen, Betriebssysteme und ähnliches an wird man vielfach immer wieder auf die gleichen Dinge in unterschiedlicher Ausführung und Kombination stoßen.
Es geht nicht um die Konzepte, es geht einfach darum, dass man heutzutage nicht mehr auf dem ersten Blick sieht, was APIs oder gar Programmiersprachen (Stichwort Java, .NET) wirklich machen.
Man betrachte einfach mal den Datentypen 'String'. Unter C gibt es diesen Datentyp nicht einmal, man muss auf Character-Arrays zurückgreifen und wenn man nicht auf den 'String' verzichten will, der muss ihn sich selbst entwickeln. Dies ist aber erst gar nicht möglich ohne Zeiger und dynamischer Speicherallozierung.
Programmieren, wie man es aus C/C++ kennt, ist also in Java/.NET erst gar nicht mehr möglich. Man bekommt dort einfach irgendeine extrem umfangreiche API, die man nutzt. Was aber unter der Haube steckt - ist völlig undurchsichtig. Davon ab, ich will nicht sagen, dass programmieren mit Java nicht komfortabel ist! Aber wir haben bei uns welche im Semester, die eine Java Hashtable nutzen und nicht einmal wissen, was überhaupt eine Hashtable ist.
Dieses Thema enthält mehr als 10 Antworten. Klicke hier, um das ganze Thema zu lesen.

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Aktivität
Chat (20 Min)
0 Zeilen

Teamspeak 3

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:29:23 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS
Die Betreiber haften nicht für die Inhalte der User. Die Beiträge spiegeln ausschließlich persönliche Meinungen wider, und nicht die der Seitenbetreiber.