Was gibt es für gründe für c

hallo alle,

ich programmiere in vba + viusal basic 6.
meine frage ist aber, was gibt es für gründe und argumente um zum beispiel in c oder c++ zu programmieren.
ich benötige schlagkräfige argument für meine chefin :smile:

also last mal hören…

danke

viele grüße

rasta

hallo alle,

ich programmiere in vba + viusal basic 6.
meine frage ist aber, was gibt es für gründe und argumente um
zum beispiel in c oder c++ zu programmieren.
ich benötige schlagkräfige argument für meine chefin :smile:

C ist (meist) schneller und weiter verbreitet (das ist aber auch schon alles, was mir dazu einfaellt).

Gruesse,
Franz Prilmeier

Hi Rasta,
Wenn ihr komplett in die OO-Welt einsteign wollte, ist C++ empfehlenswerte, da es eine vollständige Objektorientierte Programmiersprache ist. (im Gegensatz zu VB)
Es ist auch schneller und man kann damit „hardwarenaher“ programmieren.
Das waren die Vorteile, nun die Nachteile:
Es ist viel schwerer zu erlernen. Dadurch auch fehleranfälliger.
(die MFC (Microsoft Foundation Classes) sind riesig!!!)
Es gibt keinen Garbage-Kollektor zum aufräumen des Heaps, dadurch können Speicher-Lecks entstehen.

Wenn Du noch konkreter Fragen hast, werde ich Dir diese gerne beantworten.

Gruss, Simon

Hi!

Während C-Programme selbstständig laufen, brauchen VB-Programme die bekannten VB-Laufzeitdateien. Es folgen zwei Nachteile:

  • Die Dateien müssen mit ausgeliefert werden. Sollte das Programm über das Internetvertrieben werden, stören die zusätzlichen (ca.) 1 MB doch sehr.
  • Es ist langsamer.

Beste Grüße
Patrick


Network4Friends
http://www.network4friends.de
Be part of the community!

Hi,

ich programmiere in vba + viusal basic 6.
meine frage ist aber, was gibt es für gründe und argumente um
zum beispiel in c oder c++ zu programmieren.

Vorweg: ich kenne VB nicht.
Die einzigen verbleibenden Anwendungen, bei denen man C-Code verwenden sollte sind extrem (!) geschwindigkeitssensible Probleme und sehr Hardwarenahe Programmierung (z.B. Hardwaretreiber). Das es sehr viel C-Code gibt ist kein Grund noch mehr davon zu produzieren! C-Kenntnisse verbessern daher aber die Berufschancen.
Angeblich ist Java - wenn man es ordentlich programmiert - in den meisten Faellen aehnlich schnell wie C++. Wenn das stimmt (ich selbst programmiere C++ und kann es nicht beurteilen), ist es vermutlich vernuenftiger in Java oder einen anderen echten objektorientierten Sprache zu programmieren (bei vielen Programmierern sieht C+±Code wie C auf Drogen aus. Java erzwingt hingegen ein vernuenftiges Design … naja zumindest, versucht es mehr, den Programmierer dazu zu bewegen).
Der einzige Grund, C++ zu waehlen , waere dann, wenn man bestimmte Bibliotheken benoetigt, die in C++ geschrieben sind. Java erlaubt keine Hardwarenahe Programmierung - in den vielen Faellen zeugt hardwarenahe Programmierung aber auch nur von falschen Prioritaeten oder schlechtem Stil. Java (oder andere echte objektorientierte Sprachen) sind allerdings nur zu bevorzugen, wenn es nicht 10 mal langsamer als C++ ist.
So, wieso ueberhaupt umsatteln …? Ich kenne wie gesagt VB nicht, aber wenn sich damit ALLE Eure Probleme befriedigend loesen lassen, gibt es keinen Grund umzusatteln. Mit C/C++ (und vielen anderen Programmierspachen - VB ist eher ein grafisches Interface zu einer echten Sprache glaube ich) laesst sich schlicht und ergreifend ALLES mit Computern machen, was man will - bis zu den Physikalischen Grenzen und ohne Ressourcen zu verschwenden, wenn man das nicht will. Aber das geht natuerlich nur, wenn man in den Olymp der Hacker eingegangen ist. Und so gut zu werden dauert schon seine Zeit. Das soll heissen, ich bezweifle, dass C/C++ das Potential von Programmierern in einem fuer eine Chefin interessanten Zeitrahmen steigern kann.
Mit C++ koennte es immerhin moeglich sein, die Produktivitaet innerhalb eines halben Jahres zu steigern (wenn gute Vorkenntnisse in Programmierung vorhanden sind). Ich weiss nicht, wie schnell oder langsam Leute mit VB arbeiten. Mir scheint aber, dass ich schneller bin und bessere Ergebnisse erziele - ich habe nur sehr wenig Vergleich und neige dazu mich zu ueberschaetzen :wink: .
Auf jeden Fall wuerde ein Umstieg erstmal zu einem Einbruch in der Produktivitaet fuehren. Und die Produktivitaet ist das einzige, womit Du eine vernuenftige Chefin ueberzeugen kannst, wenn Ihr sonst nicht vor unloesbaren Problemen steht. Mit allergroesster wahrscheinlichkeit kannst Du C vergessen. Das bringt nix, wenn man es nicht unbedingt braucht. Denk mal ueber das nach, was ich ueber Java gesagt habe (abgesehen von der besseren Objektorientierung ist es auch portabel!). Da findest Du evtl. bessere Argumente fuer die Chefin.

