C# hat MS offenbar beerdigt oder ist dabei

Behauptet wer?

Wer auch immer das erzählt, hat keine Ahnung, soviel ist sicher.

Da ist gar nichts am Ende, ganz im Gegenteil, für manche Geschmäcker macht Microsoft sogar zu viel an C#.

Habt ihr die Projekte schon nach TypesScript geändert?

Natürlich nicht, gibt keinen Grund, von einer guten und mächtigen Sprache zu TypeScript zu wechseln, was am Ende auch wieder nur JavaScript mit schickerem Anstrich ist.

...zur Antwort
Ich komme direkt zur Sache

Wieso sollte das ein Widerspruch zum höglichen Umgangston sein?
Man kann auch höflich direkt zur Sache kommen, 1000 Floskeln voran zu stellen, mag zwar in einigen Kreisen eine erwartete Höflichkeitsform sein, aber nicht generell notwendig.

...zur Antwort
Gibt es eine Schnittstelle, über die sich KI / LLM austauschen können?

Klar, auf die selbe Weise, wie Du die KI nutzt.
Ob die Antwort der KI nun von einem Menschen gelesen oder an eine andere KI geschickt wird, ist am Ende des Tages herzlich egal.

damit die voneinander lernen können

Aktuell gängige KI-Modelle lernen nicht selbständig, also können sie auch nicht beim Austausch dazu lernen. Aber die KI-Firmen nutzen sehr wohl KI, um andere KI-Modelle zu trainieren, allerdings passiert das während des Trainings und nicht beim normalen Chat. Das ist dann aber auch kein "Austausch" im eigentlichen Sinn, sondern eine KI erstellt Trainingsdaten oder bereitet sie auf und überprüft/bewertet die Antwort der zu trainierenden KI.

Eine KI kann aber auch live aus einem Chat heraus lernen, das wurde früher mal versucht. Allerdings ist das sehr schwer zu kontrollieren und ist damals auch massiv in die Hose gegangen, weil zu viele Menschen sich gedacht haben: Lass uns der KI doch mal einen Streich spielen. Am Ende hat die KI zwar dazu gelernt, allerdings hat sie nur noch Unfug von sich gegeben. Diese KI musste innerhalb kürzester Zeit wieder abgeschaltet werden.

Gängige KI Systeme tun das nicht, weil es 1. zu schwer zu kontrollieren ist und 2. für die Firma nutzlos ist. Die Firma will ein kontrollierbares und zuverlässiges Produkt, das sie verkaufen kann und kein System, das sich ständig verändert.

Solche Systeme sind eher im kleinen Umfang für lokal sinnvoll, z.B. wenn ein Programm live dazu lernen soll, wie es dem Nutzer bei der Arbeit helfen kann, aber ohne dabei andere Nutzer zu beeinflussen. Das sind dann aber nicht unbedingt LLMs, sondern spezialisierte Systeme.

Oder funktionieren die nur als eigenständiges Modell?

Eine KI funktioniert natürlich immer nur als eigenständiges Modell, sie können nicht "in sich" verknüpft werden. Aber es gibt Schnittstellen - eben die, über die wir Menschen oder andere Programme die KI nutzen. Bei unseren Gehirnen ist es ja ähnlich, zwei Gehirne können nicht "in sich" verknüpft werden, aber wir haben Schnittstellen zur Kommunikation: Augen, Ohren, Muskulator, etc. und alles, was mit dessen Hilfe funktioniert.

...zur Antwort

Kurze Antwort: 100% Geschmackssache, außer der Internet Explorer, der fliegt raus.

Lange Antwort:

Der Internet Explorer ist längst tot und wurde auch viele Jahre nur künstlich von Microsoft am Leben gehalten. Der IE wird auch von kaum noch Websiten wirklich unterstützt, also entweder funktioniert die Seite gar nicht mehr, oder ist fehlerhaft.
Heißt: IE fliegt raus.

Opera, Edge und Chrome basieren alle auf der Chromium Engine und somit ist das, was der "normale" Nutzer als Browser wahrnimmt, nur ein schicker Oberbau mit hier und da unterschiedlichen Funktionen um den selben Browser.
Heißt: 100% Geschmackssache.

