Help me with deciding to stick to a language
*sigh*
I've been at it as a kid fooling around (Turbo Pascal, Basic) but never got any further than making silly programs. Then at some point I relearned some of that stuff when going back at it, but stopped at the same point again.
Then learned some Delph and I made some text editor (and I don't even know how the heck I did it).
Then at some point I started learning C and C++. Was going okay, but then the same thing hit me: didn't get far because it was just too tedious, and never made anything interesting.
Then came some Java and C#. They looked alike iirc, but I didn't make anything good with that either.
Now I'm thinking of starting to pick up C++ once again and finally KEEP GOING until I can go no more (as far as I have time for it of course). It was also the one I stayed with the most even if I made crap!
So... I come to you to ask you this: what is the best, most versatile, general-purpose, practical, flexible, and easy-to-learn programming language existing which is like THE language? I know that certain languages can be used for certain purposes, but I want to know one very well, with which I would be able to do a lot.
Programming was always a thorn in the side for some reason -- an obstacle that I've not yet overcome, and I MUST! I really want to program because it's another thing on the challenge list to beat!
Re: Help me with deciding to stick to a language
Apparently, Python is picking up a lot of votes these days. Never used it myself.
I'm still not sure what your goal is, though, and it seems to me like that makes all the difference in the world.
If it is to write some useful/interesting/challenging code, well, that has nothing to do with the language - it has to do with your ideas and inspiration (assuming you're doing this for fun, rather than as being forced to do it for work/school).
Think of something that meets your criteria for interesting/useful/challenging, and then we can talk. Imo, certain things are _really_ difficult to do in certain languages, so it makes some sense to pick a language _after_ you've decided what you'd like to do.
Imo, choosing a language that doesn't allow certain constructs you know you'll need is just needlessly handicapping yourself rather than a proper challenge. (If that was all you wanted, just pick some pseudo-useless language from 30 years ago, and I'll bet it'll be hell to write any decent application in it).
Perl may also be a reasonable alternative...
Otherwise, I guess you need to go with the standard C variant or Java...
edit: as for knowing one language really well, I dunno, I think you can only accomplish that if you stick with it continuously.
AW: Help me with deciding to stick to a language
It's for fun basically, You're probably right about the inspiration thing and such. Thing is, I know I can be creative and have inspiration, it's just that when learning a language and trying to apply it in a decent way that's when all the inspiration and motivation disappear (usually).
I have ideas about what I want to make (useful programs, little games, even if small) but the language barrier is a pain in the ass. When I learn it it's usually more about knowing proper code and style up into detail, rather than making something useful while you learn it. It's important, but demotivating.
I don't know if I'm being clear enough, though :)
I guess I'll go with Perl for the time being. It reminds me of my painful times when having a go at C++, only it looks less painful :smash:
Re: Help me with deciding to stick to a language
This is definitely a personal choice if you've got no object (sic!) in mind except learning some language very well with no qualifications.
I have a friend who does all his programming in Fortran still because he has no need for anything else. As Blodrast says, what language to use is very project-dependant.
If you're just looking to get used to programming, C++ and Perl aren't good ones to start off with. C++ is extremely powerful and able to do anything, but it's Never used for rapid-development projects because it's tedious and the syntax tends to become convoluted very easily. Perl on the other hand is great fun once you learn the intricacies but it's rather non-standard.
My recommendations would be either C# or Java. I personally can't stand Java but that's just due to years of bad experiences with uncommented .jar files I had to parse myself :furious3:
Good luck, whatever you decide!
AW: Help me with deciding to stick to a language
Hmmm, yes, I've been looking at C# again. If I'm not mistaken it does garbage collection. I assume it has to do with memory management or something, like when you write something you don't have to think about it 'cause it'll take care of it by itself. Would this mean that what you write would always be unoptimized code?
Is C# really a language that'll get a learner to get used to general programming more easily (which is probably my main concern for now)? And what is the best way to get started -- in my case restarted :laugh4:
To install .NET and such I assume.
As for the project thing you mention, I don't want to make anything big or something (yet, or ever(?)). But something small like a text editor to start with, or something creative like a simple RPG seems like something nice to me (though this might be too much already, as it would include graphics, sounds, etc.).
There's also this thing... at one point I wanted and tried to make a simple game, but failed miserably. Actually, it wasn't failure, it was more like not knowing what to do and how to get started. Like you have the idea, but cannot translate this idea into code and make it work.
But then I looked at program code of a simple DOS game or something with few overall global comments and it just hit me vaguely. I "understood" the code in a way, but sure as heck could not make something like that myself.
Re: Help me with deciding to stick to a language
Java has a garbage collector and that means it collects any objects or data that are not used anymore(i.e. there is no link to them anywhere) and deletes them automatically.
AW: Help me with deciding to stick to a language
Well, I'm totally drowning in it now... again :laugh4: I just don't know how the **** I should go on. I have some syntax knowledge and principle understandings from many prog languages if I sum it all up from back then until now, but I can't do jack with it! If I read another book or tutorial that goes over the basics again, the syntax, pointers, types, etc., I'm gonna go CRAZY.
That's what I mean: following it step by step and easy with some guide is comfortable, but you can't do jack, so it becomes uncomfortable. And then to actually start something thinking you will learn by doing, it doesn't go. Means I go back to conventional learning with a book, but find out once again I can't do jack.... rinse and repeat :no:
Re: Help me with deciding to stick to a language
As for your C# question, as much as I know of it (and I don't, I never learned C#), you can write both managed and unmanaged code. The managed one - you get all the "nice" bonuses such as bounds checking, garbage collection, and it allows you a bit more flexibility.
As for your last post - this is what I was hinting at in the last line of my previous post. Really, the only way to ever be able to do anything decent in a programming language is to actually sit down and code. That's the only way to learn coding, if you ask me. Sure, books and tutorials are nice, and they're always useful as reference (I still can't remember stupid syntax), but in order to get stuff running, there's only one way to do it: code, and then code some more. And just be patient - the results will show up, in time.
AW: Help me with deciding to stick to a language
Yeah, you're probably right. I do remember I used to sit down and code like heck in C++, but all I made were experimentations to get used to the language (and I did), but they were just simple useless limited programs by themselves. Really, silly stuff.
The problem isn't so much the syntax as I can usually remember how it's like in general (or I can just look it up), it's more about understanding the overall logic of coding and applying it usefully and creatively... I can't think like a coder even if I code like hell all day. For example if I had to make a text editor I have NO idea how to get cracking (specially with the stuff I've learned). Arrgh.
And my patience is wearing thin :laugh4:
About Python:
I did read that Python is popular because it's easier than most languages, and more fun, and it kind of teaches you principles faster and more practically. But I think there are no compilers around for it, only interpreters and such.
----edit1----
Btw, anybody know how to set up a command line compiler (TinyPerl in this case) for the DOS box? I don't feel like typing in full paths and such everytime. Basically I need something like a shortcut to go to the cmd and then to be able to use the compiler from any path the prompt is at, like you can use 'cls', 'cd', etc., commands from any path you're at.
Re: Help me with deciding to stick to a language
My personal language learning experiences have gone like this: C++ -> Perl -> Assembly -> Java . A very strange way to learn to code I can tell you! If I were to start again, I would start with something like Java or C#. They teach the concepts of programming rather than complex syntax and detailed memory management. Next look at C++. Although it is admittedly more difficult to code in, and is very unforgiving, it is still hugely powerful and about the fastest thing out there (unless you want to start going into assembly language...). However, many many projects have absolutely no need to be coded in C++. Finally, Perl is a great language for a number of tasks, I found its implementation of REGEX to be pure joy to work with, it was the perfect tool for the job I was in at the time. On the other hand, its slow and very difficult to read. As has been said, it really DOES depend on what you want to do... C++ would be great if you wanted to write a few simple games (look into the SDL libraries for this) and you will probably learn a lot more than in other languages. Java is a great language for general purpose coding, its simpler to learn and the Java libraries can be extremely helpful for a huge range of common tasks. C# is essentially very similar to Java (I havent actually ever coded in it, but this is what Ive heard from others) but is much tidier when it comes to libraries, as Java can be a bit of a mess given its many revisions and evolution.
If you are looking for a short answer, I would say C#. :beam:
AW: Help me with deciding to stick to a language
Hey _Martyr_, I can imagine how that order of learning is unusual :)
Assembly always seemed like an interesting thing to learn, but it's probably too much of a low-level language for me. I heard of a certain project I think that was made by ASM programmers, some kind of game (forgot exactly what and have no link). Very graphical and such, and it was faaaaast. I can't imagine how people can actually use ASM to make such big products. You'd have to be a code god.
Heard there was high-level ASM too, that seems interesting as well.
Can you tell me more about Perl, though, and what kind of job you were in that made it so useful? I've been learning Perl and it went very easy for the stuff that I read (understood lots of it), but I got fed up with it.
C# I've been learning again, and while it's doable the syntax annoys me. I'm just fed up with these curly brackets languages and such, and especially all these strict rules. C, C++, Perl, C#, Java, etc.: destroys my brain :dizzy2: Been destroying my brain all the time on this free day.
So I've been searching a bit, and a familiar name came up: Boo. It seems that it combines the user-friendliness of Python for the syntax, and the speed, power, and .NET standardization of C#. This sounds like the ultimate candidate for me! No more ints, bools, static voids, and so on. Sounds like a language that allows to serve man more, instead of the other way around :laugh4:
Re: AW: Help me with deciding to stick to a language
Python and Java for me. They are new, and they start to impose the trend.
I've learned Turbo Pascal and C++ when I was in the 6th and 7th grade, but the complex syntax for C++ made me lose interest because everytime I worked on mathematical problems.
AW: Re: AW: Help me with deciding to stick to a language
Quote:
Originally Posted by edyzmedieval
everytime I worked on mathematical problems.
Ugh. That's typical, though. I was always staying in that part of (console) programming and never got out.
Boo is really something. I looked at it and thought it was an inferior language (compared to C#, Java, and such), but whatever... It's so effective, though it's kinda hard letting go of all these curly braces and semi-colons :laugh4:
AW: Help me with deciding to stick to a language
lol. For some reason I've gotten back to C++ once again. I don't know what it is, it just seems so good. And it feels right. And it's actually easier to learn and understand than any other language I've ever put my sneaky hands on, even if I've learnt their syntax style more or less.
Now, to actually finally make a worth-while program :sweatdrop: