Forum: PC-Programmierung Java oder C++


von Tim (Gast)


Lesenswert?

Hi,

ich verwende auch sehr viele verschiede Sprachen.

Für die Wahl einer Sprache sollte folgendes Berücksichtigt werden

-Integration in vorhandene Umgebung
-Benötigte Performance
-Bedarf der Wartbarkeit
etc. etc. etc....


Ich stelle mir häufig die Fragen:

Mit welcher Sprache kann ich mein Problem am effizientesten lösen?
Wieveil Ausführungsgeschwindigkeit benötige ich wirklich?
Wie viel Zeit für die Implementierung habe ich bzw wieviel Ressourcen 
möchte ich dafür einsetzen.

Bei meinem aktuellen Projekt arbeiten viele verschiedene Sprachen 
zusammen und es funktioniert hervorragend.

verwendet werden
c#,
c++,
c,
Tcl,
c++/cli,
V+ (von Adept)
und mein absoluter Favorit:
Matlab

Matlab verwende ich sehr gerne, weil man schrittweise Befehle testen 
kann und die Entwicklungsgeschwindigkeit absolut unschlagbar ist.
An viele Stellen ist Ausführungsgeschwindigkeit doch auch nur 
Hokuspokus!

Sind wir mal ehrlich... Alles was es einfacher macht oder die 
Entwicklung effizienter gestaltet, ohne die Qualität der Software zu 
beeinträchtigen ist erlaubt!

Auch Absolut stark finde ich Processing und grafische 
Programmiersprachen wie vvvv. Nur weil es für Anfänger gemacht ist heißt 
es noch lange nicht, dass Profis deshalb nicht effizienter damit 
arbeiten können!

Die .NET Umgebung ist übrigends mit das Beste was ich je gesehen hab. 
Das Zusammenspiel der verschiedenen Sprachen, die allesamt den gleichen 
Bytecode schreiben ist absolut genial. Mit C++/Cli kommt man auch an 
Programmteile die in unmanaged C oder C++ arbeiten und die Entwicklung 
macht einfach Spaß damit!

Viele Grüße,

Tim

von High Performer (Gast)


Lesenswert?

>aber jedes größere java programm das ich bisher getestet habe läuft
>irgendwie schwammig :/
>eclipse, jdownloader...

Was genau läuft in eclipse "schwammig", außer des Starts? Du bist Dir 
schon klar, welchen Umfang eine normale eclipse-Umgebung hat? Bei mir 
läuft eclipse übrigens nicht "schwammig".

Welche "größeren" C++ - Programme laufen nicht "schwammig"?

>ka warum das so ist aber ich mag es nicht.

Weil man es Dir jahrelang so eingeredet hat? Schade, dass Du Dir diesen 
Weg verbaust. Darf ich mal fragen, in welchem Umgebungen Du Software 
entwickelst?

Übrigens ist Deine Aussage recht "schwammig"... ;-)

von chris (Gast)


Lesenswert?

wenn man java nicht richtig programmieren kann, ist es in der tat 
langsamer als C.
aber wenn man java richtig programmieren kann, dann ist es schneller

von Klaus W. (mfgkw)


Lesenswert?

klar, und im Winter ist es kälter als draußen.

Deshalb nimmt man Java auch nicht gern auf einem AVR.
Sonst wäre der so schnell, daß man nicht mehr nachkommt.

von Sam .. (sam1994)


Lesenswert?

Es kann sogar gut sein, dass Spiele z.b. bald in c# programmiert werden 
(Auf DirectX zugreifen kann man da genau so gut wie in c++). Die neueren 
Spiele brauchen immer weniger Cpu - Leistung und immer mehr GraKa 
Leistung, da ist es nicht schlimm, wenn ein paar prozent leistung wegen 
dem Interpreter flöten gehen.

von High Performer (Gast)


Lesenswert?

>Deshalb nimmt man Java auch nicht gern auf einem AVR.

Vermutlich ist das Problem, die megabytebroße Runtime in einem Tiny 
unterzubringen ;-)

Im Ernst: Zumindest aktuelle JREs machen aus dem Code nach dem Laden 
reinen optimierten Binärcode. Interpretiert wird nur zeitweise direkt 
nach dem Start. Dann werden aber mittels HotSpot alle relevanten 
Programmteile optimiert in Binärcode übersetzt. Von da ab ist nichts 
mehr mit "Interpreter".

Es gibt keinen Grund, aus vermeintlichen Laufzeitgründen auf Java zu 
verzichten. Allerdings ist Java nicht gerade dafür bekannt, für 
hardwarenahe Programme prädestiniert zu sein.

von High Performer (Gast)


Lesenswert?

>verwendet werden
>c#,
>c++,
>c,
>Tcl,
>c++/cli,
>V+ (von Adept)
>und mein absoluter Favorit:
>Matlab

In einem Projekt? Krank! Es sei den, bei Deinem Projekt handelt es 
sich um ein Multimillionen-LOC-Projekt. Da kann man für einfach 
Hilfstools schonmal Sriptsprachen verwenden. Jedenfalls möchte ich Dein 
Projekt nicht warten müssen ;-)

Ich sehe jedenfalls keinen brauchbaren Grund, in einem einzigen Projekt 
C, C++ und C# gleichzeitig zu verwenden.

von Zwie B. (zwieblum)


Lesenswert?

@High Performer:  " ..Laufzeitgründen .." Kommt drauf an, ob man die 
Wege zum Patentanwalt auch zur Laufzeit dazu zählt oder nicht.

von High Performer (Gast)


Lesenswert?

>" ..Laufzeitgründen .." Kommt drauf an, ob man die
>Wege zum Patentanwalt auch zur Laufzeit dazu zählt oder nicht.

??? (habe keinen Plan, was Du mir sagen willst) ;-)

von High Performer (Gast)


Lesenswert?

>Genausowenig
>ist es möglich, mit einer der genannten "Sprachen" ein sinnvolles und
>brauchbares Programm zu erzeugen, dessen Komplexität über die Ausgabe
>von "Hallo Welt" hinausgeht...

Begründung für die Aussage, weder in C noch in Java könnten Programme 
jenseits der Hallo-Welt-Komplexität geschrieben werden? Mit welchen 
Sprachen können Deiner Meinung nach solche Programme sinnvoll erstellt 
werden, und warum?

Ich hoffe nicht, dass es in Deinem Fall am Softwareentwickler und nicht 
an der Sprache liegt ;-) Im Ernst, wie viele LOC hatte Dein bisher 
größtes Projekt? Welche Sprache?

von High Performer (Gast)


Lesenswert?

>C++ ist böse!
>Java ist gut!

Mir gefallen beide außerordentlich gut! ;-) Mit dem GC habe ich mich am 
Anfang (ich kam aus der C++ - Fraktion) in Java etwas bevormundet 
gefühlt, auch mit der Tatsache, dass Destruktoren halt "irgendwann mal" 
aufgerufen werden. Inzwischen ist mir Java genau so angenehm wie C++.

von Sam .. (sam1994)


Lesenswert?

An c++ gefällt mir nicht, dass ein kleiner Fehler das ganze Programm 
versauen kann. Bei mir war das so. Ich programmierte schon länger ein 
Spiel. Irgendwann mal stürzte mir das Spiel dauernd ab. Ich hatte 
irgendwo in dem riesigen Code ein falscher Ramzugriff gemacht. Ich habe 
es probiert es zu finden, aber das war vergenlich. Als ich das Spiel 
dann in c# mit XNA aufsetzte hatte ich keine Probleme, die 
Geschwindigkeit reichte aber locker aus.