Firefox nutzt eine Engine (Gekko), insofern kann es Unterschiede geben, aber diese Unterschiede sind für die allermeisten "normalen" Nutzern völlig irrelevant, solange die Webseiten funktionieren (was noch der Fall ist).
Heißt: 100% Geschmackssache.

Und die meisten anderen Browser nutzen wieder die Chromium Engine.
Heißt: 100% Geschmackssache.

...zur Antwort
Wie sollte ich vorgehen um c sharp wirklich praktisch zu lernen?

Lies das Buch und probier das Gelesene aus, mit einem kleinen Projekt oder ohne, hauptsache Du experimentierst damit herum.

Oder Du meldest dich auf einer Coding Dojo Seite an (z.B. Codewars), da findest Du kleine oder größere Herausforderung nach Technologie und Schwierigkeitsgrad.

Oder Du überlegst dir ein Projekt, muss man dir ja nicht vorschreiben, denk dir was eigenes aus. Ich nenne ganz gerne den Taschenrechner oder (fortgeschritten) einen Browser als gutes Anfänger-Projekt, weil man beides sehr klein anfangen und dann praktisch endlos ausbauen und komplexer machen kann. Aber das sind nur generische Projekte, eine eigene Motivation ist wichtig, daher wäre ein Projekt, an dem dir was liegt, besser.

oop etwa da python nur teils nachahmt aber auch .net maui ...

Ich verstehe nicht, was Du ausdrücken willst? Wer ahmt OOP nach?

Aber mit .NET MAUI solltest Du dich vorerst nicht befassen, das ist komplex und benötigt das Verständis von fortgeschrittenen Architekturen, außerdem soll MAUI immer noch eher hackelig sein. Fank mit der Konsole an, danach WPF (stein alt, hat aber in gewisser Weise Weichen gelegt und extrem gut durchdacht und dokumentiert) und danach kannst Du dich auf sowas wie MAUI stürzen. Oder Du schaust dir danach die Webentwicklung mit Blazor an, aber auch das ist ganz sicher nichts für einen Anfänger, da muss schon einiges sicher sitzen.

Ich will umbedingt die meisten Konzepte die spätere Arbeitgeber brauchen abhaken.

Damit solltest Du vorsichtig sein. C# ist in der Theorie einfach zu lernen, allerdings ist die Sprache auch sehr umfangreich (extrem viele kleine oder größere Features) und einige dieser Features können durchaus schwer zu verstehen sein.

Du solltest dich stattdessen auf den Kern konzentrieren, bis der zuverlässig sitzt und dann kannst Du weiter schauen. Daher auch der Rat, erst Konsolenprojekte, dann WPF, weil WPF dann schon komplexere aber auch wichtige Funktionen braucht (z.B. ist ein häufiger Fallstrick das async/await). Außerdem kannst Du mit WPF bereits schöne und komplexe Desktop-Anwendungen entwickeln, wenn auch nur für Windows.

Danach kannst Du weiter schauen.

Versuch nicht, alles auf einmal zu lernen, solange Du keine unglaublich starke intrinsische Motivation hast und von früh bis spät durch arbeiten kannst, ohne müde zu werden (trust me: Das klappt nicht ^^), dann wirst Du daran scheitern.
Stell dich lieber auf ein paar Jahre ein, nimm dir genug Zeit und taste dich voran, keine Firma wird verlangen, dass Du als Anfänger direkt alles kannst. Wenn Du herausstechen willst, reicht in der Regel schon aus, dass Du C# in deiner Freizeit lernst, das macht lange nicht jeder.

Wenn Du mit den Grundlagen der Sprache wirklich sattelfest bist, dann könntest Du ja ausprobieren, ob ein Strategiewechsel (Konzept nach Konzept) für dich funktioniert. Bedenke dabei aber, dass es viele Features und Konzepte gibt, bei denen auch erfahrene Kollegen aussteigen. Vieles habe ich auch erst wirklich verstanden, nachdem ich mich durch den .NET Code von Microsoft und dem vom Compiler generierten Code durchgewühlt und viel experimentiert habe und manches versteht man auch nur mit der Zeit.

Und danach gibt's noch Architektur- und Design-Patterns, das ist die Kategorie von Konzept, die man meiner Erfahrung nach nur mit der Zeit versteht. WPF hat z.B. MVVM und die moderne Form von DataBinding eingeführt, was man seit dem überall in abgewandelter Form wiederfindet. Leider gibt es kein Dependency Injection, aber das ist dann ein Thema, das bekommst Du bei der Arbeit mit ASP.NET Core (Sammlung von Frameworks für Web-Entwicklung) regelrecht eingeprügelt ;) Du könntest auch damit beginnen, allerdings halte ich ASP.NET Core und die vielen notwendigen Konzepte für deutlich schwieriger zu lernen, als WPF.

Das ist aber normal, Du musst nur wissen, dass es normal ist, damit Du nicht mit zu hohen Ansprüchen an die Sache heran gehst.

...zur Antwort

Ich lauf beim Telefonieren und Nachdenken ziellos durch die Wohnung :)

Also nein, ist nicht komisch, ich hab auch Theorien, womit das zusammenhängt:

  • Veränderung des Umfelds bewirkt eine Art Kontextwechsel im Gehirn. Da gibt's auch Studien zu ("Türschwellen-Effekt"), die gezeigt haben, dass allein der Wechsel des Zimmers (wenn Du über die Türschwelle gehst) zu einem Mentalen "Break" führt. Das könnte helfen, die eigenen Gedanken besser zu ordnen.
  • Musik stellt vermutlich in gewisser Weise eine Unterstützung bei der Verarbeitung von Erlebnissen dar, also wie Schlaf, nur eben aktiv. Wenn Bewegung oder Kontext-Wechsel beim Verarbeiten hilft, dann ist es naheliegend, dass Du beides gleichzeitig machst.
  • Viele werden von Musik zum Tasten oder wenigstens dem Folgen des Rhythmus' angeregt, dein umher laufen könnte ein Ausdruck des gleichen zugrundeliegenden neurologischen Phänomens sein, nur dass Du nicht umher springst, sondern läufst.
  • Bewegung jeder Art regt den Blutfluss an, auch im Gehirn und ein beschäftigtes Gehirn braucht mehr Sauerstoff und Nährstoffe, also "sorgt" es für eine bessere Versorgung, indem Du umher läufst (oder tanzt).

Generell ist jede Form von Bewegung sehr gesund und tief in unserer Psyche verankert, fast alles hat irgendwie Auswirkungen auf die Bewegung, entsprechend gibt es sehr vieles, was scheinbar unsinnig zu einem Bewegungsdrang führt. Am Ende des Tages hilft es aber bei was auch immer Du tust und schaden tut's ganz sicher nicht, denn am Ende hast Du dich immer noch etwas bewegt und das ist gut.

...zur Antwort

Nicht alleine, es braucht grundlastfähige Energieversorgung rund um die Uhr und da sieht es bei den erneuerbaren Energien derzeit noch zu dünn aus.

Man könnte z.B. auf Offshore-Windkraft oder Gezeitenkraft setzen, die können größtenteils grundlastfähig arbeiten, aber damit bekommst Du keinen ganzen Kontinent versorgt. Biomasse wäre eine Option, aber so viel Biomasse können und wollen wir nicht produzieren - und sollten es auch nicht.

Oder man setzt auf Speichertechnologien und daran wird auch aktiv gearbeitet. Ich hoffe auf den Eisenoxid-Speicher, der könnte eine relativ einfache Speichertechnologie werden, dessen Energieträger ungefährlich ist und theoretisch unendlich lang durch die Weltgeschichte kutschiert werden kann, also perfekt geeignet für uns.

Die Lösung ist also nicht die eine Technologie, sondern ein buntes Sammelsurium an Technologien zur Stromversorgung und Speicherung, am besten dezentral verteilt und noch viel besser, wenn Fabriken und Co. flexibel reagieren können.

...zur Antwort

Der Compiler interessiert sich nicht für die Reihenfolge - zumindest in Sprachen wie Java oder C#, es gibt aber auch Sprachen, bei denen ist das nicht egal.

