Ich will auch programmieren!

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
Sam
Beiträge: 838
Registriert: 10.09.2002 11:02:45
Wohnort: Wuppertal

Beitrag von Sam » 31.08.2006 00:26:37

Vielleicht sollte aptynux selber entscheiden, welche Sprache am schönsten ist:
http://en.wikipedia.org/wiki/List_of_he ... d_programs
:D
LG,
Sam

Benutzeravatar
dmeister
Beiträge: 258
Registriert: 05.07.2002 08:01:53
Wohnort: Zürich
Kontaktdaten:

Beitrag von dmeister » 31.08.2006 10:55:48

<flüster> Ruby </flüster>

Schöne Sprache, relativ einfach zu lernen.

Grundsätzlich bin ich auch der Meinung, dass es nicht so relevant ist, mit welcher Sprache man programmieren lernt. Wichtiger sind natürlich viel mehr die Methodik, Algorithmen, usw. Trotzdem glaube ich, dass einem (und _gerade_ einem Einsteiger) eine Programmiersprache auch Spass machen sollte. Ich habe beruflich auch ab und zu mit C/C++ zu tun (C++ war meine erste Sprache) und so leid es mir tut: In diesen Sprachen zu programmieren bereitet mir einfach nicht so viel Freude wie mit "modernen" Skriptsprachen wie Ruby oder auch Python. Da gibt es so viele Sachen (Pointer, Speicherbereinigung, ...), um die man sich kümmern muss, die einem nur von der eigentlichen Aufgabe ablenken und deshalb bei Einsteigern leicht zur totalen Verwirrung führen können.

Just my 2 cents.
Jabber: neptoon@jabber.org
It's only Rock'n'Roll but I like it

glar00k
Beiträge: 790
Registriert: 09.07.2002 23:01:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Beitrag von glar00k » 31.08.2006 12:57:49

niemand hat geschrieben:IMHO ist Java, aufgrund der Dokumentation, eine _der_ Sprachen, um coden zu lernen.
ACK, wobei ich jedoch heute eher zu C# raten würde, weil es einfach eine komplettere Sprache ist. ActionListener in Java sind ein Krampf, Delegates in C# dagegen sind dagegen leichter zu handhaben. Getter und Setter sind bei C# ebenfalls gleich in die Sprache integriert u.s.w. C# halte ich für sowas wie eine weitere "Evolutionsstufe" von Java (nicht zu genau nehmen ...). Auch wenn es wohl noch ein paar Jahre braucht, bis es so weit verbreitet ist wie Java. Zum lernen find ich es allerdings recht schön und mit Mono hat man auch eine dafür ausreichende .NET Implementierung. Wer will und es auch braucht, kann sich später ja immernoch an C versuchen.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 31.08.2006 13:42:35

Ob Du sicheren C, C++, php, perl, and python code schreibst siehst Du wenn du "rats" andrehst :)

Hier der Link zu dem C Buch von dem ich oben gesprochen habe
http://courses.iicm.edu/the_c_book/Soft ... ungInC.pdf
http://courses.iicm.edu/the_c_book/Soft ... Errata.pdf

markus

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 31.08.2006 23:13:01

meandtheshell hat geschrieben:Ob Du sicheren C, C++, php, perl, and python code schreibst siehst Du wenn du "rats" andrehst :)

Hier der Link zu dem C Buch von dem ich oben gesprochen habe
http://courses.iicm.edu/the_c_book/Soft ... ungInC.pdf
http://courses.iicm.edu/the_c_book/Soft ... Errata.pdf

markus
Danke, dann werde ich mich mal ranmachen.

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 31.08.2006 23:50:10

Welche Pakete muss ich für den GNU C Compiler installieren, welche für Emacs (emacs-21???, am besten wäre auch die X-Version)?

Benutzeravatar
Sam
Beiträge: 838
Registriert: 10.09.2002 11:02:45
Wohnort: Wuppertal

Beitrag von Sam » 01.09.2006 00:19:12

gcc für den c compiler, g++ für den c++ compiler.
Emacs kann ich nicht sagen, ich arbeite nicht mit der Desktopumgebung emacs sondern wenn mit der Desktopumgebung vim.
Ich würde Dir eine IDE empfehlen, für c/c++ kdevelop
LG,
Sam
edith: desktopumgebung= Scherz, sind ja beides Betriebssysteme :-)

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 01.09.2006 11:36:11

aptynux hat geschrieben:Welche Pakete muss ich für den GNU C Compiler installieren, welche für Emacs (emacs-21???, am besten wäre auch die X-Version)?
Hallo,
hier hast Du was ich auf einer meiner maschinen habe (es ist seit jeher ein reinrassiges DebianGNU/Linux testing)

Code: Alles auswählen

markusgattol@pc1:/tmp$ dpkg -l emacs* | grep '^ii'
ii  emacs-color-themes     6.5.4-1        Color themes for Emacs
ii  emacs-goodies-el       26.6-1         Miscellaneous add-ons for Emacs
ii  emacs21                21.4a-3        The GNU Emacs editor
ii  emacs21-bin-common     21.4a-3        The GNU Emacs editor's shared, architecture
ii  emacs21-common         21.4a-3        The GNU Emacs editor's shared, architecture
ii  emacsen-common         1.4.17         Common facilities for all emacsen
markusgattol@pc1:/tmp$ dpkg -l gcc* | grep '^ii'
ii  gcc-2.95        2.95.4-27      The GNU C compiler
ii  gcc-2.95-doc    2.95.4-27      Documentation for the GNU compilers (gcc, go
ii  gcc-3.3-base    3.3.6-13       The GNU Compiler Collection (base package)
ii  gcc-3.4-base    3.4.6-1        The GNU Compiler Collection (base package)
ii  gcc-4.0         4.0.3-3        The GNU C compiler
ii  gcc-4.0-base    4.0.3-3        The GNU Compiler Collection (base package)
ii  gcc-4.0-doc     4.0.3-3        Documentation for the GNU compilers (gcc, go
ii  gcc-4.1-base    4.1.1-11       The GNU Compiler Collection (base package)
markusgattol@pc1:/tmp$
Wie Du siehst habe ich mehrere gcc Versionen.
Das ist nur der Fall weil man eben manchmal spezielle Versionen braucht (siehe README files von source trees). Es ist für dich (wenn Du mit dem Buch von Klaus beginnst) völlig egal welchen Du Dir installierst, da alles im Buch ISO C Standard ist IIRC und die gcc das sowieso kann.

Wie Sam sagte ist emacs eben emacs. Es gibt auch andere sehr gute IDE's oder Editoren aber dazu mehr zu sagen würde den Rahmen sprengen und Dir auch nicht sehr viel helfen. Es gibt auch sehr viele User hier die Eclipse verwenden. Wie gesagt das musst Du entscheiden. Früher oder später wirst Du wohl wie wir alle an einem bestimmten Editor oder einer IDE Gefallen finden.
Ich persönlich (wieder subjektiv :D ) kann mit guten Gewissen für den Emacs sprechen, da er egal was ich je gemacht habe immer gute Lösungen für mich parat hatte. Egal ob das schreiben einer Arbeit oder Documentation (hier möchte ich besonders auf TeXinfo verweisen) oder das programmieren an sich oder einfach einmal den emacs als shell verwenden (M-x shell).

Wichtig ist, dass Du weißt, dass es egal welchen Editor Du nimmst wohl immer jemanden gibt der mit Rat und Tat zur Seite stehen kann, da ich glaube das alle nennenswerten Editoren und IDE's von einem der User auf DF.de verwendet werden. Nicht zu vergessen die IRC channels e.g. #emacs auf freenode.

Zum Schluß noch - ich habe natürlich kein kommerzielles Interesse an dem Buch Link - dennoch ich glaube die ca. 40 Euro für das Buch (nicht nur PDF) sind eine sehr gute Investition.
Abschließend möchte ich noch sagen, dass Du Dir keine Wunder erwarten darfst - bis Du im Fall von C und Emacs ein Wohlfühlgefühl entwickelst wird es wohl ein Jahr dauern. Das sich der Aufwand später potenzierend positiv Auswirkt habe ich schon gesagt.

Du hast die freie Wahl zu entscheiden - mit freier Software liegt man nicht falsch - auch wenn es ein wenig viel an Information war/ist denke ich, dass Du einen Einblick bekommen hast und nun "einfach losmarschierst" - der Weg ist das Ziel ...

markus

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 19:50:56

Emacs ist mir irgendwie zu kompliziert und zu ungrafisch, hebt auch nicht den Code mit verschiedenen Farben hervor. Nennt mir weitere Beispiele (nicht nur eins), und Eclipse braucht samt Abhängigkeiten 430 MB, zu viel des Guten.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 02.09.2006 20:12:04

Ich selbst benutze zwar nicht emacs, denke aber, dass mit der entsprechenden Konfiguration auch Syntax-Hilighting funktioniert.

Ich persönlich nutze vim. Benötigt aber auch einiges an Einarbeitung, die sich IMHO aber lohnt.
Hier im Forum wurde auch mehrmals auf geany http://geany.uvena.de/ als Editor hingewiesen.

Ansonsten halt noch die "Großen" Anjuta und Kdevelop
MfG GoKi
:wq

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 20:29:39

Ich nehme jetzt Geany. Danke nochmals.

mario.neudeck
Beiträge: 455
Registriert: 07.09.2004 08:51:47
Wohnort: Dresden

Beitrag von mario.neudeck » 02.09.2006 21:11:52

vi / vim ist auf jeden Fall die Einarbeitung wert.
Wenn Du den drauf hast, zahlt sich das aus. Komme mal in die Verlegenheit auf einem Remote-System per ssh zuzugreifen und dort irgendwelche config-Dateien editieren zu müssen, oder das Schreiben von Mail mit mutt,...
Was ich total gut finde: Du splittest dein Editorfenster, hast oben die ersten 30 Zeilen und arbeitest und am Code.
...ich würde es mir überlegen.

Benutzeravatar
Linuxpeter
Beiträge: 236
Registriert: 26.04.2005 22:48:56
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Dresden

Beitrag von Linuxpeter » 02.09.2006 21:17:35

Auch von mir eine (natürlich rein subjektive) Empfehlung: kdevelop,
macht sich besonders gut, wenn man so wie ich KDE als grafische Oberfläche benutzt.

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 02.09.2006 21:27:03

hi,

naja KDevelop finde ich am Anfang schon etwas hart, gerade wenn man noch nichts von Automake, svn und GuiDesignern wissen will. Aus dem KDE-Sortiment kann ich da eher Kate empfehlen. Geany ist natürlich auch schön, gerade da der Autor auch hier im Forum vertreten ist und auch sehr hilfsbereit ist ;-) Und es bietet Support für Sachen wie make, ohne alles zu kompliziert zu machen.
mfg
mauser

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 22:02:01

Nach einer langen Testphase, bleib ichbei Geany, ist das einzigste was für mich in Frage kommt (schnell, benutzerfreundlich, umfangreich), da fühlt man sich richtig wohl.

Aber beim kompilieren, kam folgende Warnung:

Code: Alles auswählen

aptynux@aptynux-desktop:~$ gcc -o test_types test_types.c
test_types.c: In function ‘main’:
test_types.c:13: warning: incompatible implicit declaration of built-in function ‘printf’
Ist das schimm?

So sieht die test_types.c jedenfalls aus:

Code: Alles auswählen

// test_types.c -This porgram prints the size of the internal
// representation of primitive C datatypes

char a_char = '\0';
int an_int = 0;
short a_short = 0;
long a_long = 0;
float a_float = 0.0f;
double a_double = 0.0;

main()
{
  printf("Size of char:   %d Byte(s)\n",sizeof(a_char));
  printf("Size of int:    %d Byte(s)\n",sizeof(an_int));
  printf("Size of short:  %d Byte(s)\n",sizeof(a_short));
  printf("Size of long:   %d Byte(s)\n",sizeof(a_long)),
  printf("Size of float:  %d Byte(s)\n",sizeof(a_float));
  printf("Size of double: %d Byte(s)\n",sizeof(a_double));
}
Das Programm funktioniert jedoch richtig:

Code: Alles auswählen

aptynux@aptynux-desktop:~$ ~/test_types
Size of char:   1 Byte(s)
Size of int:    4 Byte(s)
Size of short:  2 Byte(s)
Size of long:   4 Byte(s)
Size of float:  4 Byte(s)
Size of double: 8 Byte(s)

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 02.09.2006 22:08:56

Da fehlt wohl ein

Code: Alles auswählen

#include <stdio.h>

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 22:12:58

Code: Alles auswählen

gcc -o test_types test_types.c include <stdio.h>
gibt

Code: Alles auswählen

bash: syntax error near unexpected token `newline'
aus

Was mache ich wiedermal falsch? :(

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 02.09.2006 22:14:40

Das '#include' muss an den Anfang des Quelltextes.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 02.09.2006 22:16:51

auweia, gib´s zu, das machst du mit Absicht :D
Beware of programmers who carry screwdrivers.

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 22:23:22

cosmac hat geschrieben:auweia, gib´s zu, das machst du mit Absicht :D
Nein, definitiv nicht, ich bin seit 1 Tag Programmierer bzw. C-Anfänger. Da darf man wohl mal vorsichtig sein.

@ Spasswolf
So hier?:

Code: Alles auswählen

#include <stdio.h>
// test_types.c -This porgram prints the size of the internal
// representation of primitive C datatypes

char a_char = '\0';
int an_int = 0;
short a_short = 0;
long a_long = 0;
float a_float = 0.0f;
double a_double = 0.0;

main()
{
  printf("Size of char:   %d Byte(s)\n",sizeof(a_char));
  printf("Size of int:    %d Byte(s)\n",sizeof(an_int));
  printf("Size of short:  %d Byte(s)\n",sizeof(a_short));
  printf("Size of long:   %d Byte(s)\n",sizeof(a_long)),
  printf("Size of float:  %d Byte(s)\n",sizeof(a_float));
  printf("Size of double: %d Byte(s)\n",sizeof(a_double));
}

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 02.09.2006 22:28:38

Für die Deklaration ist es eigentlich nur wichtig, dass der '#Include<stdio.h>' vor dem ersten auftreten der Funktion printf eingebaut wird. Wegen der Übersicht packt man alle Header an den Anfang des Quelltextes, aber hinter den "Eröffnungskommentar". Guck dir am besten mal einen irgeneinen Quelltext an.

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 22:35:01

Spasswolf hat geschrieben:Für die Deklaration ist es eigentlich nur wichtig, dass der '#Include<stdio.h>' vor dem ersten auftreten der Funktion printf eingebaut wird. Wegen der Übersicht packt man alle Header an den Anfang des Quelltextes, aber hinter den "Eröffnungskommentar". Guck dir am besten mal einen irgeneinen Quelltext an.
OK hab verstanden.

Aber das <> muss durch "" ersetzt werden.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 02.09.2006 22:40:27

<> wird benutzt wenn die Header Datei im Standardpfad (/usr/include )liegt.
"" wird benutzt wenn die Header Datei im selben Verzeichnis liegt, wie der Quelltext.

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 22:44:12

Spasswolf hat geschrieben:<> wird benutzt wenn die Header Datei im Standardpfad (/usr/include )liegt.
"" wird benutzt wenn die Header Datei im selben Verzeichnis liegt, wie der Quelltext.
Aber es gab diesmal keine Fehlermeldung.

aptynux
Beiträge: 178
Registriert: 19.08.2006 00:33:38
Wohnort: Dresden
Kontaktdaten:

Beitrag von aptynux » 02.09.2006 23:07:36

Was ist hier falsch:
(beim kompilieren)

Code: Alles auswählen

datatype_test.c:6:26: warning: multi-character character constant
datatype_test.c:6: warning: large integer implicitly truncated to unsigned type
datatype_test.c: In function ‘main’:
datatype_test.c:24: error: ‘a_uchar’ undeclared (first use in this function)
datatype_test.c:24: error: (Each undeclared identifier is reported only once
datatype_test.c:24: error: for each function it appears in.)
und hier:
(Quellcode)

Code: Alles auswählen

// datatype_test.c - a few things that can be done with
// some primitive datatypes and printf in C

# include <stdio.h>

unsigned char a_uchar_ = '\n0';
unsigned int a_uint_ = 0;
double a_double_ = 0.0;

main()
{
	a_uchar_ = 'x';
	printf("a_uchar_ has the content %c\n",a_uchar_);
	
	// how do we get the ASCII-Code of a char?
	printf("%c has the ASCII-Code %u\n",a_uchar_,a_uchar_);
	
	// it is possible to do calculations on chars!
	a_uchar_ = a_uchar_ + 1;
	printf("after adding 1 to a_uchar_, it contains %c\n",
		   a_uchar_);
	
	// what is the 4th letter in the alphabet?
	a_uchar = 'a' + 3;
	printf("the fourth letter in the alphabet is %c\n",
		   a_uchar_);
	
	// chars are integral datatypes, so the following
	// assignment works
	a_uint_ = a_uchar_;
	printf("a_uint_ has the content %c\n",a_uint_);
	
	//output for double datatypes:
	a_double_ = 17.25;
	printf("a_double_ has the content %f\n",a_double_);
}

Antworten