wird die programmiersprache c noch verwendet?
<p>ich bin ein c # -programmierer und der größte teil meiner entwicklung ist für websites zusammen mit einigen windows-anwendungen. was c betrifft, habe ich es lange nicht mehr benutzt, da es nicht nötig war. es war eine überraschung für mich, als eine meiner freundinnen sagte, dass sie c lernen muss, um jobs zu testen, während ich ihr half, c # zu lernen.</p><p>ich nahm an, dass jemand c nur zum testen lernen würde, wenn in c eine entwicklung durchgeführt wird. meines wissens nach erfolgt die gesamte entwicklung in bezug auf com und hardware-design auch in c++. daher ist das erlernen von c nicht sinnvoll, wenn sie c++ verwenden müssen. ich glaube auch nicht an historische bedeutung. warum also zeit und geld verschwenden, um c zu lernen?</p><p>wird c noch in irgendeiner neuen softwareentwicklung oder in irgendetwas anderem verwendet?</p>
<p>c hat den vorteil, dass es eine relativ <strong> <em> kleine sprache</em> </strong> ist, was es <strong> macht ) <em> einfach einen c-compiler zu implementieren</em> </strong> (während ein c++ - compiler ein monster zum schreiben ist), und macht es <strong> = <em> leichter die sprache zu lernen</em> </strong>. siehe auch <a href="https://www.tiobe.com/tiobe-index/">tiobe-index</a> , wonach c etwas vor c++ liegt.</p><p>in (imo) abnehmender reihenfolge der rechtfertigung wird c immer noch häufig verwendet</p><ul> <li> <p>eingebettetes zeug<br> es ist viel einfacher, einen c-compiler auf eine kleine plattform zu portieren, als einen c++ - compiler zu portieren. außerdem behaupten c-befürworter, dass c++ "hinter ihrem rücken zu viel tut". allerdings imo das ist fud.</p> </li> <li> <p>systemprogrammierung<br> auch dies ist normalerweise auf die behauptung zurückzuführen, dass es einfacher ist, "zu wissen, was der compiler tut". viele eingebettete programme würden jedoch beispielsweise von vorlagen und anderen c++ - schlüsselfunktionen profitieren.</p> </li> <li> <p>quelloffene software<br> das ist jedoch meistens ein einstellungsproblem: oss hat c immer c++ vorgezogen (während es in großen teilen der branche das gegenteil ist). torvalds irrationaler hass könnte tatsächlich der wichtigste grund dafür sein <em> unter linux</em>.</p> </li> </ul>
<p>sie können ihre aufgabe mit <code>backgroundworker</code> erledigen. es ist eine bekannte klasse, und viele leute haben sie benutzt.</p><p>die neuen schlüsselwörter c # 5 <code>async</code> und <code>await</code> erleichtern im grunde nur das schreiben von lesbarem asynchronem code. möglicherweise gibt es weniger tutorials und beispiele, wie verschiedene aufgaben mit diesen schlüsselwörtern ausgeführt werden können, als <code>backgroundworker</code>.</p><p>sofern sie keine ältere version von c # verwenden müssen, empfehle ich, die verwendung von <code>async</code> und <code>await</code> zu erlernen.</p> <p>was sie erstellen möchten, ist eine <a href="http://en.wikipedia.org/wiki/domain-specific\_language">domänenspezifische sprache</a> . das grundprinzip dieser art von (programmier-) sprache lautet: halten sie die syntax so einfach wie möglich, während sich einfach auf "vom menschen lesbar" bezieht, indem sie alle nicht benötigten funktionen entfernen.</p><h2>schwierigkeiten der c-syntax</h2><p>was macht c-syntax schwer zu schreiben:</p><ul> <li>fehlendes nachlaufen; ich habe viele anfänger gesehen, die auf diesem fluch waren.</li> <li>fehlend} oder).</li> <li>das konzept der zeiger <em> (sie werden diesen wahrscheinlich nicht brauchen) </em></li> <li>variable bereiche</li> <li>copy-by-value vs. referenzen</li> </ul><p>wenn sie eine kleine teilmenge der sprachfunktionen verwenden, ist der code sowohl leichter zu lesen als auch zu schreiben (sofern er konsistent ist).</p><h2>beispiel</h2><p>angenommen, der code muss ausdrücken, dass prozess a von prozess b abhängig ist.</p><pre><code>process a = "cook something"; process b = "go shopping."; depends\_on(a, b); </code></pre><p>oder:</p><pre><code>cook something &lt;- go shopping </code></pre><p>im zweiten beispiel muss der "codierer" nicht einmal das konzept der parameter kennen!</p><h2>technische komplexität beeinflusst die benutzerfreundlichkeit</h2><p>was am ende mindestens genauso wichtig sein kann: eine anständige kompilierungs-/debugging-umgebung, fehlermeldungen, die zur lösung des eigentlichen problems beitragen usw. aufgrund der technischen schwierigkeiten beim parsen von c gibt der compiler häufig nur schwache fehler aus im zusammenhang mit der wahren ursache. auch hier hilft eine einfache syntax.</p> <p>die antwort ist nicht so einfach wie sie zuerst erscheint, da sie von ihrer anwendung abhängt. in vielen fällen sind die auswirkungen negativ, da der benutzer software auf seinem computer installieren muss, was aus allen möglichen gründen viele menschen davon abhält, diese zu verwenden.</p><p>gleichzeitig kann es für heiße neue plugins oder beliebte addons eine positive auswirkung haben. flash ist so verbreitet, dass es wahrscheinlich nur geringe oder keine negativen auswirkungen hat und (wenn es gut verwendet wird) die leute mehr auf ihre website aufmerksam macht.</p><p>silverlight ist interessant. es ist nicht ungewöhnlich, dass sie es benötigen, wenn sie microsoft-websites verwenden. und sobald es heruntergeladen wurde, werden einige leute froh sein, eine site gefunden zu haben, die es verwendet.</p><p>das anfordern eines plugins ist in ordnung, wenn die meisten benutzer es bereits heruntergeladen haben. das erfordernis, dass ihre benutzer explizit ein plugin herunterladen, das sie wahrscheinlich nicht haben, ist ein echtes minus. die verwendung einer, die ihre benutzer wahrscheinlich bereits haben, kann sehr positiv sein.</p> Ich würde auch gleich mit Java anfangen, wenn du es im Endeffekt sowie so lernen willst. 


Wenn man sich vernünftig dransetzt kann man eigentlich mit jeder Sprache anfangen. eine individuell entwickelte webanwendung ist oft preiswerter als eine standardsoftware. ihr vorteil besteht darin, dass sie nur die kosten für die einmalige entwicklung der software investieren müssen. da sie zum eigentümer der software werden, entstehen keine weiteren lizenzkosten und zwar unabhängig von der benutzeranzahl und der dauer der nutzung. weitere informationen finden sie in unserem wiki-beitrag über die kosten einer individualsoftware (<https://www.trinidat.de/software-wiki/individualsoftware-kosten/>). <p>zunächst einmal herzlichen glückwunsch zum "sehen des lichts". sie haben die software-welt zu einem besseren ort gemacht, indem sie ihren horizont erweitert haben.</p><p>zweitens gibt es ehrlich gesagt keine möglichkeit, dass ein professor, der die funktionale programmierung nicht versteht, etwas nützliches über ihren code sagen kann, außer banalen kommentaren wie "die einrückung sieht aus". dies ist in einem webentwicklungskurs nicht so überraschend, da die meisten webentwicklungen mit html/css/javascript durchgeführt werden. abhängig davon, wie sehr sie sich tatsächlich für das erlernen der webentwicklung interessieren, möchten sie möglicherweise anstrengungen unternehmen, um die werkzeuge zu erlernen, die ihr professor lehrt (auch wenn dies schmerzhaft sein mag - ich weiß aus erfahrung).</p><p>um die angegebene frage zu beantworten: wenn ihr imperativcode eine schleife verwendet, ist ihr funktionscode wahrscheinlich rekursiv.</p><pre><code>(* raises x to the power of y *) fun pow (x: real) (y: int) : real = if y = 1 then x else x * (pow x (y-1)) </code></pre><p>beachten sie, dass dieser algorithmus tatsächlich mehr oder weniger mit dem imperativen code identisch ist. tatsächlich könnte man die obige schleife als syntaktischen zucker für iterative rekursive prozesse betrachten.</p><p>nebenbei bemerkt, es ist weder in ihrem imperativ- noch in ihrem funktionscode ein wert von <code>z</code> erforderlich. sie sollten ihre imperative funktion so geschrieben haben:</p><pre><code>def pow(x, y): var ret = 1 for (i = 0; i &lt; y; i++) ret = ret * x return ret </code></pre><p>anstatt die bedeutung der variablen <code>x</code> zu ändern.</p> bei uns kommen stets die modernsten technologien zum einsatz. die meisten webanwendungen programmieren wir mit c# und javascript sowie diversen frameworks. darüber hinaus haben wir webanwendungen mit php und mit der programmiersprache typescript auf der basis von node.js entwickelt. das hosting der webanwendung kann unter windows und unter linux erfolgen. <p>dies ist aus sicherheitsgründen eine gute idee. ein kennwort mit unicode-zeichen ist schwerer zu erzwingen als ein kennwort mit ascii zeichen gleicher länge. dies gilt auch dann, wenn sie die bytelänge anstelle der zeichenlänge vergleichen, da unicode verwendet das höchstwertige bit, während ascii nicht.</p><p>ich denke jedoch, dass dies nicht praktikabel wäre, da unicode-fehler so häufig sind. ich denke, wenn sie überall unicode-passwörter verwenden, werden sie auf mehr als ein paar websites stoßen, auf denen sie probleme beim anmelden haben würden, da die entwickler die unicode-unterstützung für passwörter nicht korrekt implementiert haben.</p> <p>der beste weg, für ihr blog zu werben, ist nicht, das blog selbst zu bewerben, sondern die darin enthaltenen informationen. wenn sie einen artikel darüber schreiben, wie sie ein häufig auftretendes programmierproblem lösen, sollten sie nach personen suchen, bei denen dieses problem auftritt. versehen sie sie dann mit einem link zu ihrer lösung.</p><p>die leute sind an lösungen für ihre probleme interessiert, und das programmieren von blogs wird interessant, wenn der blogger weiterhin lösungen für probleme veröffentlicht, mit denen sie konfrontiert sind. ich folge css-tricks.com aus genau diesem grund. es gibt lösungen für probleme, die ich als webentwickler habe.</p><p>wenn sie probleme in foren (oder auf websites wie diesen) suchen und ihre relevanten links bereitstellen, wird ihr google-ranking ebenfalls steigen, da sie über andere websites verfügen, die zu ihren websites führen.</p><p>vorsicht jedoch! versuchen sie, ihre links nicht zu spammen. stellen sie sicher, dass sie auf relevante informationen verweisen, die für diejenigen hilfreich sind, die nach einer lösung für ein problem suchen.</p> Es kommt darauf an, welchen neuen PC man kauft. Ist es ein PC der neuen Generation, dann sollte man auch ein neues Betriebssystem (falls man bei Windows bleiben möchte) WIN7 darauf installieren. XP ist ein Fossil und wird ab 2014 nicht mehr von Microsoft unterstützt und ist daher nicht weiter zu empfehlen. Auch werden die neuen PC-Systeme mit schnellen Mehrkern-CPUs und mehr als 4 GB RAM nicht optimal genutzt, oder nicht unterstützt, auch Fehlen für XP für die eine oder andere Hardware schon mal die Treiber. Alte PCs, die mit XP ausgeliefert wurden, sind damals auf XP abgestimmte Hardware und Treiber vorhanden und man sollte dies so belassen und die neuen PCs auch mit einem neuen Betriebssystem betreiben.