First Programming Language?

You can talk about almost anything that you want to on this board.

Moderator: Moderators

User avatar
GradualGames
Posts: 1106
Joined: Sun Nov 09, 2008 9:18 pm
Location: Pennsylvania, USA
Contact:

Re: First Programming Language?

Post by GradualGames »

DementedPurple wrote:
Garth wrote:
rainwarrior wrote:I don't think I'd recommend starting with BASIC today, but really I think almost any language is OK. [...] I learned BASIC first because I happened to find those particular books that used BASIC.
Although none of the BASICs I've used were on a 6502 machine, I understand the BBC BASIC was really good, and I was impressed with Lee Davison's EhBASIC when I looked over its capabilities years ago. It looked really good considering the memory limits of the '02. I expect that if modern tools were used and more advanced knowledge of what can be done on the '02 were applied, someone could come up with a further improved BASIC. I wouldn't mind seeing BASIC make a comeback in that way. It would be more structured, possibly compiled and using labels and no line numbers, allow local environments, multiple programs in memory at once, etc..
Yeah, BASIC is my all time favorite programming language, it's a lot more simpler then any languages in the C family, that's for sure.
Perhaps you'd be interested in FreeBASIC. I was also going to provide a link for BlitzBASIC, however their site appears to be down at the moment.
Sour
Posts: 890
Joined: Sun Feb 07, 2016 6:16 pm

Re: First Programming Language?

Post by Sour »

As far as just typing code goes, probably BASIC on the TSR-80 Color Computer we had. Good old times spending an hour typing code for a game listed out in a book, only to realize the code is wrong and doesn't compile. And when you're ~8 years old and know nothing about programming, your odds of actually correcting the code are pretty slim :)

First thing I wrote on my own was in QBasic, on a 286 around 1995. The first "big project" I remember making with it was an "RPG" with ASCII graphics mixed with drawn shapes in QBasic - I'm sure I still have a copy of that on a floppy disk somewhere...

Then I moved on to C/C++ with DJGPP & a FF4 "clone" on a Pentium. I also ended up making some sort of AD&D "game" in Visual Basic, and later on a Ragnarok Online (Beta 1) server emulator in VB6 (which I ended up rewriting in C)... Out of all these, only the RO emulators were actually complete to a point where they could be useful.

I think that pretty much sums up the main projects I did before I entered college, various smaller things aside. In contrast, I've probably spent an order of magnitude more time on Mesen than all of those projects put together, though.

If I had to pick favorites today though, I'd say C#, Typescript and C++ (probably in that order?)
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: First Programming Language?

Post by Punch »

Connecting into the internet and searching "how to make programs" on google started me on this wonderful lifelong journey.

C++ on my own trying my best to do text based games... and failing miserably
C# with moderate success (plus it allowed decent control over terminal caret and individual character bg/text colors)
6502 Assembly (which I love)
Then comes university and I learn C very quickly and a lot of good scientific basis for everything computer programming.
A little bit of Java (which I hate not because of the language but because of OOP + Software Engineering)

It was an ok path even if there was a lot of error in between trials :P
If I were to recommend a 1st language it would be something high level first (python?) but with a reminder to learn low level stuff later. If the person asking was a turbo nerd like myself I'd just recommend C with a library like Curses to do fun stuff. Maybe even NES/6502 if he's really into old video games.
This is a block of text that can be added to posts you make. There is a 255 character limit.
Bavi_H
Posts: 193
Joined: Sun Mar 03, 2013 1:52 am
Location: Texas, USA
Contact:

Re: First Programming Language?

Post by Bavi_H »

I started with Commodore 64 BASIC. I started off typing in examples from the manual and magazines, but the projects I remember making myself were utilities and applications instead of games.

I made a menu program for my collection of games. You'd select the game name from the menu, then it'd prompt you to insert the correct disk and check for the existence of the expected file name. If the file didn't exist, it would re-prompt you to insert the correct disk. If the file did exist, then it'd load and run the game.

I made a simple family tree explorer. It would show one immediate family of parents and their children at a time. You'd highlight a person and press a key to toggle between them being a child or a parent in the view. For example, if it started with my dad and mom at the top and my siblings and me underneath, I could highlight my dad, press the button and the view would change to show his parents (my grandparents) at the top and he and his siblings (my aunts and uncles) underneath, with his name still highlighted. You'd then move the highlight and swap the view to explore further.

The most ambitious thing I made for the Commodore 64 was an 80-column RS232 communications terminal in assembly. Because the Commodore 64 only has 40 columns, I flipped between two screens of half-width characters, one page with the odd characters on the left side of each cell, the other page with the even characters on the right side of each cell. Once I got it working, I remember ultimately being dismayed with it. The letters were hard to read since they were only 3 x 7 pixels, and the screen flipping flicker made it worse. It was a lot of work for a not very useful result. However, I was pleased with the nice bell sound I programmed to play when a bell character (Ctrl+G) was used.
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: First Programming Language?

