WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Programm zum c programmieren (http://www.wcm.at/forum/showthread.php?t=188164)

_THE_LAW_ 24.03.2006 08:40

Programm zum c programmieren
 
Hy,
ich dachte mir ich fange mal an mit etwas c programmieren mal hobby mäßig. will mir das ganze mal anschaun. Ich weiß ich könnt mit etwas einfacheren auch anfangen. aber c könnt ich wieder für linux brauchen. also will ich mal c lernen.

doch mir fehlt ein gutes programm um c zu programmieren. ich kenn dieses Qbasic heißt das glaub ich. hat aber optisch überhaupt keinen Reiz für mich, weil es wie eine uralt dos shell ausschaut. für windows Visual studio .net hab ich net wirklich das geld dazu, vorallem da ich es nur mal gern ausprobieren möchte.

ich wollte euch fragen ob ihr ein gutes Freeware Programm kennt mit dem ich so ala Dreamweaver oder visual studio .net arbeiten kann ?

ich brauch das programm ausschliesslich zu privaten zwecken, will damit kein geld verdienen.

vielleicht kennt ihr so ein programm.

mfg _THE_LAW_

splinter_t21 24.03.2006 08:58

tag
 
Schau mal auf die Microsoft-Site, hab da vor einiger Zeit mal Visual-Express Edition gefunden. Gibts leider nur für C# und C++. Is gratis, mußt dich aber registrieren, sodass du einen key bekommst.


http://www.microsoft.com/germany/msd.../download.mspx

mfg
splinter

pong 24.03.2006 08:59

gcc
Borland Cpp 5.5


pong

renew 24.03.2006 10:21

-lcc (klein und schlank - für win32)
-Eclipse + C-Plugin (wobei ich da nicht weiß, was man als Compiler unter win32 nutzen könnte, ich habs mit gcc unter Linux laufen und das geht recht fein... :))

your-assassin 24.03.2006 11:10

Versuch mal MinGW . Ist relativ klein und kann was.

greetz
your-assassin

Biri 24.03.2006 15:31

hi,

würd mir auf jeden fall die express edition von visual studio 2005 downloaden. Ist eine professionelle entwicklungsumgebung.
Unterstützt VB.net, C++.net, C# u.a.
Du findest auf den MS Seiten auch zahlreiche Tutorials - die .net Programme kannst du auch unter mono (.net framework unter unix/linux) laufen lassen.

Für hardwarenahe Programmierung würde ich ev. noch C (oder Assembler) verwenden, sonst gleich mit C++ oder noch besser: C# anfangen.
Vorteil: Objektorientierte Programmierung

fg
hannes

Who-T 29.03.2006 02:31

wenn du wirklich C lernen willst wuerd ich empfehlen mit einem guten editor und makefiles zu beginnen. die einstiegshuerde ist hoeher, allerdings wirst du wesentlich mehr lernen.

und wenn du die basics kennst ist es leichter eine IDE zu verwenden weil du weisst was im hintergrund passiert. umgekehrt ist schwerer (IMHO).

falls es dich interessiert, ich bin von VisualStudio zu kdevelop zu emacs zu vim convertiert. sprich immer weiter weg von grossformatigen IDEs. IDEs sind zu unflexibel.
das ist aber jetzt in meinem fall und es gibt genug leute die mit IDEs gluecklich sind.

_THE_LAW_ 29.03.2006 08:08

was is ein IDE ?

Biri 29.03.2006 08:41

hi,

IDE = integrated development environment
also eine sog. "integrierte Entwicklungsumgebung"

Ich kann Who-T aber nicht/nur teilweise zustimmen.
ja, es ist wichtig zu wissen, was im hintergrund vorgeht.
Aber die Sourcen für ein umfangreicheres Projekt mit einem Texteditor zu programmieren ist einfach ein zu hoher aufwand.
Beispiel: Visual Studio 2005 hat sehr gutes Intellisense - du tippst jeweils nur den Anfang einer Funktion/Klasse/Variable, sofort erscheint eine Auswahlliste - du bist beim eingeben vom Source sehr viel schneller, außerdem ist es ausgeschlossen, das man sich vertippt.
Du kannst ein Klassendiagramm erstellen, "go to definition" klicken, um dir schnell die klassendefinition in einer anderen Datei anzusehen, hast eine syntaxüberprüfung während du tippst - einfach vielzuviele möglichkeiten um jetzt alles aufzuzählen.

ad unflexibel: Was kannst du mit dem texteditor machen, dass mit der ide nicht funktioniert?

Man sollte auch mit Texteditor ein Programm schreiben können - aber wichtiger: man sollte sich bei der arbeit einem Werkzeug bedienen, mit dem man effizient arbeiten kann.
Anders gesagt: Du kannst einen Baum mit einer Motorsäge in 3 Minuten umschneiden oder mit einer Handsäge in 1 Stunde.
Welche Möglichkeit wirst du wählen, wenn es darum geht, in kurzer Zeit viele Bäume umzuschneiden? ;)

fg
hannes

pc.net 29.03.2006 08:44

IDE (integrated development environment) = entwicklungsumgebung ...

Who-T 29.03.2006 09:10

Zitat:

Original geschrieben von Biri

Aber die Sourcen für ein umfangreicheres Projekt mit einem Texteditor zu programmieren ist einfach ein zu hoher aufwand.

Ich wuerde sagen im gegenteil. Fuer kleine projekte ist eine IDE ok, sobalds wirklich gross wird, schaffts die IDE nicht mehr.

Zitat:


Beispiel: Visual Studio 2005 hat sehr gutes Intellisense - du tippst jeweils nur den Anfang einer Funktion/Klasse/Variable, sofort erscheint eine Auswahlliste - du bist beim eingeben vom Source sehr viel schneller, außerdem ist es ausgeschlossen, das man sich vertippt.

Das ist eine persoenliche einstellung von mir aber ich persoenlich finde auto-completion als unsinnig. man lernt dadurch nicht programmieren sondern raten. Ist mir aufgefallen als ich nach jahren JBuilder ohne auto-completion praktisch nicht programmieren konnte. ohne auto-completion muss man API specs lesen und das ist sehr hilfreich. vor allem weil man dadurch spezialfaelle erkennt und andere methoden findet die aehnliches tun.

syntaxueberpruefung ist hilfreich, das geb ich zu. hat mein editor leider net. go to definition geht z.b. mit ctags (fuer C und C++).

Zitat:


ad unflexibel: Was kannst du mit dem texteditor machen, dass mit der ide nicht funktioniert?

wie gesagt, bei wirklich grossen projekten gibt die IDE auf.

Zitat:


Man sollte auch mit Texteditor ein Programm schreiben können - aber wichtiger: man sollte sich bei der arbeit einem Werkzeug bedienen, mit dem man effizient arbeiten kann.
Anders gesagt: Du kannst einen Baum mit einer Motorsäge in 3 Minuten umschneiden oder mit einer Handsäge in 1 Stunde.
Welche Möglichkeit wirst du wählen, wenn es darum geht, in kurzer Zeit viele Bäume umzuschneiden? ;)

ja, allerdings ist die auffassung des effizienten werkzeuges halt per person unterschiedlich.
wie gesagt, meine persoenliche einstellung in meinem arbeitsbereich.

Biri 29.03.2006 14:32

hi,

ui, ich hoffe, das wird jetzt keine endlosdiskussion - grundsätzlich: jedem das seine - wenn du mit notepad schneller programmieren kannst, spricht ja nix dagegen, es zu verwenden. ;)

Zitat:

