Hadmut Danisch

Ansichten eines Informatikers

Die Informatik stirbt

Hadmut
16.5.2015 14:09

Es geht langsam zu Ende.

Das hab ich mir schon öfters gedacht, und es auch gebloggt. z. B. Spiel mir das Lied vom Tod der Informatik.

Mir fällt öfters auf, dass sich die IT in vielen Dingen nicht nur nicht mehr vorwärts bewegt, sondern sogar abbaut, sich verschlechtert.

  • Linux: So zwischen 2005 und 2009 war ich mit Linux am zufriedensten. Robust, geradeaus, schöne, praktische Oberflächen, machte alles, was ich wollte. Viele Funktionen liefen damals stabil und einwandfrei, an Funktionen war alles da, was ich brauchte. Heute gibt es gruselige Oberflächen, das Zeug wird instabil, überfrachtet, es läuft jede Menge Scheiß, der nicht mehr zu durchschauen (und auch nicht mehr dokumentiert) ist, und viele kleine nützliche Funktionen, die ich damals im Desktop als selbstverständlich hatte, sind heute nicht mehr da oder nur noch umständlich und instabil zu haben. (DVB-T-Aufnahmen, DLNA-Videos abspielen, diverse Netzwerkfunktionen, usw. lief damals alles einwandfrei, heute ist es nur noch mit Krampf möglich). Gnome 2 war prima, danach kam nichts brauchbares mehr. XFCE kommt so langsam in die Nähe dessen, wo Gnome 2 damals schon war.
  • Anwendungssoftware wie etwa Thunderbird: War vor 5 Jahren mal prima. Seither keine Verbesserungen oder Erweiterungen, sondern massive Rumpfuscherei in der GUI, weitgehend vermurkst.
  • Windows: Benutze ich zwar eigentlich nicht, aber: Windows XP war noch am ehesten benutzbar. Dann kamen die mit Vista, Windows 8 und all so krämpfen, die Benutzeroberflächen der Anwendungssoftware wurden durchgemurkst und, und, und.
  • Webseiten: Es gab mal eine Zeit, in der konnte man Webseiten prima und problemlos lesen. Heute sind die meist völlig vermurkst, mit ein oder zwei Dutzend fremder JavaScript-Bibliotheken vollgedonnert, und jeder Menge Funktions-Mist. Ich kann heute viele Webseiten auf dem Tablet nicht mehr erträglich lesen, weil man immer dann, wenn man scrollen oder Zoomen will, man irgendeinen Werbeblödsinn auslöst und woanders landet, oder irgendwelche Werbeoverlays so groß (aber unverrückbar) sind, dass man an den Button zum Zumachen nicht kommt.
  • Sprachen: Es gab mal eine Zeit, da war Ruby zuverlässig und stabil, Rails hat einfach so funktioniert, C und C++ auch einigermaßen brauchbar, Java halbwegs einheitlich und so weiter. Heute ist Ruby zum Haare ausraufen. Zwar im Kern verbessert, aber viele der Libraries werden nicht mehr gepflegt und durch die gems ist ein großes Durcheinander entstanden. Viele Funktionen sind nicht mehr nutzbar, weil die damaligen, stabilen Bibliotheken nicht mehr gepflegt werden und mit heutigen Ruby-Versionen (oder sonstigen Umgebungen) nicht mehr zusammenarbeiten.
  • Online-Dienste: Selbst da fallen mir massive Verschlechterungen auf. Voran Google. Die hatten so vor 5 Jahren mal so richtig gute Dienste. Den Reader. Google Maps war damals prima und hatte tolle Funktionen. Und was ist heute aus Google Maps geworden? Der letzte Mist. Unscharf, langsam, Informationen fehlen, Funktionen fehlen, die Own Maps in eine grausige separate Anwendung ausgelagert. Nur noch mühsam zu gebrauchen. Google Maps ziemlich verpfuscht, Google Reader tot. Und so weiter.
  • Informatik-Unterricht: Nicht mal der kommt an das heran, was es damals in den 80ern in der Schule gab.

Ich habe immer häufiger das Gefühl, dass sich vieles nicht nur nicht hält, sondern drastisch verschlechtert.

Da schreibt mir gerade ein Leser einen Kommentar mit Link auf diese Seite, die auf die und die weiterverlinkt.

Selbst große und marktführende Unternehmen wie SAP und IBM schaffen es nicht mehr, 30 Jahre alte Software auch nur nachzuprogrammieren.

Leute, 30 Jahre alte Software. Wisst Ihr, auf welchem technischen Niveau die damals waren? Jedes Handy, sogar jede neuere Armbanduhr hat heute ein Vielfaches an Speicher und Rechenleistung im Vergleich zu dem, was damals zur Verfügung stand. Da musste man noch ganz einfach, bescheiden und bodenständig programmieren.

Und die bekommen es heute nich mal mehr hin, das wenigstens funktionsähnlich nachzuprogrammieren. Die alte Software läuft, die neue läuft nicht. Trotz massiv überzogener Zeit- und Finanzpläne.

Man könnte den Eindruck bekommen, die Branche stürzt gerade ab und dilettiert sich gerade zu Tode.

110 Kommentare (RSS-Feed)

MS
16.5.2015 14:26
Kommentarlink

eines der Probleme ist auch das viele Unternehmen (bzw die dortigen IT-Entscheider) nicht bereit sind in Qualität wesentlich zu investieren. Das sieht man doch schon an den teils viel zu knappen Projektplänen.

Und geh mir fort mit agilen Projekten!
Bei den verantwortlichen Projektleitern ist nicht angekommen was das heisst. Die haben das nicht kapiert …
Für die meisten Projekte die mir über den Weg gelaufen sind heisst agil nur “wir verzichten auf jegliche Methodik und fangen einfach mal an. Dann sehen wir ja wo wir hinkommen”.
Ich nenne sowas CDD …Chaos Driven Development

Früher hatte man wenigstens noch oft ein Wasserfall-Modell durchgezogen, aber nachdem neue PM-Methodiken aufkamen und die meisten das wohl nicht kapiert haben herrscht oft nur noch ein nicht aufeinander abgestimmtes Wirrwarr an Ideen und Methodiken im Projekt oder es wird gleich drauf verzichtet …

Gerade in meinem Projekt passiert:
Die Projektleitung fragt wie lange wir dafür benötigen und ich sage “8 Wochen”, und dann kam nur als Antwort “Wir erwarten dass es in 4 fertig ist” … yai, bin ich Scotty oder was?
Geht schon auch in 4, nur dann mit minimalster Spezifikation und Doku und nur einer Handvoll UnitTests wenn überhaupt … aufgrund solcher Vorgaben sind dann eben viele Dinge mit der heissen Nadel gestrickt und fallen auseinander wenn man etwas genauer hinguckt … was dann zu deiner obigen Beobachtung führt.

Und SAP ist ein Saftladen. Da weiß ein Entwickler nicht was der andere macht. Sooft wie ich über deren Zeug schon geflucht habe …


Bärle
16.5.2015 14:32
Kommentarlink

… bescheiden und bodenständig zu programmieren. Ja, damals, hatte man auch nicht Speicherplatz zum Schweinefüttern. Warum also soll sich ein Programmierer heute noch Gedanken über eine schlanke Software machen. Wichtig ist nur, dass am Ende das Ding läuft, wie es laufen soll. Wieviel Rechenleistung dabei verbraucht wird ist egal.
Kein Wunder, dass dann solche überbordeten Programme so viel Fehler machen, dass man am Ende meint, so ein Computer sei auch nur ein Mensch …


MS
16.5.2015 14:40
Kommentarlink

Zitat aus einem der verlinkten Artikel: “Muss man da nicht glauben, dass moderne Projektteams einfach nicht mehr systematisch genug arbeiten?”

Meiner Projekterfahrung nach ist genau das der Fall.
Systematisches Projektvorgehen habe ich in 8 Jahren nur ein einziges mal erlebt (und das waren klassische sd&m’ler) … sonst nur wenig bis garnicht, jedenfalls nicht im SAP consultancy Bereich.


Bob Baumeister
16.5.2015 14:42
Kommentarlink

Hört sich für mich an wie die Probleme vor 20 Jahren, mit den Technologien von heute. (Hostablösung, Windowsprogrammierung, 4GLs, …)


yasar
16.5.2015 14:46
Kommentarlink

> Leute, 30 Jahre alte Software. Wisst Ihr, auf welchem technischen
> Niveau die damals waren? Jedes Handy, sogar jede neuere Armbanduhr
> hat heute ein Vielfaches an Speicher und Rechenleistung im Vergleich
> zu dem, was damals zur Verfügung stand. Da musste man noch ganz
> einfach, bescheiden und bodenständig programmieren.

Ich sehs schon kommen: So wie zu “unserer” Zeit die Fortran- und Cobol-Methusalems reaktiviert wurden, werden wir wohl demnächst ein “goldenes zeitalter” erleben.


yasar
16.5.2015 14:47
Kommentarlink

PS: Ich denke, dasß ist vor allem der heutigen GUI-Gläubigkeit geschuldet. Wenn die einafch wie damals ein 80×25-Terminal-GUI hätten und sich ddarauf beschränken würden, wär das alles halb so wild.


Stefan H.
16.5.2015 15:30
Kommentarlink

In dem Zusammenhang lief auch grade wieder dieser Link durch diverse Blogs:
http://ravimohan.blogspot.de/2007/04/learning-from-sudoku-solvers.html

Grob aus meiner Sicht eine Meta-Diskussion über Aspekte der Algorithmentechnik/Datenrepräsentation und dem, was ein Programmierer als Domänenwissen mitbringen muss.

Der Autor des ‘failing projects’ ist Ron Jeffries, einer der (mindestens Halb-)Götter von Extreme Programming und der Agilen Softwareentwicklung im Allgemeinen, und dass er diese, ähm, Bauruine so in seinem Blog stehen lässt, zeugt von Chuzpe oder vielleicht will er einfach auch zeigen, dass auch kleine Projekte spektakulär schiefgehen können…


Holger
16.5.2015 15:42
Kommentarlink

Kann ich zu einem guten Teil nachvollziehen. Ich bin aber fachlich nicht so versiert.
Bei Google fiel mir in letzter Zeit auf, dass die Suchergebnisse nicht mehr die Ergebnisse enthalten, die früher auftauchten. Obwohl diese noch existieren(nach etwas Überlegen fallen Sie mir oft wieder ein).
Ich meine eine deutliche Tendenz zu kommerziellen Ergebnissen zu erkennen. Gestern fiel mir das bei der Suche nach Foren zum Thema Abmahnung auf. Fast alle Ergebnisse waren Anwaltseiten, die Hilfe versprachen.
Bei den Linuxdesktops hätte ich auch lieber weiter Gnome 2 benutzt. Wobei ich Gnome 3 mittlerweile auch ganz ok finde. Ebenso wie Ubuntus Unity. Überfrachtete Desktops mag ich nicht. Ab einer gewissen Komplexität, finde ich Kommandozeile oder auch Tastenkürzel ergonomischer.


toff
16.5.2015 15:46
Kommentarlink

Ohne Computersysteme geht heute nahezu kein Geschäft mehr.
Das wissen die Chefs von Softwareanbietern bzw. -dienstleistern.

Bringt man in kurzer Zeit ein perfektes Produkt an den Kunden, schadet man sich selbst. Einmal Einnahmen, Ende, aus.

Dauert die Entwicklung, Fehlerbereinigung, Verbesserung immer und immer länger, sind immer neue Patches nötig und neue Sicherheitslücken zu stopfen, dann hält man sich den Kunden und seinen Einkommensstrom.
Es wäre dumm, präzise, schnell, perfekt und effizient Software zu liefern – das wäre so dumm wie ein Arzt, der heilt, anstatt zu behandeln – ein Patient in Behandlung kommt regelmäßig immer wieder, und natürlich bringt er regelmäßig sein Geld mit.

Kommerzielle Software kann gar nicht aufgeblasen, chaotisch, ineffizient und unüberschaubar komplex genug sein – denn wenn sie diese Eigenschaften hat, dann hat die Softwareschmiede auch morgen und übermorgen noch sicheres, reichliches Einkommen.

Ich weiß aus direkter Quelle, daß Probleme und Sicherheitslücken oft gezielt eingebaut werden. Denn die müssen dann analysiert, gepflegt, verbessert, gepatched usw. werden. Und der Kunde muß zahlen, denn er ist für sein Geschäft auf reibungslose Softwarefunktionalität angewiesen.
Findet die “Hackerszene” oder die osteuropäischen Erpresserbanden die Sicherheitlücken, die gezielt hinterlassen wurden, nicht rechtzeitig, dann veröffentlich die Softwarefirma sie eben anonym auf Hackerboards, den Rest machen die Hacker, und schon sehr bald klingelt bei dem Softwareanbieter das Auftragstelefon mit einem ängstlichen und zahlungswilligen Kunden, der gerne ein Problem beseitigt hätte.

Selbst im akademischen Bereich läuft das derart – Entwickler von Algorithmen, Sicherheitssystemen usw. bauen schon gezielt in ihre Veröffentlichungen mehr oder weniger komplexe Fehler ein, damit sie auch im nächsten Quartal ein neues Paper veröffentlichen können, und ihr impact steigt. Da es auffällig wäre, wenn ein Entwickler oder Forscher ständig seine eigenen Lücken in seinen Algorithmen findet, tauscht man sich mit anderen Entwicklern seines Vertrauens aus, so daß man wie ein toller Sicherheitsforscher wirkt, der ständig neue Analysen liefert – dabei doch vor allem nur eigene und fremde gezielt platzierte Probleme “findet” oder “löst”.

Das ist recht analog z.B. zu Baufirmen – auch da gibt es zuverlässig Problemchen und letztlich Kosten weit über Budget.

Denn ebenso wie ein Kunde seine Immobilie, brauch ein Geschäft seine Softwarelösung für seinen Geschäftsbetrieb – und es ist praktisch unmöglich, zumindest voller großer Nachteile, Komplexitäten und Widerstände, wenn man ein komplexes Bau- oder Softwareprojekt an einen anderen Dienstleister übergeben will, weil der alte keine Qualität oder Effizienz liefert – denn die neue Firma muß ja erstmal all das Getane der alten analysieren, oder gar fast von vorne anfangen…

In soweit würde ich nicht leichtfertig alles auf Dummheit und Unvermögen schieben, wenn es doch so finanziell einträchtig ist, dumm und unvermögend zu erscheinen. Der Kunde ist ja völlig abhängig, und warum sollte man einen abhängigen Kunden nicht ausnehmen, wie es nur geht?


Oliver K
16.5.2015 16:10
Kommentarlink

Unter den genannten IT-Dingen sehe ich genau einen Fortschritt: C++11 ist ein guter Fortschritt, der auch von allen wesentlichen Compilern mitgetragen wird. Und weiterer guter Fortschritt ist mit C++14 zu erwarten. Dies ist der einzige IT-Bereich, wo ich persoenlich Fortschritt erlebe, sonst ueberall nur Verfall oder Ramsch.

Aber zumindest von unseren Studenten ist auch nicht mehr zu erwarten: da ich ja mit clients zu tun habe, darf ich gar nichts mehr erwarten (sonst Rausschmiss), und die Studenten selbst hetzen lethargisch den neuesten Trends hinter.

Meines Erachtens sieht man hier der Ersetzung der Produktions- durch die Reproduktionslogik. Wer will denn noch wohin? Wer stellt denn noch Ansprueche? Sicher, manche schon noch, aber das wird immer enger (oder man arbeitet fuer die US-Kriegsmschinerie, da gibt’s Geld und gute Stimmung).


Gerd
16.5.2015 16:56
Kommentarlink

Google maps ist schon ziemlich gut, besonders die Apps. Und in vielen Ländern gibts Streetview bis ins kleinste Dorf. Nur in Deutschland wurde das (fast) aufgegeben wegen der vielen Hysteriker.

