Easiest Programming Language to Learn?

Hitsurume

n00b
Joined
Apr 19, 2005
Messages
11
Hey Everyone

I'm wondering, whats one of the most easiest programming languages to learn? I'm looking for a language that'll create simple text games. I've heard that Visual Basics is relatively easy to learn, but is there anything else?

P.S: I've tried learning C and C++ but it always gets relatively harder for me once I get past Arrays and into other subjects of the language.

Thanks
 
If you can get to and beyond arrays in C, I'll assume that it's concepts, and not syntax, that's tripping you up.

VB syntax is more forgiving than C, yes. The necessary concepts for game programming, though, exist irrespective of language choice. I'd start hitting your local bookstore and browsing through programming texts -- see what you can find that makes sense to you.
 
I found that once I had learned my first language and was comfortable with programming concepts and methodologies -- most of the other languages I tried were relatively easy to pick up.

The key is understanding the concepts and methodologies behind programming. Once you have that, you can pick up just about any language you need in a short period of time. Then with the understanding of multiple languages you have the luxury of choosing the right tool for the right job.

As you can probably tell from my statements above, I tend not to memorize, but learn the concepts involved. In my experience I have found that far more useful.
 
Most languages have their good points and bad. Feel free to add to this list :)

C/C++
Pros
Fast, Bare Metal, even drop to assembly if you want.
Large base of OpenSource software

Cons
No memory management. Memory leaks are a problem.


VB
Pros
Memory Management via a garbage collector.
Easy integration (Especially in .Net) with other technologies like C# and ASP
Easy syntax to learn

Cons
M$ :)

Java
Pros
Memory Management via a garbage collector.
Large base of OpenSource software
Sorta strong typing
Write Once-Run Anywhere (In Theory )
Pure Object Oriented design

Cons
Pure Object Oriented design :)
Bytecode VM execution slower
 
wireplaycc said:
Home: AMD Athlon 64 3500+ 939 90nm || MSI K8N Neo 2 Platinum || 1GB Corsair XMS PC3200 2-2-2-5 (LEDs) || XFX GeForce 6800GT || 2xWD 200GB SATA RAID 0 || Ultra X-Connect 500W || Coolermast Wavemaster (Black) || Sony 17" SDM-S74/B LCD || Wireless Logitech MX700 || Wireless Logitech Keyboard

On a sidenote... wireplaycc has a kick-ass system :D

You must have a high-paying job programming all those programming languages to be able to afford a system like that... the only thing I'm not jealous of is your 17" LCD... my dual 19" Dell 1900FP's do just fine :p

That XFX 6800GT kicks the sh*t out of my XFX 6600GT... but, I can't complain... dual DVI output is all I need :)

As for programming languages... I learned (in that order):

Basic (using Q-Basic under MS-DOS)
Java
C++
VB

As for web programming:

HTML
PHP
ASP

And, somewhere in there, I also learned some SQL.

Good luck and let us know what you chose!
 
Darth Bagel said:
You didn't mention that VB is slower than dog shit.

The few times I've directly compared C++, C#, and VB by writting the same program in each, the differences were minor. The first two tied, or were within a few percentage points either way, and VB was about 20--30% behind. Ya, it's slower, but still pretty fast. Is there some scenario you are specifically refering to with that statement? Some case where VB is dramatically slower?
 

In C and C++ you have to explicitly delete or free something in order for the memory to be released. Other languages like Java have a built in garbage collector so that if you leave a reference hanging in the "land of the lost" the resources are freed to the system. It is still possible to get memory leaks in Java. Just look at the beta versions of Eclipse :)

VB is slower than dog shit
Depends on where you are running it and what version you are using. Actually alot of the slowdown can come from the inability to optimize as much. Makes it ALOT harder to drop to assembly

Or that java sucks at GUI's.
Well when you first start out it can be really hard to build the GUIs. Especially if your using like Notepad or something. A real editor like Eclipse with Visual Editor installed makes things ALOT easier. I can whip out a pretty slick GUI in a couple minutes. One thing I really like about Java GUI is the GridBagLayout :) Automatically resizes all your components to fit the window if it is resized. I know it was a pain in the older versions of VB. Now, You want to talk sucks to build GUI I got one word for you "XWindows" :)
 
Quote:

