Nächste Sprache?



  • Hallo liebe Leute,

    ich bitte euch um einen Rat. Und zwar, ich "kann" jetzt schon C++ und möchte eine weitere Sprache lernen, ich weiß aber nicht für welche ich mich entscheiden soll C# oder Java? Ich möchte näher an Windows apps und das Net-Framwork gehen, aber ich möchte auch Androidapps programmieren (für weiteres brauche ich Java nicht). Ich habe gehört/gelesen, dass man mittlerweile sehr gut Androidapps auch mit C# schreiben kann, stimmt das? Oder hab Ihr noch andere Einwände weshalb man das eine vor dem anderen lernen sollte (es geht mir nicht darum welches leichter ist etc.)? Lg



  • CPPler schrieb:

    Hallo liebe Leute,

    Ich möchte näher an Windows apps und das Net-Framwork gehen, aber ich möchte auch Androidapps programmieren

    Dann such mal im Netz nach 'Xamarin'. Das ist eine NET-basiert Multiplattform-Library für Android, iOS und mehr.

    Ich weiß aber nicht, ob das was taugt ...



  • Ich würde von C# abraten. Damit machst du dich von einem proprietären Framework abhängig. Mono kann man im Bereich professioneller Software auch vergessen. Wenn du plattformunabhängige Apps programmieren und trotzdem Zugriff auf die Hardwarefunktionen haben willst, kannst du dir mal Apache Cordova anschauen. Ansonsten bleib bei Java, aber auf gar keinen Fall dieses Monster C#, wenn du mich fragst, da das wieder ein (leider teilweise erfolgreicher) Versuch von Microsoft ist, Winspy am Leben zu halten, indem man alle anderen Betriebssysteme von damit entwickelten Programmen aussperrt. Auch die Nutzung unfreier Frameworks halte ich für fragwürdig.

    Wenn du eine einfache Sprache suchst, mit der ziemlich viel ziemlich einfach machen kann, aber keine größeren Programme schreiben willst, kann ich Python empfehlen.

    Wenn du noch eine Programmiersprache für "echte Kerle" suchst, in der du tiefgehend lernen kannst, wie Programmierung überhaupt "funktioniert": C



  • Hallo CPPler,

    installiere dir einfach die Visual Studio Community Edition, dort kannst du dann Xamarin als "workload" auswählen.
    Oder alternativ direkt mit Xamarin Studio: http://www.monodevelop.com/download/

    Und mithilfe von Xamarin Forms kannst du dann (plattformunabhängig) die App-UI entwickeln (selbstverständlich hat man auch direkt Zugriff auf die Android-API).

    @Dexter: deine persönliche Vorliebe ist hier irrelevant...
    Und das .NET-Framework ist open-source: https://referencesource.microsoft.com/



  • Th69 schrieb:

    @Dexter: deine persönliche Vorliebe ist hier irrelevant...

    CPPler hat nach Meinungen gefragt, was laesst dich entscheiden wessen Meinung relevant oder irrelevant ist?
    Seit ein wenig tollerant gegenueber anderen, wenn sie es versuchen zu begruenden, auch wenn es vielleicht komplett gegen eure Meinung ist.

    @CPPler
    Die eigentlich Frage waere, wozu willst du ueberhaupt eine andere sprache lernen. Normalerweise entscheidet das, was zu empfehlen ist. Sonst bekommst du nur vorlieben als Antwort, aber eventuell nicht hilfreich fuer dich.
    Theoretisch koenntest du auch bei c++ bleiben und dein wissen vertiefen, z.B. wenn du android/ios programmieren moechtest.



  • ich weiß aber nicht für welche ich mich entscheiden soll C# oder Java?

    @Dexter: deine persönliche Vorliebe ist hier irrelevant...

    Die ist nicht irrelevant, danach hat er gefragt.

    Und das .NET-Framework ist open-source: https://referencesource.microsoft.com/

    Nur teilweise. Habe gerade gelesen, dass sich da vieles getan hat. Würde aber aufgrund der Windows-Abhängigkeit trotzdem davon abraten.



  • Dexter1997 schrieb:

    Ich würde von C# abraten. Damit machst du dich von einem proprietären Framework abhängig. Mono kann man im Bereich professioneller Software auch vergessen. Wenn du plattformunabhängige Apps programmieren und trotzdem Zugriff auf die Hardwarefunktionen haben willst, kannst du dir mal Apache Cordova anschauen. Ansonsten bleib bei Java, aber auf gar keinen Fall dieses Monster C#, wenn du mich fragst, da das wieder ein (leider teilweise erfolgreicher) Versuch von Microsoft ist, Winspy am Leben zu halten, indem man alle anderen Betriebssysteme von damit entwickelten Programmen aussperrt. Auch die Nutzung unfreier Frameworks halte ich für fragwürdig.

    Wenn du eine einfache Sprache suchst, mit der ziemlich viel ziemlich einfach machen kann, aber keine größeren Programme schreiben willst, kann ich Python empfehlen.

    Wenn du noch eine Programmiersprache für "echte Kerle" suchst, in der du tiefgehend lernen kannst, wie Programmierung überhaupt "funktioniert": C

    Was hier steht kann man absolut nicht unterschreiben. Dexter hat offenbar gar keine Ahnung von C# und .NET. Abgesehen davon, dass die Sprache und seine Tools eine der produktivsten Umgebungen für Desktop/Web&Mobile-Entwicklung darstellt ist sie a) nicht mehr Windows-abhängig (Programme laufen sowohl unter Linux als auch auf MacOS X und das sogar offiziell supported), noch closed-source (das .NET Framework ist open source, selbst die Entwicklung des Frameworks bzw. der Sprache geht im Einklang mit der Community, siehe Github). Bei mehr Interesse kann ich gerne Informationen liefern, mir ging's in erster Linie nur mal darum hier vor unqualifizierten Falschmeldungen aka Fake News zu warnen.

    MfG SideWinder



  • Was hier steht kann man absolut nicht unterschreiben. Dexter hat offenbar gar keine Ahnung von C# und .NET.

    https://www.golem.de/news/net-framework-mono-projekt-integriert-freien-microsoft-code-1504-113347.html

    Microsofts plattformübergreifende Open-Source-Strategie beim neuen .Net Core könne wegen der Komplexität des Codes nicht für das .Net-Framework umgesetzt werden, berichtet das Projekt. Microsoft stellt allerdings Referenzcode für Letzteres bereit, den das Mono-Team nun in die kommende Version 4.0 seiner freien .Net-Implementierung einpflegt.

    Das Net-Framework ist nachwievor closed source.

    Wikipedia über .Net Framework:

    EULA (proprietär) und teilweise Apache-Lizenz 2.0 (frei oder quelloffen)

    Betonung liegt auf teilweise. Letzenendes ist es proprietär, wenn man Teile eines Systems für sich behält. Knapp daneben ist auch vorbei.



  • Ich danke Euch allen erstmal für eure Antworten. Schade nur, dass jedes Mal kleine Zoffs entstehen ^^.

    @Dexter1997 Ich fand deine Antwort sehr hilfreich, da es mich auch über andere Dinge, über die ich nicht nachgedacht hatte, zum Nachdenken angeregt hat.

    @rapso Ich liebe C++ nur weiß ich nicht was ich großartig damit anfangen soll, das kann auch an meiner Einfallslosigkeit liegen. Ich würde lieeeeebend gern mit C++ Android programmieren, jedoch finde ich auf deutsch keine hilfreichen Quellen und mein englisch ist so im naja Bereich.



  • CPPler schrieb:

    jedoch finde ich auf deutsch keine hilfreichen Quellen und mein englisch ist so im naja Bereich.

    Dein Titel heisst doch "Naechste Sprache"...lern halt erstmal vernuenftiges, solides englisch und festige deine C++ kenntnisse.



  • CPPler schrieb:

    Ich würde lieeeeebend gern mit C++ Android programmieren

    Kannst du ja auch machen: https://developer.android.com/ndk/index.html

    Außerdem hat das SDK schon seit jeher einen abgspeckten C-Dialekt genannt "Renderscript" dabei.
    https://developer.android.com/guide/topics/renderscript/compute.html



  • @CPPler:

    Unter Android kannst du auch Qt nutzen. Installiere einfach die aktuelle GPL Version. Darin ist auch die Android Unterstützung enthalten. Hierfür musst du aber noch das Android NDK herunterladen.



  • @Cardiac das mit dem englischen ist so eine Sache, da ich es nie spreche und nur selten Brauche vergisst man viele Wörter schnell. Ich habe eigentlich kein Problem mit Artikel oder englische Bücher zu lesen, aber ich habe die Befürchtung, dass wenn ich bis zu einer bestimmten Seite im Buch komme etwas falsch verstehe, was nicht an der Programmiersprache selber, sondern an meinen Englischkenntnis liegt. Aber im Grunde hast du trotzdem recht ^^

    @Fricky667 Danke für die Links, den einen Link kenne ich schon, aber hab es nicht in Angriff genommen, da ich mir eher etwas auf deutsch gewünscht hätte^^ und zum anderen da ich mir mit C++/NDK nicht so sicher bin was überhaupt geht und was nicht. Ich mein viele behaupten, dass das nichts nutzt, manche meinen es ist nur für Spiele programmieren gedacht, manche meinen es ist nicht reines C++, sondern Java, dem man C++ Codes hinzufügt. Sehr irreführend leider, heutzutage kann man leider nichts googlen wo einfach etwas wie "hier mach" rauskommt.

    @Bitte ein Bit meinst du unter Androidstudio Qt, oder unter Qt Android nutzen? Qt hätte ich schon auf dem Rechner.



  • CPPler schrieb:

    @Fricky667 Danke für die Links, den einen Link kenne ich schon, aber hab es nicht in Angriff genommen, da ich mir eher etwas auf deutsch gewünscht hätte^^

    Mit ausschließlich Deutsch kommst du beim Programmieren nicht weit. Bei sowas wie Android schon gar nicht.

    Was du mit dem NDK alles anstellen kann musst du erforschen. IMHO war es ursprünglich dazu gedacht um JNI-Libs und Treiber zu programmieren. Aber mit Sicherheit ist es heute schon möglich, komplette Anwendungen in C/C++ zu coden, die die gesamte Android-Infrastruktur nutzen können.

    Hier sind die (offiziellen?) Beispiele: https://github.com/googlesamples/android-ndk



  • Btw, lade dir doch einfach mal das Android-Studio runter und spiel damit herum. Ist kostenlos. Es basiert übrigens auf IntelliJ-Idea. Beste IDE diesseits der Galaxis! 😋



  • @CPPler:
    Ich meinte unter QT Android zu nutzen.

    PS:
    Android Studio ist schon eine geile Sache. Aber man muss ein wenig vorsichtig sein bezüglich den Einstellungen. Etwas Einarbeitungszeit ist da notwendig.



  • CPPler schrieb:

    @rapso Ich liebe C++ nur weiß ich nicht was ich großartig damit anfangen soll, das kann auch an meiner Einfallslosigkeit liegen. Ich würde lieeeeebend gern mit C++ Android programmieren, jedoch finde ich auf deutsch keine hilfreichen Quellen und mein englisch ist so im naja Bereich.

    Du kannst mit visual studio in c++ sowohl android als auch ios programmieren (wobei ios ein wenig aufwendiger ist, wegen apple, aber das ist ein anderes thema).
    Microsoft hat vieles von MSDN auf deutsch uebersetzt: https://msdn.microsoft.com/de-de/library/dn707591.aspx

    ansonsten, wenn dein english einigermassen geht, nutze google translate (ist in chrome integriert, ist dieses kleine zeichen rechts in der URL leiste, links vom sternchen). Und ich kann Cardiac nur zustimmen, english lernen ist wirklich ein gutes ziel wenn du programmieren willst, denn sogar deutsche unis veroeffentlichen arbeiten in englisch. natuerlich dauert es lange, aber das kannst du nebenbei lernen wenn du ueber programmierung liest.

    Ansonsten kannst du natuerlich hier im forum immer fragen, es endet nicht immer in soeinem streit :), auch wenn mal ein englischer satz fuer dich total unverstaendlich ist



  • Es gab mal eine Zeit, da war man ohne Englischkenntnisse im Internet verloren. Ich bin jetzt 46, aber diese Zeit habe ich noch erlebt.

    Offenbar ist das heute nicht mehr so.



  • Wenn du professionellere Programme entwickeln willst, die über einfache Konsolenprogramme hinausgehen, und vor allem, wenn du dich spezialisieren willst, wirst du mit der deutschen Sprache allein leider nicht allzu weit kommen. Vorallem spezialisierte Themengebiete werden meist in englischer Literatur erklärt. Das liegt einfach daran, daß Englisch heutzutage die inoffizielle Weltsprache ist. Früher war's Latein, dann war Französisch angesagt, fast wäre Deutsch mal die Referenzsprache gewesen, jetzt ist es Englisch. Wenn du ein "richtiger" Programmierer werden willst, solltest du in der Lage sein, unter Zuhilfename eines Übersetzers oder Wörterbuchs englische Texte im Kern zu verstehen. Das ist Mindestanforderung. Aber ich tröste dich, ENglisch ist eine sehr einfache Sprache: die grammatikalischen Strukturen sind vergleichsweise lachhaft leicht, wenn auch nicht zu unterschätzen, und im Vergleich zur deutschen Sprache, die ca. 5 Millionen Wörter kennt, kennt die Englische gerade mal eine Millionen Wörter. Dementsprechend ist der Grundwortschatz auch etwas kleiner. Es würde für dich keine große Hürde sein, mangelnde Englischkenntnisse jetzt zu erwerben, da mach dir keine Sorgen. 😉

    In Berufen, die über Kloputzer hinausgehen, sind Englischkenntnisse heutzutage sowieso mindestens ein Pluspunkt.



  • CPPler schrieb:

    @Cardiac das mit dem englischen ist so eine Sache, da ich es nie spreche und nur selten Brauche vergisst man viele Wörter schnell. Ich habe eigentlich kein Problem mit Artikel oder englische Bücher zu lesen, aber ich habe die Befürchtung, dass wenn ich bis zu einer bestimmten Seite im Buch komme etwas falsch verstehe, was nicht an der Programmiersprache selber, sondern an meinen Englischkenntnis liegt.

    Laesst sich leicht beheben = beschaeftige dich mehr mit englisch.

    Wenn du die wahl zwischen de und en hast, nimm letzteres. Glaubst du etwas nicht richtig verstanden zu haben -> sofort googlen.

    Schaue dir alle deine lieblingsfilme/serien/whatever nochmal auf englisch an. Es gilt nicht die sprache in perfektion zu lernen, schliesslich gibt es diverse online woerterbuecher, sondern inhalte ggf. auch durch context erfassen zu koennen.

    Liesst du? (Abgesehen von docs) Wenn ja, such dir einfach mal ein englisches buch aus deinem lieblings-genre raus.


Anmelden zum Antworten