Und Google Reader heisst jetzt “Feedly”. Die IT geht schon weiter, nur sind es wieder die Amis, die es vorantreiben.


Dr. No
16.5.2015 17:30
Kommentarlink

hi,
gehört nicht zu diesem Artikel, aber eventuell hast Du es noch nicht gesehen:
https://www.boell.de/sites/default/files/gender_wissenschaftlichkeit_ideologie_2.auflage.pdf
Es soll die Kritik der Kritiker an der Gendertheorie, oder wie auch man diese Ideen bezeichnet, wiederlegt werden.


Hadmut
16.5.2015 17:33
Kommentarlink

@Dr. No:

Schon bekannt und bebloggt. Enthält keinerlei Substanz, zeigt nur, dass die Autoren nicht wissen, was Wissenschaftlichkeit ist.

Trotzdem Danke für den Hinweis.


Dr. No
16.5.2015 17:31
Kommentarlink

widerlegt, sollte es heißen..


TOPCTEH
16.5.2015 17:36
Kommentarlink

@yasar: Wenn’s doch nur die GUI-Gläubigkeit wäre. Leider fällt den meisten Entwicklern darüber hinaus außer GUI-Verunstalten nichts mehr ein. Warum hat plötzlich alles Grau-in-Grau und flach auszusehen? Warum braucht man bei Firefox neuerdings für so eine Selbstverständlichkeit wie eine Statuszeile ein Addon?!? Wie wäre es mal damit, Fehler zu bereinigen? Hauptsache, alles ist eine Äpppp…


Christian
16.5.2015 17:45
Kommentarlink

Wieso sollte es der Informatik anders ergehen als anderen Bereichen? Bin kein Informatiker, aber mir fällt auf, dass es überall immer komplexer und gleichzeitig unüberschaubarer und störungsanfälliger wird – das Recht? Ein Wust, durch den kein Jurist mehr einzeln blicken kann. Egal ob das Berichtswesen in großen Firmen, die Bedienungsanleitungen von Radios heute und vor 30 Jahren, Vertragswerke, Automobile – alles wird immer komplexer.
Gleichzeitig Anforderung des Spätkapitalismus: Gewinnmaximierung! Also Sachen produzieren, die störungsanfälliger als früher sind (betrifft auch Menschen). Plus eben exponentiell gestiegener Komplexität. Plus gesteigertem Tunnelblick. Plus nachlassender Denk- und Abstraktionsfähigkeit bei der Masse. Warum bemühen, wenn Lust und Wissen einen Klick entfernt sind?
Kurz: Wie der Meister vom DGF so hellsichtig vor vielen Jahren sagte: Aufwärts ohne Ende – bis zum Ende.
http://www.dasgelbeforum.net/forum_entry.php?id=127999
Ah – wir brauchen noch eine allgemein geltende Verabreichungspflicht für Medikamente, damit alle trotzdem immer happy sind – aber ich schätze mal, das ist schon in Arbeit.
Schönen Gruß
Christian


die grafenburger
16.5.2015 17:48
Kommentarlink

@Dr. No
1. Seite – Hinweise auf defekte Links – habe ich schon keine Lust mehr,


Heavy
16.5.2015 18:50
Kommentarlink

Der in diesem Artikel geäußerten Kritik kann ich nur teilweise zustimmen.

Linux: der Kernel ist in einem sehr guten Zustand, das Entwicklungsmodell funktioniert hervorragend. Bei den Distributionen ist allerdings ein gewisser Stillstand eingetreten, viele haben Mühe, die Manpower aufzubringen, die es bräuchte, um auf dem Level der letzten Jahre weiter zu machen. Eine gewisse Mitschuld hat Systemd, das noch viel zu unfertig ist, um es bereits in die großen Distributionen zu integrieren.

Gnome3 und KDE4 halte ich für einen schlimmen Rückschritt. Aber Gnome2 lebt in Form von MATE weiter, und das sehr gut. Auch von KDE3 gibt es Forks, XFCE und LMDE machen auch Fortschritte.

Anwendungen: ja, Thunderbird wurde in den letzten Jahren kaum weiter entwickelt, ebenso Open-/LibreOffice. Es gibt aber auch Gegenbeispiele, vor allem im Bereich der Browser tut sich viel.

Webseiten: hier ist leider ein harter Konkurrenzkampf um den Anteil am Werbekuchen entbrannt, der auf dem Rücken der Anwender ausgetragen wird. Aber mit entsprechenden Browsererweiterungen wie Adblocker oder Ghostery bekommt man das (noch) ganz gut in den Griff.

Programmiersprachen: seit es Go, Swift und Rust gibt, macht (mir) Programmieren wieder deutlich mehr Spaß. Wenn alle Entwickler von Java, Objective-C und C++ auf die genannten Sprachen umsteigen würden, gäbe es hier deutlich weniger Schmerzen. Das Problem ist, dass das nicht geschieht. Ruby fand ich immer schon grausam, aber im Schatten des Ruby-Hypes leisten Perl5 und auch Tcl seit Jahren gute Dienste.

Die Google-Services haben in letzter Zeit nachgelassen, vor allem Maps ist mit dem letzten Relaunch sehr viel langsamer geworden. Google geht offenbar von einem schnelleren Wachstum der Bandbreiten aus, als das zumindest hier in Deutschland Realität ist. Es gibt aber Alternativen, z.B. OpenStreetMap wird immer besser.

Wie der Informatik-Unterricht in den 80ern war, hing stark vom einzelnen Lehrer ab. An meiner Schule wurden einfachste Programme in GfA Basic auf dem Atari ST geschrieben. Besser als gar nichts, aber viel gelernt habe ich da nicht. In den 90ern wurde es wohl deutlich besser, aber mittlerweile geht es wieder zurück. Um eine vernünftige Informatik-Ausbildung zu bekommen, muss man wohl auf’s Technische Gymnasium, zur Allgemeinbildung gehört das in den Augen vieler Landespolitiker eher nicht.


Hadmut
16.5.2015 19:35
Kommentarlink

@Heavy:

> Linux: der Kernel ist in einem sehr guten Zustand, das Entwicklungsmodell funktioniert hervorragend.

Das sehe ich etwas anders. Ich halte monolithische Kernel für sicherheitstechnisch sehr problematisch, und diesen Riesen-Brocken für nicht mehr effektiv überschaubar. Wer würde diesen Kernel noch ernstlich als „Sicher” bezeichnen wollen?

> Programmiersprachen: seit es Go, Swift und Rust gibt, macht (mir) Programmieren wieder deutlich mehr Spaß.

Go und Rust finde ich gruselig (auch wenn’s ein paar gute Ideen gibt), und als Sprachen einfach zu rückständig, vor allem sicherheitstechnisch und softwaretechnisch.

> Ruby fand ich immer schon grausam,

Ruby hingegen finde ich syntaktisch und semantisch für die mit Abstand beste Sprache, die mir bisher untergekommen ist, (sehe aber drei bis vier gewaltige Mängel: inzwischen schlechten Pflegezustand, Interpretersprache, damit keine Compilersprache [viele Fehler werden erst zur Laufzeit entdeckt, wenn man dran vorbeikommt), fehlende Typbindung, fehlende abstrahierte Klassenbeschreibung).


Kurgan
16.5.2015 19:03
Kommentarlink

Das mit Linux kann ich nicht nachvollziehen. Du als Informatiker solltest am ehesten wissen, dass Linux einfach nur der Kern ist nichts, also rein gar nichts mit den Bedienoberflächen zu tun hat. Wovon du sprichst, das sind Ditributionsspezifische Ausprägungen von GNU basierten Systemen. Ausserdem ist gerade im GNU/Linux Umfeld die Vielfalt so groß, dass Du garantiert genau das finden würdest, was vor 10 Jahren so gut war. Nimm z. B. einfach eine Gentoo System und bau dir genau das, was du möchtest. Und Du wirst bekommen, was Du möchtest. Was kann Linux dafür, dass Dir SuSE, Readhat, Umbuntu oder wie sie alle heißen, Dir nicht das anbieten, was du dir wünscht?


Hadmut
16.5.2015 19:28
Kommentarlink

@Kurgan:

Stimmt so doppelt nicht.

Linux bezeichnet durchaus nicht nur den Kernel, sondern auch das ganze Drumherum. Und viele alte Projekte werden nicht mehr gepflegt und sind mit heutigen Systemen nicht mehr kompatibel, nicht mehr einsatzfähig.

Ich mag auch diese künstliche Differenzierung nicht, um Kritik abzuwehren, hört sich an wie Islam< ->Islamismus.

Zweitens ist auch der Kern inzwischen ein großer Misthaufen geworden, auf den immer mehr aufgehäuft, aber nur wenig Verbesserungen eingebracht werden. Immer mehr Externe und Firmen liefern irgendwelche Treiber zu, und inzwischen dürfte der Kern inzwischen eines der größten Programme sein, die überhaupt je entwickelt wurden. Ist man aber erst einmal im Kernelspace, was bei den vielen Codeteilen kaum zu verhindern ist, weil sie nie fehlerfrei sein können, hat man sofort den Hauptgewinn, und alles gewonnen und kompromittiert.

Ich halte den Kern durchaus nicht für so toll, wie viele Leute es tun.


Schwärmgeist
16.5.2015 19:15
Kommentarlink

Diese JavaScript-Pest im Web stößt mir auch sauer auf. Heute ist halt alles “responsiv” und geajaxt bis zum Gehtnichtmehr.

C++ hat seinen Zenit eindeutig hinter sich. Das ist inzwischen von derart vielen Architekten mit immer neuen Partykellern, Wintergärten, Gästehäusern und Wellblechhütten zu einer Favela ausgebaut werden. Die Sprache ist am Ende. Deshalb schwärme ich ja so von Swift, das es eben leider bisher nur für Mac-Systeme gibt, sieht man mal von dem Android-Gefrickel ab.

Ach, ich will nicht jammern, viele Probleme bedeuten für mich gute Jobaussichten.

Ganz allgemein neigen IT-Projekte zur Verslummung und Unwartbarkeit, bis sich ein neuer, aufgeräumter Hype präsentiert, der dann wiederum binnen 20 Jahren völlig verwildert. Das ist wohl so, ja.


Oliver K
16.5.2015 19:23
Kommentarlink

@Schwärmgeist: Deine Auesserungen zu C++ zeigen nur, dass Du davon keine Ahnung hast. Und dann sollte man besser schweigen.


Schwärmgeist
16.5.2015 19:23
Kommentarlink

Ein gutes Beispiel ist auch Word. Word 2003 oder so war nahezu perfekt. Lief flott, hatte kaum Bugs, die Silbentrennung war tadellos, die Menüs waren zwar nicht fancy, aber durchdacht. Seitdem ging es mit Word nur noch bergab.


Schwärmgeist
16.5.2015 19:31
Kommentarlink

> Unter den genannten IT-Dingen sehe ich genau einen Fortschritt: C++11 ist ein guter Fortschritt, der auch von allen wesentlichen Compilern mitgetragen wird. Und weiterer guter Fortschritt ist mit C++14 zu erwarten. Dies ist der einzige IT-Bereich, wo ich persoenlich Fortschritt erlebe, sonst ueberall nur Verfall oder Ramsch.

Da bin ich ja völlig anderer Meinung. Jede Änderung hat so ihre Berechtigung und wird auch Verwendung finden, aber da ist nichts mehr aus einem Guß. Das alles wirkt wie von 100 Köpfen zusammengehühnert, was es ja auch ist. Und hübsch ist da gar nichts mehr. Na gut, hübsch war C++ noch nie. Heute weniger denn je.


Masochist
16.5.2015 19:45
Kommentarlink

Immer öfter klicke ich auf Webseiten renommierter Firmen und sehe: nichts. Scheinbar muss man heute alles mit einem Skript-Verhau programmieren und straft die Leute, die den blockieren, mit Leere ab. Mich wundert, dass das auf dem Markt funktioniert.


Schwärmgeist
16.5.2015 19:49
Kommentarlink

@Heavy

> GfA Basic

Lange nicht mehr gehört, den Namen. GfA kenne ich als Gesellschaft für Abfallwirtschaft, es schreibt sich richig “GFA BASIC”. Ich bin Frank Ostrowski, dem Erfinder, zu großem Dank verpflichtet, denn damit habe ich tatsächlich Programmieren gelernt, bevor es dann zu C weiterging.


Jörg
16.5.2015 19:51
Kommentarlink

Hadmut, Du machst Dir zur viele Sorgen! Du weißt doch selber ganz genau, das es alles ganz anders kommt 😉

Mitunter solltest Du wissen, das Dir eine ‘gewisse’ Öffentlichkeit, sehr wohlgesonnen ist.

Und, die Informatik wird nicht sterben, sei gewiss!


Hadmut
16.5.2015 20:01
Kommentarlink

> Mitunter solltest Du wissen, das Dir eine ‘gewisse’ Öffentlichkeit, sehr wohlgesonnen ist.

Schön zu hören. 🙂


Schwärmgeist
16.5.2015 19:55
Kommentarlink

> @Schwärmgeist: Deine Auesserungen zu C++ zeigen nur, dass Du davon keine Ahnung hast. Und dann sollte man besser schweigen.

Nö, ich habe ja nur mehr als 20 Jahre Berufserfahrung mit C++. Wie sollte ich da auch was davon verstehen. Klugscheißer.


Hadmut
16.5.2015 20:00
Kommentarlink

> Nö, ich habe ja nur mehr als 20 Jahre Berufserfahrung mit C++. Wie sollte ich da auch was davon verstehen. Klugscheißer.

Ich habe schon viele Leute erlebt, die > 10 Jahre in einer Sprache programmierten und sie trotzdem nicht verstanden hatten und nicht beherrschten.

Das Argument „ich mache es seit x Jahren” sagt erst mal nicht allzu viel.

(Böse gesagt: Jemand, der es 20 Jahre lang nicht schafft, ein Hello World zu schreiben, das der Compiler annimmt, hätte auch 20 Jahre „Berufserfahrung”. Und jemand, der alle zwei Jahre drei Zeilen programmiert, hat nach dreißig Zeilen auch 20 Jahre „Erfahrung”).


Schwärmgeist
16.5.2015 19:57
Kommentarlink

> Nö, ich habe ja nur mehr als 20 Jahre Berufserfahrung mit C++.

Das war mißverständlich ausgedrückt. Ich meinte “seit mehr als 20 Jahren”. Ein kleiner, aber feiner Unterschied.


Schwärmgeist
16.5.2015 20:07
Kommentarlink

@Hadmut, soso. Und was ist jetzt dieser Rede Sinn? Ich muß mir hier anhören, ich hätte von C++ keine Ahnung, weil das angeblich aus meinen Beiträgen so hervorging, und Du unterstützt diese Trollerei auch noch?

Na, viel Spaß noch. Ich geh jetzt, nach langer Zeit mal wieder, auf ein Konzert. Da stehen garantiert nur ergraute, schwarze Männer und eine alte Hammond auf der Bühne – und nix mit Elektronik.


kds
16.5.2015 20:22
Kommentarlink

Also C++ halten nur Leute für toll die nix anderes kennen. Und dass dieser Sauhaufen von Version zu Version scheinbar besser wird ist keine Kunst, wenn vorher alles defekt war. Wenn man sich mal genauer anschaut was sich ‘verbessert’ hat es oben jemand genau beschrieben: hier was rangezimmert, dort was rangeflickt und noch was komplett neues Halbgares dazu. Der ganze “Standard” ist für die Tonne. Was da die letzen Jahre dazu kam beschreibt die Analogie oben. Ein barocker Schrotthaufen.
Wie ein zeigemäses Pendant dazu aussehen sollte zeigt Rust und Go, da wurde wenigstens mal vorher nachgedacht und nicht einfach rangeflickt. Dort sitzen auch die wirklich fähigen Leute, an C++ pfuschen nur noch Stümper rum die geil darauf sind ihren Namen im Standardgremium zu sehen und ihre schrottigen fehlerhaften bücher besser verkaufen zu können.

