Programmieren, welche Sprache?

  • Moin,


    ich möchte mal wieder mit dem Programmieren anfangen, und nun stellt sich mir die Frage: Welche Sprache? C++ oder C#?


    Ich habe mir schon nen Wolf gesucht, um den Unterschied bzw. welche die bessere Wahl ist, bin aber nicht fündig geworden.
    Kann jemand helfen, hat jemand eine Empfehlung bzw. einen Link?


    Darf ruhig eine Anfängerseite bzw. Buch o.ä. sein, da meine letzten Programmiererfolge, abgesehen von etwas Shellscripten, schon etwas länger her sind (Assembler auf einem C64 :) und Arexx auf einem Amiga vor 10 Jahren) Oh mein Gott, bin ich schon alt... ;(

    Gruß André


    -------------------------------------


    Test-Server: YaVDR 0.4, Athlon 64 3200+, 2GB, 1TB, SkyStar 2 DVB-S rev 2.6, Hauppauge Nova-S, 2x Hauppauge WinTV Nexus-S 2.2


    Server: YaVDR 0.4, Athlon 64 X2 5200+, 4GB, 4TB, 2x Technisat Skystar 2, 1x Tevii 480
    Clients: 2x YaVDR 0.4, ZBOX ID 41, 2GB, 250GB,
    Clients: 2x AppleTV
    Netzwerk 1GBit

  • Zitat

    Original von altermann
    ich möchte mal wieder mit dem Programmieren anfangen, und nun stellt sich mir die Frage: Welche Sprache? C++ oder C#?


    Versteh ich nicht - wenn du unter Linux proggen willst , bietet sich doch eh nur ein C Compiler an - ok ohne Kernelcompilierung zwei .
    Folglich gcc - das hat ++ dahinter - oder die Intel Variante - hat auch ++ dahinter .


    HJS

  • Zitat

    Versteh ich nicht - wenn du unter Linux proggen willst



    Neinnein, nicht nur unter Linux, auch Windows...

    Gruß André


    -------------------------------------


    Test-Server: YaVDR 0.4, Athlon 64 3200+, 2GB, 1TB, SkyStar 2 DVB-S rev 2.6, Hauppauge Nova-S, 2x Hauppauge WinTV Nexus-S 2.2


    Server: YaVDR 0.4, Athlon 64 X2 5200+, 4GB, 4TB, 2x Technisat Skystar 2, 1x Tevii 480
    Clients: 2x YaVDR 0.4, ZBOX ID 41, 2GB, 250GB,
    Clients: 2x AppleTV
    Netzwerk 1GBit

  • Zitat

    Original von altermann


    Neinnein, nicht nur unter Linux, auch Windows...


    Dann der Intel Compiler - kannste als Privatmann für WinDoof downloaden - kostenlos ;) also C++


    Bei Linux stellt sich dann die Frage ja nicht ;)


    HJS

  • Zitat

    ann der Intel Compiler - kannste als Privatmann für WinDoof downloaden - kostenlos also C++


    Hört sich so an als ob Du C++ favorisierst :)


    Kannst Du mich auch über die Vor- und Nachteile beider Sprachen aufklären?


    Sollten die Vorteile von C++ überwiegen, hast Du eine Idee für ein Buch? Da gibt es ja Millionen....

    Gruß André


    -------------------------------------


    Test-Server: YaVDR 0.4, Athlon 64 3200+, 2GB, 1TB, SkyStar 2 DVB-S rev 2.6, Hauppauge Nova-S, 2x Hauppauge WinTV Nexus-S 2.2


    Server: YaVDR 0.4, Athlon 64 X2 5200+, 4GB, 4TB, 2x Technisat Skystar 2, 1x Tevii 480
    Clients: 2x YaVDR 0.4, ZBOX ID 41, 2GB, 250GB,
    Clients: 2x AppleTV
    Netzwerk 1GBit

  • Die Compiler für die aktuellen MS-Sprachen bekommt du von MS für umme ... aktuell gibt's von MS auch Deluxe-Versionen für Einsteiger-Bücher über C++,C# und VB.Net inkl. VS .NET 2003 Standard.


    Welche Sprache du nehmen sollst? Das ist Geschmackssache ....


    - ernsthafter Einstieg mit späterem OO-Upgrade: C/C++
    - schnelle Erfolge: VB (.Net), Delphi
    - sinnvoller Einstieg und sinnvoll für beruflichen Einsatz: Java


    Wenn du ernsthaft für Linux und Windows entwicklen willst, bleiben nur C/C++ und Java. Willst du gleich am VDR rumpfuschen ;), nur C/C++ .... ansonsten ist es egal, hast du proz. und OO-Sprachen einmal verstanden, ist eine neue schnell zu lernen.


    arghgra

  • Zitat

    Original von altermann
    Hört sich so an als ob Du C++ favorisierst :)


    Kannst Du mich auch über die Vor- und Nachteile beider Sprachen aufklären?


    Nö - ich kenn nur Assembler ;)


    Aber wann immer ne Batch nich langt , wird wohl in der Linux Welt C++ eingesetzt .
    ( Wenn wir Pearl und Java mal außen vor lassen , aber die könen wohl keinen Kernel compilieren 8) )


    Außerdem gilt es , den Kostenfaktor zu berücksichtigen .
    Folglich lande ich bei Intel und Gnu .


    HJS


  • Perl please ;) - Pearl ist ein EDV-Versender und ne antiquierte Realtime-Library .....


    arghgra

  • Zitat

    Original von arghgra


    Perl please ;) - Pearl ist ein EDV-Versender und ne antiquierte Realtime-Library .....


    Schon wieder dieser Goldwääger :D


    Von mir aus auch Perl :whatever


    HJS


  • Hallo,


    C# (oder auch Java) bringt dir auf jeden Fall eine flachere Lernkurve als C++. Noch besser ist Python. Meiner Meinung nach macht es absolut Sinn zuerst eine leichter zu erlernende Sprache auszuwählen (z.B. Python aber auch Java oder C#) und dann C++ zu lernen. Gerade Sprachen wie Python kannst du auch später immer wieder hervorragend anwenden ...
    C++ und C sind gerade bei Linux Projekten immer wieder anzutreffen - Grundkenntnisse schaden also nicht.


    Bücher bzw. Resourcen
    Python (hervorragende HTML Doku wird "mitgeliefert")
    Java (HTML Doku, Buch Guido Krüger Handbuch der Java Progr. 4)
    C++: C++ lernen und professionell anwenden / Peter Prinz, Ulla Kirch Prinz (ab Ausgabe 2 ein perfektes Nachschlagwerk)
    PS Papier ist geduldig und die Sprachen entwickeln sich zum Teil recht schnell ...

    Gruß


    sdu

    *******************************************************************
    gen2vdr 2.0
    TT1.3, Skystar 2.6c, activy300, STBs AVBoard
    *******************************************************************

  • arghgra:


    Zitat

    ernsthafter Einstieg mit späterem OO-Upgrade: C/C++
    - schnelle Erfolge: VB (.Net), Delphi
    - sinnvoller Einstieg und sinnvoll für beruflichen Einsatz: Java


    Was ist denn ein OO-Upgrade?


    Warum ist Java sinnvoll im Berufsleben? Ich dachte die dominierende Sprache währe C (++/#).
    Rumpfuschen am VDR soll nicht mein primäres Lernziel sein ;) Das Ding soll in erster Linie funktionieren. Ich sage nur WAF ;)


    hjs:


    Zitat

    Nö - ich kenn nur Assembler


    Autsch :) Zu C-64er Zeiten war das ja noch OK, aber da war ich erst 14 Jahre alt... Da ging das noch in meinen Schädel. Aber heute??? Man ich bin doch schon sooo alt :)



    sdu:


    Du meinst C# wäre leichter zu lernen als C++? Ist C# nicht eine weiterentwicklung von C++? Ist C# an Windows gebunden? Dann fällt sie eh weg.


    Java: War das nicht diese Sprache, in welcher die Programme immer so langsam laufen, oder ist das Vergangenheit?

    Gruß André


    -------------------------------------


    Test-Server: YaVDR 0.4, Athlon 64 3200+, 2GB, 1TB, SkyStar 2 DVB-S rev 2.6, Hauppauge Nova-S, 2x Hauppauge WinTV Nexus-S 2.2


    Server: YaVDR 0.4, Athlon 64 X2 5200+, 4GB, 4TB, 2x Technisat Skystar 2, 1x Tevii 480
    Clients: 2x YaVDR 0.4, ZBOX ID 41, 2GB, 250GB,
    Clients: 2x AppleTV
    Netzwerk 1GBit

  • Hi altermann,


    also C# ist (genauso wie VB.NET) eine .NET-Sprache, die auf dem .net-Framkeworl aufbaut.
    Das Mono-Projekt hat sich zur Aufgabe gemacht, das .net Framkework auf unterschiedliche Plattformen (Linux!) zur Portieren. Somit es es möglich unter Linus lauffähige Software zu entwickeln, die auch unter Windows laufen (sogar mit GUI!), zur Zeit aber nur C#


    OO-Upgrade: C ist keine Objekt-Orientierte Sprache, C++ hingegen schon. Die Systax ist bei c/c++ aber ähnlich.


    MFG
    Sven

    Gehäuse: Antec Fusion Remote schwarz/silber
    Mainboard: XFX GeForce 9300
    CPU: Intel Core 2 Duo 6300
    RAM: 2 x 1GB PC2 6400 DDR2 800MHz Corsair Value Select
    Netzteil: be quiet Straight Power 400W ATX 2.2
    Fernbedienung: Logitech Harmony 515
    DVB: Digital Devices Cine S2
    Software: Gen2VDR V3 Beta 8 Update 10
    HD1: OCZ SSD Vertex 2, 60 GB
    HD2: Western Digital WD15EARS Caviar Green 1.5TB
    DVD: derzeit abgestöpselt

  • Zitat

    Original von altermann


    sdu:


    Du meinst C# wäre leichter zu lernen als C++? Ist C# nicht eine weiterentwicklung von C++? Ist C# an Windows gebunden? Dann fällt sie eh weg.


    nein C# ist keine Weiterentwicklung von C++ sondern eher eine Kopie von Java (welches sich wie C++ und C# an der Syntax von C anlehnt :) ). C# ist auch nicht an Windows gebunden (C# ist ein "Normsprache") - es gibt auch schon Compiler für Linux (und andere Unixe) - siehe auch Mono ...
    Auf jeden Fall gibts bei JAVA und C# keine Header Dateien mehr - es gibt (meistens) keine Probleme mit dem Speicher allozieren - und und und ...


    Zitat

    Original von altermann
    Java: War das nicht diese Sprache, in welcher die Programme immer so langsam laufen, oder ist das Vergangenheit?


    das ist ein Vorurteil -
    Wir haben bei uns eine Java Anwendung mit Livebild (Framegrabberkarte + Kamera) auf einem System mit VIA C3 800Mhz und Linux laufen - es gibt keinerlei Performance Probleme ...

    Gruß


    sdu

    *******************************************************************
    gen2vdr 2.0
    TT1.3, Skystar 2.6c, activy300, STBs AVBoard
    *******************************************************************

  • Zitat

    Original von sdu


    das ist ein Vorurteil -
    Wir haben bei uns eine Java Anwendung mit Livebild (Framegrabberkarte + Kamera) auf einem System mit VIA C3 800Mhz und Linux laufen - es gibt keinerlei Performance Probleme ...


    Wo dann aber die wesentlichen Teile (Decoder) in HW laufen oder über's JNI in C/C++ implementiert werden. Dadurch dass Java interpretiert wird ist's langsamer als 'native' auch wenn das durch Just in time compiler besser geworden ist aber auch die JIT-Compiler benötigen Zeit, die das Programm ausbremsen. Ebenso benötigt der Security-Manager und das Bounds-Checking beim Zugriff auf Arrays seine Zeit, die gerade beim Darstellen von Bildern mit ihren 2D-Arrays zu besonders viel zusätzlichen Bounds-Checks führen. Auch das kostet Zeit.


    Tschüss Jo

    yaVDR 0.7, ASRock Q1900M, Zotac GT630 1GB, DD Cine S2 V6.5, 2x2GB, 64 GB SSD, PicoPSU 80W, MeanWell Netzteil 90W mit eingebautem Tinnitus, HAMA MCE-Remote Control


  • OO-Upgrade will meinen, dass du ausgehend von C mit ähnlicher Syntax dann auch objektorientiert programmieren kann, ebent C++ .....


    Die Zeiten, wo C/C++ an 1. Stelle kam, sind vorbei: Java ist angesagt ....


    Zitat


    Java: War das nicht diese Sprache, in welcher die Programme immer so langsam laufen, oder ist das Vergangenheit?


    Ergänzend zu den Vorrednern: Ausführungs-technologisch ist Java heutzutage nicht weit von den .Net-Sprachen entfernt ... und bei weitem nicht mehr so langsam wie früher.


    arghgra

  • Zitat

    Die Zeiten, wo C/C++ an 1. Stelle kam, sind vorbei: Java ist angesagt ....


    Mag mich täuschen, aber wenn ich mir Stellenauschreibung so anschaue, ist c/c++ immer noch erster Stelle!
    Zudem basiert JAVA auch auf der c-Syntax, somit kommt man weiter, wenn man die c-Syntax beherrscht.


    Gruß
    Sven

    Gehäuse: Antec Fusion Remote schwarz/silber
    Mainboard: XFX GeForce 9300
    CPU: Intel Core 2 Duo 6300
    RAM: 2 x 1GB PC2 6400 DDR2 800MHz Corsair Value Select
    Netzteil: be quiet Straight Power 400W ATX 2.2
    Fernbedienung: Logitech Harmony 515
    DVB: Digital Devices Cine S2
    Software: Gen2VDR V3 Beta 8 Update 10
    HD1: OCZ SSD Vertex 2, 60 GB
    HD2: Western Digital WD15EARS Caviar Green 1.5TB
    DVD: derzeit abgestöpselt

  • Zitat

    Original von arghgra
    <snip>
    Die Zeiten, wo C/C++ an 1. Stelle kam, sind vorbei: Java ist angesagt ....
    <snip>


    Hallo,


    denke mal, dass das eine Frage des Standpunktes ist. Ich habe den Eindruck dass heute immer mehr User-Interfaces in Java geschrieben werden.


    Größere Programme sind und bleiben IMHO für die nächsten Jahre in C/C++ vorbehalten. Ich erinnere mich noch an die ersten freien Versionen von StarOffice (V6.x?) das nur so mit Java überfrachtet war. Oh mann war das zäh, da wollte man nicht mit schaffen. Je mehr Java rausgeflogen ist, desto schneller und angenehmer wurde es.
    Auch wenn Java heute schneller ist als vor 5 Jahren, es ist immer noch erheblich langsamer als Native-Code. Für GUIs stellt das ja kein Problem dar, dort hat's sich's eventuell auch deshalb erfolgreich etabliert, aber GUIs sind halt nur ein (kleiner) Teil der SW-Landschaft.


    Tschüss Jo

    yaVDR 0.7, ASRock Q1900M, Zotac GT630 1GB, DD Cine S2 V6.5, 2x2GB, 64 GB SSD, PicoPSU 80W, MeanWell Netzteil 90W mit eingebautem Tinnitus, HAMA MCE-Remote Control

  • Zitat

    Original von arghgra


    Die Zeiten, wo C/C++ an 1. Stelle kam, sind vorbei: Java ist angesagt ....


    Ergänzend:


    Jobpilot.de Java: 861, C++: 815


    womit ich unrecht hatte ... meine subjektive Erfahrungen suggerierten mir einen klaren Vorsprung von Java ......


    arghgra

  • Zitat

    Original von altermann
    hjs:



    Autsch :) Zu C-64er Zeiten war das ja noch OK, aber da war ich erst 14 Jahre alt... Da ging das noch in meinen Schädel. Aber heute??? Man ich bin doch schon sooo alt :)


    Das ist auch heute noch OK . Hängt doch nur davon ab , was du willst .
    Es gibt keine schnelleren Routinen ( und kompakterne ) als die , die du mit einem Assembler erstellst - einzig der Nachteil , dass du jede Routine für Grafikausgabe etc pp selbst schreiben musst und die aufwendige Verwaltung ( weil durch dich zu erledigen ) von grossen Arrays ist etwas mühsam .


    Aber als ich meinen Diskeditor geschrieben habe , der direkt auf die Platte zugreift , hatte ich auch andere Ziele ;)


    HJS

  • Freunde, Bürger, Mitmenschen :)


    Danke für die anregende Diskusion, ich habe mich für C++ entschieden und mir, nachdem ich auf Amazon die Bewertung gelesen habe, folgendes Buch bestellt:
    C++: C++ lernen und professionell anwenden / Peter Prinz, Ulla Kirch Prinz. Hole ich mir heute ab. :]
    Danke für den Tip SDU.


    Jetzt hoffe ich nur noch, das ich die mir angeborene Faulheit besiegen kann um das Buch auch zu nutzen :)

    Gruß André


    -------------------------------------


    Test-Server: YaVDR 0.4, Athlon 64 3200+, 2GB, 1TB, SkyStar 2 DVB-S rev 2.6, Hauppauge Nova-S, 2x Hauppauge WinTV Nexus-S 2.2


    Server: YaVDR 0.4, Athlon 64 X2 5200+, 4GB, 4TB, 2x Technisat Skystar 2, 1x Tevii 480
    Clients: 2x YaVDR 0.4, ZBOX ID 41, 2GB, 250GB,
    Clients: 2x AppleTV
    Netzwerk 1GBit

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!