burli schrieb:
Ein Vorteil fehlt noch. Es gibt C für praktisch jede Plattform, selbst für poplige kleine Mikrocontroller
Wer MCs noch in Assembler programmiert ist selbst schuld - SDCC ist schon praktisch.
Anmeldungsdatum: Beiträge: 2870 |
burli schrieb:
Wer MCs noch in Assembler programmiert ist selbst schuld - SDCC ist schon praktisch. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 7 Wohnort: http://localhost |
So, also erst mal vielen Dank für die vielen Antworten von euch, und hhm, ich habe mir das mit C wirklich nochmal überlegt ich bekam halt von einem netten User von http://www.lima-city.de erst den Hinweis darauf das Perl eine recht gute "Einsteigersprache" ist, und begann deshalb Perl zu lernen. Nach dem einen Jahr Perl wollte ich aber halt mal was neues sehen, da ich denke ich Perl schon recht fit zu sein, jetzt meinte er das da C warscheinlich die beste Sprache wäre die man als nächstes lernen könnte. Das ist aber nur die Meinung einer Person also deshalb hab ich mir mal Java angesehn und das sieht auch schon recht hübsch aus, und ist ja sozusagen auch Plattformunabhängig (naja man muss halt nur irgendwie die Java Runtime auf dem jeweiligen System installiert bekommen). Und ein tolles Buch (In das ich mich heute morgen schon mal eine Stunde eingelesen habe) hab ich auch schon gefunden: http://openbook.galileocomputing.de/javainsel8/ Bzw. hat schon jemand Erfahrungen mit Java? Also sollte ja unter Linux recht gut laufen, weil ich meine die Java Runtime hab ich ja installiert, nur ich glaube mich zu erinnern irgendwo gelesen zu haben das ich fürs "kompilieren" (nennt man bei Java anders, ich weis nicht hat Java nicht nen Interpreter, naja wurscht ihr wisst was ich meine) unter Java noch n weiteres Packet bzw unter Vista n weiteres Programm brauche. Weil ich meine das ist schon ne recht wichtige Entscheidung, mit Perl hab ich mich jetzt 1-2 Tage beschäftigt das war nichts dabei aber wenn ich ne Sprache wirklich lerne will ich danach auch was mit anfangen können und ich denke Java ist da ganz schön, vorallem sollte, wenn ich danach C lernen will der Umstieg nicht so schwer sein das die Syntax sehr ähnlich aussieht wie bei C, oder ist das nur der erste Eindruck? Habt evtl noch alternativen zu Java, also wenn man von Perl kommt natürlich, also ich möchte jetzt definitiv bei imperativen Sprachen bleiben und nicht irgendeine funktionale wie Haskell o.Ä. Und das mit den Mircocontrollern ich habe eigentlich nicht vor nen Prozessor mit nem C Compiler zu flashen also meine Programme bleiben auf dem PC oder Laptop sag ich jetzt mal. Danke im Voraus Greetz Andreas 😉 |
Anmeldungsdatum: Beiträge: 115 |
Naja das Java-Openbook ist weniger für Einsteiger da wirste glaube ich scheitern. Bin da auch gescheitert. Die Grundlagen sind da nicht so gut erklärt, es ist mehr eine Referenz wenn man seine Kenntnisse verbessern will. Wie gesagt bei C kann ich das Buch empfehlen: http://de.wikibooks.org/wiki/C-Programmierung MfG |
Anmeldungsdatum: Beiträge: 2870 |
Thundersystem schrieb:
...
Python oder C# sind da eher eine gute Allroundlösung. |
Anmeldungsdatum: Beiträge: 9032 Wohnort: Petersberg |
Rotbart van Dainig schrieb:
Ich wollt nix sagen 😀. Wer Perl als Einsteigersprache verkauft der verkauft auch Kühltruhen in Sibiriern 😀 |
(Themenstarter)
Anmeldungsdatum: Beiträge: 7 Wohnort: http://localhost |
Oh achso, ja ich wusste da ja auch nicht, hatte da auch keinen Plan welche Sprachen es alles gibt, aber ich denke mal das ich nun doch eher Java lernen werden, zumindest sollte die Sprache halt objektorientiert sein und relativ Plattforumunabhängig sein, was ich bei Java gegeben habe und bei C-Sharp eben leider nicht. Und Python, kA ist doch glaube ich fast identisch zu Perl, oder? Zudem fand ich jetzt Perl eigentlich nicht schlecht als Einsteigersprache, also schwer ist was anders, man muss halt seinen Code "sauber" halten 😉 Und joar, kA was gibt es denn noch was einfach ist, plattformunabhängig und objektorientiert? Greetz Andreas 😉 |
Anmeldungsdatum: Beiträge: 9032 Wohnort: Petersberg |
Thundersystem schrieb:
Doch, ist schon was anderes.
Muss man überall
Python, C++ 😉 |
Anmeldungsdatum: Beiträge: 770 |
burli schrieb:
Einfach ist C++ ganz sicher nicht; es ist für Anfänger viel zu umfangreich; und objekt-orientiert ist es auch nur zu einem gewissen Grade. Man kann C++ als eine Sammlung verschiedener Programmiersprachen betrachten ( C, objektorientiertes C++, template basiertes C++, gar Template- Metaprogrammierung , funktionale Ansätze,... ) und dann gibt es natürlich noch die SLT, Boost, und und und. Und lustiger Weise gelten auf jeder Sprachebene verschiedene "best practices". Was in einem Kontext verpönt ist, ist auf der anderen Ebene guter Stil ( was in der Praxis häufig zu einem heillosen Chaos führt, wenn jemand an Code-Stellen rumpfuscht bei der Ansätze zur Programmierung verwendet werden, die er normalerweise nicht benutzt ) |
Anmeldungsdatum: Beiträge: 3620 |
Red Radish schrieb:
Nenn dafür mal ein Beispiel. Es gibt natürlich verschiedene Projekte, die verschiedene Coding-Styles vorschreiben, aber das gibt es bei anderen Sprachen auch. |
Anmeldungsdatum: Beiträge: 9032 Wohnort: Petersberg |
Red Radish schrieb:
Und was ist der übliche "Standard"? Ich denke mal, für C und funktionale Ansätze brauch ich doch kein C++. Und so weit ich das bisher verstanden habe schließen sich OOP und Templates nicht gegenseitig aus. Wenn ich mir zb Qt anschauen wird da munter von beidem Gebrauch gemacht |
Anmeldungsdatum: Beiträge: 530 |
|
Anmeldungsdatum: Beiträge: 279 |
RonnyF schrieb:
Also ich finde, dass die Auflistung ein Witz ist:
Das ist jawohl völliger Blödsinn, solage ich keine Treiber Programmieren will, brauche ich auch kein C.
Auch ein ziemlicher Quatsch in meinen Augen. Erst C zu lernen, kann höchstens dazu führen, dass man später nicht richtig objektorientiert programmiert.
Zweifellos richtig, ich vermute aber, dass das die wenigsten Einsteiger hardwarenah programmieren.
Da gibt es eine Reihe Sprachen, die wesentlich einfacher zu portieren sind.
Kann schon sein.
In Zeiten der Quadcores finde ich interresanter, dass mal leicht Multithreaded programmieren kann. (kann sein, dass es da super Libs für C gibt, ich vermute aber, dass es mit C# oder Java leichter geht.)
Hui, nur 3742 Bytes, na wenn das kein toller Vorteil ist.
Wozu ist so ein Präprozessor gut? (Die Frage ist erst gemeint.)
• C ist nicht objektorinetiert |
Anmeldungsdatum: Beiträge: 9032 Wohnort: Petersberg |
Sarastro schrieb:
Und? Das hindert Linux (und viele andere Programme) nicht daran, zu funktionieren.
Und? Muss man halt mal nachdenken beim Programmieren.
Zucker macht dick (auch Software)
Die Entscheidung, Java zu lernen, bedeutet gleichzeitig, neue Rechner zu kaufen. Was in C noch auf einem langsameren Single Core Prozessor mit wenig Speicher lief benötigt mit Java mindestens mal das doppelte an Ressourcen. Es kann doch nicht sein das ein popliges "Hello World" mit GUI schon 40MB braucht. Ich habe auf meiner Werkbank noch einen getagten Pentium3 mit 1GHz und 256MB. Da programmiere ich Mikrocontroller mit Hilfe eines Konsolenprogramms. Eines Tages wollte ich mir das Leben erleichten und habe mir einen in Java geschriebenen Frontend für das Konsolenprogramm besorgt. Ein billiges Programm mit einer Handvoll Buttons. Das hat geschlagene 2 Minuten gedauert, bis das überhaupt geladen war. 👿 Und von Monstern wie Eclipse rede ich gar nicht erst. Auf Rechnern mit weniger als 1GB sollte man das besser nichtmal runterladen. Noch schlimmer wird's, wenn bunt gemischte Programme mit unterschiedlichen VM's benötigt werden. Hier ein Python für Gajim, hier Mono für Tomboy, ein bissel Java... Ja, Speicher ist billig, aber ich will nicht jedes Jahr Speicher aufrüsten nur weil ein paar faule Prgrammierer nur noch mit VM's rumtanzen können (die btw meistens selbst in C/C++ programmiert sind.) Ich für meinen Teil lerne gerade C++ und arbeite mich in Qt4 ein weil ich eingesehen hab, das VM's nur Bremsklötze und Speicherfresser sind, auch wenn ich absoluter Fan von Python bin |
Anmeldungsdatum: Beiträge: 3620 |
burli schrieb:
Ein gut erweiterbares Programm ist schon fast zwangsläufig objektorientiert geschrieben, und so ist das auch beim Linux-Kernel. Nur ist es in C umständlich und hässlich. Da wird aus einem
Die fehlende Speicherverwaltung führt zu Bugs und geringerer Produktivität. Nicht selten läuft ein Programm mit GC schneller, da GC oft durch Reference Counting ersetzt werden muss, was langsamer ist. Ein weiteres Problem, dass aber meist nur sehr lange laufende Applikationen betrifft, ist Heap-Fragmentierung.
Quatsch. C++ hat sehr viele Features, die nur syntaktischer Zucker sind (z. B. Templates, Operatorüberladung und Destruktoren (die letztlich nur syntaktischer Zucker für einen Funktionsaufruf am Ende des Blocks sind)). Ineffizienter werden die Programme davon aber nicht, wie in zahlreichen Benchmarks immer wieder bewiesen wurde. Wenn man solche Behauptungen aufstellt, dann sollte man sie auch belegen!
Die Performance eines Programms hängt in erster Linie davon ab, ob es gut programmiert ist. Ein schlechter Algorithmus wird auch in C nicht schneller. Fakt ist, dass die Performance von Java meist völlig ausreicht und Java darüber hinaus viele weitere Vorteile bietet (z. B. keine Speicherfehler und eine vernünftige Standardbibliothek).
40 MB was? Du musst schon etwas genauer argumentieren.
Und was soll das jetzt beweisen? Dass es beschissene Java-Programme gibt? Das wusste ich auch vorher schon. Über Java als Programmiersprache sagt das aber nichts.
In Zeiten, wo ein GB Speicher ca. 10 € kostet ist das erträglich.
Und ich habe langsam die Nase voll von lauter Bugs und Sicherheitslücken, sie entstehen, weil irgendein C-Programmierer seine Pointer nicht im Griff hatte.
Das ist großer Unsinn. Eine VM ist alles andere als ein Bremsklotz sondern erlaubt z. B. Optimierungen zur Laufzeit und kompaktierende Garbage Collectors, was z. B. zu extrem schneller Speicherallokation führt. Dass Java-Programme in der Regel dennoch langsamer laufen ist eher dem Sprachdesign als der VM zu verdanken. |
Anmeldungsdatum: Beiträge: 73 |
burli schrieb:
In was sollen sie denn dann Programmier sein? |