Rustartikel aktuell auf Heise:
http://www.heise.de/developer/artikel/Rust-Junger-C-C-Herausforderer-mit-abwechslungsreicher-Geschichte-2649509.html


Bzzz
16.5.2015 22:33
Kommentarlink

Sag ich ja auch immer, aber ich komm mir dabei vor wie ein alter Sack, der eben der Meinung ist, dass früher fast alles besser war. Der Wahnsinnige mit dem völlig veralteten FF17 (bis vor einiger Zeit: 15) in deiner Statistik, das bin übrigens ich…

Google/Youtube schafft es mit der “neuen API” übrigens nicht mehr, einen RSS-Feed für alle abonnierten Kanäle zu generieren. Stattdessen muss man jeden einzeln in seinen RSS-Reader ziehen (immerhin geht das über ne Exportfunktion) und jedes neue oder gekündigte Abo manuell nachtragen, was die Funktion eines accountgebundenen Abos etwas ad absurdum führt. Aber wenn Google lieber minütlich 100+ Feeds ausliefert statt mir einmal die Stunde einen umfassenden bereitzustellen, bitte, ICH komm damit klar.

Und vergess bitte die Hardware nicht. Welchen Fortschritt haben Computerdisplays in den letzten 10 Jahren verzeichnet? Den Umstieg von Röhre auf Flach, Auflösung (insbesondere vertikal) ging zwischenzeitlich zurück, aktuell kommt mit UHD/4K und den beiden Sync-Technologien wieder etwas Schwung rein. Eingabegeräte? Meine 8 Jahre alte Logitech-Maus flicke ich so lange, bis ein ebenbürtiger Nachfolger da ist, der nicht mehr am Kabel hängt. Tastaturen sind auf Pappdeckelniveau zurückgefallen und jetzt entdeckt man mechanische Klackertasten neu. ECC-Speicher ist außerhalb des Serversegments immer noch alles andere als Standard. Festplatten sind immer näher am physikalischen Limit und aktuelle SMR-Platten (“8TB Archive HDD”) kann man mit Random 4K-Schreibzugriffen auf die Geschwindigkeit eines Diskettenlaufwerks bei selbigen festnageln. Lichtblicke gibts da, wo man parallelisieren kann, etwa bei SSDs und Grafikkarten, wobei die SSD-Performancezuwächse der letzten Generationen überschaubar sind und in Sachen Grafik längst das Wirthsche Gesetz gilt (und es in Mode ist, nicht ohne alle Regler am Anschlag spielen zu können).

…und dann belächelt man mich, wenn ich in Notepad++ system- und browserübergreifend korrekt funktionierende, standardkompatible und so weit wie möglich JS-freie Webseiten schreibe, die halb so groß und zigfach besser wartbar sind als was Dreamweaver und Co. auskotzen…


Collin
16.5.2015 22:46
Kommentarlink

@Hadmut:
Meinst du diese “Dilentantisierung” betrifft auch andere Branchen?
Welchen Anteil hat deiner Meinung nach die Komplexität des System-Designs an dem Schlamassel (vgl. https://en.wikipedia.org/wiki/Systemantics (Essay-Kritik an der System-Theorie))?


Hadmut
16.5.2015 23:24
Kommentarlink

@Collin:

> Meinst du diese “Dilentantisierung” betrifft auch andere Branchen?

Schwer zu sagen, da fehlt mir der Überblick. Im reinen Handwerk wohl nicht so sehr, bei Ärzten habe ich bisher auch nicht so den Eindruck.

Bei Juristen kommt es mir allerdings so vor, auch bei höheren Führungsebenen. Bei Professoren auch sehr. Ich habe gehört, auch bei der Bundeswehr.

> Welchen Anteil hat deiner Meinung nach die Komplexität des System-Designs an dem Schlamassel

Da habe ich noch nicht näher drüber nachgedacht. Spontan würde ich aber sagen, dass die Komplexität da auch eher Symptom/Folge des Schlamassels ist, nämlich weil zu viele Leute nicht mehr sauber konstruieren können.


nullplan
16.5.2015 23:07
Kommentarlink

Dann werfe ich auch einmal meinen Hut in den Ring:

Linux: Ich stimme zu, dass einiges schlechter geworden ist, aber es ist auch wieder bergauf gegangen, sodass ich jetzt wieder den Stand von ~2010 wieder erreicht habe (Hardware funktioniert soweit, nur Soundkarte macht bei Aufnahmen Probleme, aber Linux und Sound ist sowieso ein unüberschaubarer Clusterfuck).

Was mir Sorge bereitet, ist die wachsende Anzahl an Kernel-APIs, die nur mit Bibliothek bedient werden können (also aktuell wenigstens libcap, libfuse und libalsa). Was machen diese APIs, das so komplex ist, dass die bestehenden APIs nicht ausreichen, um das Ganze durch eine Datei zu abstrahieren? Wer hat das designed und wer hat das Design abgenickt?

Was das Userland betrifft: Ich benutze seit Jahren dwm mit selbstgeschriebener Uhrenanzeige. Ich habe das Gezerre um Gnome 3 und KDE 4 mitbekommen und kann nur sagen: Geliefert wie bestellt. Beide DEs sind einfach viel zu kompliziert für die Probleme, die sie lösen wollen, und ich sehe einfach den Mehrwert nicht. Wieso soll ich eine halbe Minute warten, bis KDE geladen hat, wenn ich eigentlich nur einen WM haben möchte?

Anwendungen: Oh boy, das wird eine Apokalypse. Als Firefox angekündigt hat, jedes halbe Jahr eine neue Major-Version heraus bringen zu wollen, bin ich zu Chromium gewechselt. Dann hat mich die ewige Startzeit von Chromium genervt und ich bin wieder bei Firefox gelandet.

Das Problem ist, dass es bei Browsern keine Wahl gibt, mit der ich wirklich voll zufrieden bin, und Firefox hat die wenigsten Probleme, soweit ich weiß (Firefox braucht auch eine gewisse Zeit zum Starten, aber nicht so lange wie Chromium. surf wäre eine gute Alternative, wenn die endlich mal ihre Cookie-Verwaltung multiprozessfähig machen würden, aber das wäre eine Erweiterung von libsoup, und das heißt Objektorientierung in GLib, und ich habe von besseren Selbstmordmethoden gehört! Und selbst dann ist surf nur ein Firefox ohne das UI drum herum, aber immer noch mit Webkit, und das ist auch unüberschaubar.)

Bis auf den Webbrowser bin ich aber vollends auf Konsolenanwendungen umgestiegen: Mails lese ich mit mutt, und hole ich mit getmail per fcronjob alle 5 Minuten, programmiert wird mit vim und make, und gelegentlich schaue ich Videos mit mpv. So vermeide ich die ganzen wichtigtuerirschen Updates an irgendwelchen GUIs.

Was natürlich auch heißt, dass ich eigentlich den Softwarestand von 1995 habe, mit ein paar Updates. Aber hey, dafür lädt es schnell!

Windows: Das war schon 1995 ein schlechtes OS und ist es bis heute. Die Abwesenheit von Signalen ist einfach ein Problem, das sich wie ein roter Faden durch die gesamte Programmierung zieht: Ohne Signale gibt es kein alarm(), also musst du selbst einen Thread starten, der das Timeout abwartet und dann den Signalhandler ausführt. Ohne Signale gibt es auch keinen geregelten Thread-Abbruch. Und Pipes funktionieren auch nicht wie bei UNIX, da es kein SIGPIPE gibt, &c. pp.

Aber die ganzen Debatten um die minutiösen Detailprobleme mit Windows Vista ff. habe ich nie so ganz verstanden, außer als den Aufschrei eingesessener Leute gegen jede Veränderung. Schockschwerenot, die Systemsteuerung sieht jetzt anders aus! OK, der Versuch, mit Windows 8 den Desktop abzuschaffen, war doof, aber das hat MS ja selbst bemerkt.

Webseiten: Es lebe Adblock!

Sprachen: Tja, wenn du auch mit Ruby arbeitest!

Ich schreibe alles, was ich kann, in C (C99, wenn das geht, also gerade nicht auf Arbeit…). Da kann ich mir sicher sein, dass der Code von heute auch in zehn Jahren noch geht, weil der Code von vor zehn Jahren auch heute noch geht!

Ich sehe auch überhaupt keinen Grund, die Sprache zu wechseln, weil jede andere Sprache irgendein Problem hat, dass sie disqualifiziert. C hat auch Probleme, aber das ist nun einmal das, was ich gerade benutze. Im Einzelnen z.B.:

C++: C mit Objektorientierung bei Bedarf. Einige coole Ideen (Templates!) aber jede davon hat Probleme, ist inkompatibel zwischen Compilern, oder ist einfach nur Platzverschwendung (Templates!).

C#, Java, Smalltalk: Pflichtweise VM und daher schon für die Tonne. Allesamt unfähig, IEEE 754 zu erfüllen (besonders die Exception Flags wären wichtig gewesen). Diesen Sprachen und C++ ist das Exception-Modell gemein, mit dem ich mich nie anfreunden konnte. Freunde der strukturierten Programmierung verachten goto-Anweisungen, aber Exception Handling ist ein unsichtbares goto, dessen Ziel von der Laufzeit abhängt.

Haskell: Zu anders!

Ruby, Perl, PHP: Skriptsprachen. Meines Wissens allesamt nicht typsicher (Strings werden auch mal ohne Vorwarnung in Integers umgewandelt, etc.), und die sehr aktive Nutzerbasis bedeutet, dass große Bibliotheken vorhanden sind, sich aber dauernd ändern. Wobei ich Perl mal für einen Statistikkurs verwendet habe.

Online-Dienste: Versuche mal, dich von Google zu befreien. Statt Google Maps könntest du es mal mit openstreetmap oder openrouteservice versuchen. Und statt Feedly mit Newsbeuter, oder so.


splitcells
16.5.2015 23:30
Kommentarlink

Inwieweit, glaubt ihr, hat die wirtschaftliche Entwicklung
dies beeinflusst?

Momentan gibt es ja geringes Wachstum und geringe Investitionen.
Daraus könnte der Druck enstehen möglichst viel möglichst
bunt, wartungsbedürftig etc. zu machen.

Es gibt ja auch Leute die aus dem Bereich Wirtschaft kommen
und sagen, dass Facebook, Twitter und Co. nicht die Gewinne
abwerfen werden wie erwartet.


Schwärmgeist
17.5.2015 0:13
Kommentarlink

> Na, viel Spaß noch. Ich geh jetzt, nach langer Zeit mal wieder, auf ein Konzert. Da stehen garantiert nur ergraute, schwarze Männer und eine alte Hammond auf der Bühne – und nix mit Elektronik.

Hm. Da hab ich den Mund wohl zu voll genommen: selbst bei der Maceo Parker Group hat der Keyboarder inzwischen nur noch ein winziges Korg-Tastenbrett mit Zauberkasten zu stehen. Die Sounds sind irre, selbst mein einigermaßen geübtes Gehör kann das nicht mehr von einer original Hammond unterscheiden. Die Leslies klingen, als wären sie da und über Mikro abgenommen. Die Informatik ist nicht in der Krise, sie ist gewaltig auf dem Vormarsch.

Schade ist es doch. Wenn nicht einmal mehr der Keyboarder von Maceo Parker sich richtige Instrumente auf die Bühne stellt, wer soll es denn dann noch tun …


Schwärmgeist
17.5.2015 0:20
Kommentarlink

> aber Exception Handling ist ein unsichtbares goto, dessen Ziel von der Laufzeit abhängt.

Exceptions trennen Programmlogik von Fehlerbehandlung. Das finde ich goldrichtig. Schlimm ist doch dieser alte C-Code, der bei jedem Funktionsaufruf erstmal mit if abfragt, ob die Operation wirklich geklappt hat. Das Ergebnis war if-verseuchter, unleserlicher Code.

In Java hat man dasselbe Problem etwas anders. Etwa die Hälfte aller von Menschen geschriebenen Java-Zeilen fragen mit if ab, ob irgendwas null zu sein beliebt. Grauenvoll. Dann kennt Java kein const wie in C++ und hat auch noch so seine anderweitigen Probleme. Mit Java bin ich durch. Kindergartenkram.

Rust sieht interesant aus. Spontan gefällt mir die Syntax von Swift aber besser.


Schwärmgeist
17.5.2015 0:42
Kommentarlink

Ich stimme übrigens Hadmut nicht darin zu, daß die Informatik keine eigenständige Wissenschaft sei. Tante Wiki auf deutsch:

Informatik ist die „Wissenschaft der systematischen Verarbeitung von Informationen, insbesondere der automatischen Verarbeitung mit Hilfe von Digitalrechnern“.

In der englischen Wiki:

Computer science is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical procedures (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded as bits in a computer memory or transcribed in genes and protein structures in a biological cell.

Das finde ich nun wieder sehr zerfasert, da gefällt mir der knappe deutsche Satz etwas besser. Ich glaube, früher stand das auch in der englischen Wiki kürzer. Biologische Zellen haben da doch erstmal nichts zu suchen, wer hat denn das da reingemogelt? Doch immerhin können Informatiker in einem Satz ausdrücken, womit sie sich beschäftigen. Das ist etwas, von dem der Genderismus nur träumen kann.

Natürlich isz die Informatik nur ein kleiner Bruder der Mathematik, denn Algorithen gehören ins Reich der Mathematik. Informatik ist vielleicht, um es einmal laienhaft auszudrücken, Algorithem in der Praxis. Was ein Algorithmus ausspuckt, kann nur die Praxis erweisen, nicht die Theorie. Die Mathematik beißt sich ja schon an drei Körpern die Zähne aus: http://de.wikipedia.org/wiki/Dreik%C3%B6rperproblem . Die Bewegungen zweier Planeten kann die Mathematik vorhersagen, schon bei dreien hört der Spaß auf. Hier fängt die Informatik an. Sie ist ein Unterzweig der Mathematik, keine Frage, aber doch eine Wissenschaft per se, der Physik ähnlicher als der Mathematik.


Schwärmgeist
17.5.2015 0:50
Kommentarlink

@kds

> Also C++ halten nur Leute für toll die nix anderes kennen.

Sehr schön ausgedrückt. Ich habe die letzten zweieinhalb Jahre wieder in einer C++-Firma gearbeitet, und die Leute kennen schlicht nichts anderes. Die arbeiten auch noch mit Emacs und grep und halten das für den Hit in Tüten, da würde ich verrückt werden. Die bejubeln jeden Scheiß, der vom Standardkomitee kommt, als hätte Jesus von Nazareth gesprochen.

Gut war an der Firma wenigstens, daß sie noch am Wasserfallmodell festhält und nicht diesen Scrum-Scheiß mitmacht. Ich habe jetzt in mehreren Scrum-Projekten gearbeitet, und alle waren sie scheiße. Es lag zum einen an Scrum, das nicht leichtgewichtig ist, sondern außer Meetings kaum noch Zeit fürs Coden läßt, und auch an den Mitarbeitern, die einfach nicht coden können. Wenn du ein Scheißteam mit lauter Analphabeten hast, dann hilft dir auch die beste Methodik nichts, schon gar nicht Scrum. Meiner Erfahrung nach tummeln sich in Scrum-Teams nur Berufsanfänger, die alles mögliche können, nur nicht coden.


Hanz Moser
17.5.2015 1:09
Kommentarlink

@ Hadmut

Du müsstest es doch eigentlich besser wissen, als in der Überschrift von “Informatik” zu sprechen. Deine aufgezähle Kritik hat ja auch fast nichts mit Informatik zu tun, sondern eher mit dem Ergebnis von Anwendungsentwicklung. Und im ersten Absatz heißt es dann ja auch IT…

Meine Vermutung ist, dass die zurückgehende handwerkliche Qualität am veränderten Publikum liegt. Software ist ein Produkt für den Massenmarkt geworden. Damit sinkt der Qualitätsanspruch der Anwender und betriebswirtschaftliche Aspekte treten in den Vordergrund. Das hat noch selten die Güte des Produzierten gesteigert.

Aber es freut mich zu sehen, dass die Gilde der anwesenden Programmierer nicht den Eifer verloren hat, darüber zu streiten, ob die Hacke oder der Spaten das bessere Werkzeug ist 😀

@ Stefan H

Sehr interessanter Link.
Ich glaube aber, dass das Problem weniger mit Datenstrukturen und Domänenwissen zu tun hat. Das ist eine grundlegende Frage des strukturierten Denkens.

Wenn man ein neues Problem vor sich hat, muss man zuerst einen konzeptuellen Lösungsansatz entwickeln. In der Phase sind Code und Compiler schlicht nutzlos, es geht darum zu verstehen. Wenn man trotzdem versucht das Problem mit Code zu lösen, kommt bestenfalls aufgeblasene Software heraus. Oder man verheddert sich in Details, weil der Überblick fehlt.

Für gewisse Problemstellungen kann das sogar durchaus sinnvoll sein. Bei komplexen Problemstellungen, die man nicht mehr sinnvoll vollständig beschreiben kann, bringt ein Schuss ins Blaue, der dann erwartetermaßen schiefgeht, oft mehr Erkenntnis als angestrengtes Nachdenken. So ähnlich, wie man gewisse Probleme auch besser mit Monte-Carlo-Simulationen angreift, als mit dem Versuch eine geschlossene Lösung zu finden.
Das ist aber der völlig falsche Ansatz, wenn man ein Problem hat, dass ganz offenbar extrem klar beschrieben und in Gänze formal erfassbar ist.

Und genau DA hakt es meines Erachtens. Der Typ mit seinen abstrus komplexen Darstellungen für ein Sudokufeld hat nicht erkannt, mit welcher Art Problem er es zu tun hat. Dann ist er mit einem Totschläger auf einen Elch zugerannt…


Hadmut
17.5.2015 8:09
Kommentarlink

@Hanz Moser:

> Du müsstest es doch eigentlich besser wissen, als in der Überschrift von “Informatik” zu sprechen. Deine aufgezähle Kritik hat ja auch fast nichts mit Informatik zu tun, sondern eher mit dem Ergebnis von Anwendungsentwicklung.

a) Warum nicht? Was genau kann und macht die Informatik eigentlich noch, wenn wir nicht mal mehr Anwendungswentwicklung hinbekommen? Natürlich ist Informatik mehr als das, aber wie kann sie dieses „mehr” noch beherrschen, wenn sie nicht mal das mehr kann?

Dein Einwand wirkt auf mich wie der Vorwurf, dass die Aussage, dass jemand, der nicht mal mehr gehen kann, in Sport nicht mehr gut sein, weil Sport doch auch aus Laufen, Springen, Skifahren, Radfahren, Karate,… besteht. Stimmt. Aber wenn einer nicht mal mehr gehen kann, wie groß sind die Chancen, die anderen Sportarten noch zu können?

b) Was hätte ich denn sonst schreiben sollen? „Die IT stirbt” ? Das ja nun ganz sicher nicht.