Gruss

Thorsten

P.S.:
Ein fuer Programmierer (zumindest fuer mich) sehr angenehmer Aspekt an Programmierung in C/C++ ist, dass man meistens weiss, was man tut. :wink:

Wennst C mit direkt Windows-API verwendest dann stimmt das, aber dabei brichst du dir mit großer Wahrscheinlichkeit alle Finger … :smile: … und sobald du C++/MFC einsetzt brauchst auch MFC-DLLs.

Grüße, Robert

Das mit der Geschwindigkeit stimmt meiner Erfahrung nach, zumindest annähernd.

Und der Empfehlung von Java kann ich mich nur anschliessen. Wenn man sich mal daran gewöhnt hat will man nichts andres mehr haben, auch kein C++. :smile:

Grüße, Robert

Statement: was gibt’s für gründe für c? K E I N E
hallo!

ich entwickle schon einige zeit mit vb und kann sagen, dass es keinen grund gibt, „normale“ andwendungs-software, datenbank-frontends oder com/dcom- und internet-programme wo anders zu entwickeln. ich kann getrost sagen, dass du mit vb auf jedenfall schneller zu einem lauffähigem ergebnis kommst als mit c, c++, c# oder java, wie thorsten meint.
die fehlende objektorientierung kann auch in vb mit klassenmodulen nachempfinden - man muss sich nur im klaren sein, ob man diese überhaupt braucht.

der entscheidende vorteil von vb ist einfach die totale windows-integrität. so einfach mit controls und activex-komponenten umgehen ist einfach nur in vb möglich.

der von ptrick beschriebene nachteil der laufzeitkomponenten stimmt vollkommen - kann wirklich lästig werden: es ist mir schön öfters passiert, das ein setup (package) mehr als 30mb verschlungen hat, da ich neben ado (datenbanksachen) mehrere activeX controls und objekte eingebunden habe. auch die installation am zielclient hat dann immer nicht unbedingt funktioniert. nur: das selbe problem hast du auch bei c++ anwendungen in denen du activeX oder mfc verwendest!

mein fazit also für deine chefin ist aus gründen der bereits erwähnten produktivität bei vb zu bleiben, ausser ihr müsst hardwarenahe programme entwickeln, die auch noch zeitkritisch sind. alles andere ist heutzutage in vb mehr oder weniger gut zu bewältigen!

also kopf hoch, du stehst einem c-, c+±, c#-, java-, oder smalltalk-entwickler in nichts nach!

grüsse, stefan.

hallo rasta

ich programmiere in vba + viusal basic 6.
meine frage ist aber, was gibt es für gründe und argumente um
zum beispiel in c oder c++ zu programmieren.
ich benötige schlagkräfige argument für meine chefin :smile:

  1. Portierbarkeit:
    VB gibt’s nun mal nur für Windows. C(++) gibt es für für praktisch alle Computer/Betriebsysteme und microComputer. Aber es ist auch mit C(++) nicht ganz einfach den Source-Code zu portieren

  2. Hardware/Betribssysteme
    In VB kannst du keine Treiber und dergleichen programmieren und ein Betriebssystem in VB zu schreiben ist unmöglich.

  3. Geschwindigkeit
    Im allgemeinen ist der Code von C(++) schneller als der von VB.

VB ist sehr konfortabel in der Fehlerbehandlung: wenn du nichts machts wird jeder Fehler angezeigt. Bei C(++) erhälst du entweder total unsinnige Resultate (z.B. bei einem Überlauf) oder das Programm oder das ganze Betriebssystem steht still.

Also in C(++) hast du die volle Kontrolle über alles, gleichzeitig aber auch die volle Verantwortung über alles.

MfG Peter(TOO)

Vergiss nicht den endgeilen debugger.

holli

tief im OS…
Hallo Stefan

Ich kann Dir eigenlich in allen Punkten recht geben.

Jedoch gibt es für MS-Windows Programmierer, technische
Gründe C++ zu nehmen:
-Multithreading ist differenzierter lösbar
-Optiemierung des Datenzugriffs (z.b. statt ADO direkt auf OLE-DB als Provider zugreifen.
-Drivers

Allerdings ist der Zeitrahmen, somit auch der Kostenrahmen, in der Wirtschaftsinformatik so gut wie nie gerechtfertigt. Ganz zu schweigen von der Wartung, bzw. Support dieser Programme.
Zweitens muss der Programmierer sehr erfahren sein. Ich habe mir von mehreren Cracks Probleme schildern lassen, welche erst mit der Zeit bemerkt werden.

OO ist ab VB6 kein Thema mehr. Das was ein alltagtaugliches OO-Design beinhalten kann, ist in VB dabei. Es liegt eher am Interesse und am Verständniss als an der Sprache, wie sauber OO implementiert wurde.

Grüsse Peter

Hallo!
Ich wollte nur kurz einhaken und fragen, wie man Java programmieren soll, damit es auch nur annähernd so schnell ist wie C/C++?
Wir benutzen Java in der Firma und ich kann mich mit der Geschwindigkeit (oder besser der Langsamkeit) der Java-Programm absolut nicht anfreunden.
Ich selbst bin kein Java-Entwickler, aber über ein paar Hinweise über die geschwindigkeitseffiziente Java-Entwicklung wäre ich sehr dankbar.

Max

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Rasta :smile:))

VB ist sicherlich in der Windows-Welt eine weit-verbreitete Sprache. Sie eignet sich hervorragend, um größere Module „zusammenzuklicken“. Man kommt daher mit ein paar einfachen Befehlen sehr schnell zu vorzeigbaren Ergebnissen. Genau zu diesem Zweck benutzen wir VB bei uns zum Teil. Ich sage bewußt „benutzen“, denn „programmieren“ kann man das ja nicht nennen. Sobald es an etwas anspruchsvollere oder nicht-standardisierte Probleme geht, stößt VB sofort an seine Grenzen. Daher entwickeln wir bei uns alle Kern-Module in C/C++.

C/C++ ist die Standard-Programmiersprache. Wenn man eine neue Sprache etablieren möchte, dann achtet man heutzutage auf eine starke Anlehnung an C/C++, wie etwa bei Java oder demnächst bei C#. C/C++ gehört zur Grundausbildung für den Lehrberuf Fachinformatiker (Anwendungsentwicklung), VB bieten einige Berufsschulen an, aber dann meistens nur zum „Warmwerden“. Von meinem persönlichen, subjektiven Eindruck her, würde ich VB in eine Ecke mit Cobol und Fortran stellen. Diese Sprachen sind ganz nützlich, wenn es um bestimmte Aufgaben geht, aber richtig universell ist eigentlich nur C/C++.

Microsoft hat das Problem selber erkannt. In Zukunft wird es C# geben, einen plattform-unabhängigen C-Dialekt, der einem ähnliche Annehmlichkeiten wie VB bietet, aber trotzdem die Möglichkeiten und Syntax von C beibehält.

Ein wichtiges Argument ist auch, dass es kein ernstzunehmendes Rechnersystem auf dieser Welt geben dürfte, für das es keinen C-Compiler gibt. Versuch mal, eine Cray T3E, eine Sun Workstation, eine PlayStation, eine X-Box oder nur deinen Dosenöffner unter VB zu programmieren :smile:))

Außerdem ist C die nahezu perfekte Sprache. 1967 begann die Weiter-Entwicklung von B zu C, mit dem einzigen Ziel, das Betriebssystem Unix nicht ganz in Assembler programmieren zu müssen. Um 1970 herum wurden dann die ersten Unix-Versionen ausgeliefert, als Beigabe gab es den von Dennis Ritchie und Brian Kernighan entwickelten C-Compiler gratis dazu. Etwa 30 Jahre später wurde die Sprache C fast ohne Änderungen international standardisiert! Und die Änderungen, die vorgenommen wurden, waren größtenteils Opfer an die Kompatibilität zu C++. Mit anderen Worten, C hat 30 Jahre lang existiert, ohne dass es jemand für nötig hielt, die Sprache zu erweitern oder zu verändern. Ich erinnere mich noch an meine Kindheit. Da lieferte jeder Computer-Hersteller seine eigene Programmiersprache mit aus und nannte sie Basic!

Sogar als die Objektorientierung Einzug hielt, wurde C nicht verändert, sondern nur erweitert! C/C++ hat sich zum Standard entwickelt, weil die Programmierer diese Sprache(n) benutzt haben, und nicht, weil eine Monopolist gesagt hat, ihr müsst in C/C++ programmieren!

C/C++ ist schnell, so schnell, dass z.B. Computerspiele mit ihr programmiert werden können. C/C++ ist klein, in C gibt es z.B. weniger als 30 Befehlsworte! C ist extrem logisch und daher sehr einfach erlernbar, bei C++ ist das allerdings etwas schwerer.

