Author Topic: I'll choose myself (programming languages)  (Read 9873 times)

ChaosControl

  • *
  • Posts: 741
  • ¤
    • View Profile
I'll choose myself (programming languages)
« on: 2006-05-12 11:44:39 »
Yo,

After countless of conversations with countless of people I decided to choose a programming language myself (I'll choose after i tried most of them, sorry if this wasn't clear).
What I need from you is:

- What do I need to start.
- URL to software required (if free, else URL of where I can buy).
- Beginners tutorial so I can see which one works how and if I like it or not.
- What language do you know, do you like it? why did you choose it? etc...

I hope some of you might be able to help me with this, this could offcourse be very helpfull to other people who want to learn a programming language themselves.

I already started with Python (very easy to understand but quite limited) and JAVA (harder but I feel I can do a lot more becuase of all the options).

Thanks in advance and I'll probably thank again when replied to :D
« Last Edit: 2006-05-12 13:35:02 by chaoscontrol »

Alhexx

  • *
  • Posts: 1894
    • View Profile
    • http://www.alhexx.com
Re: I'll choose myself (programming languages)
« Reply #1 on: 2006-05-12 13:23:59 »
Quote from: chaoscontrol
After countless of conversations with countless of people I decided to choose a programming language myself.
So, and which language is that?
That's the most important info that is missing in your post if you want that people can help you.

Quote from: chaoscontrol
- What language do you know, do you like it? why did you choose it? etc...
I know 3 languages: Visual Basic, C/C++ and Java.
QBasic was the one I started to learn first. It was easy, but extremely limited...

After that, I switched to Visual Basic. It was nice to start with windows programming, however, when programming Ultima, I realized that the language is far too limited for such big projects which I wanted to create.

That was the reason why I started programming in C/C++. It gives you the ultimate programming power - there are (almost) no limitations in what can be done with C/C++.
However, it is definately not a language for beginners. There are a lot of traps in C/C++, especially when working with pointers and things like that, so you really need to know that exactly you are doing.
The first thing I did when starting with C/C++ is: I bought a "C/C++ for Beginners" book from Microsoftâ„¢.

As for Java, I can use that language a bit. I personally hate it.
Java seems like a castrated version of C/C++ to me - mostly like C/C++ but without pointers  :-(


As for a general advise:
I would start learning a more basic and easy programming language (as Python), and later, when you have understood the basics of programming, try to learn another more complex language as C/C++...

I think it's easier to switch from an easy language to a more comlpex one than directly starting with a complex language...

 - Alhexx

ChaosControl

  • *
  • Posts: 741
  • ¤
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #2 on: 2006-05-12 13:39:03 »
Well I'm experienced in qbasic myself and dos and html and php, the thing is, I want to know real object orientated languages.
I can handle python well if I say so myself but it's very limited and not quite what i want.

I want to be able to develope small apps but have no idea what to use!

FeuFeu

  • *
  • Posts: 54
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #3 on: 2006-05-12 16:43:16 »
Python quite limited ? You've got to be kidding me :-P
Companies like Google or the NASA make an extensive use of Python, and I need not explain that they're far from being insignificant :lol:

Python is popular for being "batteries included", having a rich and versatile standard library which is immediately available, without making the user download separate packages. The Python Library Reference sums up what is available without installing anything else : regular expressions (re), data compression (zlib, gzip, bz2...), text manipulation and formatting (string, codecs, formatter), file manipulation (os, os.path, filecmp...), serialization (pickle), web (urllib, ftplib, email, HTMLParser, xmllib...), multimedia (audioop, wave...), cryptography (md5, sha, hmac), simple GUI (Tkinter, turtle) and many more.

About object-oriented programming, this tutorial explains how to do it.

It's one thing to learn the language, but knowing the API is really different. If Java looks more powerful, it's because they blur the frontier between the language and the API.

And should you need something not present in the Standard API, there are many excellent third party librairies available : PIL (Python Imaging Library), PyGame (videogame dev), wxPython (extensive GUI library)...


The only case where Python really falls behind is if you desperately need speed : in that case, it's better to go with C/C++.

A pretty entertaining way to discover the possibilities of Python is by doing the Python Challenge, "the first programming riddle on the Net" as they defined themselves.

In the end, it's just a matter of taste :wink:
« Last Edit: 2006-05-12 16:45:01 by FeuFeu »

Sad Jari

  • Guest
Re: I'll choose myself (programming languages)
« Reply #4 on: 2006-05-12 17:00:23 »
Well I'm experienced in qbasic myself and dos and html and php, the thing is, I want to know real object orientated languages.
Daaaamn. :-o

Wait a sec, you are not Joey under a different name, are you? :-D

atzn

  • *
  • Posts: 548
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #5 on: 2006-05-13 10:33:28 »
I personally think understanding the semantics, data structures and syntax of a language is more important than to know how to program in "[Insert programming language name here]". Once you're comfortable with those I'm pretty sure you can adapt to different languages easily. (OK, I could be wrong, I've only started programming for 2 years, but that's my take on it) I agree with Alhexx; start from an easy language, grasp the basics and concepts of programming, and then move on to a harder language.

And for the record, DOS and HTML are not programming languages. Since you already know PHP, I think that will give you a good headstart for learning C/C++ or even Java.

Qhimm

  • Founder
  • *
  • Posts: 1996
    • View Profile
    • Qhimm.com
Re: I'll choose myself (programming languages)
« Reply #6 on: 2006-05-14 10:22:09 »
How about D? It's like C++ redesigned from scratch to make more sense. :P

Seriously though, no I do not recommend D, neither as a working language nor as a learning language. It still has some serious limitations/odd design choices that make it unsuitable as a "real" replacement for C++, and if you were to start learning programming with D, you'd be spoiled rotten when later presented with the usual kinks of the other programming languages. :P

It's quite cool for experimenting with though, if you're into programming languages for the sake of programming languages. It's not a replacement for C++ yet (meaning you'll feel quite limited in some respects when using D, e.g. incomplete reference type implementation, mandatory GC, incomplete standard library, etc.), but I'd still say it gets about 80-90% of the way there.