von Zwie B. (zwieblum)


Lesenswert?

High Performer schrieb:
>>" ..Laufzeitgründen .." Kommt drauf an, ob man die
>>Wege zum Patentanwalt auch zur Laufzeit dazu zählt oder nicht.
>
> ??? (habe keinen Plan, was Du mir sagen willst) ;-)

Noch nicht gelesen? Oracle vs. Google im Patentstreit um Java :-D
http://www.heise.de/newsticker/meldung/Oracle-klagt-gegen-Google-wegen-Patent-und-Urheberrechtsverletzung-1058227.html
http://www.observer.com/2010/daily-transom/oracle-vs-google-its

und besonders schön zu lesen:
http://www.groklaw.net/article.php?story=20100813112425821

von Tobi (Gast)


Lesenswert?

@sam1994,

das meinst du doch jetzt nicht im ernst, oder ?
Wenn das tatsächlich ernst gemeint sein sollte spricht das nicht gerade 
für einen brauchbaren Programmierstil.
Und das dann der Programmiersprache anzulasten ist echt ein Witz.

Gruss,
Tobi

von Sam .. (sam1994)


Lesenswert?

Doch, meine ich so. Ich finde, dass man in c# solche Sachen fast nicht 
passieren können (ich programmiere c# ehrlich gesagt auch besser als c++ 
- vielleicht liegt es daran). Und einen Fehler kann in c++ irgendwo sein 
und erst später Sympthome zeigen.

Ich will das übrigens nicht der ProgSprache anlasten, sondern eher 
weitere Schwierigkeitsfaktor in c++ nenne.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Programmierstil hin oder her, Programmabsturz ist nun mal ein häufiges 
Fehlersymptom bei C(++)-Software. Es ist schon etwas wert statt der 
Information "Programm stürzt ab"  eine Fehlermeldung wie "Array xyz 
läuft über" vom Programm bzw. vom Kunden der das Programm bei sich 
ausführt zu bekommen.

von Klaus W. (mfgkw)


Lesenswert?

Beides darf nicht beim Kunden auftauchen.

von Sam .. (sam1994)


Lesenswert?

Klaus Wachtler schrieb:
> Beides darf nicht beim Kunden auftauchen.

Klar, aber wenn dir ein Programm sagt, hier tritt eine Ausnahme auf, 
oder sich verabschiedet mit einem Heap Fehler, wo kannst du dann besser 
debuggen?

von Klaus W. (mfgkw)


Lesenswert?

Wenn es bei mir war, dann sowieso mit dem Debugger.
Wenn beim Kunden, dann mit dem Coredump - falls vorhanden.
Gibt es sowas bei Java und C#?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Klaus Wachtler schrieb:
> Beides darf nicht beim Kunden auftauchen.

Passieren sollte vieles nicht...

> Gibt es sowas bei Java und C#?

Keine Ahnung, ich hatte noch nie den Bedarf. In der Regel lassen sich 
alle Fehlerursachen mithilfe des Backtrace sehr einfach aufspüren. Bei 
C(++) hat man das Problem dass ein Fehler sich oft erst dann äußert wenn 
schon viel früher irgend etwas schief gegangen ist, erst das macht die 
Problemsuche so schwierig. Ich habe schon viele Stunden mit valgrind und 
gdb verschwendet um Fehler (in fremdem Code) zu finden die mit einer 
rechtzeitigen Exception und Backtrace sofort offensichtlich gewesen 
wären.

von Sam .. (sam1994)


Lesenswert?

Bei c#, wird bei jeder Ausnahme, wenn nicht anders eingestellt, sofort 
das Programm unterbrochen. Und zu Ausnahmen zählt halt auch eine 
OutOfRange beim Array. Und die gefährlich c++ Operationen sind in c# 
(wenn es sie gibt) ungefährlich.

Noch was: In c# sind (bei mir) laufzeitfehler wie syntaxfehler, sie 
werden beim ausführen meistens sofort entdeckt, die logik fehler bleiben 
einem trotzdem, leider nicht erspart.

von sys. (Gast)


Lesenswert?

Kinder, ihr seid ja sooooo süß. So schön wie ihr euch hier mobbt.

Also erstens:
Ob man jetzt C, C++ oder Java schreibt ist in Erster Linie mal egal. 
Wichtig ist, dass derjenige der den Rechner programmiert Ahnung von dem 
hat was er macht. Für C, C++ und Java gilt: Kennsde eine kennsde alle.

Zweitens:
Jede der Sprachen (abgesehen von C) hat Vor- und Nachteile:
Okay C hat nur Nachteile, da es ursprünglich auch als Scherz gedacht 
war.

C++ ist eine Programmiersprache die fullcompiled wird. Dadurch ist sie, 
wenn man keinen Mist baut extrem schnell.
Ihr Nachtteil: Sie ist Oberflächenabhängig, läuft also compiliert nur 
auf einem Betriebssystem (außer man nimmt Wine, aber das emuliert nur 
ein Windoof.)
Gut es gibt noch das Phänomen Visual C++. Das ganze ist dann 
objektorientiert, also für die meisten unter euch Quatsch. Nachteil:
Bringt die Nachteile von C++ und Java zusammen:
Langsam, Platformabhängig und man benötigt immer eine Runtime Umgebung.

Java ist eine semicompiled Sprache, das heißt der Quelltext wird nicht 
komplett in Maschinencode übersetzt. Um ihn zu interpretieren braucht 
das entsprechende OS eine Runtime. (z.B. SUN)
Dadurch wird die Sprache langsam und frisst Ressourcen zum Frühstück.

Zu VB:
VB ist der allerletzte Quatsch. Selbst mein GTR kann Basic schneller und 
besser interpretieren als VB. Basic ist eine nicht OS unabhängige 
semicompiled Sprache und damit MURKS!!!!

Somit noch einen schönen Abend

von Klaus W. (mfgkw)


Lesenswert?

Gut zu wissen, daß normales C++ nicht objektorientiert ist.

von ... (Gast)


Lesenswert?

sys. (Gast) schrieb:

> Also erstens:
> Für C, C++ und Java gilt: Kennsde eine kennsde alle.

Dann muss also einer der in C programmiert auch automatisch JAVA können?

Kopfschüttel!

> Zweitens:
> Jede der Sprachen (abgesehen von C) hat Vor- und Nachteile:
> Okay C hat nur Nachteile, da es ursprünglich auch als Scherz gedacht
war.

Soso C ist also eine Scherz-Programmiersprache???

Kopfschüttel!

> C++ ist eine Programmiersprache die fullcompiled wird.

"fullcompiled"??? Ist das jetzt die neuste Kiddy-lernt-compeilen-Sprache 
oder wie??

> Dadurch ist sie,
> wenn man keinen Mist baut extrem schnell.

Und wenn mann mal "Mist gebaut" hat? Dann wird sie plötzlich "doof 
langsam"??

Hahaha

> Ihr Nachtteil: Sie ist Oberflächenabhängig,

C++ ist "oberflächenobhängig" Wo wird denn so ein Scheiss als Wissen 
vermittelt?

> läuft also compiliert nur
> auf einem Betriebssystem

Und wenn mans auf einem anderen OS compiliert? Läuft's dann dort etwa 
nicht??

Kopfschüttel!

> (außer man nimmt Wine, aber das emuliert nur
> ein Windoof.)

Was hat denn Wine mit dem Akt des compilierens zu tun??

Kopfschüttel!

> Gut es gibt noch das Phänomen Visual C++. Das ganze ist dann
> objektorientiert,