Fuer kleine projekte ist eine IDE ok, sobalds wirklich gross wird, schaffts die IDE nicht mehr
Was verstehst du unter "wirklich groß"?
Ich verstehe darunter mehrere Projekte, die miteinander verwendet werden und aus insgesammt > 1000 files bestehen.
Was soll die IDE da nicht mehr schaffen?
Die Entwickler von #develop schrieben "eat your own dogfood" - soll heißen: verwend deine eigene ide zum weiterprogrammieren der ide, was sie gemacht haben. Wenn das eh alles keiner braucht, warum dann den aufwand treiben?

Btw. wie debuggst du eigentlich im notepad? (steht stellvertratend für andere plain-text editoren)
Wie erzeugst du ein GUI?
Gibst du position, size und restliche eigenschaften der GUI Elemente als Text an?
Geht natürlich, aber ob man nicht mit einem grafischen Designer schneller ist, hmm?

Zitat:

persoenlich finde auto-completion als unsinnig. man lernt dadurch nicht programmieren sondern raten
Es ist auch nicht zum Programmieren lernen gedacht, sondern für leute, die bereits programmieren können, damit sie schneller dabei sind.
Z.B.: Implementerung der Methoden eines Interfaces - Interface hat 10 Methoden.
a) Alle 10 Methoden nochmal abtippen um das Interface zu implementieren (dauert 5 MInuten)
b) Klicken auf Klasse, die Interface implementiert - Auswahl von "implement interface" in Combobox (Ergebnis gleich, dauert 5 Sekunden)

fg
-hannes

ps: ist nicht als persönlicher angriff zu werten, sondern ebenfalls meine persönliche einstellung.

kikakater 29.03.2006 19:40

Erklärungsbedarf sollte minimiert werden, der zeitliche Aufwand für wiederkehrende Tätigkeiten ebenso, das spricht u.a. für ein Framework.

Es geht aber auch um Antipathie bei Programmierumgebungen und um "vergangene" Konzepte wie z.B. proprietäre Codeanbauten, die nur dem Monopolsichern dienen.

Microsoft erlebt gerade wieder sein Waterloo, weil nicht auf Standards und nicht auf Offenheit geachtet wird. Dann muß wieder etwas "völlig Neues" her. Dementsprechend ist das Ganze als Flickschusterei nur mehr zu bezeichnen.

Frameworks, die von kommerziellen Firmen kommen und auf Codeanbauten zurückgreifen, sind mit vielen Nachteilen ausgestattet.

Freie Entwicklungsumgebungen haben diese Nachteile nicht so sehr, WENN es - ebenso freie - APIs gibt.

Wer beides haben will, muss freie APIs verwenden sowie programmieren und je Betriebssystem eigene Wrapperfunktionen einsetzen - DER Köngisweg zu fundiertem Handwerk und Effektivität anstatt Spezialsoftware für jedes System zu schaffen oder ein Programm reprogrammieren zu müssen für einen Einsatz auf unterschiedlichen Betriebssystemen.

Und wenn man diese Strategie wählt, kann man auch ein Framework verwenden, das einem nicht so sympathisch ist.

Damit zeigt sich dann auch der Einsatz und Nutzen in Bezug auf proprietäre Quellprogramme - nämlich deutlich eingeschränkt.

Ich glaube, das hat Who-T gemeint.

Visual Studio beispielsweise ist keine klassische IDE (wurde früher auch [GUI] Shell genannt), sondern ein Framework, das mehr interaktive Funktionen im Programmeditor selbst realisiert, sowie Browser-, Listen- und Baumstrukturfenster in der Hauptfensteransicht ständig optional abschaltbar integriert.

Im Wesentlichen stellt sich die Grundfrage sinnvollerweise als geschmacks- und einsatzorientiert dar.

