<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SpencerBarron.com &#187; Guest post</title>
	<atom:link href="http://www.spencerbarron.com/category/guest-post/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spencerbarron.com</link>
	<description>Rants, Raves &#38; Real Estate</description>
	<lastBuildDate>Sat, 06 Mar 2010 18:15:18 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RPG &#8211; not Role Playing Game</title>
		<link>http://www.spencerbarron.com/2008/02/rpg-not-role-playing-game/</link>
		<comments>http://www.spencerbarron.com/2008/02/rpg-not-role-playing-game/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 16:22:47 +0000</pubDate>
		<dc:creator>CurtisBarron</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Guest post]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.spencerbarron.com/archives/108</guid>
		<description><![CDATA[Google &#8220;RPG&#8221;, and your first hits will be about role playing games. But before there were Role Playing Games, there was RPG (Report Program Generator). This was the name of a computer programming language developed in the 1960&#8217;s by IBM. It was designed to generate reports (thus the name) in a terse, simple way. It [...]]]></description>
			<content:encoded><![CDATA[<p>Google &#8220;RPG&#8221;, and your first hits will be about role playing games. But before there were Role Playing Games, there was <a href="http://en.wikipedia.org/wiki/IBM_RPG">RPG (Report Program Generator)</a>. This was the name of a computer programming language developed in the 1960&#8217;s by IBM. It was designed to generate reports (thus the name) in a terse, simple way. It used a cycle of input, process and output that was built into the language, so that you did not have to issue formal instructions to the computer to read the data files; you just described the file using fixed -format File specifications and Input specifications, entered the necessary Calculation specifications, then output the report in the format described in the Output specifications. Your humble correspondent, without a lick of Computer Science education, learned the language (RPG II) from the manager of a small RPG shop (in a class he held in his kitchen) well enough to write non-trivial programs in a matter of weeks (one class per week). It was easy.</p>
<p>Today, that language has become RPGIV, reflecting continuing enhancements that make it an extremely effective language for manipulating data. You will not likely use it to write an operating system or make pictures dance around on your screen, but computers used by tens of thousands of businesses have it as their base computer language, generating reports and entering and displaying data.</p>
<p>The future of RPG today, though, is in doubt, even though programs totaling billions of lines of code are running today on hundreds of thousands of machines. This is a reflection of the state of computer science today, as well as an example of the fact that, too often, what is often serviceable and effective is set aside.for what is fashionable.</p>
<p>In programming, the fashion today is centered around the Web, and languages associated with the Web &#8211; Java, Perl, Python, Ruby, C++, Visual Basic, Javascript, and so on &#8211; visually oriented languages, for the most part. Can RPG do the Web? Yes, but you have to jump through hoops to make it work. There is no facility in RPG that allows it to use HTML as effortlessly as its customary screen display files. And there are forms of RPG from IBM and ASNA that resemble VB and Java with their Windows displays, but they are by no means nearly as ubiquitous as VB. The kids learn VB or teach themselves Java or C- they do not learn RPG. It is not sexy; RPG is like its cousin COBOL &#8211; they are functional business languages, but Windows and Web processing have to be grafted onto them to work on Windows or the Web. RPG can be used in conjunction with Java on the AS/400; it works quite well to use Java for the user interface and RPG for the core business logic; but people tend want to forget the RPG and use something (anything) else.</p>
<p>In short, all RPG has going for it is that it works. It runs on a machine (the AS/400 or iSeries or Series i) with a database (DB2) incorporated into the hardware- no extra database software, though it can run SQL (and RPG can call and run SQL statements). The operating system (OS/400) makes even Linux seem to run flaky by comparison, without the need for systems administrators, and the machine it runs on seems to run forever. There is no such thing as the &#8220;blue screen of death&#8221;; at least, I haven&#8217;t seen one in almost 30 years. (For a long time, Microsoft ran its business on the AS/400, well into the latter half of the 1990&#8217;s.) RPG can call C++ and Java programs, and they can call RPG routines. It can also run HTML, with a little bit of extra effort.</p>
<p>Perhaps RPG and the AS/400 are too good at what they do. You can run 35-year old RPG programs unchanged using RPGIV. (Try running 1980&#8217;s vintage GWBASIC programs unchanged using VB. It likely will not be easy, perhaps not even possible.) Planned obsolescence is not implemented, as what seems to be true in the programs of Microsoft and other software producers. (And frankly, I believe IBM has done the right thing, purely on principle. Programming should be done to benefit those who pay for it to be done, not to entertain the programmer. Change the program if you need to improve or fix it, not just for the sake of change.)</p>
<p>RPG is being taught by very few schools; some community colleges have given up on their RPG-AS/400 courses due to lack of interest. Few new programmers are being educated. The RPG programming population is getting grayer and grayer. Though it can be used quite elegantly to produce powerful data-crunching programs, the young are not learning it. Crunching data is not entertaining. On RPG forums the topic of the future of RPG is argued quite violently; perhaps it will survive as long as people care about it. It would be a shame to see vast numbers of programs rewritten because people no longer care to use this highly functional language.</p>
<p>I find it difficult to believe computer science grads find it difficult to learn a language that I could learn in a very short time under less than ideal conditions. (I typed my first programs into the computer on 96-column punch cards and fed them into a card reader.) I have read opinions of obviously educated people who feel that the RPG logic cycle and the use of RPG &#8220;level break&#8221; handling (of processing when a designated field changes in value) is incredibly complex; I read about it in my RPG textbook, said &#8220;Hey &#8211; that&#8217;s pretty cool&#8221; and didn&#8217;t need to give it any further study. It is incomprehensible that these people find it difficult. Evidently, it&#8217;s sometimes easier to learn something when you know nothing about the topic than when you think you know something about it and your mind is halfway frozen shut.</p>
<p>I wish I had a solution; far wiser heads have yet to come up with a solid solution for the growing shortage of RPG programmers. But it would be such a waste if someone doesn&#8217;t.</p>
<p> <em>Guest Post &#8211; Curtis Barron</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spencerbarron.com/2008/02/rpg-not-role-playing-game/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Why Johnny Can&#039;t Code and How to Help Him</title>
		<link>http://www.spencerbarron.com/2007/01/why-johnny-cant-code-and-how-to-help-him/</link>
		<comments>http://www.spencerbarron.com/2007/01/why-johnny-cant-code-and-how-to-help-him/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 19:14:02 +0000</pubDate>
		<dc:creator>CurtisBarron</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Guest post]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.spencerbarron.com/archives/39</guid>
		<description><![CDATA[When Bill Gates was 13, a parents group enabled his school to buy a Teletype machine and computer time on a remote GE computer that used the BASIC programming language; he, Paul Allen, and others became intrigued by the technology, including obviously the immediate feedback they got from programming in an easy programming language. He [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" width="119" src="http://www.spencerbarron.com/images/kidcantread.jpg" alt="Cant Code?" height="165" style="width: 119px; height: 165px" title="Cant Code?" />When Bill Gates was 13, a parents group enabled his school to buy a Teletype machine and computer time on a remote GE computer that used the BASIC programming language; he, Paul Allen, and others became intrigued by the technology, including obviously the immediate feedback they got from programming in an easy programming language. He went on to learn other languages, found Microsoft and become a gazillionare.</p>
<p>Does that mean that if your sons or daughters learn about computers using BASIC that they too will earn googol dollars? Well&#8230; probably not. If not, might they understand the computer better if they do? Well&#8230;. maybe.</p>
<p>Being interested in programming by profession and by inclination, I came across by sheer chance <a href="http://www.salon.com/tech/feature/2006/09/14/basic/index.html" title="Salon">an article in Salon.com</a> entitled &#8220;Why Johnny Can&#8217;t Code&#8221; by David Brin. By 12/31/06 it had attracted 297 comments and over 300 blog reactions.<span id="more-39"></span></p>
<p>Mr. Brin&#8217;s point seemed to be that there ought to be a language, whether BASIC or something else, that could give an inquiring student to try out simple computer concepts, without ceremony, in the same manner as you could on the old computers that brought you directly to a screen into which you could key BASIC statements ( like PRINT 290*25*16; &#8221; BOTTLES OF MILK&#8221;).</p>
<p>Well, the response was overwhelming. People wrote to agree, condemn BASIC as a learning tool, and/or suggest alternatives for beginning computer education for kids. And did they suggest alternatives! In approximate alphabetical order, they suggested: <a href="http://www.actionscript.org/resources/categories/Tutorials/" title="ActionScript">ActionScript</a>, <a href="http://www.basic4gl.net/" title="BASIC4GL">BASIC4GL</a>, <a href="http://www.cprogramming.com/" title="C">C</a>, <a href="http://www.cprogramming.com/" title="C++">C++</a>, <a href="http://www.nicholson.com/rhn/basic/" title="Chipmunk BASIC">Chipmunk BASIC</a>, <a href="http://darkbasic.thegamecreators.com/" title="DarkBASIC">DarkBASIC</a>, <a href="http://www.devshed.com/c/b/Flash/" title="Flash">Flash</a>, <a href="http://www.phact.org/e/forth.htm" title="Forth">Forth</a>, <a href="http://www.freebasic.net/index.php/about" title="FreeBASIC">FreeBASIC</a>, <a href="http://freespace.virgin.net/r.cawley/" title="HTML">HTML</a>, <a href="http://en.wikipedia.org/wiki/Information_Processing_Language" title="IPL">IPL</a>, <a href="http://java.sun.com/" title="Java">Java</a>, <a href="http://www.davesite.com/webstation/js/" title="JavaScript">JavaScript</a>, <a href="http://www.justbasic.com/" title="JustBASIC">JustBASIC</a>, <a href="http://www.kidsprogramminglanguage.com/" title="KPL">Kids Programming Language(KPL)</a>, <a href="http://www.lambdamoo.info/" title="LambdaMOO">LambdaMOO</a>, <a href="http://leopardprogramming.wordpress.com/" title="Leopard">Leopard</a>, <a href="http://en.wikipedia.org/wiki/Lisp_programming_language#External_links" title="LISP">Lisp</a>, <a href="http://el.media.mit.edu/Logo-foundation/logo/programming.html" title="LOGO">LOGO</a>, <a href="http://www.mathworks.com/" title="MatLab">MatLab</a>, <a href="http://mindstorms.lego.com/" title="MindStorms">MindStorms</a>, <a href="http://en.wikipedia.org/wiki/MUMPS" title="MUMPS">Mumps</a>, <a href="http://www.gnu.org/software/octave/" title="Octave">Octave</a>, <a href="http://pascal-central.com/" title="Pascal">Pascal</a>, <a href="http://www.perl.org/" title="Perl">Perl</a>, <a href="http://www.php.net/" title="PHP">PHP</a>, <a href="http://www.python.org/" title="Python">Python</a>, <a href="http://www.geocities.com/Area51/5967/qbasic.html" title="QBASIC">QBASIC</a>, <a href="http://www.rebol.com/" title="Rebol">Rebol</a>, <a href="http://www.ruby-lang.org/en/" title="Ruby">Ruby</a>, <a href="http://www.runrev.com/" title="Runtime Revolution">Runtime Revolution</a>, <a href="http://www-swiss.ai.mit.edu/projects/scheme/" title="Scheme">Scheme</a>, <a href="http://www.spencerbarron.com/www.smalltalk.org/" title="Smalltalk">Smalltalk</a>, <a href="http://www.squeak.org/" title="Squeak">Squeak</a>, <a href="http://www.tcl.tk/" title="TCL">TCL</a>, <a href="http://home.att.net/~jackklein/c/c_links.html" title="Turbo C">Turbo C</a>, <a href="http://www.w3schools.com/vbscript/default.asp" title="VBScript">VBScript</a>, <a href="http://msdn2.microsoft.com/en-us/vbasic/default.aspx" title="VB .NET">VB .NET</a>, <a href="http://msdn.microsoft.com/vstudio/express/vb/" title="Visual BASIC">Visual BASIC</a>, <a href="http://msdn.microsoft.com/vstudio/express/vb/" title="Visual BASIC Express">Visual BASIC Express</a> ( I realize the previous four are variations on the same thing), <a href="http://msdn2.microsoft.com/en-us/visualc/default.aspx" title="Visual C">Visual C</a>, <a href="http://msdn2.microsoft.com/en-us/vcsharp/default.aspx" title="Visual C#">Visual C#</a>, and <a href="http://www.vpython.org/" title="VPython">VPython</a>.</p>
<p>( If you think that&#8217;s a lot of programming languages, try <a href="http://99-bottles-of-beer.net/" title="99 Bottles of Beer">this site</a> , where you can find over a thousand ways to program the printing of all the verses of the famous song &#8220;99 Bottles of Beer&#8221;.)</p>
<p>So people are interested in cultivating computer education. I certainly am too. I am glad to be in an occupation where I can support my family and can enjoy myself, even have fun; and I would love to be able to help others find a vocation they can enjoy.</p>
<p>In some respects, my viewpoint is a bit limited. I came to programming late. I was 30 when I got interested in programming, and my motivation, in addition to its native appeal to my personality, was more basic &#8211; desperation. Trying to support a wife and four young children as a very mediocre (all right, lousy) furniture salesman can do that to you. The programming language I learned, RPGII, had the singular advantage of being a language that businesses used and would pay you to write. You didn&#8217;t push pretty pictures around on a screen; you paid employees and creditors, kept the books, and kept track of the money the company made, and you updated the necessary files to keep track of all these things, and you printed reports. There wasn&#8217;t even a CRT screen; the operator typed into a typewriter-like device connected to the computer.</p>
<p>But it was fun. And as I learned more, I got interested in other computers and programming languages. I programmed a little arithmetic game for the Apple II at my kids&#8217; school, and later I created a substantial program &#8211; creating data entry screens and reports- using the GWBASIC on my Tandy 1000, even making the screens look like the screens I created on IBM minicomputers. I recently did a simple program in Visual BASIC 5.</p>
<p><em><strong>They Need a Goal</strong></em></p>
<p>I found the main motivation for learning was to accomplish a specified task. Without a goal, no matter how intrigued I was by a particular programming language, my progress would be limited by the lack of a specific task I needed to carry out. Without it, my progress was slow, and interest faded away.</p>
<p>This need for a goal or purpose is illustrated by an incident from my kids&#8217; high school days. One of my PCs came with ClarisWorks, an integrated software package. I only used the word processor. They needed a pie chart for a news article for the school newspaper they worked for. I had no idea how to do it; I only ventured a suggestion that it probably had something to do with the spreadsheet. Armed with that information, they dove into the program and figured out how to do it. The goal was a sufficient motivation for them to dig into it.</p>
<p><em><strong>How do you motivate them? </strong></em></p>
<p>So, what would your child like to do? If your idea is for him to ace Comp Sci at Stanford, and his concept of computer literacy is wedded to an Xbox or Playstation 3, I wouldn&#8217;t recommend pursuing the matter at all. If you yourself are not computer literate, that would also be a problem if he/she isn&#8217;t either. I am very much open to suggestions as to how one might motivate a young person to extend his computer interests in the programming area. (None of my kids became programmers, though one or two could if they wanted to.) I know it helps speed progress if the child can read well, since so much of the available study material is in printed format either on paper or the Web. (Although in some cases the reverse has been found to be true &#8211; that the desire to learn about a given subject can also spur the desire to learn to read better.)</p>
<p><em><strong>Make it Possible </strong></em></p>
<p>However, once an interest is discerned, there are a number of options. For one thing, almost all of the computer language options that were suggested above have free downloads of the language interpreters or compilers. Many of them also have an IDE (Integrated Development Environment) available so your child would not have to key the source code (the verbiage you key in that is translated into computer instructions) into Notepad and run from a DOS command line. (If you don&#8217;t know what I just said in the last half of the previous sentence, be happy. It&#8217;s one headache you won&#8217;t need to be concerned about.) Many of them have easily accessible free tutorials that may be available through the language&#8217;s main web site.</p>
<p><strong>BASIC</strong>, after all, is an acronym for &#8220;Beginner&#8217;s All-purpose Symbolic Instruction Code&#8221;. It was designed for beginners. Your child can learn &#8220;structured programming&#8221; concepts using modern versions of BASIC, such as <strong>JustBASIC</strong>. Some languages, such as <strong>Logo</strong>, <strong>KPL</strong>, and <strong>Leopard</strong>, are said to be oriented toward making the learning about computers fun; this may be a consideration. If his orientation is toward Web design, <strong>HTML</strong>, <strong>PHP</strong>, <strong>JavaScript</strong>, <strong>Python</strong>, or <strong>Ruby</strong> might be possibilities. I would warn against C or C++ or Java, at least as a first language; my experience and observation, which has been corroborated by my own research and discussions with Java programmers, is that C++ and Java have extremely steep learning curves. One IBMer, at a seminar for programmers about &#8220;Web-facing&#8221;, or enabling RPG programs to access the Web via HTML, once commented that it took over five times as many lines of Java code to carry out a task as it did in RPGIV. The same is true of C++, and the C or C++ syntax may be difficult to get used to.</p>
<p><em><strong>My Own Recommendation</strong></em><br />
My own suggestion is for a language not mentioned above &#8211; <a href="http://en.wikipedia.org/wiki/Oberon_programming_language" title="Oberon-2">Oberon-2</a>, created in 1991 by Niklaus Wirth, the creator of Pascal, an extremely popular language originally created in 1970 as a teaching language. <strong>Oberon-2</strong> uses &#8220;Object-oriented&#8221; programming concepts, which many feel are very important to learn. It is a simple yet powerful language &#8211; it has been used to create computer operating systems and other very complex programs. It is not widely used in North America, but concepts found in languages such as C++ and Java are presented in a much more comprehensible format in Oberon-2, which would make them easier to comprehend if they take up C++ or Java later.<br />
Programming environments for Oberon-2 can be found for anything from <a href="http://www.fim.uni-linz.ac.at/pow/Pow.htm" title="Programmer's Open WorkBench">simple Windows programming</a> to <a href="http://www.oberon.ch/blackbox.html" title="BlackBox">Visual BASIC-style programming</a> to <a href="http://cfbsoftware.com/gpcp/" title="Component Pascal">.NET programming</a>. A textbook only about 200 pages long, entitled &#8220;<a href="http://www.amazon.com/Into-Realm-Oberon-Introduction-Programming/dp/0387982795/sr=11-1/qid=1167690629/ref=sr_11_1/105-3392337-3194803" title="Oberon-2">Into the Realm of Oberon</a>&#8220;, by Eric Nitikin is available, for as little as $16.95 at this writing.</p>
<p>With regard to the previous comment, I am reminded of the article in Salon about David Brin&#8217;s son being about 200 pages into a C++ textbook; from my observation, he is probably less than a quarter of the way through the book. &#8220;C++ Primer Plus&#8221;, by Stephen Prata, has 1224 pages; &#8220;Teach Yourself C++ in 21 days&#8221;, by Jones and Liberty, 936 pages, according to their descriptions on the Amazon.com web site.</p>
<p><em><strong>Yes, He Can </strong></em></p>
<p>Can Johnny learn to code? Many factors affect the answer to this question, but the short answer is, Yes. There are no guarantees. But if your child is interested, and if you can express your interest in a non-threatening, friendly, helpful way, his chances are very, very good.</p>
<p>Contributed by: Curtis Barron</p>
<p><span class="technoratitag">Technorati Tags: <a rel="tag" href="http://www.technorati.com/tags/programming">programming</a>, <a rel="tag" href="http://www.technorati.com/tags/basic">basic</a>, <a rel="tag" href="http://www.technorati.com/tags/education">education</a>, <a rel="tag" href="http://www.technorati.com/tags/learning">learning</a>, <a rel="tag" href="http://www.technorati.com/tags/"></a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spencerbarron.com/2007/01/why-johnny-cant-code-and-how-to-help-him/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
