Mit was würdet ihr programmieren anfangen

Mit was swürdet ihr programmieren starten?

  • C/C++

    Stimmen: 34 47,2%
  • Perl

    Stimmen: 9 12,5%
  • Python

    Stimmen: 9 12,5%
  • Java

    Stimmen: 12 16,7%
  • ruby

    Stimmen: 7 9,7%
  • vBasic

    Stimmen: 1 1,4%

  • Umfrageteilnehmer
    72
  • Umfrage geschlossen .
IMHO ist, wie Maledictus gesagt hat, es nicht so wichtig, ob Skript- oder Nicht-Skript-Sprache.
(Vielleicht nicht gerade Java Script.) Wann kompiliert wird ist, imho, nicht wichtig.
Daher halte ich Sprachen wie Perl oder Python für genauso geeignet Programmieren zu lernen,
wie C oder Java oder was auch immer.

Einen guten Kontext zum Thema Unix-Programmieren kann dir auch folgendes Buch geben:
http://www.catb.org/~esr/writings/taoup/html/
 
exceptions sind doch auch nur eine verkappte Form von Gotos:
Irgendwo wird sie geschmissen und dann springt das Programm zu Stelle, wo sie behandelt wird.

Oder seh ich das falsch?
Ja. Bei einem GOTO steht das Ziel des Sprungs zur Compilezeit fest. Eine Exception wird zur Laufzeit gefangen, typischerweise durch Stack-Unwinding, d.h. die Aufrufhierarchie wird rückwärts abgearbeitet, bis ein Exceptionhandler gefunden wird. Der Exceptionhandler ist also nicht statisch, sondern dynamisch!
 
@lars und Maledictus
Klar ist es egal wann das Ding übersetzt wird. Der Untschied liegt in so tollen Dingen wie Variablenbenutzung. In den meisten Scriptsprachen kann man in eine Variable alles reinpacken, so wie man gerade lustig ist. Das ding wird dann auch immer nett vom Interpreter gecasted und als Programmierer muss man sich keine Gedankten darüber machen was das Ding ist. Ist an und für sich ganz toll, nur wenn man dann mal an C, C++ oder Java rangelassen wird, dann schaut man auf einmal ganz blöd aus der Wäsche. Und wenn man diesen übergang probiert wird man ganz schnell zum fluchen anfangen. Deswegen ist meine Meinung. Lieber erst einmal eine strenge Programmiersprache. Über die ganzen annehmlichkeiten einer Scriptsprache freut man sich dann umso mehr.

Rookie
 
Hallo,
ich habe mich eher kurz mit dem Thema Programiersprache beschäftigt und bin dann auf eine Sprache gestoßen, die hier noch gar nicht erwähnt wurde:
Smalltalk
Wie ist denn eure Meinung zu smalltalk?

Die CT hat ja eine 4teilige Einführung abgedruckt, die ich gerade durcharbeite. Mir geht es in erster Linie darum, die Prizipien einer OO-Sprache zu verstehen und da ist Smalltalk wohl "die reine Lehre" oder?

Grüße

Stefan
 
@Stefan.Ruehl

Ja, kann man so sogen.
Ich hab's mir mal kurz angeschaut. Ist ein super Sprache um die prinzipien der Objekt-Orientierten Programmierung zu lernen. Ob man mit ihr in der "realen" Welt programme schreiben kann; keine Ahnung, dafür habe ich mir zuwenig mit ihr befasst. Aber wie gesagt, zum lernen der Prinzipien super.

Rookie
 
Ich würde immer noch mit C/C++ anfangen (die Vorteile wurden bereits genannt, und dem schließe ich mich an), aber gleichzeitig würde ich versuchen, relativ zügig Scheme zu lernen: Scheme ist als funktional-applikative, interpretierende Sprache wichtig für das Verständnis des anwendungsbezogenen Anteils der Algorithmentheorie; ich hatte leider erhebliche Schwierigkeiten, diversen Vorlesungen mit Inhalten über Programmierparadigmen und Berechenbarkeitstheorie zu folgen, weil ich meine Praxismängel in Scheme nicht schnell genug aufholen konnte.