Generell sind IDEs wie beispielsweise Visual Studio und Borland C++ Builder aus Gründen der Umständlichkeit - eben weil sie doch W.O. geben, wenn der Code umfangreicher wird, und auch wenn anderes als proprietäres Prozedere gefragt ist - unsympathisch hoch drei und daher der Einsatz dieser Werkzeuge zu minimieren oder zu instrumentalisieren, indem man keinen ROOT Microsoftcode schreibt, sondern eine freie API, die auf für Microsoft oder andere Betriebssysteme umhüllten Code zurückgreift (=auf eine solche Struktur aufbaut) MIT STANDARDISIERTEN Funktionsschnittstellen.

xandl33 29.03.2006 20:27

bloodshed c++ is auch zu empfehlen

kikakater 29.03.2006 20:43

Für C Code: LCC Win32 (den "OK" Button anklicken für die eigentliche Seite)

Für CPP Code: Bloodshed C++

Who-T 30.03.2006 00:53

Zitat:

Original geschrieben von Biri

ui, ich hoffe, das wird jetzt keine endlosdiskussion

woohoo. flamewar! :D

Zitat:


Was verstehst du unter "wirklich groß"?

uhm. ungefaehre anzahl an source + header files is 7000, angeblich um die 15 mio LOC. Viel spass das alles in eine IDE zu laden...
ein vollstaendiger build dauert mehrere stunden. durch den aufruf von bestimmten makefiles + targets kann ich meine veraenderungen innerhalb von wenigen minuten dazukomplieren. das waer mit einer IDE schwerer.

Zitat:


Btw. wie debuggst du eigentlich im notepad? (steht stellvertratend für andere plain-text editoren)

gdb. nicht grafisch aber gut.
ich benutze vim, andere leute emacs. hat einige funktionen die sehr nuetzlich sind, definitive die einstiegshuerde wert.

Zitat:


Wie erzeugst du ein GUI?

brauch ich fast nie. wie gesagt, mein zeugsl ist ein spezialfall. wenn ich mal eine brauch mach ich es per hand, weil es nie umfangreich ist.
fuer GUIs sind designertools natuerlich besser. wenn sie funktionieren ;)

Zitat:


Es ist auch nicht zum Programmieren lernen gedacht, sondern für leute, die bereits programmieren können, damit sie schneller dabei sind.
Z.B.: Implementerung der Methoden eines Interfaces - Interface hat 10 Methoden.
a) Alle 10 Methoden nochmal abtippen um das Interface zu implementieren (dauert 5 MInuten)
b) Klicken auf Klasse, die Interface implementiert - Auswahl von "implement interface" in Combobox (Ergebnis gleich, dauert 5 Sekunden)

wann hoert man schon damit auf programmieren zu lernen... :)
interfaces sind Java (bzw C# glaub ich auch). originalfrage war fuer C. manche der funktionen von eclipse (die von dir erwaehnte autoimplementierung) sind nuetzlich, allerdings stark auf Java beschraenkt. gibts uebrigens als plugin fuer vim IMHO.


@kikakater.
ist nicht genau was ich gemeint hab aber ein interessanter punkt.

kikakater 30.03.2006 13:56

Du nimmst mir die Worte aus dem Mund. :-)

Ich wollte nur einen weiteren Aspekt hinsichtlich mangelnder Eignung diverser IDEs aufzeigen und Deine Einstellung zum Thema in mein Posting authentisch einfliessen lassen.

Biri 30.03.2006 14:14

hi,

Zitat:

ein vollstaendiger build dauert mehrere stunden. durch den aufruf von bestimmten makefiles + targets kann ich meine veraenderungen innerhalb von wenigen minuten dazukomplieren. das waer mit einer IDE schwerer
das nennt sich incremental build und sollte die ide hoffentlich per default machen, kann man aber sicher einstellen.
was andres is, wenn ich von irgendwo sourcecode herbekommen - dann will ich natürlich schon, dass ein make-file dabei ist und ich keine ev. ide spezifische projektstruktur brauche um das zeug zu kompilieren.

Zitat:

ich benutze vim, andere leute emacsgdb. nicht grafisch aber gut.
vi is bei mir schon länger her.
war zu seiner zeit gut - inzwischen ist mir aber der editor vom studio lieber.