Home: AMD Athlon 64 3500+ 939 90nm || MSI K8N Neo 2 Platinum || 1GB Corsair XMS PC3200 2-2-2-5 (LEDs) || XFX GeForce 6800GT || 2xWD 200GB SATA RAID 0 || Ultra X-Connect 500W || Coolermast Wavemaster (Black) || Sony 17" SDM-S74/B LCD || Wireless Logitech MX700 || Wireless Logitech Keyboard

On a sidenote... wireplaycc has a kick-ass system

You must have a high-paying job programming all those programming languages to be able to afford a system like that... the only thing I'm not jealous of is your 17" LCD... my dual 19" Dell 1900FP's do just fine

That XFX 6800GT kicks the sh*t out of my XFX 6600GT... but, I can't complain... dual DVI output is all I need

Quick off topic reply... I need to update my sig -- I sent that XFX 6800GT back as it died on me the 2nd week I had it. In it's place resides a BFG 6800GT (only one DVI /sad panda). I saved my cash for a couple of months and decided to splurge -- as I'd been living off a laptop for the past 5 years *ugh*. I'm happy in my career (not as high paying as you would think though -- currently living in maine, high rent and high taxes).
 
[MS] said:
The few times I've directly compared C++, C#, and VB by writting the same program in each, the differences were minor. [...] Some case where VB is dramatically slower?

VB 6 and VB.Net are both slower for client-side apps, as they must rely on WinForms to do their GUI work. WinForms is not performant.

If you're really comparing the langauges directly and not doing anything with the system (eg, not using the frameworks) I'd agree -- the perf differences aren't substantial for most applications.
 
Hitsurume said:
I'm wondering, whats one of the most easiest programming languages to learn? I'm looking for a language that'll create simple text games. I've heard that Visual Basics is relatively easy to learn, but is there anything else?

P.S: I've tried learning C and C++ but it always gets relatively harder for me once I get past Arrays and into other subjects of the language.
Visual Basic, C, and C++ would be the last languages I would recommend for something like this. Except possibly FORTRAN or Brainf**k or whatever. I highly recommend learning Ruby. It is very easy to write simple programs, but it will also allow you to extend your simple programs, building on them in order to learn new programming concepts. There are a lot of great tutorials out there if you find that book I linked to too fast-paced.
 
aringail said:
In C and C++ you have to explicitly delete or free something in order for the memory to be released. Other languages like Java have a built in garbage collector so that if you leave a reference hanging in the "land of the lost" the resources are freed to the system. It is still possible to get memory leaks in Java. Just look at the beta versions of Eclipse :)

"No memory management" is far from no automatic memory management. Cant believe some one actually likes the garbage collector idea. If you cant remember to reset the stack after your done using it you shouldnt be using dynamic allocation.
 
Lord of Shadows said:
Cant believe some one actually likes the garbage collector idea.
I can't believe people actually enjoy having to explicitly manage memory when there are such effective GC strategies out there. ;)

It's a trade-off, as so many things are. The price I pay for faster, less bug-prone development is a lower performance ceiling and a larger memory footprint. Whether or not the benefits outweigh the disadvantages depends on the programming task at hand, the expected development cycle, and many other factors.

Regardless, Java is nearly as bad for a beginner as C++ is compared to alternatives like Ruby, especially when the programming task is a "simple text game".
 
Lord of Shadows said:
"No memory management" is far from no automatic memory management. Cant believe some one actually likes the garbage collector idea. If you cant remember to reset the stack after your done using it you shouldnt be using dynamic allocation.

In what language do you have to reset the stack, yourself manually? Besides assembler?

Typically, the stack isn't involved in dynamic allocation; there's exceptions, like _alloca(), but normally dynamically allocated memory comes from a heap managed by the operating system, at least indirectly.
 
HorsePunchKid said:
I can't believe people actually enjoy having to explicitly manage memory when there are such effective GC strategies out there. ;)

It's a trade-off, as so many things are.

Indeed, it's a trade-off.

On my side of the curve, I almost always find that I can do a more efficient job with my object and data lifecycles than the compiler or the langauge can, and so I'm much more comfortable taking care of them myself.

Since I'm a competant developer, I don't spend much time chasing memory allocation bugs. Sure, they happen, but I haven't ever seen a study that conclusively proves that GC'ed languages are substantially faster for development than environments that don't GC.
 