Aha! Also mit Visual C++ ist ES dann plötzlich objektorientiert? Und 
wenn ich mit meinem Visual C++ nur einfachen C-Code erstelle? Dieser 
Code müsste nach deiner Aussage dann auch "objektorientiert" sein??

Kopfschüttel!

> also für die meisten unter euch Quatsch.

Aha!

> Nachteil:
> Bringt die Nachteile von C++ und Java zusammen:
> Langsam, Platformabhängig und man benötigt immer eine Runtime Umgebung.

Seit wann benötigt denn eine unter Visual C++ compilierte Exe zwingend 
eine Laufzeitumgebung? Ich dache das ist "fullcompiled"??

Kopfschüttel!

> Zu VB:
> VB ist der allerletzte Quatsch. Selbst mein GTR kann Basic schneller und
> besser interpretieren als VB. Basic ist eine nicht OS unabhängige
> semicompiled Sprache und damit MURKS!!!!

So? Also etwas das "semicompiled" ist, ist also automatisch Murks? Weil 
es dir nicht schnell genug geht? Dann hol' dir doch einen 
leistungsfähigeren Prozessor (am besten 6-Kern). Dann geht das Semi 
Compilat ab wie Schmitts Katze, das garatiere ich dir! :)

> Somit noch einen schönen Abend

Ebenfalls

von Franz (Gast)


Lesenswert?

Wunderbar ;-)

von geek (Gast)


Lesenswert?

Der sys. hat eigentlich gar nicht so unrecht:
Man kann in C++ unnötige Schleifen einbauen, sodass das Teil langsamer 
wird.


... schrieb:
> Aha! Also mit Visual C++ ist ES dann plötzlich objektorientiert? Und
> wenn ich mit meinem Visual C++ nur einfachen C-Code erstelle? Dieser
> Code müsste nach deiner Aussage dann auch "objektorientiert" sein??
>
> Kopfschüttel!

Ich denke mal, dass er das nicht auf VC++ allgemein bezieht, sondern auf 
.NET Framework.
Semicompilierte Programme laufen langsamer und .NET Framework ist eine 
RE.
Also ist .Net semicompiled da hat er soweit recht.

Ich denke mal, dass er das nicht auf VC++ allgemein bezieht, sondern auf 
.
VB ist nicht compiliert es wird einfach nur interpretiert. Man kann es 
dazu noch in eine Ausführbare Datei (also für mich als Windows Liebhaber 
EXE) verpacken.

Ein Halbcompiliertes Programm läuft tatsächlich ressourcenfressender als 
ein vollständig in Maschinensprache umgesetztes Programm.


Meine Meinung hierzu ist, dass Java eine gute Möglichkeit mit awt eine 
Systemunabhängigkeit zu bekommen. Natürlich läuft Java mit sehr viel 
Ressourcenverbrauch im Vergleich zu C oder C++ in nativer Form.

... schrieb:
> So? Also etwas das "semicompiled" ist, ist also automatisch Murks? Weil
> es dir nicht schnell genug geht? Dann hol' dir doch einen
> leistungsfähigeren Prozessor (am besten 6-Kern). Dann geht das Semi
> Compilat ab wie Schmitts Katze, das garatiere ich dir! :)

Das kann sein, nur es wäre schön wenn deine Programme auch auf älteren 
PCs laufen. Naja, ist ja auch deine Sache.

... schrieb:
> C++ ist "oberflächenobhängig" Wo wird denn so ein Scheiss als Wissen
> vermittelt?
>
>> läuft also compiliert nur
>> auf einem Betriebssystem
>
> Und wenn mans auf einem anderen OS compiliert? Läuft's dann dort etwa
> nicht??

Kommt drauf an, es gibt in C++ viele Sachverhalte die unter 
verschiedenen Betriebssystemen unterschiedlich ausgelegt werden müssen 
(z.B. Keyevents).
Compiliertes C++ ist auf verschiedenen OS nicht ausführbar: siehe Linux 
unter Windows.

Zuletzt noch ein Wort zu C:
Hier ist sys. auf einen Scherz reingefallen, denn C ist eine in 
mühevollster Kleinarbeit entwickelte Programmiersprache.
C++ ist in vielen Fällen empfehlenswert, weil es die Weiterentwicklung 
von C ist, aber manchmals kommt man um C kaum herum.

Soweit hierzu,
schöne Grüße an ... sys.

von Klaus W. (mfgkw)


Lesenswert?

geek schrieb:
> Zuletzt noch ein Wort zu C:
> Hier ist sys. auf einen Scherz reingefallen

Oder ... hat den Witz nicht gekannt/verstanden.

von Arc N. (arc)


Lesenswert?

geek schrieb:
> Ich denke mal, dass er das nicht auf VC++ allgemein bezieht, sondern auf
> .NET Framework.
> Semicompilierte Programme laufen langsamer und .NET Framework ist eine
> RE.
> Also ist .Net semicompiled da hat er soweit recht.

Kompilierung ist der Vorgang einen Quelltext mithilfe eines Compiler in 
etwas anderes zu übersetzen. Ob das direkt in Maschinensprache übersetzt 
wird oder nicht, ist irrelevant. Bspw. erzeugen so gut wie alle Compiler 
erstmal eine (interne) Übersetzung, die dann vom Backend in 
Maschinensprache übersetzt wird. Bei Java, .NET (auch VB) wird dieser 
letzte Schritt JIT gemacht und nicht AOT (.NET kennt bspw. letzteres in 
Form von ngen)


> Ich denke mal, dass er das nicht auf VC++ allgemein bezieht, sondern auf
> .
> VB ist nicht compiliert es wird einfach nur interpretiert. Man kann es
> dazu noch in eine Ausführbare Datei (also für mich als Windows Liebhaber
> EXE) verpacken.

VB wird compiliert.

>
> Ein Halbcompiliertes Programm läuft tatsächlich ressourcenfressender als
> ein vollständig in Maschinensprache umgesetztes Programm.

Das hängt stark davon ab, wer und was da programmiert wurde.
http://www.drdobbs.com/184401976

von High Performer (Gast)


Lesenswert?

>Ob man jetzt C, C++ oder Java schreibt ist in Erster Linie mal egal.

ACK.

>Wichtig ist, dass derjenige der den Rechner programmiert Ahnung von dem
>hat was er macht. Für C, C++ und Java gilt: Kennsde eine kennsde alle.

ACK!

>Okay C hat nur Nachteile, da es ursprünglich auch als Scherz gedacht
>war.

Unfug. Außerdem möchtest Du einen Mikrocontroller mit wenig Speicher 
nicht mit C++ torpedieren. Ich finde C nett, war auch meine erste 
"richtige" Sprache.

>C++ ist eine Programmiersprache die fullcompiled wird. Dadurch ist sie,
>wenn man keinen Mist baut extrem schnell.

Eine Sprache kann nicht schnell sein, Höchstens die in dieser Sprache 
erstellten Programme.

>Gut es gibt noch das Phänomen Visual C++. Das ganze ist dann
>objektorientiert, also für die meisten unter euch Quatsch.

Häh?

>Java...
>Dadurch wird die Sprache langsam und frisst Ressourcen zum Frühstück.

Unfug. Alle aktuellen Laufzeitumgebungen übersetzen den Bytecode in 
optimierten Maschinencode, so dass Programme sogar ab und zu schneller 
laufen als ein natives (C++)Pedant.

>Somit noch einen schönen Abend

dito

von minimalist (Gast)


Lesenswert?

1. Sprache ist egal, beherrschen und mögen muß man sie. Zumeist ist eine
   eingeschränkte Auswahl vom Projekt vorgegeben. Gut ist es wenn
   es dafür Programmierer am Markt gibt die diese Sprache können. z.B.
   sind kaum mehr Smalltalker zu finden.

2. Gehirn einschalten: zu lösendes Problem verstehen, einfache Lösung
   suchen und umsetzen. Bei der Umsetzung wird das Problem meist klarer
   und es läßt sich ein einfacherer Lösungsweg reimplementieren. 
Vieleicht
   muß diese Iteration mehrmals durchlaufen werden.
   Man kann wegen Zeitdruck rasch aufgeben und irgendeine Lösung lassen,
   dann wird man aber nicht besser werden. Je besser man wird um so
   schneller wird man in Zukunft einfachere und kleinere Programme
   schreiben können. Erfahrung sammeln dauert lange.

3. Die einfachere Lösung ist die bessere Lösung.

Ich programmiere seit ca. 30 Jahren. In ähnlichem Umfang mit C, C++,
Java, Smalltalk, Lisp, Forth etc. Für Banken, Versicherungen, Industrie,
alles mögliche.

Meine C Programme sind extrem klein und sehr flink. GarbageCollectoren 
sowie
malloc/free bauche ich seit Jahren nicht mehr, kaum Fehler - alles 
andere
viel zu kompliziert. Java und C++ können viel zu viel, ist unnötig.

XML-Parser:   100 Zeilen Code
HTTP-Server:  300 Zeilen Code
Database/mmap: 50 Zeilen Code

Größere WEB-Anwendung mit knapp 100 Tabellen: 10.000 Zeile C-Code.
Eigentlich ist auch C (die Syntax) zu kompliziert. C hat viele
Einschränkungen, die sind gut für Leute die gerne ohne oder mit wenig
Denkarbeit Lösungen erhalten wollen und dabei vor möglichen Fehler
vor sich selbst zu schützen sind. Das ist Einstellungssache und
muß jeder für sich entscheiden. Mir macht es Spaß Programme
zu schreiben die einfach und direkt sind und ihre Aufgabe zuverlässig
lösen.

Es gibt immer noch viel Potential die Programme noch
kleiner (weniger Wartung, weniger Dokumentation, weniger Bugs)
zu machen, ich lerne immer noch und es gibt viele die besser
sind als ich.

in diesem Sinne wünsche ich ein
heftiges weiter Diskutieren

Gruß

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

minimalist schrieb:
> 3. Die einfachere Lösung ist die bessere Lösung.

Aber sowas von FullACK!

> Meine C Programme sind extrem klein und sehr flink. GarbageCollectoren
> sowie
> malloc/free bauche ich seit Jahren nicht mehr, kaum Fehler - alles
> andere
> viel zu kompliziert. Java und C++ können viel zu viel, ist unnötig.

Ohne malloc/free? Ähm, wie das denn? Ich kann ja auf so einiges 
verzichten aber malloc/new/free/delete gehört sicher nicht dazu? Du 
schreibst größere Softwaresysteme ohne dynamische Speicheranforderung?

> XML-Parser:   100 Zeilen Code

So richtig benutzbar? Zeilenlänge im sinnvollen Bereich? Zeig mal. Sowas 
such ich schon lange. Alles was ich bisher so gefunden habe liegt 
mindestens einen Faktor 20-50 darüber.

> HTTP-Server:  300 Zeilen Code

Glaub ich. HTTP ist ja auch nicht weiter wild.

> Größere WEB-Anwendung mit knapp 100 Tabellen: 10.000 Zeile C-Code.
> Eigentlich ist auch C (die Syntax) zu kompliziert. C hat viele
> Einschränkungen, die sind gut für Leute die gerne ohne oder mit wenig
> Denkarbeit Lösungen erhalten wollen und dabei vor möglichen Fehler
> vor sich selbst zu schützen sind. Das ist Einstellungssache und
> muß jeder für sich entscheiden. Mir macht es Spaß Programme
> zu schreiben die einfach und direkt sind und ihre Aufgabe zuverlässig
> lösen.

Einschränkungen? C? Welche denn. Mir fällt auf Anhieb keine (in größerem 
Umfang verwendete) Programmiersprache ein (die nicht Assembler heißt) in 
der man mehr "Schweinereien" machen kann als in C.

> in diesem Sinne wünsche ich ein
> heftiges weiter Diskutieren

DITO. Schöner Fred.

Matthias

von ohneinnichtdasschonwieder (Gast)


Lesenswert?

warum stösst man eigentlich in jedem Forum früher oder später auf einen 
total emotionalen Glaubenskrieg, der meist die initiale Fragestellung 
komplett ignoriert und man stattdessen erklärt bekommt, warum ein VW 
besser ist als ein Opel, eine Canon besser als eine Nikon oder C++ 
besser als Java...?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

minimalist schrieb:
> XML-Parser:   100 Zeilen Code

Wirkliches XML? Oder <tag>value</tag>-Parser?

> Größere WEB-Anwendung mit knapp 100 Tabellen: 10.000 Zeile C-Code.

Da würde ich gerne mal einen Ausschnitt sehen.

von minimalist (Gast)


Angehängte Dateien:

Lesenswert?

XML File kann ich keines dranhängen, das sind alles Kundendaten.
Aber ich denke durch das xml_sample sieht man schon wie es
funktioniert. Ist doch total easy, oder ?


allerdings ist diese Version noch mit einem malloc/free Paar.
wie unschön - sorry.

Gruß
Andi

von minimalist (Gast)


Lesenswert?

Μαtthias W. schrieb:
>> Meine C Programme sind extrem klein und sehr flink. GarbageCollectoren
>> sowie
>> malloc/free bauche ich seit Jahren nicht mehr, kaum Fehler - alles
>> andere
>> viel zu kompliziert. Java und C++ können viel zu viel, ist unnötig.
>
> Ohne malloc/free? Ähm, wie das denn? Ich kann ja auf so einiges
> verzichten aber malloc/new/free/delete gehört sicher nicht dazu? Du
> schreibst größere Softwaresysteme ohne dynamische Speicheranforderung?

okay, ich habe geflunkert :-) hin und wieder brauche ich malloc,
aber nur um einen Speicherbereich fixer Größe der nicht wieder
frei gegeben wird anzufordern.

z.B. um die Ergebnismenge eines DB-Querys als Stack abzulegen.
Dieser Stack kann nur Pointer halten. 0-Pointer Kennzeichnet Anfang
(ist praktischer als Ende).

1. push(0) ... Anfangs-Makrierung am Stack
2. while(e=next_record()) push(e);
3. sort()/unique() ... was immer
4. while(e=drop()) printf("Name: %s\n", e->name);// Stack Abbau

wenn next_record() einen Subslect braucht macht er
auch einfach einen push(0); push-records(); drop() bis
inklusive dem 0-Pointer. Muß nur dafür sorgen daß das
was drauf kommt auch wieder weg genommen wird.

... viele weitere Mechanismen,

>
>> XML-Parser:   100 Zeilen Code
>
> So richtig benutzbar? Zeilenlänge im sinnvollen Bereich? Zeig mal. Sowas
> such ich schon lange. Alles was ich bisher so gefunden habe liegt
> mindestens einen Faktor 20-50 darüber.

ich hab mal was im vorigen Eintrag abgelegt. Ist nicht
besonders schön, hat ein malloc/free Paar, wäre besser
als Stack gereglt.


