• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Programmieren

Thomsn am 22.01.2007 16:27 schrieb:
iakchos am 22.01.2007 15:46 schrieb:
Und die wichtigere Sprache ist sicherlich C++, warum sollte man sich also nicht von Anfang an darauf konzentrieren?
text
Da hast du wirklich Recht.

Aus dem Grund ist soweit ich weiss auch Linux in C geschreiben.

Allgemein kann man das aber ähnlich beantworten, wie die Frage, ob man denn nun 3dsMax oder Maya lernen soll.
Warum nicht von beiden mal die Demo Version runterladen und zu beiden Video-Tutorials anschauen. Dadurch bekommt man ein unabhängiges, umfassendes "Allgemeinwissen".

Genau das lässt sich IMO auch auf Programmiersprachen anwenden.

Wenn man sich einige Zeit mit den Grundlagen von meinetwegen C, C++, Pearl, Java, PHP usw. auseinandersetzt bekommt man eigtl. das beste Bild davon, was Programmieren ausmacht, und was wichtig ist.

Und da kann man in der Tat genau so gut mit C anfangen. ;-)
 
Ich habe bisher begrenzt die Erfahrung gemacht, dass ursprüngliche C Programmierer "besser" programmieren, bzw. zumindest den Speicherverbrauch niedriger halten.
(Ich gebe zwar zu, dass ich das nur anhand 4 bis 5 Probanden erwiesen habe, aber imho eine logische Folge.)
In C überlegt man sich ein wenig genauer, wo man welche Variable noch braucht, wie lang ein String genau werden kann, etc.
Moderne Sprachen sind da wesentlich verschwenderischer...

Ich persönlich hab meine ersten Erfahrungen mit PHP gemacht, aber C hat mich später ein wenig "erzogen". Jetzt programmiere ich nur noch in C# und bin wohl schon wieder einiges nachlässiger geworden. *g*
 
iakchos am 23.01.2007 17:51 schrieb:
Da hast du wirklich Recht.