Back on topic - If the OP wants a language that's simpler than C or C++ and wants to work in a text-based game, something like Python or Ruby would be ideal. Easy to learn, provide many higher-level language features, have garbage collected memory management, are (generally) portable, free development tools and are nowhere near the attrocity that VB has become.
 
perl was the first thing i learned
no one i know has had a problem learning it
it's a great language
i suggest it.
 
thats only if you are using heap space. If you only use delcared variables (stack space) you don't have to deal with that shit.

aringail said:
In C and C++ you have to explicitly delete or free something in order for the memory to be released. Other languages like Java have a built in garbage collector so that if you leave a reference hanging in the "land of the lost" the resources are freed to the system. It is still possible to get memory leaks in Java. Just look at the beta versions of Eclipse :)
 
Whatsisname said:
thats only if you are using heap space. If you only use delcared variables (stack space) you don't have to deal with that shit.

Imagine that, exactly the same as C/C++....
 
mikeblas said:
In what language do you have to reset the stack, yourself manually? Besides assembler?

Typically, the stack isn't involved in dynamic allocation; there's exceptions, like _alloca(), but normally dynamically allocated memory comes from a heap managed by the operating system, at least indirectly.

Well, I remember looking at the assembly generated by msvc and it used the stack for both malloc and the new operator. Maybe I mistook some local variable allocation for my dynamic allocation.
 
I would specifically vote against Python. I hear that it's supposed to be easy for beginners to learn (and that that was possibly even a design goal). My experience with it has been quite the contrary, though maybe it's just because I'm not a beginner. Maybe my preconceptions from the many other languages I've used just made it harder to find any rhyme or reason to the syntax and libraries. But that wouldn't explain why it was so infuriatingly difficult to find good references and tutorials online. Even the global and library documentation from python.org is well below the standards set by other languages like Ruby and Java.

Having hacked on Trac for many hours, I have concluded that Python is by a large margin the worst language I've ever had to use. It's still undoubtedly better than Java or C++ for a beginner, but I would take Ruby over Python any day.
 
Lord of Shadows said:
Well, I remember looking at the assembly generated by msvc and it used the stack for both malloc and the new operator.
Maybe I mistook some local variable allocation for my dynamic allocation.

Indeed, you must have been mistaken about the code your were looking at. malloc() and operator new() are functions, and the compiler emits a function call.

In the question of the implementations supplied by the Microsoft C/C++ runtime libraries, the compiler can't optimize out that function call because it doesn't know the side-effects of the call. It hasn't seen it's implementation because it's not an inline.
 
On topic-wise, I would say Java is a good first language. It's not necessarily easy, but it's a hell of a lot easier than C/C++ and also quite powerful due to the API. However, object oriented might be a bit tough if you're not familiar with it. I'd recommend a good book, though I can't say I know of any.
 
I am a beginner and I am currently learning C++ as my first language. Though, other languages may be easier to learn, I think C++ is the most worth while. Other languages, I do not think are nearly as powerful, versatile, or useful as C++ in the long run. In my view, its better to invest time and struggle for a while with one powerful language and get to know it well rather than learning easier, but less useful (or used) languages.
 
Although I agree I shoul dedicate my time to solely learning a hard language like C or C++, sometimes I just don't have time to spend to really think things through.
Which is why i'm hoping to learn a easier language in a quicker time frame and work on some things that's been in my head.

Thanks everyone for all the great replies
 
Hitsurume said:
Although I agree I shoul dedicate my time to solely learning a hard language like C or C++,
I do not believe that C++ is a hard language to learn. I think it's of medium difficulty to learn. A hard language would probably be something like Assembly Language.
 
{NcsO}ReichstaG said:
I am a beginner and I am currently learning C++ as my first language. Though, other languages may be easier to learn, I think C++ is the most worth while. Other languages, I do not think are nearly as powerful, versatile, or useful as C++ in the long run. In my view, its better to invest time and struggle for a while with one powerful language and get to know it well rather than learning easier, but less useful (or used) languages.
I know alot of people who would disagree with you.
Most programmers I know say it's important to learn more then one language.
It's also important to understand the basics of programming, which will help you learn more languages.
Almost everyone I know suggests c > c++.
Learning another language first, like perl, would help you learn things like c/c++ too, syntax similiarities.
Perl is powerful and useful, you can't put it down. :]
 