>> Eigentlich ist auch C (die Syntax) zu kompliziert. C hat viele
>> Einschränkungen, die sind gut für Leute die gerne ohne oder mit wenig
>> Denkarbeit Lösungen erhalten wollen und dabei vor möglichen Fehler
>> vor sich selbst zu schützen sind. Das ist Einstellungssache und
>> muß jeder für sich entscheiden. Mir macht es Spaß Programme
>> zu schreiben die einfach und direkt sind und ihre Aufgabe zuverlässig
>> lösen.
>
> Einschränkungen? C? Welche denn. Mir fällt auf Anhieb keine (in größerem
> Umfang verwendete) Programmiersprache ein (die nicht Assembler heißt) in
> der man mehr "Schweinereien" machen kann als in C.

1. Jeder Funktionsaufruf ist ein call. Wenn ich tail-end Rekursion
haben will kann ich beten daß der Compiler das auch macht. Ich kann
keinen goto funktion() machen.
z.B.
file_t *open_file(int id) {
   if(!xopen(id)) return open_file(id+1); // tail - end recursion
   ...
}

2. Coroutinen
void inside_of_coroutine(void) {
   // an dieser Stelle liegt am Stack die Rücksprungadresse
   // zum Aufrufe. Wenn ich die hätte könnte ich ....
   (*ip_vom_stack)();
}

void use_of_coroutine(void) {
   inside_of_coroutine();
   // dieser Code würde von inside_of_coroutine aufgerufen werden
   // können. z.B. als Iterator über Widgethierarchie.
}

Generell kann ich mit dem sehr wichtigen Stack sehr wenig
machen. Grad mal die varargs, aber das ist lächerlich.
Ich habe keinen vernünftigen goto *anywhere Mechanismus (gcc hat
eine nette Lösung) Damit lassen sich gewisse Dinge
eben nicht machen. Und dann muß man doch wieder tricksen,
wenn man sowas mal braucht.

Wenn ich es mir recht überlege so ist der Stack der letzte
geschützt Bereich in C. Ich kann nicht frei darüber
verfügen und ihn nicht so recht manipulieren.

Klar kann man so Zeugs immer 'irgendwie' lösen, aber es ist
dann halt weder elegant noch einfach (z.B. via longjmp).

... ich habe noch eine Menge weiterer Wünsche.
Aber die Welt ist nicht perfekt :-)

Grüße
Andi

von minimalist (Gast)


Lesenswert?

Μαtthias W. schrieb:
> Einschränkungen? C? Welche denn. Mir fällt auf Anhieb keine (in größerem
> Umfang verwendete) Programmiersprache ein (die nicht Assembler heißt) in
> der man mehr "Schweinereien" machen kann als in C.

Forth

von minimalist (Gast)


Lesenswert?

ohneinnichtdasschonwieder schrieb:
> warum stösst man eigentlich in jedem Forum früher oder später auf einen
> total emotionalen Glaubenskrieg, der meist die initiale Fragestellung
> komplett ignoriert und man stattdessen erklärt bekommt, warum ein VW
> besser ist als ein Opel, eine Canon besser als eine Nikon oder C++
> besser als Java...?

weils Spaß macht und immer interessant und unterhaltsam ist.
Letztlich muß doch eh jeder für sich entscheidenob eine
Antwort verwertbar ist oder nicht.

Aber nur so am Rande. Was mir am besten gefällt ist daß man
eigentlich gar nicht merkt wie egal die Programmiersprache
ist. Das ist doch nur Syntax um die CPU dazu zu bewegen eine
Aufgabe zu lösen. Ob jetzt prozedural, objektorientiert,
funktional oder wie auch immer ist total egal.

Wer seine Programmiersprache beherrscht und logisch denken kann wird in
jeder Sprache eine gute Lösung finden. Und was viel wichtiger ist,
man muss die Sprache mögen, dann wird man damit
alles erreichen und Spaß dabei haben. Mag man eine Sprache nicht,
kann sie noch so toll sein, man wird darin immer Probleme finden
die in der Lieblingssprache nicht vorhanden sind.

Grüße
Andi

p.S. immer locker bleiben

von minimalist (Gast)


Angehängte Dateien:

Lesenswert?

Andreas Schwarz schrieb:
>> Größere WEB-Anwendung mit knapp 100 Tabellen: 10.000 Zeile C-Code.
>
> Da würde ich gerne mal einen Ausschnitt sehen.

kleiner Ausschnit, viel Spaß

Gruß
Andi

von maximus (Gast)


Lesenswert?

Da gefallen mir die Ausschnitte der Mädels hier an der Uni aber besser. 
Hast du das vor der letzten Softwarekrise geschrieben, oder vor der 
vorletzten?

von Klaus W. (mfgkw)


Lesenswert?

Zumindest keine störenden Kommentare, die nur vom Wesentlichen ablenken.

von Rolf Magnus (Gast)


Lesenswert?

ohneinnichtdasschonwieder schrieb:

> total emotionalen Glaubenskrieg, der meist die initiale Fragestellung
> komplett ignoriert und man stattdessen erklärt bekommt, warum [...] C++
> besser als Java...?

Das war die initiale Fragestellung!

von Klaus W. (mfgkw)


Lesenswert?

:-)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

minimalist schrieb:
> kleiner Ausschnit, viel Spaß

Das hätte man 1990 sicher als eine elegante Lösung bezeichnet. Aber 
welchen Grund gibt es sowas heutzutage in so einem "bare metal" C zu 
schreiben? Effizienz? Ob das Rendern einer HTML-Seite 1µs oder 10µs 
dauert interessiert keinen. Da wo Effizienz eine Rolle spielt ist 
deine Lösung sogar schlechter (lineare Suche statt Datenbank mit 
Indizierung). Von Robustheit (Schreiben über Arraygrenze -> 
mmap-Datenbank futsch), Portabilität (mmap -> big/little endian?), 
Erweiterbarkeit (Datenbank auf anderem Rechner?) ganz zu schweigen. 
Selbst wenn man keine Datenbank verwenden will könnte man die komplette 
kunde.c durch Verwendung von Ruby oder Python dank der eingebauten Typen 
(Array, Hash, Struct) in wenigen Zeilen abhandeln, inkl. Serialisierung.

von minimalist (Gast)


Lesenswert?

Andreas Schwarz schrieb:

Hallo Namensvetter, danke für deine netten Anregungen, ich denke ich bin
da ganz locker drauf. Das Problem ist daß man lieber andere denken
läßt. In deiner Anregeung ist das ganz gut zu erkennen, drum als
gutes Beispiel zu verwenden - bitte nimm es nicht persönlich.

> Das hätte man 1990 sicher als eine elegante Lösung bezeichnet.

hatte man denn damals andere Probleme zu lösen als heute ?

> Effizienz? Ob das Rendern einer HTML-Seite 1µs oder 10µs
> dauert interessiert keinen.

also ich heisse zwar nicht 'keinen' und keiner meiner Kunden
aber auf dem Server arbeiten doch zig Kunden gleichzeitig.
Zumindest die finden es ziemlich angenehm dass sie keine
Wartezeiten haben.

> Da wo Effizienz eine Rolle spielt ist
> deine Lösung sogar schlechter (lineare Suche statt Datenbank mit
> Indizierung).

netter Versuch, was glaubst du ist schneller. Im Hauptspeicher
1000 Pointer zu dereferenzieren oder eine Page von der Platte
in den Speicher laden. Selbst wenn du über Hashing arbeitest
und alles im Hauptspeicher liegt dauert die Berechnung des
Hashkeys länger wenn weniger als
100 Elemente in der Liste sind. Und allen voran, ein Index
ist niemals so flexibel wie ein strcasestr oder vieleicht
gar noch eine Deferenenzierung oder Functioncall in der 
Vergleichsfunktion.
Ich sehe es so; Die Balance zwischen Flexibilität und Performance
ist gar nicht so schlecht und jeder Indexdatei bei weitem
überlegen. Beim Thema Flexibilität hat ein Index
sowieso verloren und über die sich dahinter verbergende Komplexität
brauchen wir erst gar nicht reden.