Aus dem Grund ist soweit ich weiss auch Linux in C geschreiben. [...]
Was damit aber nicht wirklich was zu tun hat. Dass Linux in C/C++ implementiert ist ergibt sich zum einen aus der Geschichte (früher gab's halt kaum was anderes womit man sowas hätte machen können) und der notwendigen Nähe zur Hardware.

Dass es auch anders geht zeigen diverse Projekte, darunter Singularity von Microsoft (in einer C# Modifikation implementiert), JX der Uni Erlangen, und das Open Source Projekt JNode (die beide letzten in Java).

Ich finde die Idee ein Betriebssystem mit einer typsicheren verwalteten Sprache zu implementieren sehr gut, da man so schon auf Kernelebene die Sicherheit hat die einem die modernen Hochsprachen wie Java oder C# zur Verfügung stellen, vorallem bei Sicherheit, Prozessisolation, Zugriffssteuerung, und Speicherkontrolle/-verwaltung.

---------------

skicu am 23.01.2007 17:57 schrieb:
Ich habe bisher begrenzt die Erfahrung gemacht, dass ursprüngliche C Programmierer "besser" programmieren, bzw. zumindest den Speicherverbrauch niedriger halten. [...]
Und womit wird diese "Optimierung" erkauft? Durch massenhaft Schutzverletzungen, Abstürzte und Aufhänger durch total verqueres Zeigereinerlei. :ugly:

In meinen Augen werden sich managed environments auf Dauer einfach durchsetzen, da sie viel weniger anfällig für solchen Murks wie Speicherlecks, unerlaubte Pointeroperationen, und so wirres Zeug wie Typcasts sind womit die gesamte Programmstruktur und der Programmablauf total zerstört werden kann.
 
Ra-Tiel am 23.01.2007 20:16 schrieb:
[
skicu am 23.01.2007 17:57 schrieb:
Ich habe bisher begrenzt die Erfahrung gemacht, dass ursprüngliche C Programmierer "besser" programmieren, bzw. zumindest den Speicherverbrauch niedriger halten. [...]
Und womit wird diese "Optimierung" erkauft? Durch massenhaft Schutzverletzungen, Abstürzte und Aufhänger durch total verqueres Zeigereinerlei. :ugly:
... und üblicherweise durch Verschwendung (menschlicher) Zeit. C ist sicher toll, wenn man Sachen schreibt, bei denen jede Nanosekunde und jedes kb Speicher entscheident ist, aber wie oft macht man das schon? Gerade bei Projekten für Programmieranfänger sollte die Speicherverwaltung eher sekundär sein. Zum Einstieg ins Programmieren würde ich eher eine wirkliche high-Level-Sprache empfehlen. Mein persönlicher Favorit ist in der Sparte ja Python. Zeit- und nervensparend, weil sowas wie Speicherverwaltung eben keine Rolle spielt, klare und verständliche Syntax, interpretiert, man spart sich also erstmal das Compilergefummel, außerdem kann man mit dem Interpreter ganz einfach einzelne Sachen ausprobieren, was gerade bei Anfängern sehr nützlich sein dürfte...
 
Ja, da stimme ich euch zu, Anwendungen in C zu implementieren ist nicht so wirklich toll... (wobei ich ein Softwarehaus kenne, das eine textbasierte ERM Software für Autohäuser anbietet - komplett in C ohne grafischen Editor geschrieben - und diese Software wird nach wie vor weiterentwickelt. :B )

Mit einer Hochsprache (C#, Java) zu beginnen hat sicher den Vorteil, dass man gleich damit anfängt, womit man, sollte man das beruflich fortsetzen, später auch arbeiten wird.

C oder ähnliches hat den Vorteil, dass man Grundstrukturen und -prinzipien besser mitbekommt. Hat man einen Lehrer / Mentor, der einem auch noch auf die Finger klopft, wenn man zuviele Variablen initialisiert oder Speicherlecks offen lässt, hat man schon mal ein gutes Grundverständnis. Hier kommt dann natürlich das Erlernen einer moderneren Hochsprache zusätzlich hinzu. C ist also kein Ersatz, sondern ein weiteres Kapitel beim steten Hinzulernen...

(Das sollten manche Leute auch einmal kapieren: Es gibt kein "nicht programmieren können" und "programmieren können" - man wird IMMER noch SEHR viel hinzu lernen können. Das hört nie auf.)
 
skicu am 26.01.2007 12:37 schrieb:
[...] (Das sollten manche Leute auch einmal kapieren: Es gibt kein "nicht programmieren können" und "programmieren können" - man wird IMMER noch SEHR viel hinzu lernen können. Das hört nie auf.)
Seh ich auch so. Klar, manche Sachen müssen - bis heute - einfach in einer hardwarenahen Sprache implementiert werden (Treiber, Schnittstellensoftware, usw). Ich selber hab mich im Zuge meines Studiums auch schon mit dem ARM Assembler beschäftigen müssen (man, wasn Scheiß :finger: ).

Aber ich persönlich finde man kann die Grundstrukturen des Programmierens genausogut mit einer Hochsprache lernen. Ist vielleicht nicht ganz so "hardcore", aber viele kryptischen Fehler bleiben einem dann doch erspart. Und unverständliche Fehler sind gerade für nen Anfänger ziemlich frustrierend.

Für Fortgeschrittene aber auch. ^^ Wir sollten letzens für unsere BSYS Vorlesung ein paar kleine Programme schreiben, Semaphoren, Pipes, und son Schnick halt. Was denkst du wie übel VS da rumgezickt hat weil die Unicodeunterstützung noch an war? :ugly: Da hat auch unser Prof erstmal 20min gebraucht um die Fehlermeldung mit Unicode in Verbindung zu bringen. ^^
 
Zurück