Jedimark

  • *
  • Posts: 2056
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #7 on: 2006-05-14 10:35:07 »
How about C#, it's relatively easy to learn.... sort of Microsofts implementation of an Object Oriented C.

There are plenty of books out there about .NET / online tutorials etc.

You can also download the Microsoft Visual Studio Express Editions for free at http://msdn.microsoft.com/vstudio/express/visualcsharp/

ChaosControl

  • *
  • Posts: 741
  • ¤
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #8 on: 2006-05-14 11:45:41 »
Thaqnks for the replies!
I decided to go with JAVA for the time being, I checked it out for a few days and I really think I can do this!

This isnt the first and the last so next in schedule is C, but thats far from now...

I bought 2 JAVA books which will keep me occupied for a few weeks.

Thanks again for all the replies and help in this and the JAVA topic!!

Jedimark

  • *
  • Posts: 2056
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #9 on: 2006-05-14 15:52:49 »
Java is an excellent language; I studied it for 3 years at Uni and thus got totally sick to death of it! However, it will teach you all the fundamentals of programming although don’t expect to create visually stunning applications with it to begin with!

*Takes a trip down memory lane*: Here’s the pinnacle of my Java programming:

http://img388.imageshack.us/img388/3456/microcodeemulator3gr.jpg

… wasn’t pleasant to write but works well!

ChaosControl

  • *
  • Posts: 741
  • ¤
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #10 on: 2006-05-14 16:30:57 »
Nice looking applet!
About the not visually stunning graphically apps, I heard that changed and now you have way more options etc..

I'll find out more about it.

Jedimark

  • *
  • Posts: 2056
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #11 on: 2006-05-14 17:17:55 »
Wellllll... if you use a development environment to create the interface then it can be not that bad... however writting it by yourself is a pain! SWING is horrible.

ChaosControl

  • *
  • Posts: 741
  • ¤
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #12 on: 2006-05-14 22:53:55 »
SWING!?

I'm using Eclipse btw.

Sukaeto

  • *
  • Posts: 570
    • View Profile
    • Sukaeto's web server
Re: I'll choose myself (programming languages)
« Reply #13 on: 2006-05-14 22:59:50 »
It is FAR more important that you understand the concepts of writing good code, data flow, logic, and so on than learning the syntax of any given langauge.  It really doesn't matter what language you start with, for the most part (though I must say I *don't* recommend Java.)

Some good ones are:  C/C++, Delphi, Ada or Pascal.  With any of these, you can learn proper programming techniques (be careful with C, though.  You can do some very, VERY naughty things in C).

As far as books go, I'd say go for something like this one.  While books on specific languages are great for reference, you'll probably learn more from a book about concepts.

---Edit---

I just wanted to add: once you understand properly the concepts, you'll be able to switch from language to language with relative ease.
« Last Edit: 2006-05-14 23:03:17 by Sukaeto »