> Von Robustheit (Schreiben über Arraygrenze ->

wer soll denn bitteschön über Arraygrenzen hinwegschreiben ?
Wenn du dieses Problem hast oder befürchtest solltest du
sowieso die Programmiersprache wechseln, es gibt genügend
davon ohne Pointer.

> mmap-Datenbank futsch), Portabilität (mmap -> big/little endian?),

nächster netter Versuch. Welche Portabilität denn. Kommst du
auf die Ideen die Indexfiles deiner Informix-DB von einer
Intelmaschine auf einen Powerpc einfach so zu kopieren ?

Für sowas ist doch XML Export recht praktisch, oder ?

> Erweiterbarkeit (Datenbank auf anderem Rechner?) ganz zu schweigen.
> Selbst wenn man keine Datenbank verwenden will könnte man die komplette
> kunde.c durch Verwendung von Ruby oder Python dank der eingebauten Typen
> (Array, Hash, Struct) in wenigen Zeilen abhandeln, inkl. Serialisierung.

und wo ist dann der Kunde gespeichert ?
Wie kann ich dann auf den Kunden zugreifen ?
Was ist mit Multiuser/Multitasking ?
Wie lange dauert es 1.Mio Kunden auf diese Art zu sortieren ?
Der arme würde bestimmt wieder in der SQL - DB landen und der
Komplexitäts/Performancekreislauf wäre wieder geschlossen.
Denn so ganz ohne Wartung kommt die SQL-DB auch nicht aus,
und das eine oder andere Byte Speicher braucht es auch. Naja,
dann müssen auch noch die SQL Statements geparst werden, braucht
auch Zeit und Typfehler werden erst zur Laufzeit erkannt.
Kann man natürlich so machen, technisch ist das
alles kein Problem. Heute Früh hatte ich übrigens einen Anruf
von einem Kunden dessen Informix-Indexfiles wieder mal kaputt
waren - warum weiß keiner, Reorganisiert werden mußten sie
dennoch, und der der die Arbeit machen mußte war ich.


Ich habe auch Projekte in denen der
Kunde Java/SQL vorgibt. Die Ladezeiten der Anwendung,
die Dauer der SQL Statements der Speicherbedarf etc.
ist gut und gerne 1000x höher. Genau so wie die
Entwicklungszeiten. Die Endanwender sind
Genervt, der Endkunde droht mit Rechtsanwalt und ist
verloren. Mir kann es egal sein, ich bin/war nur
Unterauftragnehmer ohne Verantwortung - hauptsache ich
(und jeder andere Kollege) verdiende/n gut dabei.

Dort wo ich die Verantwortung habe arbeite ich so wie
ich es für richtig halte und erwarete dies auch von
meinen Mitarbeitern. Um nicht zu vergessen, have fun
all the time!

BTW worüber ich dankbar wäre, wie man diese Lösung
(ernsthaft) schneller und einfacher machen könnte.


Grüße
Andi

von minimalist (Gast)


Lesenswert?

maximus schrieb:
> Da gefallen mir die Ausschnitte der Mädels hier an der Uni aber besser.
> Hast du das vor der letzten Softwarekrise geschrieben, oder vor der
> vorletzten?

muß man diesen Satz irgendwie verstehen ?
Gab es eine Softwarekrise, sind wir in einer Softwarekrise
wird es denn eine Softwarekrise geben ?
Und was um himmels willen ist überhaupt eine Softwarekrise
und wie kann ich mich davor schützen ?

Also Mädels gabs immer schon und die gefallen mir auch viel besser.

Von welcher Uni kommst du denn ?
Argumentiert ihr dort so:
Mit C/C++ kann man heute nicht mehr programmieren, früher
schon, aber das war damals, da war alles ganz anders. ja, ja,
die guten alten Zeiten (vor der vorletzten Softwarekrise).

von minimalist (Gast)


Lesenswert?

Andreas Schwarz schrieb:
> Effizienz? Ob das Rendern einer HTML-Seite 1µs oder 10µs
> dauert interessiert keinen.

iPhone ?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

minimalist schrieb:
> Andreas Schwarz schrieb:
>> Das hätte man 1990 sicher als eine elegante Lösung bezeichnet.
>
> hatte man denn damals andere Probleme zu lösen als heute ?

Nein, aber man hatte weniger Möglichkeiten diese zu lösen.

>> Effizienz? Ob das Rendern einer HTML-Seite 1µs oder 10µs
>> dauert interessiert keinen.
>
> also ich heisse zwar nicht 'keinen' und keiner meiner Kunden
> aber auf dem Server arbeiten doch zig Kunden gleichzeitig.
> Zumindest die finden es ziemlich angenehm dass sie keine
> Wartezeiten haben.

Und die merken den Unterschied ob das HTML-Rendern auf dem Server 1 oder 
10 µs dauert?

> Selbst wenn du über Hashing arbeitest
> und alles im Hauptspeicher liegt dauert die Berechnung des
> Hashkeys länger wenn weniger als
> 100 Elemente in der Liste sind.

Wie gesagt, die Performance bei der Berechnung eines Hashkeys war etwas 
worüber man sich 1990 Gedanken machen musste.

> Beim Thema Flexibilität hat ein Index
> sowieso verloren und über die sich dahinter verbergende Komplexität
> brauchen wir erst gar nicht reden.

Die Komplexität ist in der Datenbank abstrahiert, damit kommt man nicht 
in Berührung.