Für Systementwicklung und Anwendungsprogrammierung in der Industrie dürfte Scheme allerdings keine Rolle spielen. Sie erweist dem Neophyten also offensichtlich nur in der akademischen Ausbildung einen akzeptablen Nutzen.

Noch etwas möchte ich hinzufügen: Es kommt sicherlich, abgesehen vom rein akademischen Interesse, darauf an, wie zweckgebunden die erste Programmiersprache sein soll. FORTRAN z. B. eignet sich konzeptionsbedingt nicht unbedingt als Paradebeispiel, um guten Programmierstil zu lernen - trotzdem muss ein Maschinenbauer, Elektrotechniker oder Physiker schon ganz zu Anfang diese Programmiersprache lernen, da sie für einen Großteil der Aufgabenstellungen aus diesen Studien- und Berufsfeldern das Maß aller Dinge ist. Ich wüsste jedenfalls nicht, wie ich iterative Verfahren zur Berechnung analytisch nicht begreifbarer partieller Differentialgleichungen aus der Fluiddynamik oder dergleichen Verfahren aus der Quantenelektrodynamik zur numerischen Berechnung differenzierbarer Mannigfaltigkeiten mit Java oder Perl codieren und diese Codes dann auch noch laufzeitoptimieren sollte. Hier domininiert der Anwendungsopportunismus die pädagogische Frage nach einer sinnvollen, zuerst zu lernenden Programmiersprache.
 
Zuletzt bearbeitet:
Ob man mit ihr in der "realen" Welt programme schreiben kann; keine Ahnung, dafür habe ich mir zuwenig mit ihr befasst. Aber wie gesagt, zum lernen der Prinzipien super.
Kann man! Ich kenne einige Projekte aus dem Finanzbereich (Banken), die mit Smalltalk entwickelt wurden. Und bei genauem Hingucken hat Java einen ganzen Haufen der Konzepte von Smalltalk geerbt (VM, Garbage Collectien, Reflection usw.).

Aus meiner Sicht macht es daher durchaus Sinn, sich mit Smalltalk zu beschäftigen. Den c't Kurs fand ich dafür super. Die dort mitgelieferte Smalltalk Version läuft übrigens wunderbar unter FreeBSD in der Linux-Emulation.
 
Kommt drauf an..

Ich persönlich habe mit C angefangen, wobei mir
das Ganze ziemlich schlecht beigebracht
wurde. Ich lernte von Anfang an keine sicheren
Funktionen, kümmerte mich nicht um Bufferoverflows
und ähnliche Dinge. Daher finde ich, sollte man nur
mit C/C++ anfangen, wenn man ein wirklich gutes
Buch hat oder Lehrer hat, das/der einen auch über
die Gefahren dieser Programmiersprachen informiert.

Auf der andern Seite ist natürlich klar, dass man bei
C noch einiges über das wirkliche Funktionieren einer
Programmiersprache, bzw. eines Programmes lernt,
wo man bei anderen Sprachen wie Java oder Ruby
schon ein wenig davon entfernt ist. Jedoch wäre dann
wohl das Beste, zuerst mit Assembler anzufangen,
was ich auch jedem empfehle (Ich konnte es leider
bis jetzt noch nicht lernen).

Wenn man aber gar nie so richtig Tief ins Geschehen
schauen möchte, empfehle ich Ruby gefolgt von Java.
Ruby darum, weil es einfach Spass macht und viele
gute Designansätze beihaltet. Leider ist die Sprache
noch nicht sehr gut dokumentiert. Man kann aber gleich
mithelfen :). Ausserdem ist "Programming in Ruby" ein
geniales Buch, um eine Programmiersprache zu lernen.

Jap. Lernt einfach nicht PowerBuilder, das ist Scheisse. :)
 
Zuletzt bearbeitet:
flomul schrieb:
Ich lernte von Anfang an keine sicheren
Funktionen, kümmerte mich nicht um Bufferoverflows
und ähnliche Dinge.

Ist mir anfangs ähnlich ergangen, heraus kommt dann z. B. soetwas:
Code:
#include <stdio.h>
int main()
{
	char _buffer[128];
	int i = 0;

	while ( (_buffer[i] = fgetc(stdin)) != '\n')
		i++;
	_buffer[i] = '\0';
	printf("->%s<-\n", _buffer);

	return 0;
}

Man braucht einen kritischen Lehrer, der einem bei solchen Codebeispielen das Fell über die Ohren zieht.



:D
 
Lehrer sind häufig inkompetent

Heidegger schrieb:
Man braucht einen kritischen Lehrer, der einem bei solchen Codebeispielen das Fell über die Ohren zieht.

Zuerst musst Du mal einen finden, der sich solcher
kritischer Situationen überhaupt selbst bewusst ist.
Es gibt solche Flaschen in der Programmierung, die
ihr (Pseudo-)Wissen auch noch weitergeben dürfen.

Man muss daher als Lernender schonmal kritsch sein.
Gegenüber seinem Lehrer und sich selbst. Ansonsten
brauchst man später wieder einige Zeit, um sich das
Fehlverhalten wieder abzugewöhnen.
 
Zuletzt bearbeitet:
@lars und Maledictus
Klar ist es egal wann das Ding übersetzt wird. Der Untschied liegt in so tollen Dingen wie Variablenbenutzung. In den meisten Scriptsprachen kann man in eine Variable alles reinpacken, so wie man gerade lustig ist. Das ding wird dann auch immer nett vom Interpreter gecasted und als Programmierer muss man sich keine Gedankten darüber machen was das Ding ist. Ist an und für sich ganz toll, nur wenn man dann mal an C, C++ oder Java rangelassen wird, dann schaut man auf einmal ganz blöd aus der Wäsche. Und wenn man diesen übergang probiert wird man ganz schnell zum fluchen anfangen. Deswegen ist meine Meinung. Lieber erst einmal eine strenge Programmiersprache. Über die ganzen annehmlichkeiten einer Scriptsprache freut man sich dann umso mehr.

Rookie

Hehe ja das selbe problem hatte Flas auch schon vorgestern ;)

Ich lernte von Anfang an keine sicheren
Funktionen, kümmerte mich nicht um Bufferoverflows
und ähnliche Dinge.

Hehe ja die buffer overflows ;) Naja ich werd versuchen mein wissen ausm buch "Buffer overflows und format string schwachstellen" an Flas weiterzugeben :D
 
Tjoa, ich hab mir jetzt schon "programmieren von anfang an" bestellt, hol ich mir gliech ab und dann geht`s richtig los :D !!
 
crash-x schrieb:
Hehe ja die buffer overflows ;) Naja ich werd versuchen mein wissen ausm buch "Buffer overflows und format string schwachstellen" an Flas weiterzugeben :D

Auch Floating-Point-Exceptions in aktuellen Linux-Kernels können so manch einem Administrator den Feierabend vermiesen. Kompilier dir mal den folgenden Source auf einem Linux-System (sofern du als BSD'ler Zugriff auf ein solches hast :eek: ), führe es anschließend als User aus und beobachte, was passiert:
Code:
#include <sys/time.h>
#include <signal.h>
#include <unistd.h>

static void Handler(int ignore)
{
 char fpubuf[108];
 __asm__ __volatile__ ("fsave %0\n" : : "m"(fpubuf));
 write(2, "*", 1);
 __asm__ __volatile__ ("frstor %0\n" : : "m"(fpubuf));
}

int main(int argc, char *argv[])
{
 struct itimerval spec;
 signal(SIGALRM, Handler);
 spec.it_interval.tv_sec=0;
 spec.it_interval.tv_usec=100;
 spec.it_value.tv_sec=0;
 spec.it_value.tv_usec=100;
 setitimer(ITIMER_REAL, &spec, NULL);
 while(1)
  write(1, ".", 1);

 return 0;
}
Irgendetwas Auffälliges bemerkt?
 
Hab' ich heute morgen auf der (Linux-)kiste meines Kollegen gemacht. Der konnte allerdings nicht darüber lachen. Komisch ... :)
 
Hi @ll

@crash-x

Kann ich bestätigen, hat bei mir auch eingeschlagen wie eine Bombe
FreeBSD 5.2.1-p8
 
Zurück
Oben