Post by Bregalad »

I started with Visual Basic and Commodore 64 BASIC almost simultaneously when I was about 12 years old. However 6502 assembly is the 1st "language" in which I did relatively "advanced" things.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: First Programming Language?

Post by Drew Sebastino »

65816 assembly in 2014 when I was 15 years old. :lol:
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: First Programming Language?

Post by dougeff »

Espozo wrote:65816 assembly in 2014 when I was 15 years old. :lol:
Probably the worst first programming language to learn.

I learned Apple Basic, 6502 ASM around 88-92. We got a IIgs, but I never learned 65816 anything.

In college they made me learn Pascal. Later I took some web design courses and learned some basic JavaScript.

After playing around with FCEUX, to cheat at games, I figured out that NES games were programmed in 6502 ASM...which I already knew. I made a few hacks, for fun.

I think I heard about Nerdy Nights somewhere, and made Purple Cape Man. Only since then did I properly learn...
C/C++
Python
C#
JavaScript/Jquery/CSS/HTML5

I was going to make a web game, but I really don't want to now.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: First Programming Language?

Post by TmEE »

My first was QBASIC when I was 15 or so. I could have started sooner but I had no idea that games were programmed or that programming existed at all until I stumbled upon a programming book about BASIC, Pascal and FORTRAN. Then I remembered there was a text editor in DOS directory on my computer that didn't let me type what I wanted and things clicked and my programming ventures started hahaha. My first real program was a number guessing game that I pretty much copied from the book while giving it my own twist.

Internet wasn't quite a thing in my life yet at that point either, but later I got some access to that and quickly discovered QuickBASIC 4.5 which allowed compilation and was generally faster, but not fast enough for a nice 2D sidescroller and then the next important name I found was called "assembly". I learned x86 assembly and finally managed to get some 2D sidescroller going, but I never managed to finish anything, drawing took a while and my young mind wasn't able to come up with all the needed things. I had made a graphics editor and some sound tools at that point.

A bit later I built a SRAM cart so I could run ROMs on my Mega Drive and then I decided to learn how to program the thing. Being proficient in BASIC I tried BasiEgaXorz but that was very limited and nowhere near the level of QBASIC even so 68K assembly was the next thing, and woooooow, that thing blew my mind, so much nicer than x86 ! It only took me couple days to learn most of it and not long before I had graphics on the screen of my TV running off my SRAM cart haha. Z80 assembly came next as I needed means to play sound without tying up the main CPU. It was much more painful than 68K which pretty much had spoiled me. x86 still felt worse though... Nowdays I also do Master System and SC-3000 / SG-1000 stuff, whole game in Z80 isn't actually all that bad.

At some point I learned SuperH-x assembly so I could do 32X stuff but didn't get super far. That CPU is weird, but only because of fixed 16bit instruction size, you're doing a whole lot of relative accessing to get something going, code and data intertwined around. Super fast thing though and not all that terrible to work with once you get used to the implications of fixed instruction size.

Then came the time to put QB45 to sleep as the programs I wanted to do grew too big for it. FreeBASIC was the next thing and that's something I use as primary thing to this day. Pmode DOS was very limited so I dropped that and went on with Windows. WinAPI was a huge PITA at first but now I'm fluent in it and it isn't super hard to get going somewhere.

At school I had to do Pascal but I didn't like the syntax one bit, C, C++ and C# were same deal, I cannot stand the syntax. VisualBASIC was more at home but I didn't do anything serious in it and haven't messed more with it to this day. I will have to do C at some point when I start writing some drivers for windows, not looking forward to that at all, I'll probably write some sort of translator to get FreeBASIC to C going because I really cannot stand C and likenesses haha. It is also why I'll never work as a programmer hahaha.

I also know AVR assembly and Texas instruments C54x and C55x DSPs. The latter two are absolutely horrible, 65x is great compared to those DSPs as far as assembly goes haha, making a NES game is lot less headache than something serious on those DSPs (but you are supposed to use C with those, and endure the absolutely terrible IDE). I don't have any desire to learn PIC, gonna stay in the AVR camp haha.
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: First Programming Language?

Post by Pokun »

I had almost no access to home computers as a kid, but I grew up playing video games, and always wanted to make my own games one day. My first programming experience was with RPG Maker 95 and 2000 for Windows back when internet started becoming a thing and we finally had a PC. RPG Maker didn't have any scripting language back then, so you programmed solely by selecting commands by clicking on buttons in a GUI. At first I was disappointed how limited it was because I couldn't do everything I wanted to, but by examining other people's RPGs I realized how powerful it really was.

