{"id":2415,"date":"2013-05-09T07:30:00","date_gmt":"2013-05-09T12:30:00","guid":{"rendered":"https:\/\/www.tameri.com\/csw\/?p=2415"},"modified":"2026-07-01T17:16:31","modified_gmt":"2026-07-01T22:16:31","slug":"learning-to-code-iii-hello-world","status":"publish","type":"post","link":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/","title":{"rendered":"Learning to Code III: Hello World"},"content":{"rendered":"<p>In my earlier posts (I, II, and Intro), I explained that I&#8217;ll be using Xcode to learn Objective-C and the Cocoa Frameworks to learn about programming OS X and iOS applications. If you look back at those posts, you will find how to create a new command line application in either C or Objective-C. <\/p>\n<p>This blog entry compares &#8220;pure C&#8221; to the C code I&#8217;ll be using within an Objective-C file. Because Objective-C is a superset of C, you can use any valid C programming code in an Objective-C file. After this blog post, I&#8217;m going to be doing all coding within Objective-C projects, for simplicity among other reasons.<\/p>\n<h3>Hello, C Programming<\/h3>\n<p>Begin by creating a new &#8220;Command Line Tool&#8221; project in C. Apple&#8217;s Xcode handily creates the code to output &#8220;Hello World!&#8221; to the command line. Run the code and you&#8217;ll see the results in the &#8220;debug area&#8221; of the Xcode window. Ah, for the old days when aspiring young coders had to type the &#8220;Hello World!&#8221; program with one hand while holding a book or magazine flat with the other. (Yes, that&#8217;s how I learned to program: I typed in the programs that appeared in various magazines.) <\/p>\n<p>Here is the complete C version of &#8220;Hello World!&#8221; created by Xcode:<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">\/\/<br \/>\/\/ main.c<br \/>\/\/ Hello World C<br \/>\/\/<br \/>\/\/ Created by Scott Wyatt on 2013-04-04.<br \/>\/\/ Copyright (c) 2013 Tameri Publications. All rights reserved.<br \/>\/\/<\/p>\n<p>#include <\/p>\n<p>int main(int argc, const char * argv[])<br \/>{<\/p>\n<p>\/\/ insert code here&#8230;<br \/>printf(&#8220;Hello, World!\\n&#8221;);<br \/>return 0;<br \/>}<\/span>\n<\/p><\/blockquote>\n<h4>Comments<\/h4>\n<p>The first seven lines are comments. They don&#8217;t do anything, at least not as far as the compiler is concerned. Comments are essential to good programming, though. You include comments in code so other programmers (and you) can later recognize what the code is meant to be doing. Most programmers also use comments to record when a change was made to code and by whom. Single-line comments in C begin with <span style=\"font-family: Courier New, Courier, monospace\">\/\/<\/span>. The Xcode template could use multi-line comments, which begin with <span style=\"font-family: Courier New, Courier, monospace\">\/<em><\/span> and end with <span style=\"font-family: Courier New, Courier, monospace\"><\/em>\/<\/span>. You&#8217;ll see multi-line comments in some examples I tryout later in this series. <\/p>\n<p>I&#8217;m going to write a single post on comments and code formatting, because documenting your code is an essential skill for programmers. <\/p>\n<p>In the comments above, Xcode has included notes on the name of the source code file (main.c), the program&#8217;s name, and some copyright information. The comments were generated based on the data entered when creating the new project. The automation saves a little time.<\/p>\n<h4>Directives<\/h4>\n<p>After the comments is a &#8220;compiler directive.&#8221; The directive in the template example is possibly the most common C compiler directive. It directs the compiler to include the standard input\/output library (&#8220;header&#8221;) source code when compiling this application. The &#8220;stdio.h&#8221; file includes the source code for many important &#8220;functions&#8221; programs need. Not only will your programs include standard libraries, but also code you write to reuse as a developer. <\/p>\n<p>Don&#8217;t worry about some of the terminology for now. I&#8217;ll be explaining functions, libraries, headers, and more as the programs in this series get more complex. <\/p>\n<p>Directives begin with a hashtag (<span style=\"font-family: Courier New, Courier, monospace\">#<\/span> &#8220;pound&#8221; symbol) and do not end with a semicolon. That&#8217;s important because statements in C usually end with semicolons.<\/p>\n<h4>The <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> Function<\/h4>\n<p>I&#8217;ve heard C code described as a web of functions, all leading from and to <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span>. If you want to program in C, you need to understand the format of functions. <\/p>\n<p><span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> is a special function. Every C (and Objective-C, C++, C#, et al) program begins at <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> and most also end at <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span>. I won&#8217;t argue that its role as the starting point for execution is all that makes <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> special, but that is the big difference between <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> and all other functions. In terms of syntax and coding, <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> is like other functions. <\/p>\n<p>I&#8217;m going to detail functions in a dedicated post, too. For now, I want to explain the most basic features of the main() function created by Xcode. Look back to the code above. In plain English, the main() function in the template means the following:<\/p>\n<ol>\n<li><span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> is a function that returns an integer value.<\/li>\n<li>If the user executing this program has included &#8220;command line arguments&#8221; after the application&#8217;s name, please store those arguments for later processing.<\/li>\n<li>Execute the code within the curly-braces.<\/li>\n<li>Return the integer value &#8220;0&#8221; via <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> when finished.<\/li>\n<\/ol>\n<p>Most functions return values. Even functions that we seldom assign to variables or test, can and do return values. You need to tell the compiler what type of value or values will be returned by a function. In our example code, int main(&#8230;) tells the compiler that when main() is finished, it will return with an integer value.<\/p>\n<p>What if you don&#8217;t care about a return value? Many simple main() functions are written in the format:<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">void main(void) {&#8230;}<br \/>\n<\/span>\n<\/p><\/blockquote>\n<p>or<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">int main(void) {&#8230;}<\/span>\n<\/p><\/blockquote>\n<p>I really, really dislike both of these examples &mdash; yet they appear in many programming books. I&#8217;ll explain more in my post on functions, but for now you should know that I believe all functions should return something. I can use return values to let other functions know when there has been a problem. For example, I could use &#8220;0&#8221; to mean everything went well and return a number to report an unexpected situation. Error codes, once familiar to DOS users, are return codes.<\/p>\n<p>Many command line programs are followed by user input. A reminder, Apple calls these programs &#8220;command line tools&#8221; in Xcode. User input included on the command line are called arguments, &#8220;parameters&#8221;, or &#8220;switches&#8221; depending on their purposes. <\/p>\n<p>DOS and Unix\/Linux users know the command line format well:<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">dir c:\\*.* \/p \/w<\/p>\n<p>ls -l <\/span>\n<\/p><\/blockquote>\n<p>The directory (<span style=\"font-family: Courier New, Courier, monospace\">dir<\/span>) and list directory (<span style=\"font-family: Courier New, Courier, monospace\">ls<\/span>) commands are programs. They accept parameters and switches, which tell these utility programs which files and directories to list, and how to format that list. If something goes wrong, the commands return an error code, which leads to an error message. This is how most command line programs work.<\/p>\n<p>How does C know you might (or might not) include parameters and switches?<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">int main(int argc, const char * argv[])<br \/>\n<\/span>\n<\/p><\/blockquote>\n<p>The parameters <span style=\"font-family: Courier New, Courier, monospace\">arc<\/span> and <span style=\"font-family: Courier New, Courier, monospace\">argv<\/span> contain the argument count and an array of character strings with the user input. Of course <span style=\"font-family: Courier New, Courier, monospace\">argc<\/span> is an integer &mdash; you can&#8217;t enter a fraction of an input argument! Again, many of these concepts will be explored later. The &#8220;Hello World!&#8221; program doesn&#8217;t do anything with arguments, anyway. Including the argument variables in <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> does prevent an error if the user includes any (meaningless) arguments.<\/p>\n<p>For now, leave the argument variables in <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> when entering example programs. <\/p>\n<p>The statements defining a function appear within two curly braces ( <span style=\"font-family: Courier New, Courier, monospace\">{ }<\/span> ). These braces mark the beginning and end of the function. Most programming editors, including Xcode, will let you know if a function is &#8220;unbalanced&#8221; because you forgot to include a curly brace somewhere.<\/p>\n<h4>Displaying Text<\/h4>\n<p>In classic old C, the <span style=\"font-family: Courier New, Courier, monospace\">printf()<\/span> function sends output to the screen. Here we can see that most functions and statements within a C program end with the semicolon. I&#8217;m not going to explain <span style=\"font-family: Courier New, Courier, monospace\">printf()<\/span> in this sample. I bet you can guess how it works. Maybe the &#8220;<span style=\"font-family: Courier New, Courier, monospace\">\\n<\/span>&#8221; is also easy to guess?<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">printf(&#8220;Hello, World!\\n&#8221;);<br \/>\n<\/span>\n<\/p><\/blockquote>\n<h4>Ending the Program<\/h4>\n<p>The <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> function ends with a <span style=\"font-family: Courier New, Courier, monospace\">return<\/span> {value} statement. I&#8217;ve already mentioned the importance of return values. You can omit the return statement, but I like to include it whenever possible.<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">return 0;<\/span>\n<\/p><\/blockquote>\n<p>Technically, the end of <span style=\"font-family: Courier New, Courier, monospace\">main()<\/span> is the closing curly brace. All function definitions end with their last brace.<\/p>\n<h3>Hello, Objective-C<\/h3>\n<p>Now, here is the Objective-C version of &#8220;Hello World!&#8221; offered by Xcode:<\/p>\n<blockquote class=\"tr_bq\"><p>\n<span style=\"font-family: Courier New, Courier, monospace\">\/\/<br \/>\/\/ main.m<br \/>\/\/ Hello World Plus<br \/>\/\/<br \/>\/\/ Created by Scott Wyatt on 2013-04-04.<br \/>\/\/ Copyright (c) 2013 Tameri Publications. All rights reserved.<br \/>\/\/<\/p>\n<p>#import <\/p>\n<p>int main(int argc, const char * argv[])<br \/>{<\/p>\n<p>@autoreleasepool {<\/p>\n<p>\/\/ insert code here&#8230;<br \/>NSLog(@&#8221;Hello, World!&#8221;);<\/p>\n<p>}<br \/>return 0;<br \/>} <\/span>\n<\/p><\/blockquote>\n<p>The Objective-C version of &#8220;Hello World!&#8221; is familiar to C programmers, but still different enough to reveal ways in which Objective-C is not C. All the following information is technical. It will be useful, later.<\/p>\n<h4><span style=\"font-family: Courier New, Courier, monospace\">import<\/span> vs. <span style=\"font-family: Courier New, Courier, monospace\">include<\/span><\/h4>\n<p>In Objective-C, it is a good idea to use the compiler directive <span style=\"font-family: Courier New, Courier, monospace\">import<\/span> instead of <span style=\"font-family: Courier New, Courier, monospace\">include<\/span>. You might say that include is rather &#8220;brain dead&#8221; &mdash; it can muck up the works if you accidentally include the same source code more than once. When you <span style=\"font-family: Courier New, Courier, monospace\">import<\/span> code, the compiler verifies that you have the code only once in your application. For now, that&#8217;s a little detail. When you are working on large projects, <span style=\"font-family: Courier New, Courier, monospace\">include<\/span> mistakes are easier to make. <\/p>\n<p>Also, look at what is imported by Xcode. The &#8220;Foundation.h&#8221; header actually imports several dozen smaller header files. This is the magic of importing: you can reuse code easily. <\/p>\n<p>If you want to be overwhelmed: <\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/questions\/959007\/files-imported-when-importing-foundation-foundation-h-for-cocoa\">http:\/\/stackoverflow.com\/questions\/959007\/files-imported-when-importing-foundation-foundation-h-for-cocoa<\/a><\/p>\n<h4><span style=\"font-family: Courier New, Courier, monospace\">@autoreleasepool<\/span><\/h4>\n<p>Don&#8217;t worry about <span style=\"font-family: Courier New, Courier, monospace\">@autoreleasepool{}<\/span> for now. It does some memory magic that&#8217;s beyond what I&#8217;m going to address in any pending blog posts. Leave it, and its curly braces, alone.<\/p>\n<h4><span style=\"font-family: Courier New, Courier, monospace\">NSLog()<\/span> vs. <span style=\"font-family: Courier New, Courier, monospace\">printf()<\/span><\/h4>\n<p>Again, beginning Cocoa programmers don&#8217;t need to worry about the details yet, but <span style=\"font-family: Courier New, Courier, monospace\">NSLog()<\/span> is going to be your friend when you are working on big applications. Sure, there are other ways to debug code, but nothing beats getting some output along the way. <\/p>\n<p>The <span style=\"font-family: Courier New, Courier, monospace\">NSLog()<\/span> function sends output to the console window or the debug area in Xcode. If you are writing a true command line tool, I would suggest using <span style=\"font-family: Courier New, Courier, monospace\">printf()<\/span>. If you are only using the output to debug an application, use <span style=\"font-family: Courier New, Courier, monospace\">NSLog()<\/span>. <\/p>\n<p>Much of what you learn about <span style=\"font-family: Courier New, Courier, monospace\">printf()<\/span> in my upcoming blog posts will apply to <span style=\"font-family: Courier New, Courier, monospace\">NSLog()<\/span>. Plus, by learning about <span style=\"font-family: Courier New, Courier, monospace\">printf()<\/span> you are learning generic C code that works with any standard C compiler.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my earlier posts (I, II, and Intro), I explained that I&#8217;ll be using Xcode to learn Objective-C and the Cocoa Frameworks to learn about&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/\">Continue reading<span class=\"screen-reader-text\">Learning to Code III: Hello World<\/span><\/a><\/div>\n","protected":false},"author":8,"featured_media":1590,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"iawp_total_views":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[650],"tags":[690,664,382,436],"class_list":["post-2415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","tag-c-language","tag-c","tag-objective-c","tag-programming","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Learning to Code III: Hello World - C. S. Wyatt<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learning to Code III: Hello World - C. S. Wyatt\" \/>\n<meta property=\"og:description\" content=\"In my earlier posts (I, II, and Intro), I explained that I&#8217;ll be using Xcode to learn Objective-C and the Cocoa Frameworks to learn about&#8230;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/\" \/>\n<meta property=\"og:site_name\" content=\"C. S. Wyatt\" \/>\n<meta property=\"article:published_time\" content=\"2013-05-09T12:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-01T22:16:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Poet Ponders\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Poet Ponders\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/\"},\"author\":{\"name\":\"Poet Ponders\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#\\\/schema\\\/person\\\/9637e19e2728908a2dd0ca0990b1d853\"},\"headline\":\"Learning to Code III: Hello World\",\"datePublished\":\"2013-05-09T12:30:00+00:00\",\"dateModified\":\"2026-07-01T22:16:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/\"},\"wordCount\":1651,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#\\\/schema\\\/person\\\/d07246b7eb3a85c0b37e6c11e7b731aa\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1\",\"keywords\":[\"C Language\",\"C++\",\"Objective-C\",\"programming\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/\",\"url\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/\",\"name\":\"Learning to Code III: Hello World - C. S. Wyatt\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1\",\"datePublished\":\"2013-05-09T12:30:00+00:00\",\"dateModified\":\"2026-07-01T22:16:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1\",\"width\":1500,\"height\":500,\"caption\":\"Poet Ponders Banner\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/2013\\\/05\\\/09\\\/learning-to-code-iii-hello-world\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning to Code III: Hello World\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#website\",\"url\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/\",\"name\":\"Poet Ponders the Digital\",\"description\":\"Poet Ponders the Digital\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#\\\/schema\\\/person\\\/d07246b7eb3a85c0b37e6c11e7b731aa\"},\"alternateName\":\"Poet Ponders\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#\\\/schema\\\/person\\\/d07246b7eb3a85c0b37e6c11e7b731aa\",\"name\":\"C. S. Wyatt, MFA\\\/Ph.D.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"C. S. Wyatt, MFA\\\/Ph.D.\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.tameri.com\\\/csw\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1\"},\"sameAs\":[\"https:\\\/\\\/www.tameri.com\\\/csw\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/#\\\/schema\\\/person\\\/9637e19e2728908a2dd0ca0990b1d853\",\"name\":\"Poet Ponders\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/abadb5930975a9697ae7b342f581864d780d31fefca2c75056b7775568d079de?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/abadb5930975a9697ae7b342f581864d780d31fefca2c75056b7775568d079de?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/abadb5930975a9697ae7b342f581864d780d31fefca2c75056b7775568d079de?s=96&d=mm&r=g\",\"caption\":\"Poet Ponders\"},\"sameAs\":[\"https:\\\/\\\/www.tameri.com\\\/csw\"],\"url\":\"https:\\\/\\\/www.tameri.com\\\/csw\\\/author\\\/poetponders\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learning to Code III: Hello World - C. S. Wyatt","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/","og_locale":"en_US","og_type":"article","og_title":"Learning to Code III: Hello World - C. S. Wyatt","og_description":"In my earlier posts (I, II, and Intro), I explained that I&#8217;ll be using Xcode to learn Objective-C and the Cocoa Frameworks to learn about&#8230;","og_url":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/","og_site_name":"C. S. Wyatt","article_published_time":"2013-05-09T12:30:00+00:00","article_modified_time":"2026-07-01T22:16:31+00:00","og_image":[{"width":1500,"height":500,"url":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1","type":"image\/png"}],"author":"Poet Ponders","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Poet Ponders","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#article","isPartOf":{"@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/"},"author":{"name":"Poet Ponders","@id":"https:\/\/www.tameri.com\/csw\/#\/schema\/person\/9637e19e2728908a2dd0ca0990b1d853"},"headline":"Learning to Code III: Hello World","datePublished":"2013-05-09T12:30:00+00:00","dateModified":"2026-07-01T22:16:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/"},"wordCount":1651,"publisher":{"@id":"https:\/\/www.tameri.com\/csw\/#\/schema\/person\/d07246b7eb3a85c0b37e6c11e7b731aa"},"image":{"@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1","keywords":["C Language","C++","Objective-C","programming"],"articleSection":["Programming"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/","url":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/","name":"Learning to Code III: Hello World - C. S. Wyatt","isPartOf":{"@id":"https:\/\/www.tameri.com\/csw\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#primaryimage"},"image":{"@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1","datePublished":"2013-05-09T12:30:00+00:00","dateModified":"2026-07-01T22:16:31+00:00","breadcrumb":{"@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#primaryimage","url":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1","width":1500,"height":500,"caption":"Poet Ponders Banner"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tameri.com\/csw\/2013\/05\/09\/learning-to-code-iii-hello-world\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.tameri.com\/csw\/"},{"@type":"ListItem","position":2,"name":"Learning to Code III: Hello World"}]},{"@type":"WebSite","@id":"https:\/\/www.tameri.com\/csw\/#website","url":"https:\/\/www.tameri.com\/csw\/","name":"Poet Ponders the Digital","description":"Poet Ponders the Digital","publisher":{"@id":"https:\/\/www.tameri.com\/csw\/#\/schema\/person\/d07246b7eb3a85c0b37e6c11e7b731aa"},"alternateName":"Poet Ponders","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tameri.com\/csw\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.tameri.com\/csw\/#\/schema\/person\/d07246b7eb3a85c0b37e6c11e7b731aa","name":"C. S. Wyatt, MFA\/Ph.D.","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1","url":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"C. S. Wyatt, MFA\/Ph.D."},"logo":{"@id":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/cropped-Poet_Icon_512x512.png?fit=512%2C512&ssl=1"},"sameAs":["https:\/\/www.tameri.com\/csw"]},{"@type":"Person","@id":"https:\/\/www.tameri.com\/csw\/#\/schema\/person\/9637e19e2728908a2dd0ca0990b1d853","name":"Poet Ponders","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/abadb5930975a9697ae7b342f581864d780d31fefca2c75056b7775568d079de?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/abadb5930975a9697ae7b342f581864d780d31fefca2c75056b7775568d079de?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abadb5930975a9697ae7b342f581864d780d31fefca2c75056b7775568d079de?s=96&d=mm&r=g","caption":"Poet Ponders"},"sameAs":["https:\/\/www.tameri.com\/csw"],"url":"https:\/\/www.tameri.com\/csw\/author\/poetponders\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.tameri.com\/csw\/wp-content\/uploads\/sites\/2\/2023\/11\/Poet_Banner_1500x500.png?fit=1500%2C500&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfiw78-CX","_links":{"self":[{"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/posts\/2415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/comments?post=2415"}],"version-history":[{"count":1,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/posts\/2415\/revisions"}],"predecessor-version":[{"id":2416,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/posts\/2415\/revisions\/2416"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/media\/1590"}],"wp:attachment":[{"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/media?parent=2415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/categories?post=2415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tameri.com\/csw\/wp-json\/wp\/v2\/tags?post=2415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}