spyrojyros_tail

  • Guest
Re: I'll choose myself (programming languages)
« Reply #14 on: 2006-05-15 13:04:02 »
Umm, well my vote goes to java. Im just going to echo everyone here and say you need to know the basics, strucure and flow of the code and definitly learn harder languages like C before you go to easier languages like java, I found it very helpful.

Anyway, if your coding applications never code GUI yourself especially when there is a good program that will do it for you.

http://www.netbeans.org/downloads/index.html

Just use that to layout your program and then handle the events yourself. But if you want do deploy an application on the web I would go for flash & director everytime  For my final year project i created a program that had a midi keyboard hooked up to it, listened for keypresses, listened for mouse events, had collision detetion, error detection and connected to a database all through flash and director, what else would ya want?

Alhexx

  • *
  • Posts: 1894
    • View Profile
    • http://www.alhexx.com
Re: I'll choose myself (programming languages)
« Reply #15 on: 2006-05-15 17:34:56 »
Quote from: spyrojyros_tail
(...) and definitly learn harder languages like C before you go to easier languages like java (...)

Erm... that does not make much sense, right?  :roll:

 - Alhexx

Aaron

  • *
  • Posts: 2818
    • View Profile
    • http://aaron-kelley.net/
Re: I'll choose myself (programming languages)
« Reply #16 on: 2006-05-15 22:53:07 »
Quote from: spyrojyros_tail
(...) and definitly learn harder languages like C before you go to easier languages like java (...)

Erm... that does not make much sense, right?  :roll:

 - Alhexx
Personally, I learned C++ before I learned Java and I think that it was the right thing to do.

Java is rather easy to pick up if you know C++, but if you were going the other way, then you would have to learn about dealing with things like pointers and dynamic memory allocation that are not so much an issue in Java.  I also think that it is good to learn about those things earlier rather than later because they (should) help you develop good habits.  :-P

Alhexx

  • *
  • Posts: 1894
    • View Profile
    • http://www.alhexx.com
Re: I'll choose myself (programming languages)
« Reply #17 on: 2006-05-16 20:31:32 »
I learned C++ before Java, too.
Well, actually I didn't learn Java, but at university, I'm forced to use it :(

Currently, I'm programming the Simplex-Algorithm in Java.

I remember one of our professors at university saying:
"Java is better than C++. Java is easier than C++. And Java does not use pointers and dangerous things like that..."

When I was debugging my simplex implementation, Java came up with this:



Funny, isn't it?  :-P

 - Alhexx
« Last Edit: 2006-05-16 20:37:19 by Alhexx »

ChaosControl

  • *
  • Posts: 741
  • ¤
    • View Profile
Re: I'll choose myself (programming languages)
« Reply #18 on: 2006-05-16 23:33:06 »
It does use pointers but it's not up to you how it uses them.

At least I guess it was something like that.

Qhimm

  • Founder
  • *
  • Posts: 1996
    • View Profile
    • Qhimm.com
Re: I'll choose myself (programming languages)
« Reply #19 on: 2006-05-17 08:58:40 »
Well it does not use pointers, as in "the language itself does not directly expose memory". All object instances are handled by reference in Java though, and these references are typically implemented as pointers when you actually run the program you've written. That having been said, the NullPointerException is an ugly remnant, or rather it's an awful name they shouldn't have used for it. Something like EmptyReferenceException or NullReferenceException would be more in line with the language (since they specifically make such a deal out of not dealing with pointers, sigh), but early on I guess they figured that everyone who started using Java was used to programming in C/C++, and thus everyone would already instantly know what was wrong when a NullPointerException appeared. And now we have tons of wannabe geeks (tee-hee) who have managed to learn Java but are absolutely clueless about pointers, going "What the hell is a null pointer? What the hell is a pointer?"

Sigh.

spyrojyros_tail

  • Guest
Re: I'll choose myself (programming languages)
« Reply #20 on: 2006-05-22 13:55:54 »
(...) and definitly learn harder languages like C before you go to easier languages like java (...)

Thats just from my own experience, in Java there are no pointers or allocation of memory and some Java compilers make it easier for you by giving you hints while you code. I found it better to learn C/C++ and to struggle with that for a while and then move on to Java, at least from your experience in C then you knew what Java was doing in the background for you (and make you appreicate the language!!). If it had been the other way about it I would of hated C more because I knew that there was an easier substitute. I dunno, thats just my two cents!!