Von OAKMS habe ich noch nie gehört, aber die Richtung setze ich ziemlich genau so um, wie GPT schreibt, allerdings etwas komplexer, unter Anderen weil C# mehr kann.

  • Konstanten
  • Klassenvariablen (bei Java nennt man das Attribute, bei C# ist ein Attribut was anderes)
  • Events
  • Properties
  • Konstruktoren
  • Methoden

In jeder Gruppe sortiere ich dann auch nach Sichtbarkeit, Zusammengehörigkeit, Aufrufreihenfolge, etc. Teilweise baue ich auch diese Gruppierung nochmal für öffentliche statische Inhalte auf, die dann ganz oben steht.

Das Haupt-Ziel ist, dass die Inhalte der Klasse so zusammenstehen, wie man sie intuitiv suchen würde, aber das ist natürlich auch sehr individuell.

...zur Antwort

So Fragen, ob "irgendwann" etwas passiert, sind immer sinnlos ;)
"Irgendwann" ist eine verdammt lange Zeit und wenn man davon ausgeht, dass wir nicht aussterben, kann man diese Fragen immer mit "Ja" beantworten.

Du musst die Frage also einschränken, entweder auf einen konkreten Zeitraum, oder - was vermutlich eher dein Ziel ist - die Art der KI

Warum sollte es Sklaverei sein, wenn ein Computer-Programm seine Aufgabe erledigt? Das wird gerne "KI" genannt, aber daran ist nichts intelligent oder empfindungsfähig.

Vermutlich wird es "irgendwann" so weit sein, dass wir tatsächlich KI als "Sklaven" halten, aber dann wird sich bis dahin unser Weltbild geändert haben und wir finden es doch gut. So eine KI wäre einfach zu nützlich, schon lange bevor wir eine Empfindungsfähigkeit merken würden. Wir würden uns daran gewöhnen, werden abhängig davon und bevor wir überhaupt merken, dass die KI empfindungsfähig geworden ist, haben wir unser Werteverständnis so verändern, dass die Versklavung plötzlich doch ok ist.

Und auch wenn wir unser Werteverständnis behalten sollten, wird es mächtige Menschen geben, die das ganze ignorieren, das ist auch schon heute gängige Praxis. Das ist das eigentliche Problem, das müssen wir lösen, die KI ist nur eine Art Hebel für dieses Problem.

...zur Antwort

Sorgen machen musst Du dir nicht, solange die Kühlung ausreicht. Wird der PC zu heiß, dann drosselt die CPU sich, sodass die Leistung noch schlechter wird, oder der PC schaltet sich im Extremfall ab, um Schäden zu vermeiden. Im Normalfall sind die Komponenten aber darauf ausgelegt, lange unter Volllast zu arbeiten und auch hohe Temperaturen sind kein Problem, solange Du nichts an den Schutzmechanismen im BIOS manipuliert hast.

Wenn die CPU bei 100% steht, heißt das nur, dass sie 100% der Zeit am arbeiten ist und nicht wie sonst einen meist großen Teil der Zeit nur am Warten ist. Tatsächlich leistet die CPU immer 100%, allerdings ist sie meistens so schnell wieder fertig, dass sie wieder auf etwas anderes (z.B. die SSD oder Netzwerk oder dass Du wieder etwas machst) warten musst, sodass Du die 100% gar nicht merkst.

Der RAM ist auch voll, aber auch das heißt nur, dass es keinen freien Platz mehr gibt.

Beides stört die Hardware nicht - dich aber potentiell schon.

Eine 100% ausgelastete CPU hat keine Kapazitäten frei, um mal eben andere Aufgaben zwischen zu schieben, das merkst Du daran, dass alles langsam wird.

Und 100% ausgelasteter RAM bedeutet, dass dein Windows keine Daten mehr dort unterbringen kann, Windows fängt also an, wenig benutzte Daten auf die Datenträger auszulagern und der ist *erheblich* viel langsamer als RAM. Selbst langsamer RAM ist viel schneller, als die schnellste SSD. Auch das merkst Du daran, dass alles langsam wird.

Voller RAM merkst Du in der Regel stärker, als eine voll ausgelastete CPU, Du solltest dir also den RAM aufrüsten, 32GB stattg 16GB wirst Du vermutlich deutlich merken - zumindest solange das häufiger vorkommt.
Eine stärkere CPU wäre auch spürbar, ist aber teurer und aufwändiger aufzurüsten und es kann auch sein, dass mehr RAM die Last auf die CDU reduziert.