Ein Leser
17.5.2015 1:30
Kommentarlink

Spontan würde ich aber sagen, dass die Komplexität da auch eher Symptom/Folge des Schlamassels ist, nämlich weil zu viele Leute nicht mehr sauber konstruieren können.

Oder weil wir Konstruktionsmethoden verwenden, die, wenn Dilettanten im Team sind, relativ schnell ins Chaos führen (nur als Denkanregung)?


Ronald.Z
17.5.2015 2:07
Kommentarlink

Ich hatte nicht wirklich was mit ernsthaften Programmieren zu tun, aber wir haben in der alten Firma (Unternehemensberatung) Excel für jeden Mist, sei es Bussinessplan oder G + V oder teilweise auch für die komplette Buchhaltung benutzt (inkl. “onanieren” mit Maktos).
Und da war immer die Direktive, derjenige, welcher die (Haupt-)Entwicklerarbeit macht, bekommt den langsamsten Rechner.

Das diszipliniert und zwingt zur effektiven Programmierung.

Diese Idee hat sich wohl nicht überall durchgesetzt.


O.
17.5.2015 2:31
Kommentarlink

Nachdem Ubuntu von Gnome2 auf Gnome3 umgestellt hat, und ich plötzlich nix mehr bedienen / benutzen konnte, habe ich das dann endlich als Anlaß genommen, mich in Arch einzuarbeiten (wollte ich ja schon längere Zeit, damals, war aber zu faul dazu).

Das (Arch) auch deshalb, weil Debian mit grafischem Installer nach fast zwei Tagen Festplatten-Vorebereitens (crypted hd) abgestürzt war. Können die nicht mal ihren grafischen Installer sauber bauen? Warum bieten die den dann an und bleiben nicht bei der reinen Textinstallation? (Ob die dann noch funktioniert, wollte ich nicht mehr ausprobieren, hatte die Lust an Debian dann endgültig verloren.)

Bei Arch war zwar viel Doku lesen angesagt (eigentlich hasse ich Admin-Tätigkeiten, programmiere lieber), aber man lernt was dabei und es funktioniert dann auch.

Und da ich mir Gnome3 sicherlich nicht erneut installieren wollte, habe ich ich erst wmii ausprobiert, und dann seinen Nachfolger i3.
Dabei bin ich dann geblieben.
Und ich sehe keinen Grund, irgend einen anderen GUI-Scheiß zu installieren.
i3 ist schlank und cool. Sehr PRAKTIKABEL, flexibel, konfigurierbar ohne Ende. Ich habe zwar nicht jeden Schnickschnack konfiguriert, aber ich komme ja auch so gut klar. (Und wenn ich mehr Luxus will, muss ich halt Doku lesen und konfigurieren.)

Also den ganzen anderen Dreck kann man vergessen.

Was die Softwarequalität und das Bloaten angeht… das ist ja nun wirklich nicht neu. Es war nur eine Zeit lang so, daß schnellere Hardware mal zeitweise die den Softwarebloat ausgeglichen hatte.

Siehe auch: http://en.wikipedia.org/wiki/Wirth%27s_law

Ich dachte, Du befasst Dich schon länger mit Computern.
Ich habe den Effekt, daß Bloat den Hardwarespeed auffrisst schon mehrfach erlebt in den letzten Jahrzehnten.

Zu sucking Software und dem Niedergang der Programmiererkompetenz gibt’s auch was in Buchform:

Why Software Sucks … And What You Can Do About It
http://www.whysoftwaresucks.com/

Software and Mind
– The Mechanistic Myth and Its Consequences –

http://www.softwareandmind.com/

Ich fühle mich durch die Bücher da in meinen Ansichten jedenfalls bestätigt.

Idioten sind gut für’s System, die kann man schön als Sklaven einsetzen.
Aber irgendwann fällt das alles zusammen.


O.
17.5.2015 2:43
Kommentarlink

@Holger:
“Bei Google fiel mir in letzter Zeit auf, dass die Suchergebnisse nicht mehr die Ergebnisse enthalten, die früher auftauchten. Obwohl diese noch existieren(nach etwas Überlegen fallen Sie mir oft wieder ein).
Ich meine eine deutliche Tendenz zu kommerziellen Ergebnissen zu erkennen.”

Offiziell ist’s Google will die Wharheit ganz oben haben.
(Was die Wahrheit kostet, steht wohl auf einem anderen Blatt ;-))

http://www.faz.net/aktuell/wissen/nichts-als-die-wahrheit-algorithmus-google-suchmaschine-setzt-auf-fakten-13457431.html


Celos
17.5.2015 8:31
Kommentarlink

Selbstverstaendlich kann man auch 30 Jahre alte Software kompetent nachprogrammieren. Nur halt nicht wenn man bestenfalls durchschnittliche Leute hat (und die sind eben recht mies) und nichts dafuer bezahlen will.

Den 10% der Informatik wo kompetent gearbeitet wird geht es recht gut. Die 90% “Mainstream” (und ja, da gehoeren auch solche wie SAP oder auch die IT in grossen Konzernen dazu, und die meisten Lehrstuhle an den Universitaeten) sind komplett im Eimer. An den Unis weil man of nur noch den Moden hinterherhechelt, in der Industrie weil man dort zuviele und gleichzeitig zu schlechte Leute hat.

Ich habe schon mehrfach erlebt, dass Teams mit 30-50 Leuten Sachen vermurkst hat, da haetten 2-3 kompetente Leute nicht nur gute Sachen geliefert, sondern auch viel schneller. Aber es muss ja billig sein, daher lieber 50 Leute zu 1/3 des Gehalts als 3 gute zum Vollpreis. Ein weiteres Problem ist auch, dass die wirklich guten ITler eben dann deutlich mehr verdienen wuerden als die Leute im “Business”, und das vertragen die dort garnicht.

Ich denke vom Tod der Informatik kann nicht die Rede sein, aber es bildet sich sehr klar eine kleine Elite heraus (eben wieder ca. 5-10%), deren Abstand von der miesen Masse immer groesser wird.


zrwd
17.5.2015 9:29
Kommentarlink

also ich benutze unter Linux den Cinnamon Desktop und bin damit sehr zufrieden.


kds
17.5.2015 9:51
Kommentarlink

Schlimm ist auch dass die Leute keine Alternativen kennen.

Bsp. XML. Ist gut für hierarchisch strukurierte Daten, es gibt zig Parser, Tools die das verarbeiten können auch Endanwenderprogramme (Datenbanken,…). Soweit so gut.
Nur manchmal ist das einfach Overkill, Bsp- Konfigdateien. Da war es vor Jahren plötzlich ‘in’ ini-dateien mit option=wert-Struktur auf XML umzustellen. D.h. ich muss er mal ne XML-Lib ranflanschen, die ich auch sonst nicht weiter brauche, nur um ein paar Wertepaare zu verwalten.
Das fällt besonders auf wo sich Neulinge und sonstige Idioten tummeln: Java. Da lernt man das gleich so, an der Hochschule lernt man nur noch Java bzw. das ist der Schwerpunkt. Der Prof hat gesagt das ist modern (Java und das mit XML) also wird es so gemacht. Gleichzeitig hört man von diesen Affen sie wären kompetent denn sie hätten das so im Studium gelernt also muss es richtig sein. Die labern dann auch was von Effizienz, Komplexität aber haben gar nicht begriffen was das in der Praxis bedeutet wo das auftaucht. Hinterher wundern sie sich warum ihr selbst entwickleter Schrott so lahm ist. Dann wird wieder nicht nachgedacht und am OO-Modell rumgeschraubt, das Ergebniss bleibt gleich scheisse.
Ich nenne sowas immer Kompetenzsimulation, Begriffe in irgendeinem mehr oder weniger sinnvollen Kontext raushauen aber nicht wirklich wissen was dahintersteckt.

Zudem können sie einfachste Dinge nicht umsetzen aber alle Pattern runterbeten und OO-Features der neuesten Sprachversion runterleiern. Das nützt mir aber alles nix wenn ich, ich nenne es mal “im Kleinen” entwickeln kann also das was dann in meinen Methoden steckt und die eigentliche Arbeit macht, also routinierte im Schlaf beherrschende strukturierte Programmierung. Kann ich das nicht, kann auch keine vernüftige objektorientierte Software schreiben, ausser ich komme mit API-Aufrufen und ein bischen Trivialgluelogik drumrum in meinen Methoden meiner eigenen Klassen aus.
Genau das ist bei denen der Fall: Deren Methoden bestehen zu 99% aus API-Aufrufen, wenn da mal nicht die passende dabei ist und man mal mehr selber Hand anlegen muss sind die verloren. Hier rächt sich die Wiederverwendbarkeit von Software, wenn man nie gross selber was von Grund auf entwickelt hat und nur Vorgefertigtes wiederverwendet.
Man sieht das in gewissen Domänen sehr deutlich: Geschäftssoftware, Webanwendungen. Das ist zusammenpappen von API-Funktionen in eigenen Klassen, z.T. nicht mal mehr das. Fehlt dann aber mal was, was die API nicht hergibt, wird nach einer weiteren Monster-API gefahndet die das kann, die wird dann ans Projekt rangeflascht, gibts da nix machen sie dicke Backen. Die scheitern schon am parsen von Daten für die nicht mit einem XML-Parser handlebar sind, viele sind ja schon mit regulären Ausdrücken überfordert, von sowas wie yacc oder bison reden wir erst gar nicht, da ist definitiv Feierabend und sowas hat dann einen Master in Informarik von einer Eliteuni.

Heutige Entwickler= API-Dödel


Zäld
17.5.2015 10:48
Kommentarlink

@Schwärmgeist

“Die arbeiten auch noch mit Emacs und grep”

Naja was soll man denn sonst nehmen? Ich arbeite auch mit Emacs, sehr gerne hätte ich eine Ablösung, aber mit einer Bedingung: Der Editor soll sich über die Tastatur bedienen lassen, ohne daß man zur Maus greifen muß. Beispielsweise beim Datei-Öffnen. Da soll kein Dialog aufpoppen, in dem ich dann mit der Maus herumfahren muß (oder mit Tabs und Cursor herumbewegen), sondern das gefällt mir beim Emacs schon sehr gut. Kennt denn jemand eine gute Alternative? Ich habe schon gesucht und bisher nichts gefunden.

Am faszinierendsten finde ich beim XEmacs immer noch dieses riesige Menü da oben, was fast komplett nutzlos ist. Insbesondere die “Einstellungen”.

Nochwas zu Go: Dafür, daß die Sprache neu erfunden wurde und man bei Null anfangen konnte, finde ich sie ziemlich mau. Und dann noch dieser bescheuerte Spruch “Warnungen gibt es nicht. Wenn etwas eine Warnung wert ist, dann ist es einen Fehler wert”. Was hat man davon, daß das Programm rasend schnell übersetzt wird, wenn man anschließend aufgrund einer fehlenden Warnung eine halbe Stunde nach dem Fehler sucht?

Und man soll auf gemeinsame Daten nicht per Mutex zugreifen, sondern über Channels. Vielleicht kann mir das mal jemand erklären: Wenn in einem Modul Daten verwaltet werden, wie greife ich von außen Go-gerecht auf diese Daten zu? Ich hab’s irgendwie nicht verstanden und benutze Mutexe…


Schwärmgeist
17.5.2015 10:59
Kommentarlink

Wie ich schon sagte: COBOL-Programmierer haben den Jackpot geknackt. Ich mochte diese Typen nie, liefen immer in schlechten Klamotten rum und trugen Birkenstock-Imitate – ich kann diese Leute nicht als Informatiker wahrnehmen. Aber die haben eine hübsche Rente, fahren einen 6er BMW, haben Kinder: Herz, was willst du mehr? Nur von Programmieren haben die keine Ahnung. 😉


Anonymer Student
17.5.2015 12:04
Kommentarlink

Also, ich habe erst kürzlich eine Vorlesung namens “Software-Engineering” belegt. Der Inhalt war eher seltsam.

Die erste Hälfte des Semesters wurde uns lang und breit in mehreren Wochen (!) erklärt, was ein Pflichtenheft sei. Inhalte keine, dafür konnte man eine Word-Vorlage von der Webseite des Professors runterladen. Anschließend wurden ausgewählte “Design Pattern” vorgestellt. Was im Kern darauf hinauslief, dass ein paar Java-Fragmente zusammen mit den Bildern aus dem Buch gleichen Namens an die Wand projiziert wurden. Selbstverständlich war es in dem Zusammenhang extrem wichtig, stets von der “Gang of Four” zu sprechen und deren außergewöhnliche Genialität zu betonen.

Zusammengefasst: Gutes Software-Design ist, wenn man ein Word-Dokument ausfüllt und dann eine Kerze für die anbetungswürdige “GoF” anzuzünden. Der Rest wird dem Hörer als Übungsaufgabe überlassen.

Wenn ich jetzt noch bedenke, dass das Buch “Design Patterns” aus dem Jahr 1995 stammt, frage ich mich, ob sich in den letzten zwanzig Jahren also nichts Wesentliches mehr getan hat?


Jan Lul
17.5.2015 12:30
Kommentarlink

– Linux: ich versteh nicht warum sich alle dieses systemd-Ding a.k.a “redhatdaemon.exe” in ihre Systeme schrauben.

– GNOME >2: meines Erachtens ein Kommunikationsdebakel. G3 kam zu früh/zu unreif, und die Attitüde der Entwickler war: “Wenn ihr unsere großartigen Konzepte nicht versteht, seid ihr zu dumm.” G3 ist besser als G2 *wenn man die Zeit hat sich daran zu gewöhnen*. Trotzdem war es für mich der Anlass darüber nachzudenken mit welchem System ich alt werden will, und ich kam zum Schluß dass ich es so einfach als möglich haben will. Ich hab mir LFS, T2, Slackware und mehrere GUIs angesehen und bin für mich bei voidlinux und i3wm.org herausgekommen.

– Thunderbird: Ich nutzte claws-mail.org. Das für mich beste ist aber ein lokaler emailserver mit dovecot.org als mailstore und ein zurechtkonfigurierter mutt.org als MUA.

Browser machen mir aber Sorgen. Das geht in die falsche Richtung (Statuszeile weg, URL-Zeile soll verschwinden, etc.pp.) auf der anderen Seite ist flash und java-plugin schon fast Geschichte 🙂 )

– Windows: ist aus dem normalen Workflow seit 1994 weg. Brauche ich nur für diverse hardwarenahe embedded-Geschichten und mit dem Wechsel von AVR auf ARM wird auch das bald Geschichte sein, da gibt es genügend open source tools.

– Webseiten: ich lese das meiste nur noch via RSS, durch einen gepimpten polipo-Proxy.
Was da in diese Vorrichtung nicht reinpasst, wird nicht gelesen. Sorry, aber 5cm dicke Werbezäpfchen mit Widerhaken lasse ich mir nicht mehr zwischen die Gehirnhälften rammen. (BTW: weiß jemand eine Quelle für “Liste aller Vornamen, Nachnamen aller Promis”, damit man den ganzen Gossip-Rotz besser wegfiltern kann?) Wenn ich bei der Verwandtschaft mal zufällig auf einen OOTB-Browser im ungefilterten Internet schaue, kommt mir das Grausen.
Neue Webseiten kommen quasi nur via Referenz auf abonnierten Seiten zu den Abos. Zu gut 2/3 sind in meinen RSS-Quellen Websites, die vielleicht 5-6 mal im Jahr posten, aber dann so, dass man pro Beitrag ein paar Stunden braucht und eine Kanne Tee. Klasse statt Masse.

Zum Inhalt würde es wahrscheinlich am besten helfen, wenn man mit gutem Beispiel vorausgeht, man keine google/yahoo-Resourcen , kein VGwort, etc. pp. einbindet, man auch kein CDN benutzt! Das Web war mal als Kommunikation zwischen Wissenschaftlern projektiert, und der Webserver lief auf der Workstation unter dem eigenen Schreibtisch, genau wie der Mailserver. Das Unheil fing an, als “Provider” für alles benutzt wurden und die Internetverbindungen asymmetrisch wurden, damit hat man das Gras an der Wurzel gekappt – bei Providern ist halt alles zentralisiert überwachbar. Ansonsten KISS: Fefe und DJB-lastige Seiten mit einfachem linearen Layout sind auf PC und Mobilgeräten gleich gut lesbar. Hast du dein Blog mal mit Lynx oder W3m angesehen? Ich sag nur “WeiterlesenWeiterlesen?”

– Ruby: Das gleiche Problem wie bei python, perl, tcl, guile,… jeder Hype macht eine Sprache kaputt, dazu kommt das “2nd system syndrome”, den Rest besorgen die Distributionen beim Versuch, 2…n Versionen einer Skriptsprache *mit ihrem Paketsystem* erschlagen zu können. 1) Nutze rbenv und kompiliere alles selber, fast keine Probleme mehr. 2) der Sysadmin/der der es betreiben soll, sollte in der Entwurfsphase schon dabei sein, so kann man dann schlimmsten “noch zwei Libraries”-Wahnsinn unterbinden. Viele Gems bestehen aus einer GEM-Verzeichnishierarchie und 40-100 Zeilen Code. Ich bestehe dann immer darauf, dass die verwendete Funktion in einer Applikationsbibliothek neu implementiert wird, das Gem ist dann im eigenen VCS, viele Abhängigkeiten sind weg. Ich hab einen Fuß in beiden Welten und weiß das am besten ;).

– Online-Dienste: “Selbst da fallen mir massive Verschlechterungen auf. Voran Google.”
Ja, die kriegen aber auch von allen Seiten die massivsten Auflagen. Gegen Street View gab es hier einen Aufschrei, und in Innenstadtlagen ist das nicht benutzbar: Daten nur von 2009, und alle Häuser gescrambelt. MS hat das Bing-Pendant problemlos eingeführt, und die gleichen Häuser kann man drin sehen.

“Google Maps ziemlich verpfuscht,”
Nicht verpfuscht, halt sehr auf sehr auf Chrom[e|ium) mit SPDY/HTTP2 und WebP-Bildern optimiert. Das ist auch alles offengelegt, HTTP2 wird von FF aufgenommen werden, bei WebP zieren sie sich noch – das klassische NIH-Syndrom.

“Google Reader tot” Nö, das Businessmodell dahinter tot. Und es gibt genügend RSS-Reader-Software, sogar noch für den Desktop. Man kann auch auf eigenen Beinen stehen (dann darf man auch auf Google schimpfen 😉 )!

– Informatik-Unterricht: Der war an meinem Gymnasium grottenschlecht. Ich hab an der Uni welche getroffen, die konnten Perl5! aus der Schule! und haben sich in der New Economy eine goldene Nase verdient.
Der Unterricht heute kommt auch “von oben”, für unterhalb einer gewissen Schicht interessiert sich keine Sau.
Ich hatte jede Menge Aha!-Momente, als ich mich mit FORTH auf embedded-Prozessoren beschäftigte, dass man ohne Filesystem überhaupt existieren kann, war mir komplett neu, denn meine ersten Tapser hatte ich auf einem CP/M 2.x Rechner. Und dass das blinkende “>” an meinem ZX ein “Monitorprogramm” ist, hab ich auch erst da gelernt. Das war damals auch nur eine möglichst schnell zu überwindende Station auf dem Weg zum fertig geladenen Spiel.

“Selbst große und marktführende Unternehmen wie SAP und IBM schaffen es nicht mehr, 30 Jahre alte Software auch nur nachzuprogrammieren.”
Das liegt insbesondere in großen Firmen an dem Anteil von BWL und MBA. Vor 30 Jahren musste man koste es was es wollte von A nach B und zwar vor der Konkurrenz. Heute schielen alle auf den nächsten Quartalsabschluß und die Einhaltung von 1.5*10^3 compliance-Regeln. Ich kann mich an ein Projekt erinnern, da wollte einer von den Marketing-Warmluft-Androiden unbedingt ein “REST” eingebaut haben – kein Webserver im ganzen Projekt!

“Jedes Handy, sogar jede neuere Armbanduhr hat heute ein Vielfaches an Speicher und Rechenleistung im Vergleich zu dem, was damals zur Verfügung stand. Da musste man noch ganz einfach, bescheiden und bodenständig programmieren.”
Das ist nur teilweise das Problem, vieles kannst auch heute einfach in den RAM ziehen, und in anderem Format rausschreiben. Die GNU-Tools waren vor fast 25 Jahren die ersten, die das dauernde TMP-Fileschreiben bleiben liessen, und damit schneller waren.

“Die alte Software läuft, die neue läuft nicht. Trotz massiv überzogener Zeit- und Finanzpläne.”
BWL, MBA, “strategische” konzernweite Komponentenvorgaben durch Vertrieb via “Steaks&Strippers, Baby”. Die drei Probleme jedes Konzerns.

“Man könnte den Eindruck bekommen, die Branche stürzt gerade ab und dilettiert sich gerade zu Tode.”
Oder man schaut woanders hin. Komischerweise können sich kleine, pragmatische Anbieter halten.

Dass in der Ausbildung ziemlich vieles im argen liegt, unterschreibe ich aber.


Missingno.
17.5.2015 12:37
Kommentarlink

? Linux: Meiner Meinung nach hat sich im Kern nicht so viel geändert. Aber die (meisten) Oberflächen sind inzwischen wirklich gruselig. Ich bin so vorurteilsfrei wie möglich an Gnome 3 rangegangen, aber ich konnte damit einfach nichts anfangen. So verwende ich notgedrungen MATE (mit WindowMaker als allerletzte Option), aber die Entwicklung geht eben in die Richtung, die ich nicht haben möchte.

? Anwendungssoftware: Da setze ich hauptsächlich auf “altes”, von daher bin ich weniger betroffen. Nur auf der Arbeit muss ich mit mit Ribbons und so einem Scheiß herumplagen.

? Windows: Ich weiß immer noch nicht, warum so viele XP bevorzugen. Ich war damals mit 2000 zufrieden. Und auch jetzt macht mein Vista weniger Streß als das 7 (Arbeit & Notebook). Ich wüsste jetzt auch nicht, warum/wo 7 besser als Vista ist. Zugegeben, bei Erscheinen war Vista ziemlich schrottig, aber die Service Packs haben tatsächlich etwas gebracht.

? Webseiten: Ja, der Fluch des Web 2.0. Ich mache meine Seiten selbst, aber die “Designer” und sonstigen Webfrickler müssen ja erst einmal eine Suite installieren oder zumindest drei verschiedene, untereinander etwas inkompatible JavaScript-Bibliotheken laden, bevor sie auch nur einen simplen Text darstellen können. Dann das ganze noch mit Werbung und Flash zuscheißen und fertig ist der Internet-Auftritt.

? Sprachen: Da mache ich mir noch am wenigsten Sorgen. Ich komme mit den meisten Sprachen irgendwie klar und programmiere immer irgendwie gleich. Dazu gehört auch, dass ich in alter C-Manier Pointer oder Funktionsrückgaben mit if-Statements auf NULL bzw. false prüfe. Denn “Fehler”, die sich im voraus abfangen/verhindern lassen, haben (mMn) im Exception-Handling nichts zu suchen.

? Online-Dienste: Nutze ich selbst eher weniger, aber das ist auch meine Erfahrung, was dazu führt, dass ich Online-Dienste eher weniger nutze. 😉

? Informatik-Unterricht: Was wird da überhaupt heutzutage gemacht? Mein Bruder war schon ganz baff, dass ich (als bei seinem PC “das Internet” nicht funktionierte) auf der Kommandozeile so viele lustige Sachen eintippen konnte (ipconfig, ping). Wobei ich das auch nicht in der Schule gelernt habe, sondern eben zu Hause mit learning-by-doing. Ich kann mich auch noch daran erinnern, dass in den 90er-Jahren öfters mal die Frage gestellt wurde, wie man eine Diskette formatiert. (Heutzutage weiß das vielleicht auch keiner der jungen Leute mehr, aber es gehört auch nicht mehr so zu den Grundlagen.)


Jan Lul
17.5.2015 12:53
Kommentarlink

Schwärmgeist
17.5.2015 13:53
Kommentarlink

> Naja was soll man denn sonst nehmen?

Es gibt etwas Besseres: Eclipse und CDT. Hat sich in der Praxis sehr bewehrt. Ich bin eim großer Fan von Doug Schafer. Der hat früher auch mal ein Blog unterhalten, das dem von Hadmut gar nicht so unähnlich war.

Mein Lieblingskommentar zu emacs: “emacs ist ein cooles Betriebssystem; das einzige, was fehlt, ist ein guter Editor.”


WikiMANNia
17.5.2015 14:17
Kommentarlink

@Dr. No

Guckst Du hier:
Gender, Wissenschaftlichkeit und Ideologie – Argumente im Streit um Geschlechter­Verhältnisse
http://de.wikimannia.org/Gender,_Wissenschaftlichkeit_und_Ideologie_-_Argumente_im_Streit_um_Geschlechterverhältnisse


WikiMANNia
17.5.2015 14:20
Kommentarlink

@toff

Ich weiß aus direkter Quelle, daß Probleme und Sicherheitslücken oft gezielt eingebaut werden. Denn die müssen dann analysiert, gepflegt, verbessert, gepatched usw. werden. Und der Kunde muß zahlen, denn er ist für sein Geschäft auf reibungslose Softwarefunktionalität angewiesen.

Dieses Vorgehen stelle man sich mal im Fahrzeugbau oder in der Luftfahrt vor…

Seriös, bodenständig und brauchbar geht anders…


pend
17.5.2015 14:20
Kommentarlink

Bei Gnome trat ein Effekt ein den man in anderen ähnlichen Projekten auch immer wieder vorfindet: Die fähigen Entwickler sind irgendwann abgewandert (bei Gnome ist glaube einer der wichtigsten Männer gestorben), die hatten den Grundstein für vieles gelegt. Irgendwann waren nur noch Dillettanten übrig, und weiteres Gesockse ala Schwätzer, Wichtigtuer wurden angelockt was dazu führte dass das Ding mit nutzlosem Zeug vollgepflastert und optisch verschlimmbessert wurde, Performance ging auch in den Keller.

Das ist auch so ein Phänomen: Wenn technische Kompetenz fehlt, dann werden halt optische Verwänderungen vorgenommen, zu mehr reicht es nicht. Bei Gnome war es eigentlich noch schlimmer: Dort hat man Features rausgeworfen, vermutlich weil sie den Code nicht verstanden und als Argument musste ‘braucht keiner’ herhalten. Heraus kam ein kastriertes Rennpferd mit amputierten Beinen, frisch gestriegelt und dekoriert wie ein Pfingstochse, nur konnt man damit keine Rennen mehr reiten. Aber schön anzuschauen, wenn man auf verkrüppelte Tiere steht.

Zur Informatik an Hochschulen:
Ich habe hier gerade ein Buch vor mir wo die Geschiche der deutschen Informatik abgerissen wird, speziell an der Uni Karlsruhe, darin sieht man das ganze Elend. Wenn sie Interesse haben Herr Danisch, melden. Können ja anschliessend einen Artikel dazu schreiben.


Schwärmgeist
17.5.2015 14:39
Kommentarlink

> Dieses Vorgehen stelle man sich mal im Fahrzeugbau oder in der Luftfahrt vor…

> Seriös, bodenständig und brauchbar geht anders…

Vor allem: Es stimmt auch nicht. Da wird ein Schauermärchen kreiert. Üble Bughöllen fallen in der Regel auf den zeichnenden Programmierer zurück. Ein guter Programmierer wird sich auf dergleichen nicht einlassen, also Bugs absichtlich einbauen. In einem funktionierenden Team würde sowas sofort auffliegen. Glaub nicht alles, was im “Spiegel” steht!


vergleicher
17.5.2015 15:48
Kommentarlink

@Schwärmgeist:

>Natürlich isz die Informatik nur ein kleiner Bruder der Mathematik,
>denn Algorithen gehören ins Reich der Mathematik. Informatik ist
>vielleicht, um es einmal laienhaft auszudrücken, Algorithem in der
>Praxis. Was ein Algorithmus ausspuckt, kann nur die Praxis erweisen,
>nicht die Theorie.

Ich würde die Informatik nicht schlechter/unbedeutender bewerten, als sie ist. Der Vergleich oben wäre wie etwa der, sichere Systeme allein auf Kryptographie zu beschränken und diese (die Kryptographie) in der Mathematik zu verorten (z.B. wegen diskreten Logarithmen oder schwerer Primfaktorzerlegung). Sichere Systeme umfassen sehr viel mehr Punkte. Z.B. die Hardware und das Betriebssystem und die dafür verwendeten Beschreibungssprachen. Möglichkeiten mit hohem Umfang umzugehen (eine große Quantität erzeugt eine neue Qualität) usw. usf.


Zäld
17.5.2015 15:58
Kommentarlink

@Schwärmgeist

“Es gibt etwas Besseres: Eclipse und CDT.”

Und kann man da beispielsweise Dateien öffnen, ohne daß dafür ein Dialog aufgeht?

Oder rechteckige Markierungen (Rechtecke ausschneiden oder pasten) komplett mit der Tastatur steuern?

Wenn ja, werde ich mal ‘ne Probeinstallation machen. Die dazugehörige Webseite zeigt mir leider erstmal einen Haufen Dialoge an, von daher bin ich etwas skeptisch…


rjb
17.5.2015 16:21
Kommentarlink

@pend: Darf man nach Autor und Titel des am Schluß erwähnten Buches fragen? Falls ja, tue ich das hiermit.


Heinz
17.5.2015 16:24
Kommentarlink

> ein Vielfaches an Speicher und Rechenleistung im Vergleich zu dem, was damals zur Verfügung stand

Wenn man die Performance anspricht heißt es oft “ist doch genug da”

> Man könnte den Eindruck bekommen, die Branche stürzt gerade ab und dilettiert sich gerade zu Tode.

Die Branche ist ja auch (oft) nicht mehr bereit gute Leute gut zu bezahlen.

> Wichtig ist nur, dass am Ende das Ding läuft, wie es laufen soll

Nein, wichtig ist nur, dass der Updater läuft.
Und teils läuft nichtmal der wie wir beim letzten Assasins Creed sehen konnten.


Schwärmgeist
17.5.2015 17:26
Kommentarlink

> Und kann man da beispielsweise Dateien öffnen, ohne daß dafür ein Dialog aufgeht?

Nö.

Du kannst aber Ctrl+Shift+R drücken und mußt dich nie wieder um Pfade kümmern. Sehr geiles Feature.


Collin
17.5.2015 17:35
Kommentarlink

@Schwärmgeist:
>Doug Schafer
Welcher Doug Schafer? Wie hieß den sein Blog?


Hanz Moser
17.5.2015 19:07
Kommentarlink

@ Hadmut

Eigentlich ist Informatik eine Strukturwissenschaft. Stinknormale Software zu schreiben ist “Programmieren”. Warum der Ausbildungsberuf in Deutschland “Fachinformatiker” heißt weiß ich nicht, aber ich halte es für eine falsche Bezeichnung. Die Fachinformatiker, die ich kenne, können durchweg gut Programmieren, aber haben weder von theoretischer Informatik viel mitbekommen, noch von technischer Informatik. Eigentlich haben sie nur gelernt, Programmiersprachen (und Standardbibliotheken) zu benutzen. (Das ist nicht per se schlecht oder zu wenig, aber halt von Informatik im Ganzen weit entfernt.)

Wenn man sich jetzt überlegt, womit sich Informatik beschäftigt, dann landet man heute meist bei einer Dreiteilung in der Richtung theoretische Informatik, technische Informatik und Software Engineering.
Theoretische Informatik, also so Zeug wie Berechenbarkeitstheorie, abstrakte Sprachen etc, hat nur mittelbar mit dem Ergebnis von Anwendungsentwicklung zu tun. Technische Informatik genau so. Natürlich erlauben Fortschritte in der Theorie abstrakter Sprachen das Entwickeln “besserer” Programmiersprachen oder besserer Compiler, die dann bspw. über statische Analyse Fehler finden, die man früher von Hand suchen musste, und Dinge wie Transactional Memory erlauben es gewisse Dinge viel simpler umzusetzen. Von der Qualität kommerzieller Software auf diese Dinge zurück zu schließen funktioniert aber nicht. Das ist, als ob du von schlechten Handwerkern auf die Qualität der Werkzeughersteller schließt.

Software Engineering wäre dann der Bereich, der sich mit der Frage beschäftigt, wie man Anwendungen enwickelt. Wenn du auf den eindreschen willst, dann kannst du, völlig zu recht, imo, die Frage stellen, was hier in den letzten Jahren geleistet wurde, wenn das Ergebnis nicht selten Dreck ist.

Wenn ich bei deiner Analogie bleibe sehe ich es so, dass du geschrieben hast “Der Sport stirbt”. Tatsächlich schreibst du dann aber nur über Weitsprung.


Hadmut
17.5.2015 19:18
Kommentarlink

@Hanz Moser:

> Eigentlich ist Informatik eine Strukturwissenschaft. Stinknormale Software zu schreiben ist “Programmieren”.

Ja. Aber wer zweiteres schon nicht kann, kann ersteres in meinen Augen schon gleich gar nicht. Außerdem sollten die Informatiker das Know How und die geistigen Werkzeuge liefern, und das tun sie offenbar nicht.

Oder um es anders zu sagen: Mit einer solchen Sichtweise als „Strukturwissenschaft”, die mit Programmieren nichts zu tun hat, begibt sich die Informatik in die Gefahr, als überflüssig angesehen zu werden.


Phil
17.5.2015 19:40
Kommentarlink

> Und kann man da beispielsweise Dateien öffnen, ohne daß dafür ein Dialog aufgeht?
Solange sie im Projekt sind ja.

Allerdings stehe ich mehr auf die IDEs aus dem Hause Jetbrains.


Ein Leser
17.5.2015 19:58
Kommentarlink

@Hadmut

> Eigentlich ist Informatik eine Strukturwissenschaft. Stinknormale Software zu schreiben ist “Programmieren”.

Ja. Aber wer zweiteres schon nicht kann, kann ersteres in meinen Augen schon gleich gar nicht. Außerdem sollten die Informatiker das Know How und die geistigen Werkzeuge liefern, und das tun sie offenbar nicht.

Oder um es anders zu sagen: Mit einer solchen Sichtweise als „Strukturwissenschaft”, die mit Programmieren nichts zu tun hat, begibt sich die Informatik in die Gefahr, als überflüssig angesehen zu werden.

Ich kenne mindestens eine (mindestens europaweit, wenn nicht sogar weltweit, zu Recht hoch geachtete) Koryphäe in einem informatiknahen mathematischen Gebiet, von der jeder “Insider” weiß, dass er nicht im Entferntesten programmieren kann (böse Zungen behaupten sogar “häufig mit der Bedienung von Computern überfordert”). Kein Problem: Um seine genialen (kein Sarkasmus) Ideen als Computerproblem umzusetzen, hatte er zahlreiche Assistenten.
Ebenso behaupten böse Zungen, dass es so manche wissenschaftlich geniale Professoren für theoretische Informatik gibt, die programmiermäßig bestenfalls auf Niveau erstes Semester sind.

Um also in theoretischer Informatik genial zu sein, muss man definitiv nicht programmieren können, sondern vor allem ein guter Mathematiker sein.

Ich mag vielleicht in Richtung Mathematik befangen sein, aber ich könnte durchaus wissenschaftlich bedeutsame Durchbrüche im Bereich der theoretischen Informatik alleine der letzten 15 Jahre bringen, die Potential für praktische Anwendungen haben. Das Problem ist: Die “Praktiker” interessiert das nicht (die wollen gerne weiterhin “ihr” C, C++, Java und UNIX/Linux benutzen – ja nichts Neues, ungewohntes). Man könnte also auch in der praktischen Programmierung auf ein umfangreiches Reservoir von Forschungsergebnissen zurückgreifen. Die “praktischen Informatiker” sind jedoch damit schon meist überfordert und noch mehr die Firmen. Es ist die Wirtschaft, die massiv darauf drängt, dass der “marktübliche (und technisch schlechte) Hype” auch an den Universitäten gelehrt wird.


Hadmut
17.5.2015 20:27
Kommentarlink

@Leser: Da braucht man keine bösen Zungen. Davon waren genug in meinem Studium unterwegs.

Zu meiner Zeit musste die Informatik-Fakultät, die sich damals für die beste, tollste und schönste in Deutschland hielt, alle Rundschreiben an die Professoren zur Hälfte per E-Mail und zur anderen Hälfte auf Papier herausgeben, weil die Hälfte E-Mail nicht benutzen konnte.

Der Prof, bei dem ich war, verstand unter E-Mailen, dass er zur Hotel-Rezeption geht, dort etwas handgekritzeltes an sein Sekretariat faxen lässt und die es dort in E-Mail übersetzen. Empfang umgekehrt.

Nur: Mit denen alleine macht man eben keine Informatik.


Hanz Moser
17.5.2015 21:29
Kommentarlink

@ Hadmut

Naja, jetzt ignorierst du 2\3 meines Kommentars.

Die Werkzeuge auf technischer Ebene werden sehr wohl geliefert. Vergleiche doch mal den Stand der verbreiteten Sprachen (und Werkzeuge) zur Anwendungsentwicklung heute und vor 10 Jahren.
Genau so die Hardware. Außer Desktop CPUs wird fast alles schneller, effizienter und besser programmierbar.

Der einzige Teil, auf den deine Kritik hinweist, ist Software Engineering. Das ist aber eben nicht die Informatik im Ganzen, sondern nur ein spezifischer Teil.

Dein Argument, dass wenn es mit dem Programmieren hapert, es mit dem wissenschaftlich-abstrakten Teil hapern muss, halte ich für völlig falsch. Umgekehrt wird ein Schuh draus. Für ordentliche Anwendungen brauche ich eine Algorithmik, die die Problemstellung löst und dazu noch effizient genug ist. Nur weil ich die habe heißt das aber noch lange nicht, dass daraus ordentliche Software wird.
Neben dem ganzen Teil der praktischen Umsetzung, Software Engineering eben, spielen dann noch alle Einflüsse außerhalb der Informatik eine Rolle.

Was die Überflüssigkeit der Informatik angeht ist das doch eine uralte Diskussion. Informatik war immer nur die kleine Schwester der Mathematik mit ein wenig angewandter Numerik, nicht wahr? 😉
Ich würde glatt behaupten, dass sich seit geraumer Zeit gezeigt hat, dass auf der Ebene sehr wohl Platz für eine eigenständige Disziplin ist.
“Nach unten hin” ist mittelerweile auch längst genug Platz. Wir haben nicht nur Programmierer als Lehrberuf, sondern Studiengänge speziell für Software Engineering.


Heavy
17.5.2015 21:36
Kommentarlink

@Zäld:

> Nochwas zu Go:
> Und dann noch dieser bescheuerte Spruch “Warnungen gibt es nicht.
> Wenn etwas eine Warnung wert ist, dann ist es einen Fehler wert”.
> Was hat man davon, daß das Programm rasend schnell übersetzt wird,
> wenn man anschließend aufgrund einer fehlenden Warnung eine halbe
> Stunde nach dem Fehler sucht?

Wenn dein Fehler so komplex ist, dass du nach einem Compilerfehler eine halbe Stunde suchen musst, dann dauert es wahrscheinlich Tage, ihn im lauffähigen Programm zu finden. Ich finde den Ansatz von Go richtig, weil dadurch zahlreiche potenzielle Fehlerquellen bereits beim Compilieren bemerkt werden. Das ist viel weniger schmerzhaft, als sie später im laufenden Betrieb zu finden.

Übrigens stimmt es nicht, das Go keine Warnungen kennt. “go build” gibt nur Fehler aus, “go vet” zeigt Warnungen zu potenziellen Problemen in syntaktisch korrektem Code an.

> Und man soll auf gemeinsame Daten nicht per Mutex zugreifen, sondern
> über Channels. Vielleicht kann mir das mal jemand erklären: Wenn
> in einem Modul Daten verwaltet werden, wie greife ich von außen
> Go-gerecht auf diese Daten zu? Ich hab’s irgendwie nicht verstanden
> und benutze Mutexe

Du meinst wahrscheinlich das Paradigma “Share memory by communicating; don’t communicate by sharing memory”. Das stammt von den Erfindern der CSP Modells, nicht von den Go Entwicklern. Gemeint ist, dass man den Zugriff auf eine gemeinsame Ressource per Channel-Kommunikation steuert. Wenn man z.B. ein Token herumreicht und nur diejenige Goroutine auf die Ressource zugreift, den Token gerade hält, kann man auf Mutexe elegant verzichten. Ein Beispiel findet sich in diesem Blogartikel:
https://blog.golang.org/share-memory-by-communicating

Das Modell passt nicht immer. Deswegen bietet Go auch normale Sperren (Mutex), Schreib-/Lesesperren (RWMutex), Zählsperren (WaitGroup) und ein paar andere Synchronisationsprimitive an.

Lesetipp: die Kapitel 2 und 6 aus dem Buch “Seven Concurrency Models in Seven Weeks”.


Volker
17.5.2015 22:15
Kommentarlink

Thunderbird ist schon seit mehr als fünf Jahren nicht wirklich brauchbar. Da hat sich seit zehn Jahren nicht viel getan. Claws Mail auch nur rudimentär wirklich brauchbar, und das wars schon unter Linux. Sucht mal nach irgendwas unter Linux, womit man sein Smartphone ordentlich mit lokalen Daten synchronisieren kann. Stattdessen wird unter Gnome auch nur schön mit Google Accounts und dem üblichen Zeug synchronisiert. Wo’s immer geht, benutze ich auf’m Desktop nur den Browser. Bei mir läuft seit 10 Jahren Horde (Groupware) auf meinem heimischen Rechner, der sinnvollerweise gleichzeitig Arbeitsplatz und Server ist. Server für alles, was geht. Hab mir mal nen Raspberry Pi gekauft letztens, hab mich dann aber ehrlich gefragt, was ich damit soll. Der Home-Server/Desktop-Rechner ist jetzt ein günstig geschossener 2 Jahre alter iMac mit i7 und 32 GB RAM, mit Debian. Stromverbrauch bei ca. 350 Prozessen inkl. dem unsäglichen Gnome 3 bei Bildschirm im Stand-by sagenhafte 25 bis 30 Watt! Also zumindest hat sich in dieser Richtung was getan. Vollkommen überflüssig dann noch ein, zwei Raspberry Pis für irgendwas einzusetzen, außer vielleicht als Überwachungskamera, wenn man noch ne USB-Cam übrig hat, oder als Musik-Player, es sei denn man muss irgendwo direkt einen Mikrocontroller ansteuern.

Google Search ist ziemlich beschissen geworden. Google scheißt oft auf bestimmte Suchbegriffe, fragt nicht mal nach, ob man sich vertippt haben könnte, und zeigt dir dann nur Ergebnisse mit dem “korrigierten” Suchbegriff an. Für manchen Laien werden so bestimmte Suchen nahezu unmöglich. Wer weiß schon, dass man manche Begriffe in diesem Fall in Anführungszeichen setzen muss… Dazu wird per Default alles irgendwie nach regionaler Relevanz sortiert, find ich vollkommen dämlich. Ich frag mich immer, wie diese SEO-Wunderheiler letzteres im Griff haben wollen.

Google Maps: Ein Feature ist trotz aller Kritik besonders hervorzuheben. Es gibt keinen besseren Staumelder als die Google Maps Navigation. Die Staus selbst an jeder fucking Ampel werden angezeigt, und die Staulängen auf den Autobahnen stimmen meist auf den Meter genau (plus minus eine durchschnittliche Autolänge). Und die Ausweichrouten sind nahezu perfekt.

Websites heutzutage: Echt alles Schrott, Einheitsbrei. WordPress-Theme installiert, irgendein responsive Bootstrap-Zeug, dutzende Javascript-Bibliotheken geladen, Webfonts bis der Arzt kommt. Das wars.


Klingelhella
18.5.2015 0:13
Kommentarlink

Dass die IT sich generell verschlechert, sehe ich zwar nicht so, aber das ist wohl ok; dein Blogpost ist ja ganz klar subjektiv gemeint.

Deinen Brast auf Javascript-Tsunamis für ganz banale Webseiten sowie einen mehr oder weniger kompletten Stillstand bis Verschlimmbesserung im UI design / user experience teile ich aber ausdrücklich. Es gibt doch nun schon eine Menge Forschung aus den Kognitionswissenschaften, Mensch-Maschine-Interaktion usw. Wieso wird das nicht mal in eine konsistente GUI umgesetzt? Wir arbeiten immernoch mit der “Schreibtisch”-Metapher, die nun Jahrzente alt ist und erwiesenermaßen nicht der Weisheit letzter Schluss.

Ich musste ja auch grinsen, als ich hier las (@nullplan) “Haskell: zu anders!” Vielleicht ist dieses “anders” ja genau die Inspiration, die man braucht um frisches Blut in Software-Entwicklung zu bringen! Man muss ja nicht Haskell nehmen, darf sich aber für seine engineering Prozesse und Praxis gern inspirieren lassen.

Ich selbst benutze Haskell nun schon seit Jahren beruflich, habe damit u.a. Web/backend-Server, ein OpenGL basiertes Spielchen sowie Komponenten für Warenwirtschafts-Software komerziell sowie etlichen weiteren Kleinkram privat entwickelt.

Ich kann überhaupt nicht genug betonen, wie ein Hindley-Milner-artiges Typensystem den Entwicklungsprozess erleichtert und Sicherheits-Garantien über APIs/Module/Bibliotheken ermöglicht, für die es sonst nur mühsam drangeflanschten Murks wie design by contract o.ä. gibt. Für Leseinteressierte:
http://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system
und: http://en.wikipedia.org/wiki/Type_class

Also an Hadmut und alle anderen Interessierten: ich kann nur dazu ermutigen, sich nicht nur mit der Sprache, sondern dem ganzen Paradigma zu beschäftigen (auch wenn es wirklich erstmal fremdartig ist). Selbst wenn man das schlussendlich vielleicht nicht in der Praxis einsetzt: man profitiert von den vielen Forschungs-Papers, die es dazu gibt, und man profitiert auch vom Verständnis der Konzepte, wenn man dann weiterhin in Java/Ruby/Python usw. entwickelt.


Schwärmgeist
18.5.2015 4:03
Kommentarlink

@Hadmut

Es gab wohl so eine kurze Zeit, in der ich allen Informatikprofessoren überlegen war. Die Hausaufgaben waren für mich ein Klacks, da hatte ich auch anderen geholfen, aber was heftig war, war die Mathematik. Ich sollte eins durch Cosinus x zum Quadrat ab- und aufleiten, da haben sie heftig gesiebt, und das alles mit 400 Mark pro Monat, wo schon allein das Zimmer 300 Mark kostete, für acht Quadratmeter. Meine Eltern waren arm. Nee, Studieren, das war irgendwie nichts für mich. War aber cool, Karlsruhe mal gesehen zu haben.

Wer geht denn am Montagmorgen um 8 Uhr zur Mathematikvorlesung? Dieser Typ war ich nie. Ich fand die Frauen in Karlsruhe viel inzeressanter. 😉


Schwärmgeist
18.5.2015 7:40
Kommentarlink

@Klingelhella

Ich mag streng typisierte Sprachen. Die JavaScript-Dödels mit ihrem “Anything goes” können mir gestohlen bleiben. Wenn ein Compiler mich auf Fehler aufmerksam machen kann, dann sollte er es tun. Zur Laufzeit ist zu spät. Interpretierte Sprachen verzeihen dir jeden Tippfehler, und die sind eben schwer zu finden.

Einen guten Kompromiß findet Scala: Typen müssen nicht mehr deklariert werden, wenn der Compiler schlau genug ist, ihn per “type inference” zu ermitteln. Ich bin kein großer Scala-Fan, aber diese Idee finde ich gut.


Schwärmgeist
18.5.2015 7:44
Kommentarlink

@Collin

http://cdtdoug.ca/

Er hat die Adresse gewechselt. Ich lese ihn hin und wieder ganz gerne.


Technikfeind
18.5.2015 9:16
Kommentarlink

> KDE4 halte ich für einen schlimmen Rückschritt

Das ich mich damit in der Firma rumärgern mußte, ist der Grund, warum Linux bei mir Zuhause nicht mehr auf den Rechner kommt.
Bedienungstechnisch wurden die Programme systematisch kaputt gebastelt — nicht nur geändert, was andere ja schon zum meckern bringt, sondern bis zur Unbrauchbarkeit verumständlicht.
Aber der Verfall ist weder nur bei Linux so, noch nur bei Computern im allgemeinen, sondern überall zu beobachten, zu allen Zeiten.


Zäld
18.5.2015 11:24
Kommentarlink

@Heavy

“Wenn dein Fehler so komplex ist, dass du nach einem Compilerfehler eine halbe Stunde suchen musst, dann dauert es wahrscheinlich Tage, ihn im lauffähigen Programm zu finden.”

Einen Compilerfehler gab es ja leider nicht – weil bestimmte Warnungen ja überflüssig sind-, also mußte ich ihn im lauffähigen Programm finden. Und ihn einzugrenzen hat dann eben dementsprechend gedauert.

Es handelte sich übrigens um eine geshadowte Variable. Und die bekommt man in Go schneller als z.B. in C, wenn man versehentlich eine Variable mit := statt mit = zuweist. (*)

“Ich finde den Ansatz von Go richtig, weil dadurch zahlreiche potenzielle Fehlerquellen bereits beim Compilieren bemerkt werden. Das ist viel weniger schmerzhaft, als sie später im laufenden Betrieb zu finden.”

Daß so manche ehemalige Warnungen bei Go Fehler erzeugen, finde ich vollkommen in Ordnung. Daß aber so manch andere Warnung jetzt überhaupt nicht mehr angezeigt wird, ist ein Rückschritt.

“Übrigens stimmt es nicht, das Go keine Warnungen kennt. “go build” gibt nur Fehler aus, “go vet” zeigt Warnungen zu potenziellen Problemen in syntaktisch korrektem Code an.”

Gerade mal ausprobiert: Geshadowte Variablen werden damit nicht angezeigt.

“Du meinst wahrscheinlich das Paradigma “Share memory by communicating; don’t communicate by sharing memory”. […] Das Modell passt nicht immer.”

Na ok. Ich hatte das so verstanden, daß das schlechter Stil wäre, und daß man quasi immer über Channels synchronisieren sollte.

“Ein Beispiel findet sich in diesem Blogartikel:
https://blog.golang.org/share-memory-by-communicating

Ein (für mich jedenfalls) völlig unverständliches Beispiel. Bei der Umsetzung mit Channels fehlt doch die Hälfte dazu, daß es der oberen Umsetzung mit Locks entspricht.

Die obere Funktion “Poller” mit Locks bekommt ein “Resources” als Parameter, die untere mit Channels bekommt “Resource” (ohne ‘s’ am Ende) als Parameter. Wie sieht denn nun die vollständige Umsetzung auf Channels aus?


yasar
18.5.2015 12:23
Kommentarlink

> Ich fand die Frauen in Karlsruhe viel inzeressanter.

Welche Frauen? An der karlsruher Uni waren die doch Mangelware.


yasar
18.5.2015 12:26
Kommentarlink

Und zu:

> Wer geht denn am Montagmorgen um 8 Uhr zur Mathematikvorlesung

Der der eine Vorlesung braucht, um sich den Stoff reinzuziehen und die Prüfung bestehen will. 🙂

PS: Man konnte auch ohne Besuch von 8-Uhr-Vorlesungen die Prüfungen bestehen.


Slartibartfast
18.5.2015 12:30
Kommentarlink