>> Von Robustheit (Schreiben über Arraygrenze ->
>
> wer soll denn bitteschön über Arraygrenzen hinwegschreiben ?

Dein Programm, wenn du z.B. "EUR" in "Euro" änderst und vergisst das 
Währungsfeld entsprechend zu verlängern. Vielleicht bist du ein perfekt 
fehlerfreier Programmierer; aber spätestens wenn mal jemand anderes an 
deinem Projekt arbeiten sollte geht die Wahrscheinlichkeit für einen 
Speicherzugriffsfehler langsam aber sicher gegen 1. Und wenn dann die 
Datenbank explodiert oder ein bösartiger Nutzer Code einschleusen kann 
ist das unschön.

>> Erweiterbarkeit (Datenbank auf anderem Rechner?) ganz zu schweigen.
>> Selbst wenn man keine Datenbank verwenden will könnte man die komplette
>> kunde.c durch Verwendung von Ruby oder Python dank der eingebauten Typen
>> (Array, Hash, Struct) in wenigen Zeilen abhandeln, inkl. Serialisierung.
>
> und wo ist dann der Kunde gespeichert ?

Wo du willst... Datenbank, XML, Binärblob.

> Was ist mit Multiuser/Multitasking ?

Was ist bei mmap?

> Wie lange dauert es 1.Mio Kunden auf diese Art zu sortieren ?

n * log(n)?

> dann müssen auch noch die SQL Statements geparst werden, braucht
> auch /Zeit/

Siehe oben...

> Heute Früh hatte ich übrigens einen Anruf
> von einem Kunden dessen Informix-Indexfiles wieder mal kaputt
> waren - warum weiß keiner, Reorganisiert werden mußten sie
> dennoch, und der der die Arbeit machen mußte war ich.

Wenn deine Datenbank mal kaputt geht, dann muss der Kunde hoffen dass du 
noch Support leistest, sonst ist er aufgeschmissen.

> BTW worüber ich dankbar wäre, wie man diese Lösung
> (ernsthaft) schneller und einfacher machen könnte.

Wie wär's mit "übersichtlicher" und "robuster"?

Minimalismus im Sinne von Anzahl der Codezeilen, nicht im Sinne von 
Anzahl der Maschinenbefehle ist meistens sinnvoller.

von Klaus W. (mfgkw)


Lesenswert?

minimalist schrieb:
> maximus schrieb:
>> Da gefallen mir die Ausschnitte der Mädels hier an der Uni aber besser.
>> Hast du das vor der letzten Softwarekrise geschrieben, oder vor der
>> vorletzten?
> ...
> Also Mädels gabs immer schon und die gefallen mir auch viel besser.

Vor allem die mit Ausschnitt?

von minimalist (Gast)


Lesenswert?

Andreas Schwarz schrieb:
> minimalist schrieb:
>> Andreas Schwarz schrieb:
>>> Das hätte man 1990 sicher als eine elegante Lösung bezeichnet.

Hey Andreas, Namensvetter, kein Problem. ist deine Entscheidung.
Ich finds jedenfalls cool total kleine zuverlässige und ultraschnelle
Programme zu schreiben. Das hab ich bisher nur mit C hinbekommen,
war mein Fehler darauf hinzuweisen. Irgendwie hatte ich gehofft
hier Leute mit ähnlichen Interessen anzutreffen.

Gute Nacht
Andi

von ... (Gast)


Lesenswert?

@ minimalist

Du erinnerst mich irgendwie an die "Assembler-Jungs" die in der (schönen 
;)) Vergangenheit sich den Boppes aufgerissen haben auch noch das letzte 
Quäntchen Leistung aus ihrer Höllenmaschine rauszukitzeln. Das es sowas 
im Zeitalter der XML und Datenbank schwangeren Softwareentwicklung 
überhaupt noch gibt, wer hätte das Gedacht?! :)

Aber mal ehrlich, so eine Haltung wie "wer sollte denn über die 
Arraygrenze hinaus .." ist doch eigentlich spätestens seit dem 
Grundgedanken der Einführung einer "Managed Code" Sprache überholt. Oder 
anderes gesagt, dem Programmierer gewisse liebgewonnenen Freiheiten (so 
wie du sie nutzt) wieder abzuerziehen hat nach meinem Gefühl (ich 
spreche bewusst vom Gefühl und nicht Kenntnis oder gar Beweis ;)) immer 
mehr Software stabiler werden lassen. Wenn ich bedenke wieviel Ausnahmen 
oder Abstürze man früher so hinnehmen musste (beim OS, bei 
Anwendersoftware) und wie stabil allein so ein OS wie W7 monatelang 
heutzutage läuft!

von Hans Michael (Gast)


Lesenswert?

JavaProfi schrieb:
> Professionelle
> Java-Programme arbeiten zigmal effizienter als C++.

Wer hat dir denn das eingeredet?
Der sollte sich auf jeden Fall sein Lehrgeld zurückgeben lassen...

von maximus (Gast)


Lesenswert?

minimalist schrieb:
> Argumentiert ihr dort so:
> Mit C/C++ kann man heute nicht mehr programmieren, früher
> schon, aber das war damals, da war alles ganz anders. ja, ja,
> die guten alten Zeiten (vor der vorletzten Softwarekrise).

Aber nein! Niemand würde dir eine Sprache entreißen wollen. Auch all die 
Erfahrungen und das mühsam Erlernte will niemand plötzlich weniger 
achten. Aber diese Wissenschaft ist einfach noch zu jung um sich nur auf 
Altbewährtes zu verlassen.

Mindestens sollte man heute mal realisieren, das die Darstellung eines 
Programms in C++/Java/... für den Menschen gedacht ist! Heute ist doch 
in den allermeisten Fällen nicht die Performance der Anwendung kritisch, 
sondern die der Entwurfs-/Wartungsprozesse.

von Azubi (Gast)


Lesenswert?

Was für ein episches geflame zum Thema welche Sprache ist vollkommen.
Keine ist es, ich arbeite in einer Firma die eines der weltweit größten 
MES Systeme etnwickelt ahat und alleine in der Abteilung in der ich 
arbeite wird neben der Hauptsprache Java auch C, C++, PL/SQL und ne Hand 
voll gewrapped .net Funktionen verwendet.
Es gibt nicht DIE Sprache, es gibt lediglich das Richtige Werkzeug zur 
Lösung eines spezifischen Problems und das kann bei großen Anwendungen 
auch mal variieren.

von Herbert (Gast)


Lesenswert?

Wirklich verwunderlich ist, dass die Informatik die letzten 10 Jahre 
quasi stehen geblieben ist. Alle neuen Sprachen ähneln irgendwie den 
alten.

Warum versucht man es mal mit einem richtig neuen Konzept wie z.B. der 
Weiterentwicklung einer graphischen Programmiersprache der 5.ten 
Generation wie LabView?

von BZ (Gast)


Lesenswert?

Tja, warum entwickelt man die Zeppeline nicht mehr weiter? Oder die 
Pferdekutschen?

von horst (Gast)


Lesenswert?

Zeppeline werden weiterentwickelt.
Bei den Kutschen wurden die Pferde vor einiger Zeit wegrationalisiert.

von Claudio H. (bastelfinger)


Lesenswert?

> dass die Informatik die letzten 10 Jahre
> quasi stehen geblieben ist

Habe ich auch schon oft gedacht, in den 90ern waren wir mit CORBA schon 
weiter als heute mit den RPC-ähnlichen WebServices. Document-Style 
Webservices und RESTful sind jetzt aber auch nicht die Superinnovation. 
Das ESB-Wunder ist auch noch nicht aufgetreten.

DSLs und Generierung gab es auch schon früher, allerdings gibt es heute 
auch die entsprechenden theoretischen Methoden dazu.

Was gibt es sonst noch neues? Viele viele Frameworks! Die ganzen 
on-Rails Frameworks, dann die GUI-Abstraktions-Frameworks, und dann Web, 
Web, Web.

Verbessert hat sich auf jeden Fall die Entwicklungsumgebung, Eclipse, 
NetBeans und IDEA integrieren heute alle nötigen Tools.

Was gibt es sonst noch? Das Wasserfallmodell ist immer noch populär, den 
Unified Process haben die meisten nicht verstanden, alle machen 
SCRUM-but, und wenn jemand echte agile Entwicklung betreibt, dann gibt 
es spätestens 2 Management-Ebenen höher wieder solche lämenden Prozesse, 
dass die ganze Wirkung verpufft.

Aber: nicht beschweren, selber innovativ werden!

von CppTheBestLangaugeOverTheWorld (Gast)


Lesenswert?

Hallo liebe Mikrocontroller User,



Also ich verstehe nicht warum, so gut wie ALLE 3D Spiele(Shooter) in 
C/C++ programmiert werden, wenn DU sagst, das Java schneller ist als 
C++??, an der C++ Komplexität kannst ja nicht liegen.

(Achtung schlechtes beispiel :) )
Java ist durch den Interpreter langsamer als C++!.
das kann mann sich genauso vorstellen wie eine Playstation 2 Emulator 
für PC, der versucht das zu übersetzen, und dieser Schritt dauert, und 
ist dadurch langsamer!.;- das soll jetzt nur ein grobes Beispiel sein!.

Wieso ist auf mein PC, die meiste Software in nativen Code geschrieben? 
Wenn ich mir Software aus dem Internet hole, egal ob Freeware oder 
kommerziell, ist so gut wie alles in C/C++ b.z nativ geschrieben. Macht 
doch mal selber den Test, also ich brauche für meine Software kein JVM 
um sie zu starten, wie kommt das?.

Ein größeres Java Programm kenne ich und das ist der JDownloader, hab 
ihr den mal ein halbes Jahr mal getestet? Also der verbraucht richtig 
viel Speicher allein der Start dauert extrem.

Also ich habe mit Bücher von Galileo und Addison wesley, C# angefangen 
zu lernen, bin dann aber c.a nach ein Jahr zu C++ übergelaufen und hab 
mir eine schöne IDE von Embarcadero zugelegt und dazu noch das Buch C++ 
Primer, seit dem will ich C++ nie mehr missen.


Wieso hat Microsoft in ihr Produkt Visual Studio 6.0, 2005, 2008, 2010 
die Programmiersprache C++ mit dabei?, weil das ein der meist genutzten 
Sprache ist, wenn nicht sogar die Nummer 1, die für den Professionsallen 
Bereich genutzt wird. Und das nicht nur Hardware nahe.und da kannst du 
nicht sagen, dass die Sprache nicht mehr genutzt wird, wenn eine Sprache 
versagt dann ist, dass nicht C++!. wie (ich glaube)J++ versagt hatte!.


Ich finde allgemein manage Code nicht so schön, wieso sollte ich mit C++ 
nicht schneller ans Ziel kommen? Ich könne mir doch genauso gut eine Gui 
mit Qt zusammenklicken als wie in C#.

Ich will nicht sagen das Java oder C# schlecht ist. Aber für mich haben 
die Sprachen keine Vorteile.

Auch ich kann genauso mit C++ MANAGE CODE scheiben, und kann zugleich 
auch noch C benutzen und das .Net Framework also drei Sachen!.

C++, C, C++ CLI, also gleich drei Sachen auf einmal, also wieso sollte 
mann Java benutzen oder C#??.

Lieben dank

von Lvizz (Gast)


Lesenswert?

Mist ! verdammt - dachte es wär' jetzt endlich Ruhe ...

von Udo S. (urschmitt)


Lesenswert?

Real programmers don't use assembler or C, real programmers are writing 
the hex memnotics directly!
Hallo Mods, überlegt doch bitte mal ob man den Thread nicht schiesst :-)

von ... (Gast)


Lesenswert?

>Hallo Mods, überlegt doch bitte mal ob man den Thread nicht schiesst :-)

Waffen im Forum, also wirklich...

SCNR

von peterguy (Gast)


Lesenswert?

Ich frag mich die ganze Zeit was ein Langauge ist.
Ein Anzeigegerät für den Netzwerkdatenverkehr vielleicht? (LAN-Gauge)

> Autor: CppTheBestLangaugeOverTheWorld (Gast)

SCNR :-)




P.S.: Das gibts ja tatsächlich
http://blog.skytee.com/2010/11/torrentmeter-a-steampunk-bandwidth-meter/

von Sam .. (sam1994)


Lesenswert?

CppTheBestLangaugeOverTheWorld schrieb:
> Ein größeres Java Programm kenne ich und das ist der JDownloader, hab
> ihr den mal ein halbes Jahr mal getestet? Also der verbraucht richtig
> viel Speicher allein der Start dauert extrem.

1. Das ist wahrscheinlich beabsichtig, da das Programm etwas lädt...
2. Kann auch an deinem PC liegen.
3. Deswegen lässt man es Autostarten. Dieses Argument verstehe ich 
vielleicht bei einem Textverarbeitungsprogram - du willst schnell 
anfangen - hier aber nicht!
4. Der Ram ist so günstig. Ich habe meine 4GB Markenram für 40€ und bin 
zufrieden.

Udo Schmitt schrieb:
> Real programmers don't use assembler or C, real programmers are writing
> the hex memnotics directly!

Immer doch. Nur so kann man das letzte Hz rauskitzeln (als ob das nötig 
wäre ;) ).


PS: Sry, aber das musste jetzt sein.

von Guasto (Gast)


Lesenswert?

Leute, ich finde es GEIL das diese Unterhaltung so lange läuft...
Glaube, ich mache es wie diese Frau, die einen Roman aus einem Blog 
abgeschrieben hat^^

@CppTheBestLangaugeOverTheWorld

Die meisten 3D-Spiele sind in c++ geschrieben, weil es c++ schon viel 
länger gibt als Java.
Auch Java ist fähig, 3D-Programme zu erstellen. Es gibt auch welche, ein 
ehemals in c++ geschriebenes Spiel wurde in Java umgesetzt.
Es ist nur so, dass Java eine (relativ) junge Sprache ist.
Und in den ersten Jahren war sie tatsächlich ziemlich lahm.
Und eine Firma, die beispielsweise seit 6 Jahren an einer Game-Serie 
arbeitet (und sich eine Game-Engine zurechtgefertigt hat) wird nicht 
einfach so auf Java (oder eine andere Sprache) umsteigen.
Das sind glaube ich ein paar wesentliche Gründe.

von Kurt (Gast)


Lesenswert?

Hallo,

Also, ich habe 6 jahre C++(WinAPI,MFC) und seit 2 jahren Java erfahrung:

1. wenns um PC Programmierung geht ist es wichtig welchen bibliotheken 
es benutzen wird.
2. Meistens kommst mir einfacher vor in Java etwas zu machen.
3. um mit C++ grossen projekte zu machen zu können muss man es wirklich 
sehr gut beherschen.ist niicht so einfach wie Java.
4. mann sagt das die Garbage Collector einen vorteil von Java ist, aber 
dass ist nicht immer die fall. Es gibt immer noch sehr viele lücken. 
Weist man auch nicht wo Java's GC nicht mehr mitmacht.Dann hat mann 
grosse probleme.
5. Wenn man einfacher programmieren will ist Java das Wahl(ohne 
Pointers), aber mit pointers kann mann efizienter programmieren das ist 
klar.
6.Wenn mann programmieren lehrnen will sollte man schon die Hände 
schmutzig machen un mit C anfangen. Also ich kenne viele läute die mit 
Java angefangen haben und nur mit Java programmieren können.Die 
verstehen das logicund ablauf dahinder nicht genau.
7.Aber Java ist wirklich einen eigenes Welt. Web entwickler und GUI 
basierter programmierer sollten das unbedingt wissen.

viele Grüsse an alle.

von pluto (Gast)


Lesenswert?

Irgendwann==>back to assembler;

von Stefanie B. (sbs)


Lesenswert?

Real programmers can write FORTRAN programs in any language ;)

von Sven P. (Gast)


Lesenswert?

Also ich merke gerade, dass Minecraft, welches ja in Java+GL umgesetzt 
ist, auf meinem Rechner ganz ordentlich ruckelt und zuckelt.
Dagegen lief manch aufwendigeres Spiel im Emulator (wine) zügiger und 
mit deutlich kleinerem Speicherabbild, etwa Half-life.

Ist natürlich ein gewagter Vergleich, wenn man nicht in die Quellen 
hineinschauen kann. Aber ich könnte mir vorstellen, dass Minecraft nicht 
so wahnsinnig aufwendige Texturen, Physik usw. benötigt :-)

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Stefan B. schrieb:
> Real programmers can write FORTRAN programs in any language ;)

genau

http://en.wikipedia.org/wiki/File:FortranCardPROJ039.agr.jpg

von Hanswurst (Gast)


Lesenswert?

pluto schrieb:
> Irgendwann==>back to assembler;

Meine ich auch...

http://www.bernd-leitenberger.de/echte-programmierer.shtml

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.