Also, meine Kinder werden 3 Sprachen lernen: Deutsch, Englisch und C/C++ :smile:)) Und Vergessen wir nicht, was BASIC bedeutet: " Beginners All purpose Symbolic Instruction Code", es handelt sich also um eine Sprache für Anfänger :smile:))

cu Stefan.

huuuiii,

nachdem sich diese diskussion nur langsam entfaltete bin ich doch happy, das sich doch noch einiges getan hat. vielen dank für eure meinungen.
werde trotzdem versuchen, balde einen c+±kurs herauszukizeln :smile:

also nochmals danke

und viele grüße

RASTA

Ich wollte nur kurz einhaken und fragen, wie man Java
programmieren soll, damit es auch nur annähernd so schnell ist
wie C/C++?

Meine Erfahrung beschränkt sich auf Anwendungen ohne Oberfläche, mit Swing hab ich da keine Erfahrung, glaub nicht, dass man eine Swing-Anwendung so schnell hinkriegt wie eine MFC-Anwendung. Da müßte man wahrscheinlich die Oberflächen-Klassen von MS die beim VJ++ dabei sind verwenden, die werden zwar schneller sein, dafür rennts aber nur unter Windows.

Bei oberflächenlosen Anwendungen gibts nicht wirklich was auf das man achten müßte (auf jeden Fall nichts, was nicht bei andren Programmiersprachen auch Zeit kosten würde :o).

Grüße, Robert

Kommentar

  1. Portierbarkeit:
    VB gibt’s nun mal nur für Windows. C(++) gibt es für für
    praktisch alle Computer/Betriebsysteme und microComputer. Aber
    es ist auch mit C(++) nicht ganz einfach den Source-Code zu
    portieren

IMHO: Die Portierbarkeit (im Sinne Crossplattform Programming) ist nahezu unmöglich und wird in der Praxis für grössere oder kommerzielle Projekte nicht gemacht.

  1. Geschwindigkeit
    Im allgemeinen ist der Code von C(++) schneller als der von
    VB.

Das wird viel erzählt, konkret sah ich es nur bei echtem C und Hardwarezugriffen. In der heutigen Zeit sind für moderne Applikation ist das Netzwerk und die biologische Steuereinheit das „Bottleneck“… Natürlich leuchtet mir das Argument ein, dass
wenn ich mit einer Programmiersprache direkt einen API - Call ausführe, statt über eine „Middleware“ wie Designer / Wizzards etc. zu gehen, ich immer etwas schneller bin…

VB ist sehr konfortabel in der Fehlerbehandlung: wenn du
nichts machts wird jeder Fehler angezeigt. Bei C(++) erhälst
du entweder total unsinnige Resultate (z.B. bei einem
Überlauf) oder das Programm oder das ganze Betriebssystem
steht still.

Dieses hat für mich weniger mit C++ zu tun. Vielmehr ist es diese API Programmierung (also unabhängig von der Sprache), welche das „Problem“ ist. Wie wird das wohl mit C# ???

Freundliche Grüsse
Peter :wink:

Hi,

Bei oberflächenlosen Anwendungen gibts nicht wirklich was auf
das man achten müßte (auf jeden Fall nichts, was nicht bei
andren Programmiersprachen auch Zeit kosten würde :o).

Ich kenne Java wie gesagt nicht richtig, aber so weit ich weiss, ist es nicht moeglich irgendwie an Adressen zu kommen. Das heisst, dass Funktionsargumente immer als Value uebergeben werden muessen. Daher sollte man darauf achten, seine Hierarchien so auszulegen, dass es nicht noetig ist, grosse Objekte an Funktionen zu uebergeben (bei C++ kann man einfach als const reference uebergen).
Das ist nur eine Sache, die ich ueber Java und Geschwindigkeit gehoert habe. Ich vermute, dass das Fehlen von Adressen noch an vielen Stellen einfluss auf ein effizientes Design hat …

Gruss

Thorsten

Ich kenne Java wie gesagt nicht richtig, aber so weit ich
weiss, ist es nicht moeglich irgendwie an Adressen zu kommen.
Das heisst, dass Funktionsargumente immer als Value uebergeben
werden muessen.

Java arbeitet immer mit Referenzen, d. h. du kannst praktisch nur Adressen übergeben, wenn du willst, dass die Funktion mit einer Kopie arbeitet mußt du die selber erstellen.

Grüße, Robert

Hi,

Java arbeitet immer mit Referenzen, d. h. du kannst praktisch
nur Adressen übergeben, wenn du willst, dass die Funktion mit
einer Kopie arbeitet mußt du die selber erstellen.

Ich seh schon, ich muss bald mal Java lernen. Das wird besser, je mehr ich davon hoere :smile:

Gruss

Thorsten

Es gibt aber auch modernere Sprachen als c/c++
… für deine Kinder hoffentlich!

so long

Rollsss ss s