Naja Hadmut, wie schon geschrieben scheint Dich ja eher der Stand der “real-existierende IT” zu sein und weniger der Informatik an sich.
Alles was Du monierst sind Anwendungen bzw. handwerkliche Dinge. Die Informatik ist hier schon lange weiter, als dass was die IT-Industrie so tut (wie vermutlich in den meisten Bereichen). Das Problem scheint mir die “träge Masse” zu sein, wegen der man ein neues Projekt lieber in Java schreibt — da es so schöne Bibliotheken und Schnittstellen für genau diese Sprache gibt — statt sich die beste Programmiersprache zu suchen.
Funktionale, stark typisierte Sprache mit Typinferenz gibt es seit den 70ern; aber alle schreiben lieber in gurkigen “Scriptsprachen” oder Cobol 2.0 (Java-C++/C#/..). Jeder weiß, dass Testen nur Fehler finden, aber keine Abwesenheit von Fehlern nachweisen kann; aber es wird lieber mit automatisierten Unit-Tests rumgefrickelt als starke Typ-Systeme oder andere formale Verifikationstechniken zu benutzen die mir als Programmierer wirklich Eigenschaften meiner Software _beweisen_. Vermutlich ist imperatives, schwach typisiertes Programmieren weniger abstrakt und damit v.a. für den gemeinen homo sapiens sapiens besser zugänglich. Genau wie Ausprobieren leichter zugänglich ist als mathematische Beweise. Ist daran die Informatik als Wissenschaft schuld? Vermutlich genauso wie die Mathematik am Additionsfehler in einer Kneipenrechnung.

Meinen akademischen Auslassungen zum Trotz, gibt der Erfolg den “echten” Softwareprojekten allerdings recht: Autos fahren, Flugzeuge fliegen, Betriebsysteme stürzen nicht ab und die Google Suche liefert Resultate. Meistens. Und das trotz Eclipse, Unit-Tests und JavaScript-Overkill.


Heinz
18.5.2015 14:09
Kommentarlink

> Diese JavaScript-Pest im Web stößt mir auch sauer auf. Heute ist halt alles “responsiv” und geajaxt bis zum Gehtnichtmehr.

Und davon ist auch noch alles Mögliche von Drittseiten eingebunden.


Heinz
18.5.2015 14:11
Kommentarlink

“künstliche Differenzierung nicht, um Kritik abzuwehren, hört sich an wie IslamIslamismus”

Oder Chistentumchristliche Sekten


Andreas
18.5.2015 14:19
Kommentarlink

Früher war alles besser(TM)!


JochenH
18.5.2015 16:01
Kommentarlink

Ich denke die Informatik verlagert sich gerade. Zum einen gibt es die Entwickler von Apps, dann aber auch die großen Firmen, die zB Betriebssysteme entwickeln. Dazu aber auch Software für TV, Autos etc.

Es dezentralisiert sich alles.

Die Musik spielt dabei gar nicht in Deutschland, die USA geben hier den Ton an, Asiaten ziehen noch mit. Wir sind einfach Konsumenten.

Schlechter ist das alles nicht geworden, insbesondere Spiele haben eine höhere Qualität bekommen. Ich bin insgesamt nicht unzufrieden.


Ludwig
18.5.2015 16:20
Kommentarlink

@Slartibartfas

Welche Programmiersprache wäre deiner Meinung nach die beste für folgende Verwendung:

Anwendung im Windowsbereich mit GUI
Portierbar nach OSX u. Linux
performant
GUI modern


TW
18.5.2015 16:41
Kommentarlink

Du sprichst mir aus der Seele. Selbst in den 80ern sozialisiert und computerisiert, mit Assembler angefangen und groß geworden, später mit C fortgesetzt, hat man noch gelernt mit Resourcen hauszuhalten, Algorithmen selbst zu entwickeln, Probleme zu lösen. Obwohl ich später Jurist wurde und noch später in einer ganz anderen Branche gelandet bin, staune ich über das heute Nicht-Wissen der Jungen. Sie waren immer nur (mehr) User, und selbst die, die meinen, sie seien “Programmierer”, haben keine Ahnung von Algorithmenentwicklung und ganz grundlegenden Herangehensweisen etc. Unter “Programmieren” verstehen sie das Verwenden irgendeines Toolkits.

Ruby (+Rails 1.2) läuft bei mir immer noch in einer Version von 2006. Und wie es läuft. Ein Production-Webserver mit zigtausend Usern pro Tag, seit mehreren Jahren nicht mehr neugestartet.

Linux habe ich 2005 verlassen. Vorher zwei Kerneltreiber geschrieben und gewartet, danach zu Mac gewechselt, und mit der ewigen Frickelei aufgehört. Vor kurzem mußte ich mal einen Kernelupgrade auf einem alten Rechner machen, …. ein Graus. Kein Fortschritt seit 2005. Zu den Desktops kann ich nichts sagen, aber ich glaube Dir jedes Wort.

Selbst beim Mac hat dieser Trend nicht haltgemacht. Waren zu Zeiten von 10.4 Updates eine sichere Sache, ist heute das Gegenteil der Fall. Jedesmal funktioniert nachher irgendwas nicht mehr.

Irgendwann sind alle gestorben, die die Toolkits geschrieben haben, dann wird die Menschheit entweder untergehen, oder es wird eine neue Generation Wissender heranwachsen.


Heavy
18.5.2015 16:54
Kommentarlink

@Zäld:

> Daß so manche ehemalige Warnungen bei Go Fehler erzeugen, finde ich vollkommen
> in Ordnung. Daß aber so manch andere Warnung jetzt überhaupt nicht mehr angezeigt
> wird, ist ein Rückschritt.

Vieles, was in C oder C++ mit Warnung durchgeht, wird vom Go Compiler geblockt; z.B. Variablen, die deklariert, aber nicht benutzt wurden, oder eine falsche Signatur von main(). Dass Go etwas kommentarlos schluckt, was in C/C++ eine Warnung ergeben würde, habe ich noch nicht gesehen.

Trotzdem gibt es neben den vielen Dingen, die nicht erlaubt sind, auch solche, die erlaubt sind, aber ein unerwartetes Ergebnis liefern. Eine Sammlung von beidem gibt es hier: http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/

> [go vet]
> Gerade mal ausprobiert: Geshadowte Variablen werden damit nicht angezeigt.

Doch, das geht. Aber der Aufruf ist etwas umständlich:

go tool vet -shadow -shadowstrict file.go

> https://blog.golang.org/share-memory-by-communicating
> Ein (für mich jedenfalls) völlig unverständliches Beispiel. Bei der Umsetzung mit
> Channels fehlt doch die Hälfte dazu, daß es der oberen Umsetzung mit Locks entspricht.

Naja, die Grundidee ist, dass man im oberen Fall eine Funktion hat, die in mehreren Instanzen auf allen Aufgaben operiert und sich dabei mit dem Mutex synchronisiert. Der Mutex soll natürlich immer so kurz wie möglich gesetzt sein, daher der Voodoo mit dem Bool-Flag. Im zweiten Fall greift sich jede Instanz der Funktion immer genau eine Aufgabe aus dem Channel, bearbeitet sie und liefert das Ergebnis in den anderen Channel. Es fehlen natürlich noch die Schleifen, die die Aufgaben in den Channel schreiben und auslesen.

Am besten schreibst du dich auf der Mailingliste golang-nuts ein. Dann müssen wir Hadmuts Blog nicht länger mit Detaildiskussionen zu Sprachen, die er gar nicht benutzt, missbrauchen. 😉


H. K. Heller
18.5.2015 17:43
Kommentarlink

@Schwärmgeist

Ja, da hast du mE vollkommen recht. “Anything goes” ist ja schon mehr oder weniger das Versprechen, ab einer bestimmten Komplexität in Teufels Küche zu landen. Ich zumindest würde noch nicht mal bei einer Würstchenbude was kaufen, wenn sie so einen Slogan hat.

Und BTW, natürlich benutzt Haskell Typeninferenz, sodass du trotz starker Typisierung generell weniger Typen-noise im code hast als bspw. in Java. Dadurch, dass du nur Schlüsselstellen mit Typen annotierst, wird auch fremder code wesentlich leichter zugänglich.

Generell: ein Punkt auf der Liste von Hadmut ist in den Kommentaren etwas untergegangen… der IT- bzw. Informatik-Unterricht. Ich als klassischer digitaler Immigrant (angefangen mit C64, autodidaktischer coder, dann Informatik-Studium) kann mir selbst nicht vorstellen, wie man die Welt als digitaler “native” wahrnimmt. Ob man die ganzen Implikationen, die eine von Software und Algorithmen durchdrungene und gereglete Welt eben hat, auch reflektiert. Oder ob das dann alles eine black box ist, wo man nur noch aufs Gaspedal treten will, und dann soll einfach alles funktionieren. Eine solche Reflektionsgrundlage sollte meiner Meinung nach ein Schulfach IT bieten. Nicht (nur), wie ich in Java einen Taschenrechner programmiere.

Wenn Hadmut als Beispiel nennt, dass es für IT-Riesen problematisch sein kann, 30 Jahre alte Sofware zu reimplementieren, ist hoffentlich klar, zu welchen Problemen so ein “black box”-Denken führt. Ich könnte da richtig toll aus dem Nähkästchen plaudern 🙂


Slartibartfast
18.5.2015 18:10
Kommentarlink

@Ludwig
> Welche Programmiersprache wäre deiner Meinung nach die beste für folgende Verwendung:
> *Anwendung im Windowsbereich mit GUI
> *Portierbar nach OSX u. Linux
> *performant
> *GUI modern

Kommt wohl auf die Projektgröße an, aber wohl am ehesten C++ mit Qt für “kleine” Sachen die kein spannendes Innenleben haben sondern hauptsächlich eine Oberfläche. Die Anforderung der portablen GUI bricht so ziemlich allen Alternativen das Genick. Außer vielleicht Python, aber dann lieber das lapprige Typsystem von C++ als gar keines…

Und ja: Das Leben ist kein Ponyhof. Und wenn es doch ab und zu mal ein Ponyhof ist, dann programmiere ich OCaml (bei Haskell nervt mich die erzwungene Lazy-Evaluation).


Joe
18.5.2015 19:40
Kommentarlink

Generell: ein Punkt auf der Liste von Hadmut ist in den Kommentaren etwas untergegangen… der IT- bzw. Informatik-Unterricht. Ich als klassischer digitaler Immigrant (angefangen mit C64, autodidaktischer coder, dann Informatik-Studium) kann mir selbst nicht vorstellen, wie man die Welt als digitaler “native” wahrnimmt.

Bin ich der einzige, dem diese seltsame Vertauschung von Begrifflichkeiten sauer aufstößt? “Native” sind diejenigen, die schon vorher da waren und alles aufgebaut haben. “Immigranten” sind diejenigen, die ins bestehende System eingewandert sind.


Joe
18.5.2015 19:57
Kommentarlink

Linux habe ich 2005 verlassen. Vorher zwei Kerneltreiber geschrieben und gewartet, danach zu Mac gewechselt, und mit der ewigen Frickelei aufgehört.

Mit OSX war Linux auf dem Desktop tot. Das Bessere war hier schlicht der Feind des Guten. Selbst Linus Torvalds nutzt inzwischen einen Mac. Ironischerweise hat Microsoft also mit einer Finanzspritze für die Pleitefirma Apple den damals bedrohlich wirkenden Windows-Konkurrenten erfolgreich gekillt. Das war entweder sehr weitsichtig oder dummer Zufall.

Zudem konnte man regelrecht merken, wie die bestimmte Studentengeneration, die fleißig am “freien Desktop” mitgebastelt hat, sich ins “richtige Leben” verabschiedete und eine regelrechte Industriebrache zurückließ. Das Konzept der “von der Community entwickelten” Software kann damit als im praktischen Versuch gescheitert angesehen werden.

Ist allerdings nicht so, daß man in der heutigen Community (personell kaum deckungsgleich mit der alten Garde) bereit ist, daraus zu lernen. Man gibt sich lieber weiter komplett delusionären Vorstellungen hin und beschimpft jeden, der darauf hinweist, daß ihr Kaiser ja gar keine Kleider anhat, als Defätist.


Hadmut
18.5.2015 20:00
Kommentarlink

Kann ich so jetzt auch nicht bestätigen. Ich arbeite privat mit Linux. Ich habe noch einen Mac und arbeite auch dienstlich an einem Mac. Die Mac-Oberfläche finde ich gruselig-grausig-grauenhaft. Zwar immer noch besser als Windows, aber irgendwie übel.


Fry
18.5.2015 20:29
Kommentarlink

@Schwärmgeist: Word 2003 war weit entfernt von “perfekt”. Schon damals konnte man mit diesem Pfuschprogramm kein Dokument schreiben, das über 10 Seiten lang war und dabei Bilder und Fußnoten enthielt, ohne dass Word einem dieselben nach Lust und Laune neu mischte. Gilt auch heute noch. Microsoft bleibt sich treu und macht nur Pfusch.

Ach und 1/cos(x)^2 ableiten oder integrieren ist jetzt nichts, wofür man nicht am Montag morgen um 8:00 aufstehen und um 8:02 sich wieder hinlegen könnte. Vielleicht sogar zu einer Frau 🙂

@alle: hier mal ein Grußwort von einem, der vermutlich nur einen Bruchteil eures Überblicks hat:

C++ ist klasse, allerdings leidet die Weiterentwicklung unter Inkompatibilitäten: was gcc in 1999 noch meckerfrei übersetzt hat, erzeugt heute zig Warnungen oder sogar Fehler. Ich sag nur “const”. Trotzdem eine Sprache, die noch viel vor sich hat.

Skriptsprachen: Perl ist für “kleine” Dinge ideal! Große Sachen mach ich ja nicht mehr. Swift will ich gar nicht kennenlernen (Apple-Mist). Was ich eben so über Go und Rust gelesen habe, klingt aber sehr gut.

Java und PHP spielen heute die Rolle, die früher Fortram und Cobol gespielt haben: wer kann, vermeidet sie, der Rest lässt sich gut bezahlen für die Qualen.

Informatik war eigentlich nie “Wissenschaft” im erkenntnistheoretischen Sinn. Ohne dass ich das böse meine. Der theoretische Teil noch am ehesten, aber ich würde sagen, das ist Mathematik. Der praktische Teil ist Engineering.

Just my 2c… sorry ein wenig unstrukturiert…


O.
18.5.2015 21:40
Kommentarlink

Finally. in the specific comparison of Haskell versus Java, Haskell, though not perfect, is of a quality that is several orders of magnitude higher than Java, which is a mess (and needed an extensive advertizing campaign and aggressive sales- manship for its commercial acceptance). It is bad enough that, on the whole, in- dustry accepts designs of well-identified lousinass as “de fecto” standards, per. sonally I think that the University should keep the healthier alternatives alive.

( E.W. Dijkstra )


O.
18.5.2015 21:41
Kommentarlink

Oh, schade, einige OCR-Fehler hatte ich noch übersehen beim Dijkstra-Zitat.


Tacheles
18.5.2015 22:02
Kommentarlink

> Informatik war eigentlich nie “Wissenschaft” im
> erkenntnistheoretischen Sinn. Ohne dass ich das böse meine. Der
> theoretische Teil noch am ehesten, aber ich würde sagen, das ist
> Mathematik. Der praktische Teil ist Engineering.

Ja, sehe ich ähnlich.

Theoretische Informatik (“computer science”) ist letztendlich angewandte Mathematik, Technische Informatik (“computer engineering”) wiederum angewandte Physik (Schaltungsentwurf, Materialkunde).

Die sogenannte Praktische Informatik hingegen ist zu Teilen Heißluft (Software Engineering) und zu Teilen schlicht Anwendung (Datenbanken, Compilerbau).

Leider lässt die Informatik als Fachrichtung sich primär von der “praktischen” Informatik vereinnahmen.


O.
18.5.2015 22:03
Kommentarlink

@Slartibartfast:
“Und ja: Das Leben ist kein Ponyhof. Und wenn es doch ab und zu mal ein Ponyhof ist, dann programmiere ich OCaml (bei Haskell nervt mich die erzwungene Lazy-Evaluation).”

OCaml macht aus dem Leben einen Ponyhof 🙂
Haskell ist elegant, aber dogmatisch (bisher jedenfalls).
Zwangs-Laziness soll demnächst wohl auch nicht mehr sein,
so weit ich gehört habe, auch als default abgeschafft werden.
Bleibt aber dennoch der purely-Dogmatismus (der aber andererseits die Eleganz der Sprache hervorbringt).

Bei OCaml kann man auch imperativ und OOP (wenn man’s unbedingt nutzen will). Und es bekommt laufend *noch* mehr Mächtigkeit, als ohnehin schon vorhanden ist. First-Class Modules, GADTs usw. das ist schon alles sehr schön. Typsystem und Modulsystem sind auch so angenehm, und ich könnte hier noch ewig weiter schwärmen….

Ja, so ein Programmier-Ponyhof kann schon ganz schön sein. 😉

Für Java-Dilletanten ist da aber Eintrittsverbot, der Türsteher lässt Frickler nicht rein, bzw. die sind vom rigiden Typsystem eher abgeschreckt, da kann man das mit dem gedankenlosen Code-hinrotzen nämlich nicht mehr machen, weil’s sonst ‘nen Type-Error gibt. 🙂


Joe
19.5.2015 1:33
Kommentarlink

Kann ich so jetzt auch nicht bestätigen. Ich arbeite privat mit Linux. Ich habe noch einen Mac und arbeite auch dienstlich an einem Mac. Die Mac-Oberfläche finde ich gruselig-grausig-grauenhaft. Zwar immer noch besser als Windows, aber irgendwie übel.

Es ging da jetzt weniger um die Beurteilung der Oberflächen (die natürlich allenthalben immer gruseliger werden), sondern um das Gesamt-Paket. Der Mac ist ja inzwischen eine Unix-Büchse mit einem funktionierenden Ökosystem, für das tatsächlich Desktop-Applikationen in nicht unwesentlicher Zahl erhältlich sind. Also das was die Industrie damals auf der CeBIT 2000 noch großspurig für Linux angekündigt hat. Apples Erfolg ist natürlich auch der Tatsache zu verdanken, daß frühzeitig passende Entwicklungsumgebungen (Xcode), stabile Schnittstellen und Migrationspfade (Classic-Umgebung, Rosetta) bereitstanden.

Während bei Linux sogar vieles, das mal funktioniert hatte, mittlerweile den Wartungstod gestorben ist, bspw. die Webentwicklungssoftware Quanta (tausende komplett vergeudete Mannstunden), die als Paradebeispiel herhalten darf für ein Projekt, dem 2009 einfach die umgebende Infrastruktur weggebrochen ist. Daß man nicht einmal mehr alte Binaries starten kann, weil es im Userland aus ideologischen Gründen keine Binärkompatibiltität geben darf, hat denen das Genick gebrochen.

Ich nutze privat natürlich auch Linux, es steckt ja schließlich in allen möglichen Gerätschaften drin, um meine privaten Daten in die Wolke abzusaugen. 😉 Aber auf einen Universalrechner kommt auch nur ein Universalbetriebssystem, und das war Linux noch nie.

Ansonsten kann man es ja schnell mal im Browser (sind ja praktisch auch schon Betriebssysteme) starten: http://www.bellard.org/jslinux/


Manfred P.
19.5.2015 13:48
Kommentarlink

So schwarz würde ich das nicht sehen.

Es herrscht augenblicklich halt ein Wildwuchs, der sich mit zunehmendem Erfahrungswissen ausdünnen wird.

Die Alchimisten wollten Gold herstellen und glaubten an die Phlogiston-Theorie.

War das der Untergang der Wissenschaft von den Stoffumwandundlungen?

Im Gegenteil, das reiche Erfahrungswissen der Alchimisten bildete die Grundlage für die theoretische Fundierung durch neuzeitliche Chemiker, und es entstand eine leistungsfähige Wissenschaft, die uns unzählige Werkstoffe, Treibstoffe und Medikamente beschert hat.

Ebenso hätte Newton nicht seine Gravitationstheorie aufstellen können ohne die experimentellen Bahndaten von Sternbeobachtern.

Es kann a priori nicht klar sein, wohin die Informatik gehen wird. Dass man jede Menge Bullshit ausprobiert, der dann untergeht, gehört einfach mit dazu. Ich sehe das nicht so dramatisch.

Die Kommandozeile ist immer noch nicht gestorben. LaTeX ist immer noch das beste Satzprogramm, das ich kenne. Auf Word konnte man immer nur scheißen, es sei denn, man schreibt weniger als 3 Seiten.

Software hat eine derartige Komplexität erreicht, dass sie vom menschlichen Gehirn nicht mehr so ohne weiteres zu überblicken ist.

Jeder kann eine 10 000-Zeilen-Anwendung durchschauen und überblicken. Da viele Anwendungen früher nicht so viel größer waren, kann man sich heute leicht einpissen über die Deppen, die zu doof sind, einen 50-Millionen-Zeilen-Code zu überblicken. Was für Lutscher! Wie blöd sind die denn im Vergleich zu uns, die wir 100 Zeilen noch im Kopf geschrieben haben!

Ich finde es eher erstaunlich, dass so riesige Programme wie z.B. Windows überhaupt funktionieren.


Manfred P.
19.5.2015 13:55
Kommentarlink

1/cos(x)² ist leicht zu integrieren, wenn man weiß, dass (tan x)’ = 1/cos(x)² ist. 🙂


Hadmut
19.5.2015 19:18
Kommentarlink

> 1/cos(x)² ist leicht zu integrieren, wenn man weiß, dass (tan x)’ = 1/cos(x)² ist

Ich wusste doch gleich, dass mir das bekannt vorkommt und ich das im Studium schon mal verwendet habe.

(Eine Funktion f(x) heißt Bronstein-integrierbar, wenn…)


Manfred P.
19.5.2015 20:16
Kommentarlink

>(Eine Funktion f(x) heißt Bronstein-integrierbar, wenn…)

Der Bronstein gehört in jeden Bücherschrank, wobei der Gradstein und der Abramowitz schöne Accessoires sind. 🙂

Wenn man weiß, dass (sin x)’ = cos x, und (cos x)’ = -sin x, wird (tan x)’ ganz einfach:

(sin x / cos x)’ = (sin² x + cos² x ) / ( cos x )² = 1 / cos² x.

Ich gehöre noch zu den dämlichen Idioten, die sich grundlegende Formeln und Zusammenhänge noch ins Langzeitgedächtnis eingeprägt haben. Das ist nur ‘ne Handvoll, aber man kommt im Studium erstaunlich weit damit.


Tuk
19.5.2015 20:56
Kommentarlink

“…die Branche stürzt gerade ab und dilettiert sich gerade zu Tode.”

Im Fall Airbus ist der Satz treffender, als du denkst.
http://augengeradeaus.net/2015/05/nach-a400m-absturz-airbus-ruft-zu-kontrolle-der-triebwerkssteuerung-auf/


Manfred P.
20.5.2015 0:48
Kommentarlink

Zu C++ kann ich nur sagen, dass ich die neueren Sprachfeatures gar nicht so schlecht finde. Ich kenne nicht alle, aber Thread-Unterstützung auf Sprachebene und Lamdas sind ‘ne feine Sache.

Zum Thema Templates und Objectcode Bloat: Man kann auch wegen jedem Scheiß rumjammern. Die Idee ist ja, zur Compilezeit aufzulösen, welche Methode aufgerufen werden soll. Das bringt dramatische Performancegewinne gegenüber dynamischen Dispatch zur Laufzeit.

Im Übrigen ist C++ eine Multi-Paradigm-Sprache. Sie ermöglicht es, imperativ/prozedural zu programmieren, oder aber objektorientiert wie in Java, oder generisch mit Templates.

Niemand hält einem eine Knarre an den Kopf und zwingt einem, alle Features wild durcheinander zu mixen.

Insbesondere sollte man keine Sprachfeatures benutzen, die man nicht genau verstanden hat. Wenn dann der Compiler etwas anderes macht, als man dachte, ist es für das Selbstwertgefühl natürlich besser, die Schuld bei C++ zu suchen als im eigenen mangelhaften Verständnis.

Zugegeben, die Komplexität der Sprache ist groß und man braucht Jahre, um alles zu beherrschen – wenn das überhaupt reicht.

Man kann jedenfalls nicht behaupten, die Komplexität der Maschinen, die man programmieren will, habe abgenommen.