Wenn es nicht häufig vor kommt, dann solltest Du mal untersuchen, woher das kommt, denn das ist potentiell problematisch. Das Programm könnte ein Fehler haben, oder es tut mehr, als Du eigentlich willst.

...zur Antwort

C ist an sich nicht sehr schwer zu lernen, allerdings nimmt dir die Sprache nichts ab, Du musst alles "zu Fuß" machen.

Java nimmt dir z.B. die Speicherverwaltung vollständig ab, den Luxus hast Du mit C nicht, Du musst also sehr viel mehr aufpassen, was Du mit deinen Daten machst und entsprechend aufräumen.

Auch hast Du keine Objektorientierung, Du musst also sehr viel mehr Aufwand betreiben, um dein Programm gut zu strukturieren.

Und noch vieles anderes, wie z.B. Strings, die eine Vereinfachung in Java sind. C hat gar keine Strings (nicht direkt zumindest), stattdessen musst Du mit char-Pointern und Längen arbeiten, oder Du nutzt externe Bibliotheken, die das bereits tun.

C ist vergleichsweise "klein", die Sprache bietet nicht sehr viel, aber das, was sie bietet, kann sehr feingranular genutzt werden, sodass man am Ende dann doch extrem viel damit machen und extrem gut optimieren und Hardware steuern kann. Diesen Vorteil erkrauft man sich aber mit deutlich größerer Komplexität in der Verwendung, auch wenn die Sprache an sich recht einfach ist.

Programmiersprachen wie Java oder C# wurden dagegen dafür entwickelt, mit möglichst wenig Aufwand möglichst komplexe Projekte zu ermöglichen, während die Sprache (bzw. die Runtime) möglichst viele häufige und durchaus gefährliche Probleme verhindert. Das erkaufen sich diese Sprachen aber mit schlechterer Gesamt-Performance, schlechterer Detail-Optimierbarkeit und teils deutlich größerem Sprach-Umfang und größerer Einstiegshürde.

Für den Einstieg wirst Du aber vermutlich gut voran kommen, der Rest kommt dann mit der Zeit. Die Komplexität kommt erst dann zum Tragen, wenn man auch komplexere Projekte umsetzen will.

Und wird man durch das Studium besser programmieren lernen?

Ja und nein.

C zu lernen schaden auf keinen Fall, selbst wenn Du es am Ende nie wieder benutzt. Es kann enorm hilfreich sein, zu verstehen, wie alles im Kern funktioniert, denn auch Sprachen wie Java oder C# fallen am Ende auf C zurück. Erfahrung mit C hilft, durch die teils komplexe Abstraktion von Java oder C# "hindurch" zu schauen, um Konzepte oder Probleme besser zu zu verstehen. Hast Du dieses Wissen nicht, musst Du es dir vom anderen Ende mühsam aufbauen, aber viele tun das nicht und denen fehlt dieses Wissen dann in subtilen Situationen. Das kann der entscheidende Unterschied zwischen einem "nur" guten Entwickler und einem Top-Entwickler sein, den die Kollegen fragen, wenn sie nicht mehr weiter kommen.

Allerdings hilft dir das Studium an sich nicht, besser zu programmieren. Ein Studium ist größtenteils Theorie, ggf. lernt man ein Stück weit eine Programmiersprache, der wirklich wirklich wirklich entscheidende Faktor ist Erfahrung und die bekommst Du nicht in Vorlesungen, sondern nur in realen Projekten, am besten auch in einer produktiv arbeitenden Firma mit realen Problemen.

Eine Fachhochschule hat da ggf. andere Prioritäten, aber auch die können ein reales Projekt nicht viel Erfahrung nicht ersetzen. Wenn Du nicht neben dem Studium arbeiten kannst, dann solltest Du dir zumindest private Projekte überlegen und umsetzen und sobald Du fertig bist, nimmst Du dir eben dieses Projekt nochmal vor und überlegst, wie Du es ausbauen/verbessern oder übersichtlicher machen kannst. Gerade am Anfang wirst Du dabei viele fundamentale Fehler machen, die dir dann später auf die Füße fallen - eben diese Erfahrung ist sehr wichtig.