Zitat:

GUI brauch ich fast nie. wie gesagt, mein zeugsl ist ein spezialfall. wenn ich mal eine brauch mach ich es per hand, weil es nie umfangreich ist.
tja, hier liegt dann wohl ein wesentlicher unterschied. Bei den sachen, die ich programmiert hab, hat es schon auch immer ein GUI geben müssen.

Zitat:

wann hoert man schon damit auf programmieren zu lernen... :)
o.k. -> full ack.

Zitat:

Visual Studio beispielsweise ist keine klassische IDE (wurde früher auch [GUI] Shell genannt), sondern ein Framework
Visual Studio ist mit Sicherheit KEIN Framework.
was zum lesen: http://de.wikipedia.org/wiki/Framework

fg
hannes

kikakater 30.03.2006 15:14

Ich habe den gängigen Begriff IDE + dazugehörige Codebibliotheken gemeint - beispielsweise die Kombination aus Code (NET) und Visual Studio. Deswegen sollten proprietäre Codeanbauten vulgo proprietärer Code (z.B. NET Framework) nicht verwendet werden, weil das Nachteile hat. Wenn es gemacht wird, dann nur mit Wrapperfunktionen bzw. aufbauenden Klassen (eben Whitebox oder Blackbox APIs aber portabel, nicht proprietär).

Das bezieht sich allgemein auf Frameworks (Visual Studio, Borland C++ Builder, Delphi), die alle mit proprietären Funktions- und Klassensammlungen daherkommen.

Geht es noch babylonischer als so etwas zu forcieren ?

kikakater 30.03.2006 15:18

Der Königsweg: Der Entzug des eigentlichen Stammzweigs proprietären Codes durch standardisierte Schnittstellen. Somit ist NET und auch anderes unter Kontrolle gebracht.

Who-T 31.03.2006 01:12

Zitat:

Original geschrieben von Biri
hi,
das nennt sich incremental build und sollte die ide hoffentlich per default machen, kann man aber sicher einstellen.
was andres is, wenn ich von irgendwo sourcecode herbekommen - dann will ich natürlich schon, dass ein make-file dabei ist und ich keine ev. ide spezifische projektstruktur brauche um das zeug zu kompilieren.

indeed. der sourcecode ist natuerlich nicht von mir (X server) und es war schwer genug herauszufinden wie man incremental builds macht. irgendein bug in autoconf verhindert naemlich incremental builds und welche targets man aufrufen muss weiss ich erst seitdem ich mit einem der lead developers gesprocehn hab.

Zitat:

vi is bei mir schon länger her.
war zu seiner zeit gut - inzwischen ist mir aber der editor vom studio lieber.

hehe, ist bei mir umgekehrt. ich komm mir mit einen normalen editor immer etwas verhindert vor. zuviele der vim shortcuts sind schon automatisch bei mir.

ich hab den debugger von VS immer sehr gut gefunden, mittlerweile kenn ich allerdings bei gdb genug tricks dass ich mir mit jedem gui debugger wie auf kruecken vorkomm. allerdings ist debugging mit gdb eher nicht unbedingt etwas, das ich einem einsteiger empfehlen wuerde.

noch etwas was mir aufgefallen ist:
im originalposting war erwaehnt, dass er C fuer linux braucht oder so. wenn dem so ist, wuerd ich mich auf jeden fall in makefiles einlesen, damit du ungefaehr eine ahnung hast davon. und dann schaun was fuer programme du erstellen willst und die dafuer uebliche entwicklungsumgebung benutzen. fuer KDE ist das zb kdevelop und du wirst viele postings online finden, die dir dazu hilfestellung geben.

es gibt immer mehr als ein tool um eine aufgabe zu loesen und jedes tool hat staerken und schwaechen. GUIs rein im editor zu programmieren kann eine qual sein. Umgekehrt haben auch grosse IDEs ihre schwaechen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag