The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    Is there a place where i can learn game modding and simple programming?

    Discussion in 'Gaming (Software and Graphics Cards)' started by Ardor, Oct 10, 2006.

  1. Ardor

    Ardor Notebook Evangelist

    Reputations:
    25
    Messages:
    313
    Likes Received:
    0
    Trophy Points:
    30
    I have some ideas and i wanna see them materialized... I know this may have been said a million times, and i probably won't end up doing it, but maybe someone else in this forum will follow the link and become a true game maker?
     
  2. zadillo

    zadillo Notebook Virtuoso

    Reputations:
    421
    Messages:
    3,770
    Likes Received:
    3
    Trophy Points:
    106
    You might want to check out:

    http://www.garagegames.com/

    They have a variety of game engines and kits that are well suited for learning, and a very supportive community.
     
  3. m4rc

    m4rc Notebook Evangelist

    Reputations:
    109
    Messages:
    457
    Likes Received:
    0
    Trophy Points:
    30
    is there any free downloads on that website which would let me make simple games or something?
    I just took a quick look and all i see are demos..
     
  4. zadillo

    zadillo Notebook Virtuoso

    Reputations:
    421
    Messages:
    3,770
    Likes Received:
    3
    Trophy Points:
    106
    I don't know that there's anything free, but the indy license for the Torque stuff is pretty cheap (this is the license you can use as long as you aren't a commercial game developer, and I think have sales under a certain amount). Torque is probably one of the really good ways to learn about making games now, and is powerful enough that what you learn will be applicable for larger games down the road.

    There are some other really cheap game engines and stuff but they are more basic oftentimes, or at least more specialized to certain game genres (FPS's, adventure games, etc.).

    It depends though, what sort of games are looking to make? You will find some free game engines and development systems for certain game types, but I don't know as much about how useful you'll find them. The other nice thing about going the Torque route is that you have a pretty big developer community that can assist you and offer advice, etc.
     
  5. Pitabred

    Pitabred Linux geek con rat flail!

    Reputations:
    3,300
    Messages:
    7,115
    Likes Received:
    3
    Trophy Points:
    206
    Go to Barnes and Noble, and pick yourself up a beginning programming book. Not game-specific or anything like that, just something that'll introduce you to C++ or Java from the ground up. And get a 3D modeling book if that's what you want to do.

    And after that? Google.com. Seriously. It'll take a lot of work, and there's more than likely a lot of math you'll have to learn and understand as well. But it's worth it ;)
     
  6. Charles P. Jefferies

    Charles P. Jefferies Lead Moderator Super Moderator

    Reputations:
    22,339
    Messages:
    36,639
    Likes Received:
    5,091
    Trophy Points:
    931
    Right. There are a lot of great step-by-step books out there. You'll need some basic programming knowledge before you start doing games so you might want to get an general Intro book to start with.
     
  7. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    First, I'd say drop by Gamedev.net, read the "for beginners" resources, and then check the forums.

    Second, can you be a bit more specific about what you want?
    Do you really need to program?
    And if you do, do you need to program in C++?

    Those are two assumptions that beginners often make. And then they realize how tough that can be to get started with, and give up.

    For just getting your feet wet, you might want to check out www.gamemaker.nl
    No programming required for that, and it does let you make relatively complex games, while also giving you a kind of feel for what is required for making games, and even how to approach programming. (Gamedev.net runs an annual contest, make a game fitting a given theme, over ~5 months, and last year, it was won by a guy who made a 2d sidescrolling platformer using Gamemaker. **** fun game too. :))

    Alternatively, look at the moddable games you know of, check out what it takes to mod them. It varies a lot.
    Source games require knowledge of C++, and almost infinite patience. Civilization 4 gives you a sort of layered access. For just getting started, you can edit xml files and play with the world editor. If you want to go one step deeper, you can learn Python, and script your own mods. And if you want *full* access to everything, you use C++ to compile your own game dll's.

    And lots of games just give you a map editor and some simple scripting language to play around with.

    But *if* you want to learn programming, it's the hard way. Buy a book about it (and again, you don't need to start with something like C++, and you probably won't save any time by doing it. You're typically just increasing the odds of getting frustrated and giving up)

    For a "soft" start to programming, Python is a very popular beginning language (or rather, it's very often suggested to beginners by people who already know programming inside out, which I'd say carries a lot more weight than what beginners themselves choose ;))

    But yeah, look around Gamedev.net. Lots of resources, tutorials, book reviews and clever people to ask.
     
  8. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    The most of "step-by-step" books are real trash meaning useless, especially books like "Teach Yourself *** in ** Hours", they just can teach how to do simple programs for certain purposes and nothing more. So be careful about that you can not learn similar thing for several days, it just needs a lot of practice. Also it's good to know that all programming is based on applied mathematics turned to computer algorithms and data structures. Having passed all that then it's time for some real programming environment....

    As for the language with which to start, the object oriented programming is the most important nowadays, everything which is procedure based is not worth so much attention. Yes the C++ could be a real trouble for a beginner but there are enough well witten book which would make it easier. So yes the objects and C++ are the beginning of everything in programming and you don't need to waste time for crippled and useless languages.

    And so it's a long way....
     
  9. Charles P. Jefferies

    Charles P. Jefferies Lead Moderator Super Moderator

    Reputations:
    22,339
    Messages:
    36,639
    Likes Received:
    5,091
    Trophy Points:
    931
    Hence I said "...a lot of great step-by-step books . . " and not all.
     
  10. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    Don't become petty ;)
     
  11. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    There's more to programming than OO vs procedural.
    How about functional? Aspect-oriented? Logic-based?
    There are plenty of entirely different languages to dig in, and many of them are invaluable for a programmer looking to improve.

    First, you do not "waste time" if you learn another language.
    It may make it easier to learn the basics of programming (which is a hell of a lot more important to beginners than understanding pointers, segfaults or other C/C++ "quirks"), which means you save time on getting started.
    It also teaches you aspects that you don't learn properly if you only look at C++. So it makes you a better programmer.
    And it makes it ridiculously easy to learn other languages afterwards, meaning you don't waste time learning two languages. You learn one, and then spend a few days picking up the other.
    languages other than C++ are not crippled, and not useless. Many of them allow you to be far more productive, many of them are far better at allowing you to write bug-free code, many of them teach you techniques that are useful even in C++. And many of them do things that simply isn't possible in C++.

    Which "crippled and useless" languages do you know? Let's get some facts on the table here.

    I can say from experience that ML is an excellent starting point. It allows you to focus on the "mindset" behind programming, without bothering you with C++'s complexities. I can also say from experience that most ML programmers tend to pick up C++ in 2-3 days. At university, we learned ML first, then a bit of Java, and then we were given a few days to pick up C++ on our own, before we had to write an OS kernel in it. And it wasn't a problem. Once you know one language, picking up others is simple simple.

    I know from work that C# is ridiculously more productive than C++. It's amazing how much more *correct* code I can churn out in that language.

    I know that Scheme or Lisp is good enough to be used by NASA to control Mars probes. It's also good enough for CS students at MIT. It's also a powerful language that completely sidesteps so many limitations in C++ that you probably weren't even aware of.

    Python is a hugely popular scripting language for a reason. It's good enough for Civilization 4 to use heavily. It's good enough that most experienced game programmers I've talked to recommend it as a starting language.

    And while I hate Prolog with a vengeance, it's still an interesting, and very different, take on programming. Apparently it's widely used for air traffic controllers.

    (No offense, but this is one topic that can really piss me off. When beginners ask for advice, I believe they deserve better than ignorance and biased opinionated nonsense.)
     
  12. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    yes that's true and the most of them are really interesting but they just don't have real value in practice

    The beginner doesn't need to start with the pointers, there are enough well written books that just present the objects as a part of the real world, and the beginner doesn't even need to hear about C and low level operations and pointer arithmetics... And also the complexity is in C but not in C++ and when the ideas of C++ are represented in a right way there is nothing understandable in them. However you probably have nothing to do with C++ (programming too) and you have never seen real C++ code when you are talking only about pointers... probably these pointers are just a part of your nightmares...

    There are huge amount of universities which starts with a long C++, applications, algorithms and data structures course.... ask them way they do that (I suppose no I' sure that you just have no enough knowledges to understand that). And then (second or even third year) they learn functional/logic programming just to have the idea of all programming technologies but only if they want (elective courses) because these language are not basic but rather 'exotic'.

    heh it's relative but... there are plenty of them, starting from my "old friend" Pascal then crippled, slow and limited in some cases Java unless you make ugly applets... and uh.. I won't forget the bigger brother Delphi.. ok it's not useless but really limited and I can't stand it.

    As for, Scheme, Python and Prolog, yes I liked them when I was a student at university... and yes you can learn something interesting from each language but only if you have time for that...yes Scheme is very useful for the recursive way of thinking and Prolog for the logical... but please Prolog was the language of the future more than ten years ago. Is it still... I don't think it is just part of the past .... Scheme may be when you are for the first year in MIT but then... (Actually, at the univesity I took that course and I would not say that is so appropriate for the beginners... just the opposite they learn things that confuse them when they see a normal programming language)
     
  13. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    Apart from all the examples I gave? Apart from the fact that Crash Bandicoot was written in Lisp? Apart from the fact that Firaxis used Python for Civ4. Apart from the fact that those "useless" languages are good enough for air traffic controllers (where safety is more than a passing concern), and good enough for NASA (who has billions of dollars worth' of equipment at stake)

    You mean apart from:
    - Writing an OS kernel in C, C++ and asm?
    - Writing an anonymous chat client/server?
    - Writing a full 3d FPS game last year?
    - Wrote and optimized a fluid simulation solver, the result of which can be seen at www.plasmapong.com
    (can't take the full honor there. I didn't make the game, but I did help optimizing and tweaking it)

    And of course, other projects, such as writing a compiler, or a complete simulation of a pipelined CPU architecture, certainly didn't teach me what a pointer was.

    True, other than that, I have no knowledge of C++ or pointers.

    Now tell me, how can anyone learn C++ without being forced to encounter segmentation faults/access violations, buffer overruns, garbage data from out-of-bounds accesses on arrays?
    C++ forces the beginner to worry about a ton of housekeeping that just isn't important in the big picture. It's something a programmer should keep track of, yes, but someone who wants to learn programming should be able to learn, well, programming first.

    So because "some" universities do that, they must be right, and those that do otherwise are wrong? MIT's computer science program is wrong then? Tell that to all those who rate it #1 in the world.
    Yes, I'm not denying that a lot of universities start with C++. I'm saying that this doesn't automatically make it the best choice. Or that there might not even be an official "best choice". If that offends you, I'm sorry.

    You mean all the ones that belong to the same programming paradigm as C++? The ones that don't bring anything new to the table?
    Yes, those might be comparatively useless.
    Except that Java is pretty **** huge commercially.

    No it isn't. I hate the language, and it's horrible for a lot of tasks. But not for all. And learning it doesn't waste your time.

    You might want to take a look at what some of the really big game programmers think of programming languages. Tim Sweeney, the top guy at Epic, is very active in researching better programming languages, he's fully aware of C++'s shortcomings. ( http://lambda-the-ultimate.org/node/1277)

    Jon Carmack has always been open to alternatives. His old games were in C or asm, then he used C++ for a bit, now he's playing around with Java.
    And as I said, Naughty Dog wrote Crash Bandicoot and other PS games in Lisp.
    Sid Meier and Firaxis apaprently believe that stuff like Python is good enough for their hugely popular Civ 4.

    Crippled? Useless? Yeah, right. What's crippled and useless is a programmer who believes there's nothing left to learn, or that his tools can't be improved.

    To refresh your memory, I called you ignorant because you seemed to believe that only one language is useful or relevant to learn: C++.
    And that belief is proven wrong on countless levels, from high-quality computer science programs at universities, to professional game programmers, to professional programmers outside the games industry, to the sheer fact that other languages are actually widely used.

    I'll happily admit that my previous post wasn't the most polite, and it could have been worded better. But at least I backed up any claims I made.

    Anyway... Getting back on track, for those who asked about beginning programming, you might have sensed that not everyone agrees about "the best way to get started".
    The best advice I can give is don't try to find "the best way".

    If you choose to learn programming (which, as I said in my first post, you might not need, and shouldn't automatically assume you'll need, if you want to mod games), there might not be a "best way", but nor are there any obviously "wrong" ways. It's perfectly possible to learn to program games through any number of different routes, and the "direct" path is not always the fastest or best. (Again, now we're getting into the tricky area that not everyone agrees on) Regardless of whether this or that language is "useless" or "crippled", learning it will teach you important programming concepts, which carry over very well to any other language you may need to learn.
    So in the long run, it doesn't really matter what you start out with. You can pick C++ if you like, if you feel all macho and want to start out with the "industry standard", or you can pick Lisp or Haskell if you want to feel all intellectual and academic and superior to all the ignorant object-oriented peasants, or you can choose Python because it's just so **** easy to make games in. Whatever you pick, you'll be able to make games in any language you choose after about the same amount of time.

    Good, that's a great starting point. It will take quite a bit of work though, but wanting to create something from your ideas can be powerful motivation. :)

    A few things to keep in mind though,
    - You might not have to work alone. Teamwork is a great thing when making games. And in extension, you might not have to program anything at all. To make a complete game, you need graphics, animations, sound, as well as code. No one says you have to be the one providing the code. Hooking up with a group of others to make a game mod is typically a great idea. Good learning experience, and raises the odds of success drastically.
    - Ideas are worthless by themselves. You might have dozens of revolutionary ideas, but so does everyone else. So while getting a group together is a good idea, don't expect to be able to get away with being the "ideas man". You're going to have to bring some "practical" skill to the table as well. (The programmers on your team all have their own game ideas. So if all you give them is an idea, they might just decide that it's more satisfying to work on their own idea instead. But if you can provide ideas *and* code, or ideas *and* graphics, concept art, animations, music or something else, you suddenly contribute something that the programmer couldn't produce alone, and it becomes a lot more interesting. So while you have to learn some "practical" skill, it doesn't have to be programming.
    - Games can be made on your own without programming. There are great tools like Gamemaker, which lets you make quite complex games without touching a line of code. Some games come with modding tools that do not require a line of code either.

    Good luck with it. :)
     
  14. Charles P. Jefferies

    Charles P. Jefferies Lead Moderator Super Moderator

    Reputations:
    22,339
    Messages:
    36,639
    Likes Received:
    5,091
    Trophy Points:
    931
    This is a little too heated for my preferences so I will curtain off this thread; if anyone wants to continue discussion of basic programming tips or similar, feel free to start a new thread.

    I don't mind the actual discussion at all, but the personal comments are what caused this thread to be closed.

    Update:
    -This thread is being re-opened for additional discussion due to user request
    -I have filtered out the offensive comments/remarks; hopefully that will not continue - let me rephrase that - it will not continue or I will close this thread a second and final time.

    Happy posting.
     
  15. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    The problem is that there are lots of languages which are turn to specific areas, and others that can be considered to be 'universal'. And I think that the beginner first need to learn an 'universal' language and then it will be useful to look at 'exotic' languages... no matter useful/useless/crippled... a different language can only be advantage but only if you have the necessary base...

    I'm really not interesting about your knowledge of either C++ or any kinda pointers that exist... However, I mentioned that there enough well written books... so they usually start with STL and in this way avoid 'housekeeping' and see the 'entire world' then when the time comes they open the 'black box' and start making their own data structures...

    As regards universities, I don't care about university programs the people that make them are really not the best source... but I've seen so many diffrent strategies... I really think that language like C++ is suitable for the beginners and probably one of the reason is that it's probably the best environment for the base of the programming i.e. algorithms and data structures... However, there is no such animal as a perfect/best choice in this case...but to my mind you need to have 'good' base and then to play with exotics such as Lisp/Prolog/Python... and not that these languages don't have their places but you can be pogrammer and ...never use then.. Probably the best way is to try everything but I wouldn't shot at one's face all these languages it will be a bit shock... it's just not helpful and there is time for them, if needed...

    Actually, I think that you just see in my first post here more than is written there probaly things that you are afraid of... I don't know ... or probably I didn't make my viewpoint clear or... some people just need more explanation than the others...

    And so, just to make make first few sentences clear.... Yes I consider OOP to be the most important (the procedural is a part if it somehow and I don't see future in it... I hate it.. it's just so far from reality). As a crippled and useless language I define Pascal (I can't stand it... and there are still universities which start with it). And yes I said "the objects and C++ are the beginning of everything in programming" and I don't see anything wrong here and I can't see how this can mean that "C++ is the only one language which is useful or relevant to learn" or probably your imagination have something to do with that. However, fell free to continue interpreting that sentence in whatever way you like and I hope that you finally will find the sense in it. Quite honestly, I don't see how that can make one mad and shot personal comments...

    Programming languages are as a whole personal preference so everyone is free to like or dislike whatever language they think is appropriate but when we're talking about the beginners it's better just to take a sober view of the things.
     
  16. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    Soo, how about a language that's turned to the area of "beginning programmers"? Or "Games programmers"?

    Other than that, two points. First, most languages are really just as universal as C++. Show me one program you can make in C++ that can't be made in Python, Java or Lisp.
    You can't. Because they all allow you to do the same thing. The difference is that for some purposes, some of them make it a lot easier than C++ does.

    But *why* do you think a beginner should start with the most complex, low-level, messy language? True, it's also quite flexible and powerful, but so what? I've asked for some kind of facts a couple of times before, and I'll do it again. Yes, I know you think C++ is the one and only language, that all others are crippled and useless, but *why* do you think beginners should start with C++?

    That's why you told me I didn't know what a pointer was. Or that I needed to go back to university. You sounded *very* interested in what I knew, and particularly what I didn't know.

    You do not avoid the "housekeeping" just by using STL. You are still stuck with a language that allows a lot of errors that, in other languages could have been caught at compile-time, instead giving you incomprehensible (to beginners) error messages *at runtime*. Or even better, gives no error message at all, just weird, incorrect and random behavior.

    Again, you used them as an example before. But once I provide couterproof, it's "not interesting"? Shame you hadn't thought of that in your last post. You'd have saved yourself the bother of bringing it up. :)

    Ah, now we're getting somewhere.
    First, you've seen many different strategies. So have I.
    Have you seen any strategy that *failed*, or clearly provided worse results (as in, it made people give up, and/or, produced lousy programmers)?
    I haven't seen any that failed completely. What I *have* seen*is that regardless of which language you start with, you end up an equally good programmer in about the same time frame, regardless of which language you start with. But I have also seen that the "dropout" rate for C++ is a lot higher.
    Those two facts combined are what makes me suggest alternative languages. You learn just as much, and even because equally good *at C++*, but your odds of succeeding are just that much higher.

    Next, what makes C++ particularly well suited for algorithms and datastructures?

    I can write a quicksort algorithm in 2-3 lines in ML or Lisp. It'd take a page of code in C++, and be a lot buggier as well. Of course, this is probably only true for the recursive algorithms/data structures. Something like an array doesn't really exist at all, which obviously poses some algorithmic limitations.

    Python is just ridiculous in how easily most algorithms or data structures could be implemented.

    Does C++ provide a 'good' base? If anything, it locks you in, makes you accept a lot of flaws and shortcomings as "natural", and most importantly, it sloooooows you doooooooown. Especially if you're a beginner, the time wasted just getting started from scratch in C++ is, well, impressive. I'm not kidding when I say that you could learn Python, followed by C++ in the same time it takes to learn C++ as the first language.

    Even if we completely ignore what you think of as "exotic" (that is, all the stuff you can learn from programming, which benefits you even in C++, but which you won't learn *from* C++), just the time saved by starting with another language makes it worthwhile.

    But you can't be a python or java programmer and never use C++? ;)

    Afraid of? Are we talking about pointers again? Perhaps you'd, just for once, care to back up your statement? What am I afraid of, and what makes you think so? It seems to me that you just make personal comments instead of trying to back up your own claims with fact, evidence or experience
    Far from reality? And OOP isn't? Read this, please. OOP is an abstraction that works very well for some purposes, but not everything can be modelled as an object. What is most "realistic"? Modelling the concept of "taking out the garbage" as an object, or as a task or process? Plain old procedural code is simple, and for many purposes, unsuitable. But OOP is, in many cases, contrived and a very bad fit.
    Have you looked at STL recently? Wondered why so much of it doesn't use classes? Because for a lot of purposes, *not* using "traditional" OOP makes for much cleaner and maintainable code.

    But this is completely leaving out the functional programming paradigm, which, for some purposes is a hell of a lot cleaner, simpler and "closer to reality" than OOP will ever be. Note that I said "for some purposes". OOP definitely has its place. (And in any case, C++ isn't an OOP language, it supports multiple paradigms, although every single one of them are heavily watered down versions. If you really want to learn OOP, C++ is probably the worst place you could start)

    We're getting sidetracked though. The important thing is not "which programming paradigm is "the best", or "which language should a professional use?".
    It is "which language would be best for a beginner interested in learning game modding and simple programming". As such, it doesn't matter whether it's the language used by the pro's, and it doesn't in itself matter whether it's procedural, OOP or functional. (Or aspect-oriented or just plain weird). All that matters is that it teaches simple programming, does it well, and allows you to make or mod games.

    For modding, the choice is simple. "Look at the modding tools for your chosen game, and see what is required".
    For simple programming, and simple *games* programming in particular, it's trickier. Yes, C++ would fit the bill. But so would Python. PyGame is a pretty powerful package for beginning games programmers.

    Or maybe it was your statement that other languages are "crippled and useless" (your words). Just a thought.

    Personal comments like insulting my intelligence or the other ones you flung at me, you mean?

    Which is why I try to keep this factual, elaborate on any claim I make, explain how what I say is backed up by real-world experience, and do *not* try to dismiss criticism as "it's probably your imagination" or "you should probably go back to university".

    It's also why I in the original post asked you to explain a bit about 1) what made you believe what you believed, and 2) explain what experience you had backing it up, what facts you had to support your claims.

    Anyway, you said it yourself. Programming languages are really not much more than personal preference. Which is my point. C++ is not a shiny golden Holy Grail. Some like it, some don't. The fact that it's personal preference means that "other languages" can not simply be dismissed as "crippled and useless", because they aren't. If they were, it wouldn't be down to personal preference. Personal preference only makes sense when you have a range of equally valid choices.
     
  17. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    uh.. Jalf we are again somewhere in the middle of nowhere... now I see why my suggestion to have a dedicated programming section in this forum wasn't so good idea and I'll probably delete it. Otherwise this discussion become really boring...and I really don't feel like reading your 'nice' stories...

    First, the personal comments, you started first with them, then I continued and overused them... so I'm not apologizing at all... and you when you call me an 'ignorant' I have full right to call you a "shame for programming" for the SAME reasons... I'm not going to talk about that any more because I don't think that Chaz is in charge for deleting such staff here. However, it's good to know that on a different place words like "ignorant" would cause at least a 'nice' fight... (Say the time and place... I'm joking)

    And so, I'm sure that the original poster won't read our writings and they probably have nothing to do with what he was interested in... So we won't do harm to him at least...

    Now, we're talking... A long time ago in a galaxy far, far a way, (it wasn't so much ago ... uh... I mistook the story ... but …let’s say several years ago) there was a crippled and useless language called Pascal which has been considered as the 'best' for the beginners... I obviously hate this language and a several years ago in an university I made so many quarrel until I made some old professors (that’s way the universities are not the best source) learn C an then C++ and then the students in first course start with C++... why... because I really consider that the time in which I was learning Pascal is wasted... I just hate it...I just hate people who think that the beginners need a 'special' language which is clear and ordered and so on stupidities... So the first language that I liked and that I really enjoyed learning was C++ and I didn't have really experience before that (don't call Pascal I just avoided it as much as was possible) And so, I just don't believe in languages made for beginners... Pascal is the one... there are plenty of them... several month ago a fried (studying physics) complained that he has to learn Fortran and asked C++ books to learn it himself... so yes I state I consider some languages as crippled and useless not that you can't do all you want on them but not in a way I like...

    I didn't say that C++ is my favorite language but when you want to know yes it is. (but when I have to do something the language doesn't matter for me) That was my real first language and I really felt (still feel) free to do whatever I want.. I really like the 'tricks' that you can do and I like that my programs (no only my) were always different from the others due to the 'tricks'... Whether C ++ is the easiest way for the beginners probably (definitely) no but I consider C++ for appropriate because ... first I like it because it's some kind of 'mix' of lots of languages (all other are just its subsets, for example Java - just a ‘cut down’ version of C++ so you can write on it without learning it) I'd say the best of everything (excepting diff. paradigms) and it has very flexible and powerful syntax ... back to beginners I think that when someone would like to become something as beginning it's better to start with something 'real' even difficult and why not there are so many like me that have no problem with that (I gave that example for the universities that start with C++ because as a result they produce capable programmers (I’ve seen that)… like the others that start with rand(language)…probably) yes there are people who give it up… but please who says that everyone should become a programmer there are enough people in this world for everything… if you can’t find another job... If you really want it I don’t see reason not to do it…. Also I think that having leant a language like C++ then there is only a little step (1-2 days no more) that you should pass and you can write on any language that you choose (personal experience) but the opposite is not true. (Starting with Lisp/Prolog and then C++ well you’ll be wondering all day why you should declare the type of the variables… the algorithms, data structures …they will seem as completely different things).

    Jalf if you say that C++ is a low-level language sorry man I just can’t help you…and I really have to look for ‘personal comments’ here. (if want to understand C++ the best source is Bjarne Stroustroup – The C++ …for professionals not beginners, if not problem ) just understand that even though C is a subset of C++ they are completely different languages. For example, your beloved pointers are fundamental in C and not recommended in C++…

    Yes you can be only C++ programmer and will have so much work but please only Lisp/Prolog/Python programmer – that’s ridiculous. Can you write an operation system or an engineering environment (MATLAB (java, that’s way it cause so many problems)) or do you have powerful visual environment for them (Visual Studio)… are they so important or they just can be applied in specific cases (so-called ‘AI’ and so on) yes they are ‘exotic’. And Yes C++ is made to be and is UNIVERSAL language… these that you repeat again and again are just not designed to be and never were. They have their different place… I suppose that you don’t expect me to explain you all advantages of C++ because otherwise I should write a book thicker than Stroustroup’s

    One of the advantages of C++ is that consists C… and also you know that there is no real OOP language. I’d agree that in some cases OOP is unsuitable but I say that everything can be modeled as an object (not that you need) there are examples of class-functions and their pros in Stroustroup…. Then STL works for beginners very well look some book for that … and yes I read all STL years ago because I had to do the something similar… I’d say that it’s not written in the best way but there is a reason for that (again Stroustroup, better alternatives suggested) and you know that the author of STL is different…

    Just to make something clear: When I want to make personal comments I just do it… so that about pointers is your problem not mine and is not an indirect way to make personal comments… I think I showed that I can make personal comments directly… so just decide you problem with pointers as soon as possible… Actually, that’s interesting the pointers are the first or probably the only one big problem that the beginners have to “survive”… and one more thing: You don’t even know me and you tried to show me that you know what a pointer is… and you listed what you have written and so on… heh.. when you are sure in your knowledge why are wasting time to prove those things to someone who you called “ignorant”…. if I was an “ignorant”, could I understand what you are talking about?

    I’ve been leading such a discussion for yeas… so we can not decide that here … and if you know enough about programming (No offence, dunno that) I suppose that we can’t say almost anything new about that. Please don’t list links with article written by ‘pseudo- authorities’ because I can do the same.

    Programming languages are personal preference… of course… and I’m an “ignorant” because I like one language and you Jalf you are just a ‘shame for programming’ because as a different man like another language.

    yeeh I forget we live in 'vacuum' and there are no wrong choices...excepting the 'deep water' in which you can end up...

    That’s it.
    Sorry. I really have no time to write ‘soap operas’ here, especially when we are talking for situation in which there is no ‘more’ right. (Of course me)

    and Jalf we are again somewhere in the middle of nowhere
     
  18. PC_pulsar

    PC_pulsar Notebook Evangelist

    Reputations:
    5
    Messages:
    479
    Likes Received:
    0
    Trophy Points:
    30
    Take it easy both ;)
     
  19. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    The *only* "personal comment" I made was to call you ignorant, because that was how you seemed in the first post. Quite a lot of people who go "C++ is the only *real* language" are beginners who happened to choose to start with C++.
    I'd happily apologize if you'd bother to give me some facts to go by. If you tell me that you're more than such a beginner, I'll happily admit my mistake. But so far, you haven't contributed a single fact to the discussion.

    Furthermore, I don't think they're equivalent at all. "Ignorant" refers to your level of knowledge, or lack thereof, which it is possible to at least guess at based on what you write in this thread. "A shame for programming" requires you to know how well I program, which you can't really judge without seeing some of my code. Insulting my intelligence, or saying that I should "go back to university" has no basis whatsoever, and is *purely* personal insults. You don't know my educational status, and my intelligence has *nothing* to do with what you or I know of programming. Just like stuff like your looks, sexual orientation or anything else has nothing to do with this thread.
    So yes, ignorance is something that can be at least partially deduced from this thread because it revolves about knowledge and lack thereof. Of course, it might still not be justified, but my point is that it wasn't just a random insult, it was based on observational evidence. Just like your accusation of me being ignorant presumably was.
    But for the other insults, intelligence, "shame", educational status, "being unable to understand", those have no bearing on this thread, and there's nothing in this thread that qualifies you to judge me on these matters.
    That means they're *nothing* more than random insults.

    Just like saying "you smell" would, or "don't be such a jerk".
    But they can still be justified.
    Since I hadn't seen any evidence to the contrary, I've so far not had a reason to apologize.

    But you still learned Pascal before C++. If you'd started with C++ from scratch, it might have been a different story. No matter how much you hated Pascal, it still taught you a bit of the programming "mindset", which helps a lot when dealing with C++.

    Doesn't matter? You also said that all other languages were crippled and useless. ;)

    True. I'm not denying that C++ is, well, fun to play around with once you get started. Or that you can come up with some pretty impressive 'tricks'. :)

    Whoooa, hold it there.
    Java is not a 'cut down' version of C++. C++ is a cut down OOP language. And a *very* cut down functional programming language. And a decent procedural programming language. The languages that are dedicated to one paradigm only aren't "cut down" versions of C++, they're usually much more powerful *in their paradigm of choice*.
    "Real" OOP languages can do things that C++ can't, simply because, well, they're "pure" OOP languages. "Real" functional languages let you do so much that is either impossible, or requires insane feats of template metaprogramming.
    They are not "cut down" versions of C++. Saying so is, yes, ignorant. It shows that you do not know much about these other languages.

    What is "everything" then, if not different paradigms?

    Pointer to member:
    int (foo::*)(char,float)

    I don't know, I think beginners could spend their time more productively than trying to understand that kind of nonsense.

    Or how about the fun little detail that you're not allowed to do this:
    template <mytemplate<int, int>>
    but have to, *very important*, remember the space between the >'s?

    And don't even get me started on template error messages. Those are enough to swear anyone off programming for life.

    But why aren't other languages "real"?
    I've seen some really impressive games (even in 3d) made in Python in just a matter of hours. Why isn't that "real"?
    And it's also quite nice to start with something that allows you to see results, isn't it? C++ lags hopelessly behind in that respect.

    Ok, so you don't like Pascal, and I don't blame you. But that still doesn't make all other languages "useless and crippled", or "not real".

    but that doesn't really mean anything unless you can show that universities that start with other languages *don't* produce capable programmers. :)

    So, when a beginner asks you which language he should learn, you tell him "Take C++, because if you can't cut it, you probably shouldn't e a programmer anyway"?
    If someone wants to take a peek at programming, that's good enough for me. They'll have plenty of time to give up if that's what they're going to do. No need to make it harder than neccesary.

    Not true. (Also personal experience)
    In fact, at my university, we start with an obscure functional language, ML. On second year, we have our big OS course, with the great (and feared) kernel assignment. We have to write an OS kernel in C++ in 3 weeks.
    At that point, none of us (except those who learned it elsewhere) even know C++.
    We get four hours with an instructor to learn the basics, and that's it. Then we know enough C++ to get us through.
    Starting with another language certainly does not make C++ harder to learn. On the contrary. Could you have learned C++ from scratch *as your first language* in four hours? I don't think so. ;)

    Um, so?
    It's still a low-level language compared to many others, simply because it exposes a lot of low-level aspects. Pointers are there, and are occasionally neccesary, even if you can usually get away with using references instead. The memory layout of your data structures is directly exposed, and hugely important to keep track of. Segmentation faults are possible because of all the low-level mess you have to keep up with. Memory leaks for the same reason. Buffer overruns. All this is because the language is relatively low-level. It exposes a lot of messy internal details that 1) other languages successfully hide, and 2) for a beginner primarily serves as a source of bugs.

    Sometimes I feel like I'm talking to a wall here.
    Didn't you read my examples above?
    NASA hires full-time, lisp-only programmers. Airport thingies hire Prolog programmers to develop their air traffic controller software. Naughty Dog used Lisp programmers to develop Crash Bandicoot.
    Python? That's used for web development, for game scripting and quite a lot of other things. Should be able to find a job with that too.
    And Java? Well, there are thousands and thousands of fulltime jobs there.

    But all of this doesn't matter. The OP didn't ask "which languages can I get a job with". He asked how to get started on (games) programming. Python will serve fine there.

    Oh really? Yep, C++ is designed, more than most, to allow multiple paradigms, to be general, but it also has a big number of limitations. And yes, most of the other languages are quite general too, and definitely *not* limited to specific niches. (with the exception of Prolog, which is much more evil than even Pascal ;))

    (Technically speaking, you can't easily write an operating system in C++ either. You need something with a known and fixed ABI to interface with the asm bits. So you need C. On top of that, you can use any language you like. C++, Java, Python, whatever. I saw an OS written in Javascript recently. Microsoft has a research project developing one in C#)

    I know the advantages of C++. I'm talking about the advantages of other languages.

    Isn't there? What about Smalltalk? Some would say Java too, some would disagree violently. But Smalltalk is usually seen as *the* OOP language.

    Yep, but everything can be modelled without objects too.

    Well, the pointers are a symptom of most of the problems a beginner has to deal with, yes.
    Pointers by themselves aren't too bad.
    But the fact that they open up for memory leaks, segfaults, weird undefined behavior, random crashes and so much more can certainly be a problem.
    Another problem for beginners is that if you make the smallest mistake in code that in any way involves templates (std::cout or std::vector, for example), you get several hundred lines of compile error thrown in your face.

    Then there's the compilation model, separating compiler and linker. Sure, it made sense those 20+ years ago when they came up with it, but it's also the source of incomprehensible errors for a beginner. Linker errors are just messed up if you don't know what you're dealing with.

    Depends on what you're ignorant about, doesn't it? I only said you sounded ignorant about languages other than C++. I'm not denying that you know C++.
    Apart from that, I'm still open to the possibility that I might have been wrong, and that you aren't ignorant at all. :)

    I never claimed that one was an authority on anything. It's just a fun read, and it does showcase some obvious problems with relying 100% on OOP.

    No, you are not ignorant for liking one language. You are ignorant for claiming that all choices other than *one* are "crippled and useless".
     
  20. zicky

    zicky Notebook Evangelist

    Reputations:
    62
    Messages:
    451
    Likes Received:
    0
    Trophy Points:
    30
    Not too add more fuel to the debate here, but this thing varies between the universities where you go to. I live in Central America and I was obligated to learn Pascal before C++ (and I'm a B. Sc. Civil Engineer ....) and went I went away to Mexico, I had no programming language to learn but I had friends majoring in IT and they started with Java first...not even once they touched Pascal. The point I'm trying to get at is that universities do know where to start but it really depends if it's a respected one or not ... where I started wasn't (and isn't to this day) but where I ended up, it's a really good one.
     
  21. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    I don't care what you think about me (No offence, just true)...so I'm not gonna give you examples with what I've written or not...like you did :cool:

    Strange we have something in common... because I feel the same ... terrific :D

    Now we are talking about... sorry what exactly... dunno uh probably this 'think' Jalf has nothing to do with "Cartoon Network" too...
    Actually, everything does matter… but that’s a different story… :rolleyes:

    so when I call some languages crippled I meant that they usually have more limitations than I would like to... things like templates (no that you can't live without them) but in many cases they are just wonderful and make your programs so flexible... I really miss them in Java... some problems about the types also... and Java is not real OOP...just forget that... especially this class that consist the 'main' function... Another example Delphi... of course like in Visual C++/# you can do everything here but such a stupid syntax and lack of templates again...some problems in the inheriting classes and so on... so when I don't feel free because of the clumsy syntax.., and missing such a powerful tool as a STL yes I have right to compare to C++ and to say in a way crippled. I just don't want to go in details because it's pointless... I personally find more things that limit me in Java/Delphi than in VC and if can choose I'd choose VC otherwise I have no problem to write on them as well... This is not connected to beginners so I’ll skip it…

    However, if you know C++ then Java is just a littler /bigger brother (different people/opinions), starting with Java… well… possible… but you will encounter different kind problems there… you can try with... there was a Visual Prolog or I’m wrong…anyway...it could be a ‘good’ start… :)

    How…? by using ‘things’ written by someone else and well hidden in order not to scare some beginner… there were languages like Basic, Logo…. or whatever… :)

    True. (Also personal experience) :)

    I know the advantages of other languages. I'm talking about the advantages of C++. :)

    True… way of thinking… level of abstraction… better/worse depends people/opinions…
    I just hate the procedural way of thinking and that is… and for me it seems outdated and not realistic…
    objects/relations/hierarchy/friends/enemies… doesn’t sound real….really? :)

    woooow really now I know C++… are you sure?… that’s progress for me (you)
    OK. I'm not denying that you know Prolog. (because you hate it… and there’s point here but I’d say.. it’s nice to play with it…)
    Deal? :)

    repeating … again… and again
    BUT
    Show me where I said that ALL OTHER LANGUAGES are crippled and useless… and exactly this word ‘ALL’
    In the first post I meant ‘things’ like Pascal… nothing more...
    As for the limitations in different languages… that’s something different… and I said t's relative.
    So you just make general conclusions with no reason. :rolleyes:

    I consider one choice to be better but again …NEVER have I said that ALL others are "crippled and useless".

    And when you can call me a ‘ignorant’ because of:

    Semantics:

    C++ could be a real trouble for a beginner - TRUE
    there are enough well written books which would make it easier - TRUE
    the objects and C++ are the beginning of everything in programming - Personal Opinion (yes subjective, but for me and many others - TRUE)
    don't need to waste time for crippled and useless languages - Personal Opinion (yes subjective, but for me and many others - TRUE)
    for crippled and useless languages - there is no 'all' here, it's just mentioned that some languages can be 'bad' choice to my mind

    so … shame... for you (not for programming this time) :cool:
     
  22. Jalf

    Jalf Comrade Santa

    Reputations:
    2,883
    Messages:
    3,468
    Likes Received:
    0
    Trophy Points:
    105
    First, for anyone who might be reading this thread for actual information, I made this: http://forum.notebookreview.com/showthread.php?t=82628
    Lets keep any arguments, personal attacks and flames out of that, please.

    And now, back to the scheduled argument.

    Uou certainly seemed to think that all languages I could suggest were "crippled and useless". So which ones do you think are *not* crippled and useless then?

    Uh, how can it be subjective whether something is the beginning of everything"?
    Putting "TRUE" after a sentence does not make it any more true.
    You said that "the objects and C++ are the beginning of everything in programming". That is not TRUE. What is TRUE is that it was a personal opinion. But you didn't originally bother to say that. YOu just stated it as fact. Same goes for the "crippled and useless" bit.
    If you really think its nothing more than personal opinion, maybe you should have said that to begin with.

    Well, then dont do it to make me change my mind about you. Do it because then your argument might actually carry some weight.
    I posted my experience because I want people to be able to make a fair judgment about whether or not I'm worth listening to. Apparently you don't think that's important. People should listen to you without knowing whether you have any kind of experience with anything whatsoever?
    It's a bit hard to take that seriously.

    As far as I'm concerned, this discussion is over. I can not argue with someone who refuses to involve such things as "fact" or "evidence" in his claims.

    It doesn't matter to anyone else what you think or what you prefer. It does matter what is objectively speaking best, what is objectively speaking good or bad ways to start programming. But since you refuse to admit anything other than "personal preference" into the discussion, I'm going to assume that it's because you dont *have* anything more concrete to add.

    What a shame. For a while I thought you actually wanted to contribute to the discussion and help out the OP who asked about getting started with programming. Instead I see you're just another language zealot, who wants everyone to take the same choices as he did. For no reason other than that it makes you feel good.
     
  23. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    You are right only about one thing this discussion is over! :cool:

    Yes I really think that it's more than a personal opinion, it's a personal experience.

    I did not not see any reasonable facts involved in your claims too.

    However, what the hell are you talking about? What facts, when the different laguages are nothing more than personal preference...

    One can start with whatever language he wants... there are no bad or good ways if we are talking objectively. When you say that one language is better than another this is in the most of the cases personal preference. That's way the different universities start with different languages and as a result all of them produce capable programmers.

    Again shame for you. :rolleyes:
     
  24. PC_pulsar

    PC_pulsar Notebook Evangelist

    Reputations:
    5
    Messages:
    479
    Likes Received:
    0
    Trophy Points:
    30
    Oke let's close this topic, were drifting away from the point.
     
  25. Charles P. Jefferies

    Charles P. Jefferies Lead Moderator Super Moderator

    Reputations:
    22,339
    Messages:
    36,639
    Likes Received:
    5,091
    Trophy Points:
    931
    It's been off-topic for some time, yes, but by user request I re-opened it as long as certain conditions were met (refer back to page #2).
    Anyone who wants to post their thoughts/opinions on programming, please go to that thread. Thanks for making it, Jalf.

    As long as the guidelines I stated earlier in this thread are met this can stay open - I am reluctant to do so because it went in the wrong (personal) direction before and is inching toward that now. But as long as it is a constructive arguement then go ahead and post.
     
  26. Dreamer

    Dreamer The Bad Boy

    Reputations:
    2,699
    Messages:
    5,621
    Likes Received:
    0
    Trophy Points:
    205
    I think that we have nothing more to say to each other, especially when that is not an objective and constructive discussion but rather just the opposite...

    I recommend anyone looking for objective discussions about programming languages and issues to find another forum since this definitely is not the best source...

    As regards this thread, it seems that it can not go any further than personal comments...
     
  27. Charles P. Jefferies

    Charles P. Jefferies Lead Moderator Super Moderator

    Reputations:
    22,339
    Messages:
    36,639
    Likes Received:
    5,091
    Trophy Points:
    931
    Alright then, thread closed.