Du musst dich allerdings davon verabschieden, dass Du nach dem Studium ausgelernt bist - dem ist nicht so. Es dauert auch danach noch Jahre, bis Du ein ernstzunehmender Softwareentwickler bist, den eine Firma auch alleine an ein komplexes Projekt lassen kann, ggf. sogar mit Verantwortung. Auch das ist normal, wichtig ist nur, dass Du dich nicht davon entmutigen lässt - und hoffentlich einen Arbeitgeber findest, der das auch versteht ;)

...zur Antwort

Der Fleck sieht nach Silikonöl aus - ist harmlos, vermutlich Rückstände von der Wärmeleitpaste. Flüssigmetall ist das aber nicht, das ist einfach nur Wärmeleitpaste.

Wenn nur das Spiel abstürzt, ist es eher ein Problem mit dem Spiel, oder ein sehr detaillierter Fehler im Chip selber, weil irgendeine Funktion nicht richtig funktioniert und das Spiel sie mehr nutzt.

Du kannst da vermutlich nicht viel gegen tun, am besten Du lässt das Ding reparieren.

...zur Antwort

"KI" ist die "Oberkategorie", allerdings heißt das nicht, dass da auch wirklich etwas intelligent ist. Viel eher meint es das zugrundeliegende Ziel, nur dass wir davon noch weit entfernt sind.

Machine Learning ist eine Kategorie von Technologien/Konzepten, die darauf abzielen, Muster in großen Datenmengen zu erkennen und darauf zu reagieren.

Large Language Models (LLMs) sind Modelle, die mit Hilfe von Machine Learning darauf trainiert werden, Text-Antworten zu "erraten" - und das können sie auch sehr gut. GPT ist so ein LLM.

...zur Antwort
Ja

Ein Semaphore ist eine von vielen Thread Synchronization Primitives aus der Softwareentwicklung.

Also wenn zwei gleichzeitig laufende Programm-Abschnitte (Threads) auf die selben Ressourcen wollen, dann muss häufig der Zugriff darauf synchronisiert werden, damit sie sich bei der Arbeit nicht in die Quere kommen (Race Conditions).

Das kann z.B. problematisch sein, wenn Thread 1 erst ein paar Daten abruft und danach irgendetwas mit diesen Daten prüft, um dann abhängig vom Prüfungsergebnis weiterarbeiten zu können. Wenn nun Thread 2 dazwischen plötzlich die Daten ändert, dann ist die Prüfung und die weitere Arbeit plötzlich nicht mehr korrekt, sodass es zu Fehlern im Programm kommen kann. Die Herausforderung ist, dass solche Fehler sporadisch auftreten und oft extrem schwer nachzuvollziehen sind, daher stellt man bei der Programmierung sicher, dass sowas gar nicht passieren kann.

Dafür gibt's verschiedene Konzepte für grundlegende Strukturen (Primitives), die den Zugriff steuern können. Das Semaphore ist eines davon und steuert, wie viele gleichzeitige Zugriffe erlaubt sind, es ist im Grunde also ein Zähler, der zählt, wie viele Threads gerade mit den Daten arbeiten. Allerdings wird intern im Semaphore selber erheblicher Aufwand betrieben, damit es intern nicht auch zu Race Conditions kommen kann, sodass das Semaphore eine einfach zu nutzende Struktur ist.

Die Anzahl gleichzeitiger Zugriffe kann man dann begrenzen (häufig auf 1) und jeder weitere Zugriff muss dann warten, bis ein vorheriger Zugriff Programm-Abschnitt fertig ist.

...zur Antwort

Mir ist keine Einstellung und auch kein Programm bekannt, was das bietet.

Aber technisch möglich sollte es sein, wenn Du dir die Zeit dafür nehmen willst, kannst Du dir ein eigenes Programm entwickeln, was das tut.

Einfach ist das aber nicht, doch man kann über die Windows-API Tastatureingaben überwachen (z.B. STRG+F1) und dann einzelne Fenster in den Vordergrund bringen.

...zur Antwort