Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
0 user currently in Programming. | 3 guests |
Acmlm's Board - I2 Archive - Programming - Easiest programming launguage to learn | | | |
Pages: 1 2 3 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
What launguage do you think is easiest, or one of the easiest to learn?6502 |
56.2%, 9 votes | 65816 |
12.5%, 2 votes | C++ |
18.8%, 3 votes | Java |
12.5%, 2 votes | Multi-voting is enabled.
| |
User | Post | ||
Atma X Bandit Level: 43 Posts: 594/801 EXP: 553639 For next: 11407 Since: 03-16-04 From: Derrière vous!!! Since last post: 43 days Last activity: 14 days |
| ||
I'm asking this not for fun, but to try to get an idea of where I should start out. My main goal right now is to learn 65816 ASM so I can recode SMW (and later on I want to learn C++, but I'll be taking a course in college for that next year), so I'm not sure if it would be better to start with something else (6502 ASM, C++, etc.) to get me used to the basic concepts of programming. (edited by Atma X on 10-28-04 11:27 AM) |
|||
Dish Spiny Level: 38 Posts: 145/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
If your goal is to learn assembly... start with assembly. I voted for 6502, since it's probably the easiest to learn thing listed... although z80 might be more straight-forward. Concepts introduced in higher level languages (like C/C++, and even Java) are sort of masking what the machine is really doing. For example... pointers in C/C++ can be difficult to understand at first... whereas indirect addressing in assembly (the low level equivilant) is relatively simple. To further make my point... you can learn simple assembly languages from a refernece sheet of opcodes... and maybe 6 or 7 pages of tutorials/documentation. To become a competant C/C++ coder, you'll need a lot more than that. People can read books and take coarses and still not have a full grasp at what each aspect of the language is/does. On the plus side... once you learn assembly... you'll get the basic programming concepts... so picking up higher level languages will be much easier. If your goal is to learn 6502 and you start with something higher like C/C++, you'll be learning a lot of unnecessary stuff that doesn't apply to assembly... which'll just further you from your goal. (edited by Disch on 10-25-04 09:16 PM) |
|||
Gavin Fuzzy Rhinoceruses don't play games. They fucking charge your ass. Level: 43 Posts: 270/799 EXP: 551711 For next: 13335 Since: 03-15-04 From: IL, USA Since last post: 13 hours Last activity: 13 hours |
| ||
i'm with Disch on this one, most assembly languages are actually relatively simple, especially on processors like the 6502. Not to mention the fact that the 65816 and 6502 are very similar, so building up basic assembly concepts on the lower processor is very nice. | |||
neotransotaku Baby Mario 戻れたら、 誰も気が付く Level: 87 Posts: 1555/4016 EXP: 6220548 For next: 172226 Since: 03-15-04 From: Outside of Time/Space Since last post: 11 hours Last activity: 1 hour |
| ||
yes, learning languages on processors is easier but there is a lot more one must manage the lower one goes. C++ and Java are nice because their compilation schemes take care of stuff you do not need to worry about (such as stack space). Also, they are easier to understand documentation wise and often easier to debug. Debugging assembly isn't very fun unless you have commented well...but who really does comment well? anyways, the easiest language is the language that gives you the right amount of control you want. |
|||
Atma X Bandit Level: 43 Posts: 597/801 EXP: 553639 For next: 11407 Since: 03-16-04 From: Derrière vous!!! Since last post: 43 days Last activity: 14 days |
| ||
Ok, now,... Are there any Programs other than a disassemblers that I'll need? And another thing,... where's a good tutorial (a tutorial that won't just throw random stuff at me,... anyone know, or is Google my best friend in this situation) (edited by Atma X on 10-27-04 03:28 PM) |
|||
neotransotaku Baby Mario 戻れたら、 誰も気が付く Level: 87 Posts: 1560/4016 EXP: 6220548 For next: 172226 Since: 03-15-04 From: Outside of Time/Space Since last post: 11 hours Last activity: 1 hour |
| ||
if you are programming in assembly, then you just need something that will run the assembly. You can use a disassembler to see example code. As for the other languages, Java has a compiler from Sun (obviously) and C++ has gcc (if you install Cygwin), the compiler from MingGW (you can get it from doing a google search for MingGW), or dev-C++ (i think that is the name). |
|||
Smallhacker Green Birdo SMW Hacking Moderator Level: 68 Posts: 753/2273 EXP: 2647223 For next: 81577 Since: 03-15-04 From: Söderhamn, Sweden Since last post: 10 hours Last activity: 9 hours |
| ||
Blitz Basic. | |||
Dish Spiny Level: 38 Posts: 146/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Originally posted by neotransotaku If you're comparing NES specific 6502 programming to PC C/C++ or Java programming, I couldn't disagree with you more. On a simple system like the NES, everything is known. There is ALWAYS 2k of RAM, there is ALWAYS 256 bytes of stack space, the processor speed is ALWAYS constant, and every NES will run the program the same way. On a modern PC (or even a really old PC), there are a lot of variants, since the PC is built to be expandable. When programming something for modern PCs, you can (and I have) make a program that works fine on your own computer, but then when you hand it off to someone else, it doesn't work at all. There are a lot more unknowns your program will have to account for, and therefore programs become much harder to manage. Now granted... since Java programs run through a yukky VM and not actually on the computer, Java might do a better job of "shielding" those unknowns from the coder. Debugging asm is no harder than debugging other code.. it all depends on which tools you're using (and FCEU would work fine for NES specific stuff). Commentless Java or C++ code can be just has hard to follow (or even harder to follow) as commentless 6502. Originally posted by Atma X Well for starters... you won't need a disassembler.... you'll need an assembler x816 is popular, as is ca65.. although ca65 can be someone of a pain to set up... so starting with x816 is probably the way to go. I don't have links, but there's problably something on NESdev. If not, you can google it and it'll probably pop up right away. I think there are some tutorials on NESdev by GBAGuy which I guess are good (haven't looked at them, really, but I hear people talk about them a lot). You'll probably want a copy of NEStech -- don't be intimidated by its large file size... the only things you'll have to worry about for now are the memory map portions (for both CPU and PPU) and the register descriptions near the bottom. And finally, there's a fantastic reference page here, which covers all 6502 instructions and addressing modes. And of course don't be shy about asking questions around here. Myself and other 6502 goons would be glad to answer any Qs you get. I'd recommend starting with a simple program that doesn't draw anything... just have it change the background color every frame... you should be able to do that in under a page of code. |
|||
TFG Level: 5 Posts: 6/7 EXP: 452 For next: 77 Since: 03-15-04 Since last post: 269 days Last activity: 265 days |
| ||
Word to Disch. Learning an assembly language doesn't take more than 20 minutes (even less, if you're familiar with other not-so-high level languages). The only difficulty resides in learning how to use the surrounding hardware properly (specific to the gaming console that's using N microprocessor). EDIT: and yes, the poll is a bit unbalanced. Each language's learning curve varies depening on your goal (what do you want to do with X language). (edited by TFG on 10-26-04 10:34 PM) |
|||
elixirnova Red Paratroopa Level: 22 Posts: 101/177 EXP: 56507 For next: 1843 Since: 04-05-04 From: Midgar Since last post: 1 day Last activity: 1 day |
| ||
For the assebly definatly start with 6502 its gonna be a bit simpler but most like 65816 I started by learning what the op-codes do but what helped the most was having another person help me who is experienced. Once you learn what the opcodes do you should go ahead and look at some of the really simple homemade roms with 'notes' in the assebly. I never did get into assebling my own roms but i then started learning how to use nes debugger and try reading what it does to the data in assembly. That would probably be best to learn asm but for C++ id start with VB or VB.NET which lots of people could help you with or if you dont mind DOS based programming try out C which is fairly simple but the same structure as C++ will use. C++ just has the stuff that'll help you easily make more graphical interfaces and such . Hope this helps and theres a list of what languages people here are willing to help with should be stickey'd im pretty sure so take a gander have fun! | |||
neotransotaku Baby Mario 戻れたら、 誰も気が付く Level: 87 Posts: 1566/4016 EXP: 6220548 For next: 172226 Since: 03-15-04 From: Outside of Time/Space Since last post: 11 hours Last activity: 1 hour |
| ||
Originally posted by Disch i was referring more to stack manipulation, using pointers, interpretation of memory, memory management, and stuff like that that you need to consider whereas higher level languages you do not worry about that because the complier/interpreter takes care of that for you. yes, on a simple system the processor speed, memory size, and stuff is completely known but robust programs shouldn't depend on those things but that is an different issue here. all programming languages must find a balance between power and ease. Majority of assembly languages (not looking at hardware) provide a bunch of power but not ease. For example, adding to variables stored memory may take 6 instructions to do whereas only one statement in a high level language like C. so yeah, i believe higher concepts of programming languages are better learned with high level languages but ultimately in the end really depend on assembly to get it done. so it essense, either you learn all the parts and build the concepts, or you learn the concept and see what makes the concept. (edited by neotransotaku on 10-27-04 07:12 PM) |
|||
Dish Spiny Level: 38 Posts: 147/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Well the bottom line is... the concepts are going to have to be learned no matter which language he chooses. Programming fundamentals are the same (or very similar) regardless of the language you use.. the only real difference is the syntax. And since his ultimate goal is to learn 65816... he's better off learning the concepts as they apply to assembly. 65816 is basically an 'upgrade' to 6502.. so by starting with 6502 (which is very simple), he'll learn pretty much everything he'll need to know right off the bat. When he makes the move to 65816, all he'll have to do is familiarize himself with a handful of new instructions/addressing modes. If he starts with C/C++ or Java, most of the things he'll be learning will not apply at all to 65816. Yeah... he'll get programming concepts and fundamentals... but that will just as easily come from coding in 6502. And typically... coding in 6502 (while more limited) is a lot simpler. There's what... under 60 instructions? Most of which are basically the same things as others (LDA vs LDX, BMI vs BPL), and some of which are borderline useless (BRK). There are WAY more than 60 operators/keywords and weird funky rules that don't apply to assembly that you'll have to memorize if you take the C/C++ route... and I'm sure it's the same for Java. If he were shooting to learn a higher level language, I'd agree that he should start with something like C/C++... but since he'll have to drop most of the info when he switches to asm, it doesn't make a lot of sense for him to start there in this case. Atma X: if you do decide to take the asm route... you might want to pop in #consoledev on irc.esper.net. Myself and a few other people kind of idle in there and are willing to teach/assist/help people with this kind of stuff. (edited by Disch on 10-27-04 05:48 PM) |
|||
Kitten Yiffer Purple wand Furry moderator Vivent l'exp����¯�¿�½������©rience de signalisation d'amusement, ou bien ! Level: 135 Posts: 5620/11162 EXP: 28824106 For next: 510899 Since: 03-15-04 From: Sweden Since last post: 3 hours Last activity: 4 min. |
| ||
Well, I know Java and Delphi. And surpingly I found Java both more fun and easier than Delphi. Java made more sense for me. And well C++ and Java is similar, ASM is way diffrent. Seen ASM code, hadn't even tried to understand it. |
|||
Atma X Bandit Level: 43 Posts: 600/801 EXP: 553639 For next: 11407 Since: 03-16-04 From: Derrière vous!!! Since last post: 43 days Last activity: 14 days |
| ||
@ Disch: I tried opening the .exe files from x816 (because that was the only thing I could find besides Text Files and Unknown Files.) and all I get is an MSDOS/Command Prompt window that stays open only for a split second, and then automatically closes. (I'm sure I'm doing something wrong, but I'm a little lost on that right now ) Btw: I am going to take C++ in college (next year), and I was wondering (when I first created this Thread) if I should wait and start with C++ first, or if it would be eaiser to start with something like 6502 or 65816 while I'm waiting to take C++ (basically saying, I want to learn both 65816 ASM and C++, but I wasn't sure which one I should start with). But anyway, since 6502 ASM is easiest, I'll start there, and then learn 65816 ASM (which is similar), and then I'll learn C++ (so I'll end up learning 3 languages all together) (edited by Atma X on 10-28-04 11:20 AM) (edited by Atma X on 10-28-04 11:40 AM) |
|||
Dish Spiny Level: 38 Posts: 148/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Originally posted by Atma X Well it's a commandline app. Pretty much every assembler/compiler is going to be. There won't be an interface... you'll have to pass the files you want assembled in the commandline (there should be a readme with it that explains how to specify files). If you want to see the error it's giving before shutting down... open a command prompt window from Windows (Start | Program Files | Accessories | Command Prompt on my 2k machine) and run the exe from there. It's probably saying that you're not specifying any files to assemble or something. But you might be getting a memory error (I had that same problem when I tried to use it). Someone told me to right click on the exe and allow more memory to the app... they said that would fix it, but I haven't used x816 since then so I don't know if that really works or not. It probalby does. Note that before you actually run the assembler, you're going to need to have some code to assemble =P. You'll probably going to have to be doing your coding in Textpad, Metapad.... or (yuk) Notepad. Anyway... once you get the idea of how to use x816, you can make a batch file so make the process easier. Experience with C++ will help with assembly... but experience with assembly will help with C++ as well. Whichever one you want to start first will be fine. =) |
|||
Gavin Fuzzy Rhinoceruses don't play games. They fucking charge your ass. Level: 43 Posts: 282/799 EXP: 551711 For next: 13335 Since: 03-15-04 From: IL, USA Since last post: 13 hours Last activity: 13 hours |
| ||
you could also always try programming your own short and simple little frontend utility for it if you are really opposed to command line work. i'm not sure what language you would make it in, but you can access the windows API: ShellExecute from shell32.dll really the API does all the work for you, you just send it the file name and path, the .exe to run, and an optional string of parameters to go with it and you're done. |
|||
Dish Spiny Level: 38 Posts: 149/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
That looks basically like an app to do the work of a batch file... but more restrictively =P Just type in your text editor whatever you would normally type in a commandline... such as: cd C:\Some Directory\ compiler.exe file_to_compile.asm -options pause and save it as whatever.bat. Then just doubleclick on it when you want to build. |
|||
Atma X Bandit Level: 43 Posts: 601/801 EXP: 553639 For next: 11407 Since: 03-16-04 From: Derrière vous!!! Since last post: 43 days Last activity: 14 days |
| ||
What exactly is a disassembler used for? (I assume used to decompile code so you can edit it and then you can recompile it and insert it back into the game,... is that right?) (edited by Atma X on 10-28-04 06:38 PM) |
|||
neotransotaku Baby Mario 戻れたら、 誰も気が付く Level: 87 Posts: 1575/4016 EXP: 6220548 For next: 172226 Since: 03-15-04 From: Outside of Time/Space Since last post: 11 hours Last activity: 1 hour |
| ||
a disassembler takes the hex view of a program and transforms it into something more human readable. | |||
Atma X Bandit Level: 43 Posts: 602/801 EXP: 553639 For next: 11407 Since: 03-16-04 From: Derrière vous!!! Since last post: 43 days Last activity: 14 days |
| ||
I'm confused on what some of this stuff even means . Here's a couple lines from NEStech.txt that I was looking at (just as an example). ***************************************************************************** Writes to the Horizontal Scroll value in $2005 range from 0 to 256. Writes to the Vertical Scroll value range from 0-239; values above 239 are considered negative (e.g. a write of 248 is really -8). ****************************************************************************** What does it mean when it says that "something" writes to the H Scroll value in $2005 range from 0 to 256. (what is $2005,... is it an address, and if so, why does the H Scroll value have to be at address $2005?) Originally posted by Disch Can you give me some instructions on that to help me get started? BTW: The only thing I saw on irc.esper.net was a "Parent Directory" page . (edited by Atma X on 10-29-04 04:41 PM) (edited by Atma X on 10-29-04 04:56 PM) |
Pages: 1 2 3 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Programming - Easiest programming launguage to learn | | | |