My first real programming was with C++ in high school. My experience in RPG Maker made things much easier because I had already started to understand how you are supposed to think. I also learned some Ruby (because RPG Maker XP used Ruby as a scripting language) and Quick BASIC at one point.

Since I suck at math I didn't do programming in university though, and went with Japanese instead (which was another childhood dream of mine). I did take a few university courses to improve my C++ though, and some in electronics.

Then one day I decided that I wanted to make NES games. I wanted to start make the kind of games I grew up with and I thought I rather start with my first gaming system. I did the exercises in Nerdy Nights in my spare time and didn't understand half of it. I went back to it many times though and eventually I got comfortable enough with 6502 and the NES hardware. It was still hard to make a game though because I didn't know anything about game programming.

Since then I have also learned some Family BASIC, Z80, Hu6280, 65816, PIC and JavaScript.
I think that learning these more primitive microprocessors has really improved my understanding of C++ and how computers works in general. And I like the importance of 6502 and Z80 in computer history as well. Also it's fun to brag to my friends majoring in computer science that I "know" a few assembly languages. Of course I'm much more of a newbie than they are, I just have more knowledge of more or less obsolete hardware. lol
Garth
Posts: 246
Joined: Wed Nov 30, 2016 4:45 pm
Location: Southern California
Contact:

Re: First Programming Language?

Post by Garth »

dougeff wrote:
Espozo wrote:65816 assembly in 2014 when I was 15 years old. :lol:
Probably the worst first programming language to learn.

I learned Apple Basic, 6502 ASM around 88-92. We got a IIgs, but I never learned 65816 anything.
Outside of the TI-58c programmable calculator, 6502 assembly was one of my first languages (concurrent with Fortran IV). Later I was able to use the 65c02 and its improvements over the NMOS '02 gave me a greater sense of freedom. Later I got into the 65816 which I actually found easier than the '02 because its wider registers and added instructions and addressing modes removed the limits. It was so nimble at things the '02 was either clumsy at or incapable of. But if it seems daunting, you can use it exactly as a 6502 to start, and then start using the extra capabilities little by little.
http://WilsonMinesCo.com/ lots of 6502 resources
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: First Programming Language?

Post by Pokun »

Yeah well if you already know 6502, both 65C02 and 65816 will be very easy to learn, but starting with 65816 would probably be a bit harder simply because there is more stuff to learn (unless you treat it as a 6502 of course). Starting with Super NES hardware as your first programming experience sounds like a very steep learning curve though.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: First Programming Language?

Post by NovaSquirrel »

Pokun wrote:Starting with Super NES hardware as your first programming experience sounds like a very steep learning curve though.
If you're doing everything yourself, sure. My first experience writing any 65xx code at all was making custom blocks and sprites in Super Mario World, which made it much easier.
User avatar
Jayden Garrison
Posts: 12
Joined: Thu Jul 06, 2017 3:37 pm

Re: First Programming Language?

Post by Jayden Garrison »

Are there any language that are easier to pick up after learning a specific language? Like generally speaking or game creating.
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: First Programming Language?

Post by Pokun »

Well learning C/C++ should get you familiar with a common syntax and other things that is common in most high level languages, but won't help too much in assembly (except fundamental programming logic like memory, flow control etc). Learning an assembly language should make it much easier to learn other assembly languages although different microprocessors can be quite different and have very different syntaxes, which may make it take time to get used to a new architecture.

I think generally the more programming (any kind) you know, the easier it is to learn other languages.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: First Programming Language?

Post by psycopathicteen »

Garth wrote:
dougeff wrote:
Espozo wrote:65816 assembly in 2014 when I was 15 years old. :lol:
Probably the worst first programming language to learn.

I learned Apple Basic, 6502 ASM around 88-92. We got a IIgs, but I never learned 65816 anything.
Outside of the TI-58c programmable calculator, 6502 assembly was one of my first languages (concurrent with Fortran IV). Later I was able to use the 65c02 and its improvements over the NMOS '02 gave me a greater sense of freedom. Later I got into the 65816 which I actually found easier than the '02 because its wider registers and added instructions and addressing modes removed the limits. It was so nimble at things the '02 was either clumsy at or incapable of. But if it seems daunting, you can use it exactly as a 6502 to start, and then start using the extra capabilities little by little.
I think long addressing might be somewhat confusing to beginners because certain instructions/addressing mode are missing like lda $xxxxxx,y. You pretty much have to use the bank register as the bank byte for Y, and use long addressing for stuff you'd normally use absolute addressing for.
Post Reply