Frage

Eine Sache, mit der ich mich wirklich schon immer beschäftigen wollte, ist die C++-Programmierung, aber ich bin mir nicht sicher, ob ich zu C++ zurückkehren soll (wo ich über einige Grundkenntnisse in der Konsolenprogrammierung verfüge) oder ob ich mich mit C oder Objective C befassen soll?Ich schaue sowohl auf die Langfristigkeit als auch auf die einfache Codierung, z. B. gute Editoren, Compiler usw., und darauf, welche Lösung sich am schnellsten einrichten und in Betrieb nehmen lässt.

Welche Software würden Sie dementsprechend für die Arbeit mit einer vorgeschlagenen Sprache vorschlagen?

[BEARBEITEN]

Einige Leute erwähnten, dass es schwierig sei, etwas vorzuschlagen, wenn man nicht weiß, was ich tue.Ich habe im Moment kein bestimmtes Programm im Sinn, ich denke nur darüber nach, mit einer dieser drei Sprachen zu beginnen, entweder als langfristige Investition und Arbeit oder als Ausgangspunkt für etwas anderes.

War es hilfreich?

Lösung

Ich kann wirklich sprechen nur von C und C ++. entweder lernen würde nicht schaden, wenn der einzige Grund, dass so viel Legacy-Code in C und C ++ ist.

Pure-C ist oft die einzige Option für Betriebssysteme, Treiberentwicklung oder eingebettete Entwicklungsumgebungen. Weitere Anwendungen sind Zeiten, in denen die Leistung ist sehr critical--, wo man als „close“ sein will, auf die Interna der Maschine wie möglich. Es schadet nie wirklich C zu wissen, weil diese Anwendungen davon nicht so bald weggeht zu werden scheinen. C ist auch die „lingua franca“ für viele * nix-Anwendungen. Also, wenn Sie zu viele Open-Source-Projekte beitragen wollen (Apache / svn / cvs / etc), C zu wissen, wäre eine Voraussetzung.

C ++, in meiner Erfahrung, wird verwendet, wenn Sie „in der Nähe der Maschine“, wie bei der Codierung für C sein mögen, aber Sie würden die Möglichkeit, wie von einem höheren Abstraktionsebene über einige OOP einschließlich. C ++ 's große Stärke (und größte Schwäche) ist, dass sein Multi-Paradigma. Es gibt Ihnen fast alle Dinge, die Sie in C plus vielen objektorientierten Features tun können. Zum Beispiel könnte man eine Menge super-optimierten C-Code wiederverwendet werden nach Bedarf während Klassen erstellen, tun Vererbung / polymorphism-- so viel „Objekt-Orientiert“, wie Sie wollen. Es gibt sogar Möglichkeiten, in einigen funktionalen Programmierung in den Mix zu werfen ...

C ++ wird oft als Versuch, zu viele Dinge zu bemängeln zu sein, zu viele Menschen. Als Versuch, alles zu tun, Kritiker sagen, es ist nicht sehr gut auf eine Sache. C ++ verwendet, um die „lingua franca“ für Desktop-Anwendungen, aber Java und .Net haben wirklich viele Enterprise-Benutzer weggenommen. Noch viele Anwendungen, die sowohl über die Leistung und mit der großen Menge an zusätzliche, nützliche Pflege, in der Regel gut genug-for-your-Zwecke verfügen nur in C ++ wählt C ++.

Andere Tipps

Wenn Sie sich in erster Linie auf Windows arbeiten, würde ich C ++ vorschlagen. Microsoft wird hinter dem neu C ++ / CLI und der nativen C ++ Compiler eine Menge Arbeit setzen. Mit den neuen TR1 und C ++ 0X Ergänzungen, viele der Probleme, die in der Vergangenheit bestanden haben werden angesprochen.

Ich würde sagen: Wählen Sie eine beliebige Sprache und bleiben Sie eine Weile dabei.Konzentrieren Sie sich in der Zwischenzeit auf Algorithmen.Dies sind die Bausteine ​​von Programmen.Die Sprache ist nur eine Sprache.

