Mechanics schrieb:
Xin schrieb:
hustbaer schrieb:
Allerdings gibt es heute auch viel viel mehr Sprachen/Technologien/Dinge die "man kennen sollte".
Dem möchte ich widersprechen.
Jain. Ich würde dem eher zustimmen. Nehmen wir das Webzeugs als Beispiel. Als ich angefangen habe, hat CSS noch keinen interessiert, das war ein komisches Feature, das Browser rudimentär unterstützen. Damals war man schon cool, wenn man mit primitivem HTML eine primitive Webseite basteln konnte. Da gabs nicht viel drum rum. Und wenn man noch etwas JavaScript konnte, dann war man schon sehr sehr fortgeschritten. Heute interessierts keinen, wenn man HTML kann, das reicht nicht. Man muss CSS und JS und tausend JS Bibliotheken wie JQuery oder AngularJs kennen. Dann gibts Responsive Webdesign und Constraint CSS. Und wenn man das alles nicht kann, dann kann man nicht mitreden und ist überhaupt nicht cool.
Ab AmigaOS 2.0 hatten GUIs nicht mehr einfach nur Kästchen mit Text zu sein und fertig war der Button. Die Vokabel hieß "Font-Sensitiv". Das GUI-Design wurde also im Verhältnis zum Zeichensatz aufgebaut. In CSS heißt die Einheit em, wer sich bei Webdesign mit px anfängt, hat schon verloren.
Für die GUI standen verschiedene Stifte zur Verfügung, die das OS vorgab. Der Benutzer legte außerhalb der Anwendung fest, wie sie zu colorieren war. Die Schrift- und Hintergrundfarben waren z.B. vorgegeben. Das konntest Du überschreiben, aber die Vorgaben kamen von außerhalb Deiner Anwendung und darauf konntest Du mit allen Möglichkeiten Deiner Programmiersprache eingehen.
Wenn der Benutzer einen großen Zeichensatz haben wollte, dann bekam er den. Das bedeutet, man konnte sich nicht mehr darauf verlassen, dass das Fenster tatsächlich auf den Bildschirm passt. MUI half dabei.
Hier mal ein MUI Screenshot: https://en.wikipedia.org/wiki/Magic_User_Interface#/media/File:AmbientDesktop.png
Der ist nicht aus den 90ern, aber mein Desktop sah in der Zeit nicht viel anders aus. Auf den zweiten Blick... wenn ich mir die Toolbar unten so angucke, wenn man die ganz nach links zieht, sieht das ziemlich genauo so aus, wie bei mir in den 90ern....
Ebenfalls in AmigaOS2 erschien AmigaGuide, ein Hypertextformat, das ganze Bücher in einer Datei halten konnte, inkl. Links. Vergleichbar mit E-Books heute. Es wurde damals auf dem Amiga verwendet wie man heute PDFs verwendet werden. Nur, dass man AmigaGuides im Texteditor bearbeiten konnte und PDFs halt nicht.
HTML war damals uninteressant, da musste man ja jede Seite nachladen, also sich tausende Dateien auf die Festplatte legen - wozu soll das gut sein!?
Heute kann man das mit JavaScript in einer HTML-Datei lösen und indem man divs mit Seitennummern ein und ausschaltet. Für mal eben so war AmigaGuide eigentlich heute noch praktischer...
Ab AmigaOS 2.1 war es üblich, dass man Software, deren Sprache man nicht mochte, selbst übersetzt. Wer keine Lust auf Deutsch hatte, konnte das OS auch auf Kölsch, Sächsisch oder Bayrisch haben und wenn die Lieblingsapp keine Kölsch-Übersetzung hatte, schrieb man sich halt eine. Versuch das mal auf Windows.
Die GUI wusste also auch nicht, wie lang die darzustellenden Texte werden, hatte aber trotzdem zu funktioniern. Und ob die Anwendung ihre Größe variert oder der Bildschirm, spielt für die Software keine Rolle. Und das war selbstverständlich - auch für meine Software, die ich damals als kleiner Hobby-Entwickler geschrieben habe. Auf dem Amiga habe ich ab Mitte der 90er 1600x1200 als Bildschirmauflösung gefahren habe, wo 800x600 noch normal waren. Auf 17". Heute nennt man das "Retina". Zugegebenermaßen, es waren nur 8 Farben, für mehr reichte die GPU damals nicht.
AmigaOS 2.0 erschien 1990. 2.1 recht kurz danach, 92 vermute ich. 3.0 kam mit den letzten Amigas 1994. MUI wurde 1992 oder 93 veröffentlicht.
CSS und Responsive Design sind für mich Fragen, die sich vor 25 Jahren stellten. Die Frage überhaupt ein CSS zu machen kam erst auf, als die Lösungen schon da waren. Und dafür, dass es bereits Lösungen gab, ist CSS eine recht bescheidene Antwort geblieben. Was die Internationalisierung von Anwendungen angeht... Joah... da liegt die Zukunft wohl weiterhin in den frühen 90ern begraben.
Wir haben jetzt 2015. Heute bin ich professioneller Entwickler und löse Probleme, die vor 25 Jahren schon gelöst waren. Aber halt noch nicht auf Windows. Dass ich WinForms nochmal Font-Sensitiv machen müsste und Rows und Grids schreiben müsste, die die Controls, automatisch ausrichten, weil die Technologie der 2000er nicht mithalten kann, mit der Technologie als man Controls noch Widgets nannte oder Gadgets, das hätte ich auch nicht gedacht. Der WinForms-Technologie beizubringen, was in den 90ern noch Gadgets von sich aus konnten, war aber kein Problem, weil es zwar vielliecht neue Technologie war, aber am Ende doch nur kleine Vierecke zum Draufklicken.
Über die Weise, wie Übersetzungen angegangen werden und was der Spaß an Arbeit kostet, äußere ich mich mal nicht...
Mechanics schrieb:
@shelley: du brauchst eigentlich keine so große Angst haben, dass du die Ausbildung nicht schaffst, wenn du eine anfängst. Ich glaube, wenn man sich da auch nur ein bisschen anstrengt, packt man das schon.
Dem stimme ich zu.
Wenn Du programmieren kannst, ist das kein Intelligenztest, sondern Du lernst da was, dafür musst Du Dinge auswendig lernen und hier und da ein paar Fragen stellen und wenn Du das zwei Jahre durchhältst, hast Du ein Stück Papier und was positives im Lebenslauf.
Marthog schrieb:
Xin schrieb:
hustbaer schrieb:
Allerdings gibt es heute auch viel viel mehr Sprachen/Technologien/Dinge die "man kennen sollte".
Dem möchte ich widersprechen. Es gibt allerdings mehr Vokabeln, um Dinge neu zu bezeichnen.
Als jemand, der erst vor ein paar Jahren programmieren gelernt hat, muss ich hustbaer zustimmen.
Ohne Dir die Kompetenz abzusprechen... programmierer noch ein paar Jahre und Du fragst Dich immer wieder, was daran modern sein soll, Dinge schlechter zu machen, als Du es früher gemacht hast.
Du weißt ja... Früher war alles besser.
Und das war's irgendwie auch.
Wir exekutieren heute Standard-Lösungen, so wie Computer ohne Intelligenz Programme exekutieren. Wir suchen aber keine neuen Lösungen. Und irgendwann kennst Du die Standardlösungen.
Wenn Du die Rechtschreibung von 75000 Wörtern in 64kB Arbeitsspeicher bekommen musst, dann stellst Du bei einer durchschnittlichen Wortlänge von 5 Zeichen fest, dass 375kb alleine für die Daten brauchst.
Ist also unmöglich.
Da muss man sich auch keine Gedanken mehr drum machen, schließlich haben wir heute Gigabytes von Speicher. Das war in den frühen 70ern anders, also hat man eine brauchbare Lösung gefunden und das Programm spell genannt.
Es war aber halt keine Standard-Lösung.
Marthog schrieb:
Spaeter habe ich mal meinen Vater gefragt, wie man denn richtiges Programmieren lernen kann und er hat gehoert, dass Python eine moderne und zukunftstraechtige Sprache ist. Es ist ja gar nicht mal schwer, aber wenn man mit Worten wie hashtable, tupel oder iterator nichts anfangen kann, ist man schnell raus.
Das sind Standardlösungen. Damit das nicht so 08/15 klingt, benutzt man in der Informatik den Begriff "Design Pattern". Da klingt das Wort "Design" mit, was auch einen guten Klang hat, wie ich finde. Um in der Nase zu popeln wird bevorzugt der Zeigefinger verwandt. Auch das ist ein "Design Pattern", eben die Standardlösung, die Nase zu entpopeln.
Nehmen wir die virtuellen Maschinen. Ganz tolle Sache, Java und C# kompilieren Bytecode und per JIT-Compiler laufen die Anwendungen etwa so schnell wie native Anwendungen. Portabel (zumindest theoretisch).
Das ist neue doch eine neue Technologie!
Wenn wir statt "virtueller Maschine" Pseudo-Maschine sagen und statt "Byte-Code" P-Code und statt Java und C# Pascal nehmen, dann befinden wir etwa in der Mitte der 1960er. Das ganze lief auf den PDP-Maschinen und z.B. dem Apple II. Die PDPs haben die Form eines Kleiderschranks und die großen dekoratitiven Rundungen an der Vorderseite nannte man Magnetbandspule.
Soviel zum Thema neue Technologie.
Aber der JIT-Compiler! Sowas hat es früher nicht gegeben. Und das stimmt. Früher war vor dem JIT-Compiler ein Parser, der ASCII-Texte auf Korrektheit prüfen musste und diese Anweisungen bevor diese in OpCodes übersetzt werden. OpCodes sind das gleiche wie Bytecodes, nur versteht die CPU sie dann auch. Das Programm nannte man Assembler oder neudeutsch Assemblierer. Ein JIT-Compiler muss keine Texte prüfen, der übersetzt einfach Bytecodes in OpCodes, macht also faktisch sogar weniger als ein Assembler.
Assembler ist die erste funktionierende Programmiersprache. Also wirklich die Allererste. Ein JIT-Compiler ist also ungefähr so neu, wie Assembler, nur halt eine davon noch abgespeckte Version davon.
So wird Technik aus den 1900+60ern und Technik aus den 1900+40ern zur Hype-Technologie der 1900+100er. Yeay...
Glaub mir, irgendwann fragst Du nicht mehr nach der Vokabel, sondern nur noch nach der Idee dahinter und dann wirst Du feststellen, dass die Cloud auch nur ein Netzwerklaufwerk ist, welches dank mitgelieferter App inkompatibel zu Lösungen gehalten wird, die es vor 40 Jahren schon gab und kostenlos verfügbar sind, daher nicht als neue Technologie vermarktet werden können, damit Du 'Yeay' sagst und das Portemonnaie öffnest.