shaine said:
I know alot of people who would disagree with you.
Most programmers I know say it's important to learn more then one language.
It's also important to understand the basics of programming, which will help you learn more languages.
Almost everyone I know suggests c > c++.
Learning another language first, like perl, would help you learn things like c/c++ too, syntax similiarities.
Perl is powerful and useful, you can't put it down. :]

If you want to really understand the basics of programming then, wouldn't Assembly Language be the best to start off with? It would teach how the computer functions.
 
It's nice to know how a computer functions but the whole point of high-level languages is to provide abstractions from the low-level goings on of the computer. It helps, to a degree, to understand how to write things somewhat efficiently but the nuts&bolts details of assembly really get in the way of figuring out things like basic program logic & clean program design. On top of that, if somebody wants to learn to program, it's probably because they have some problem in mind they want to solve - assembly is, for most applications, the least efficient way of doing so. When you add in the fact that modern CPUs, with their pipelined superscalar architectures, are so complex that generally a C compiler is going to turn out more optimized code than humans in all but a few rare cases, there becomes even less of an incentive to learn assembly, especially as a first language.

Should somebody learn the details of internal-combustion engines and transmissions before learning to drive? Most sane people will say no.
 
{NcsO}ReichstaG said:
A hard language would probably be something like Assembly Language.
Hah! No way. Not if you've tried to program in something like Maude (a logical language, like the more-widely known Prolog). I wrote this program to generate this and this. And Maude is actually a practical language with real uses, unlike some intentionally difficult languages like Brainf**k.
 
thats only if you are using heap space. If you only use delcared variables (stack space) you don't have to deal with that shit.

Well, that goes without saying. But then again what kind if REAL application won't use the heap at some point. The stacks all well and good. But when you are trying to do real stuff you will probably have to go to the heap at some point. Stack can only get so big after all.

Easy languages:
VB (Even if it doesn't run real fast (debateable) it IS really very easy to learn)
Java (Built-IN GC/Sandbox keeps you from running into the good old Seg-Fault)
C (As long as you don't use the heap it's actually very easy since you don't have to worry about Object Orientation)

Alot of people seem to like Perl. I always thought it looked like Line Noise. But then again I am an unitiated programmer.

Honestly I would probably pick VB for a first langauge. It's pretty friendly and at least a passable language. I know alot of BIG (F500) companies that use VB alot in their infrastructure so getting a job from it shouldn't be all that hard.
 
aringail said:
I know alot of BIG (F500) companies that use VB alot in their infrastructure
{NcsO}ReichstaG said:
I doubt that
I don't doubt it all, at least for a sufficiently broad definition of infrastructure. VB, for all its horrible flaws, is a very, very common (and perhaps arguably even effective) platform for building desktop clients to business processes. Add VBA into the mix, and you have something that integrates very well (shudder) into MS's Office suite, which is certainly very widely deployed.

Whether or not you consider such applications to be part of infrastructure is just semantics. VB is quite common, and I'm sure a competent VB programmer (oxymoron?) can easily find a job doing corporate application development.
 
Here's a little object lesson. I recently worked for a large bank, one that seems to like stage coaches. Anyways they had several hundred MS Access Databases that handle a good portion of the work that actually gets done.

The thing to remember is that most of the programming of actual business software isn't done by some geek in the back room (Me :) ) it's done by some business guy who has no idea what he is doing. So he uses Access or VB to whip something up.

The thing is these stupid little apps are sometimes quite a hit. It's like they invented fire and all the other business people are standing around them hooting like cavemen.

What happens next is that they decide this application needs to be used enterprise wide. But most of these companies don't want to fork over the money for a REAL solution. So they hire some poor guy to come in and move the system to some under-powered barely liscensed DB server or even just keep the Access DB and put some ASP on some crappy server.

In the real world where business happens most of the programming sucks. It's taking barely defined requirements and horrible tech limitations and trying to make something out of it. If you can find your way into a web-shop or a development house then more power to you. But if you ever wonder why languages like Cobol and VB seem to be very popular remember my rant here.

But that's just my opinion and I could be wrong :)
 
aringail said:
In the real world where business happens most of the programming sucks. It's taking barely defined requirements and horrible tech limitations and trying to make something out of it. If you can find your way into a web-shop or a development house then more power to you. But if you ever wonder why languages like Cobol and VB seem to be very popular remember my rant here.

But that's just my opinion and I could be wrong :)

you speak truth my friend. you speak truth...
 
Back
Top