Wenn Sie eine Sprache gelernt/beherrscht haben, dauert es nur ein paar Wochen, bis Sie zu einer anderen Sprache wechseln können, insbesondere wenn Sie in derselben Sprachfamilie bleiben (z. B.C, C++, Objective C, Java, C# usw.)

Wenn Sie denken, Apple geht die Welt eines Tages zu regieren, Objective C

Im Moment denke ich, iPhone Cocoa Entwicklung ist, wo es ist. Also, Obj-C, persönlich.

Sie können eine Antwort außer Acht lassen, die nicht zuerst fragen, was Sie tatsächlich tun. Ohne diese Informationen ist die Antwort entweder falsch, irreführend oder einfach irrelevant.

Meine Meinung:

Von den drei Entscheidungen, die Sie angezeigt haben, ist Ihr bester Ersteinsatz ist wahrscheinlich C. Sobald Sie C kennen, haben einen Griff auf seinen Macken und beherrscht es, das Lernen C ++ oder Objective-C wird höchstwahrscheinlich ziemlich trivial sein. (Ihre härteste Punkte wird es in der Objektorientierung Seite der Welt sein.)

Im Moment Objective-C verwendet wird am häufigsten auf Macs, aber es gibt einige, die vergessen, dass GNU-Tools gibt es für Objective-C, und das ist in GNUStep ebenfalls unterstützt. (. Die aktuelle Mac OS X basiert stark auf dem alten Nextstep, von denen GNUStep mehr oder weniger ein Klon ist) Die Sache mit Objective-C ist jedoch, dass es nicht weit außerhalb dieser beiden Umgebungen verwendet wird - so dass es etwas von eine schmale Umgebung. (Und mit Obj-C, wie fast jeder andere moderne OO-Sprache, werden Sie verbringen viel mehr Zeit, um die Framework-Klassen als die tatsächlichen zugrunde liegende Syntax / lexikalischen Regeln zu lernen.)

Ich bin in erster Linie ein C # -Entwickler. Das zahlt meine Rechnungen, und tut so gut. C # war nicht auf der Liste, und ich vermute, ich weiß, warum: Es klingt wie Sie schauen, um das Metall näher zu sein, weniger abstrahiert. Ich, dass - und ich denke, es ist die richtige Wahl für die langfristige Karrierewachstum. Ich begann mit zig Abstraktionen zwischen meinem Code und der Kasten (ersten professionell mit Java, dann VB6, dann .NET), und als Ergebnis, ich bin jetzt schwer in meiner Freizeit zu spielen „aufholen“ mit dem Rest des Arbeits Welt - ich werde zur Zeit durch das K & R Buch . Zugegeben, ich habe keine professionelle Notwendigkeit, das Metall, das zu nahe kommen -. Aber ich habe ein persönliches Bedürfnis verspüren, die Maschine so gut zu verstehen, ich kann

(Plus, ironisch, ich suche wieder in Cocoa Entwicklung über Objective-C zu bekommen. Ich habe vor in ihnen Jahren Putter herum, und ich glaube, ich bin besser in der Lage zu „get“ es jetzt ... ich persönlich finde, dass Vorkenntnis C Objective-C Umzug in machen wird viel einfacher, glatte und macht mich weniger wahrscheinlich katastrophal speicherbezogene Fehler in meinem Code einführen!)

Am Ende des Tages, ich glaube, das bereits vorhandene Wissen von C (während es nicht war offensichtlich notwendig für mich!) Ist eine sehr gute Sache, und wahrscheinlich macht in anderen Sprachen im Laufe der Zeit zu bewegen ( die Sie wird zu tun, es sei denn, Sie tun OS, Treiber oder eingebettete Arbeit) einfacher und glatter. Ich sage nicht, „Sie nicht ohne sie auskommen können:“ Ich bin, dass zu sagen, basierend auf dem Weg, um Ihre Frage formuliert wurde ... Ich denke, es ist die richtige Antwort für dieses Szenario.

Ich sehe etwas anders auf Ihrer Frage und würde schließlich vorschlagen, dass Sie Objective-C zu lernen. Ich habe ein paar Gründe.

Ein, Obj-C hat eine ganz andere Art und Weise an dem OO-Modell an, als er den allgemein in Sprachen wie C ++ implementiert. Obj-C basiert auf Smalltalk und als solche alle „Methodenaufrufe“ als Nachrichten an die entsprechenden Objekt gesendet umgesetzt. Aus diesem Grund Programmierer in der Lage gewesen, dies in einigen sehr interessant, zu erweitern und sehr mächtig, Techniken. Ein Teil des Grundes für eine neue Sprache lernen soll immer Ihre Ansicht zu erweitern, wie die Dinge funktionieren können -. Obj-C hat viel mehr Potenzial als entweder C oder C ++ in dieser Hinsicht

Zwei, Obj-C, auf dem Mac zumindest, hat einen extrem leistungsfähigen Rahmen dahinter mit einem ausgezeichneten Werkzeugkette. C und C ++ nicht wirklich haben den gleichen kohärenten Rahmen auf jeder Plattform, obwohl Microsoft wahrscheinlich nahe bei der Umsetzung kommt. Nur mit Cocoa arbeiten war genug, um mich davon zu überzeugen, dass Obj-C eine große Sprache. Die Bibliothek ist wirklich gut durchdacht und macht mich neidisch auf diejenigen, die mit ihm an einem Tag zu Tag Grundlage zu arbeiten.

Drei, Obj-C eine Obermenge von C ist, so durch sie lernen Sie bereits vertraut sind mit der Syntax von C. Außerdem ist die C-Standardbibliothek ganz anämisch und kann sehr schnell erlernt werden. C ++ ist etwas besser, was mit Boost zur Verfügung stehen, aber Boost ist bei weitem nicht so Kohäsions wie Kakao.

Schließlich müssen Sie entscheiden, was Ihre Prioritäten sind. Wenn Sie schauen, nur um etwas Neues zu lernen, gehen mit Obj-C.

Abhängig von, was Sie tun. Wenn ich wählen hätte, würde ich C ++ sagen. Es ist mehr Cross-Plattform als Obj-C und weniger Schmerzen als C. Aber wenn Sie Mac-Programmierung tun, würden Sie Objective-C wissen wollen. Wenn Sie irgendeine Embedded-Programmierung oder ein Kernel-Hacking tun, würden Sie wahrscheinlich wollen C verwenden.

Gibt es einen Grund, warum nicht mit C ++ gehen und gehen Sie mit C oder Objective C statt? C ++ hat heute bei weitem die größte Gemeinschaft, der größten bestehenden Code-Basis, und am besten von allen drei vorgestellten. Wenn Sie nicht denken, das stimmt, klären Sie bitte (im Ernst, ich bin wirklich interessiert).

Außerdem C ++ ist die einzige, die von MS in Bezug auf .NET unterstützt wird (wenn Sie zu migrieren einem Tag auf .NET, natürlich).

Starten Sie mit C, dann vielleicht von Wissen C erweitern ++, wenn Sie Objektorientierung benötigen. Objective-C ist eine obskure Sache wie wie Apple Script, die nur Apple-Entwickler jemals von (falls vorhanden) gehört hat, werden Sie nicht weit mit dieser Sprache (keine Beleidigung für Fans dieser Sprache) erhalten.

C ist recht einfach (im Vergleich zu C ++) zu lernen, und Sie haben eine gute Basis Wissen für jede andere Sprache, die Sie vielleicht später lernen wollen (vor allem C ++).

Im Hinblick auf die Antwort von Loren Segal, was Sie tun möchten, spielt keine Rolle, wenn Sie zwischen C und C ++ wählen möchten. Es ist nur eine Frage der Präferenz. Beide haben die Bibliotheken für alles (da C ++ Bibliotheken sind oft nur orientierte Wrapper Objekt um C-Bibliotheken), beide haben eine große Gemeinschaft, stabile IDEs und Compiler.

Intel ist eine Menge in C ++ Bibliotheken zu investieren für gegen ihre Prozessoren läuft. Da Intel die PC-Prozessor Welt in letzter Zeit zu dominieren scheint, scheint es wie eine gute Wahl.

Pure-C ist eine gute Basis, egal, was andere Programmiersprache Sie dann konzentrieren. Objective-C insbesondere ist nur grundlegender C-Code mit smalltalk Ideen an der Spitze. Obwohl C ++ Ventures weit von C ist es immer noch, meiner Ansicht nach klar, dass C die nützlichste Sprache zu kennen ist. In Objective-C fallen Sie oft auf C. In Ruby, Python, Erlang und unzählige andere Sprachen, die Sie auch gehen oft in C-Modus. Es ist auch eine Sprache, die Sie immer auf der Lage zählen können Sie auf jedem Computer zu verwenden, berühren.

So ist es meine persönliche Meinung ist, dass jeder Programmierer wirklich C. Mindestens ein wenig wissen sollte.

ich Objective-C vor kurzem gelernt (weil ich das Spiel mit Cocoa gestartet) nach einem C ++ Entwicklern für 10 Jahre gewesen oder so.

Ich fand die Erfahrung des Lernens Objective-C zusätzlich zu C ++ sehr lehrreich, obwohl ich wahrscheinlich Objective-C nicht für reales Projekt verwenden wird.

Sowohl Objective-C und C ++ eine Schicht aus dem objektorientierten Programmierung auf der C. hinzufügen Aber sie tun es in fast völlig entgegengesetzte Weise. Es scheint, dass jedes Mal, C ++ eine Design-Entscheidung gemacht, Objective-C, um die entgegengesetzte Wahl getroffen. So verwendet beispielsweise C ++ statische Typisierung, während Objective-C dynamische Typisierung verwendet. Oder (letzte) Objective-C verwendet Garbage Collection, die C ++ nicht.

Das hat mich wirklich die Konzepte der objektorientierten Programmierung und die Design-Entscheidungen verstehen mit ihm in einer viel besseren Art und Weise beteiligt.

Wenn Sie nur auf Windows-Betriebssystem konzentrieren wollen, dann schlage ich vor, dass direkt beginnen mit C # (.NET Framework)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top