# Help in Choosing a Programming Language



## jayantr7 (Aug 7, 2010)

I am a student of std.7 and learning GW-BASIC in school...BASIC can't give me good results as I want and other languages will start from std.9 

I can't wait for that long[sick of BASIC].I am trying to choose some other good programming languages.[i know this ques is silly]
*Desktop Application Programming and Web app making is my main purpose.I don't wanna learn many languages one by one and then choose...I just wanna stick to 1 or 2...
*


Which one should I choose since I am not an expert programmer?It should also have an option to import sprites etc from graphics tools[will use IDE's of those languages][GUI included]


Visual c++[or just c++]
Visual c#
java
or any other
I also wanna make databases.So Which database scripting language should I use?         Or other than all above,should I use Adobe products for all my things since they have a high integration within all programs[all adobe products.]Some other things to ask :-


Is interpreter better or compiler?
what is distributed application programming?
Explain me visual studio.net briefly...
I will ask other things later...help me plz


----------



## jayantr7 (Aug 7, 2010)

I don't want to learn 10's of programming languages and then decide.Please help me in here.Is Visual Basic also good?

How are these? : Python,Ruby,Perl,F#??      
Please answer with some meaningful answers.I want this help as I can't decide!!


----------



## jayantr7 (Aug 7, 2010)

hey frndz,please help me in this topic.... i want one programming language with the capability to integrating with a database language.....at least in total 2 or 3 languages[including DB,programming lang.,scripting lang. etc]....


----------



## infra_red_dude (Aug 8, 2010)

Python, Ruby, Perl are very high level languages. IMO you should start with C to gain knowledge about sequential programming, then goto C++ to learn object oriented programming.

These two programming languages are like a base in their respective categories. Once you know these languages you will know the concepts of programming. After that all that you need to do is learn the "syntax" of a language like Java, etc. Python, Perl, Ruby are more of scripting languages than programming languages, that can be easily learnt if you have a strong base.

Also, I'd advise you to use GCC or Intel's compiler for learning C/C++ even though you may use Visual Studio for debugging. Reason being VC++ is not entirely standards compliant. And once you get used to a non-standard compiler it is difficult to "unerase" those practices. While the reverse is certainly not true. So start with a compiler that is standards compliant. Non-standard compiler means the code will not be portable across platforms (for e.g. your code on VC++ may not always build or even run on other platforms like UNIX, Linux etc.).

Another thing I'd like to point out is NEVER EVER start your C/C++ programming with Turbo C or C++! That will ruin your start!!!


----------



## Liverpool_fan (Aug 8, 2010)

infra_red_dude said:


> Python, Ruby, Perl are very high level languages. IMO you should start with C to gain knowledge about sequential programming, then goto C++ to learn object oriented programming.


I disagree. Python is perfect for a new programmer, C and C++ would make the new programmer think about unnecessary details and are often complex for them too. Python also teaches Object Oriented Programming.
In my opinion, start with Python and then go with C.



> These two programming languages are like a base in their respective categories. Once you know these languages you will know the concepts of programming.


Python or Perl can also form a strong base for a programmer and that too without head banging with various complexities of C or C++. In fact after learning Python or Perl, the programmer will attain a certain level and will be more suited to move to lower level languages like C or C++.


> After that all that you need to do is learn the "syntax" of a language like Java, etc. Python, Perl, Ruby are more of scripting languages than programming languages, that can be easily learnt if you have a strong base.


True. However, Python , Perl, Ruby are not *just* scripting languages. Each of them is a powerful language which will form a strong base in Programming.



> Also, I'd advise you to use GCC or Intel's compiler for learning C/C++ even though you may use Visual Studio for debugging. Reason being VC++ is not entirely standards compliant. And once you get used to a non-standard compiler it is difficult to "unerase" those practices. While the reverse is certainly not true. So start with a compiler that is standards compliant. Non-standard compiler means the code will not be portable across platforms (for e.g. your code on VC++ may not always build or even run on other platforms like UNIX, Linux etc.).
> 
> Another thing I'd like to point out is NEVER EVER start your C/C++ programming with Turbo C or C++! That will ruin your start!!!


Agree with that.


----------



## jayantr7 (Aug 8, 2010)

infra_red_dude said:


> Another thing I'd like to point out is NEVER EVER start your C/C++ programming with Turbo C or C++! That will ruin your start!!!


Thanks for helping you both.I started to learn c++ with turbo c++ and that too got me dead.

Should I use Visual Basic as it's easy and RAD tor should I use a non-standard compiler first?  
*List of Hello World Programs in 200 Programming Languages    
*

This page too helped me in deciding.Can I make or maintain a database in these languages or do i have to make one in SQL IDE's.What about Java?Is it just for WEB OR Also for Desktop App Programming?Which language should I use for Web app programming?
I am confused between Perl and python.I'll learn C first but should I learn it from any book or just from internet??


----------



## abhijangda (Aug 8, 2010)

hhmm.... friend, when i was in sixth standard i was nearly in same  position as u r now. I started with Visual Basic 6.0, then goes to  Visual Basic 2008,then 2010 then finally Python (and now learning C in  my college).  u should  go for Visual Basic 6.0. This language is easy,  clean interface. Although it is event driven programming language and  not Object Oriented but it will be a good start. First Learn Visual  Basic 6.0 then go to other editions of same language, then come to  Python, finally C and C++. at the end go to Sun Java. Follow this  procedure and learn every language then u will be a good programmer.  Also all u need is to learn how to think, whats the approach for  creating a program, this is nearly same for every language, anything  that changes is the syntax of language.


----------



## arpanmukherjee1 (Aug 8, 2010)

IMO u r confused only because u have heard multiple languages at once. i am telling u what i think being the best:

1> start using GNU for C++ programming. refer online documentation as well as a book that covers multiple topics (EXCLUDING yashwant kanetkar).

2> build ur programming approach by creating algorithms of ur own. think of a problem (Eg. finding meaningful words from jumbled up words) and bring up solution of ur own or refer a site if u r having problems.

do this if u want to choose computers as ur carreer option.

3> C++ has the potential to outrun EVERY prog lang in the WORLD in every aspect. be it database, security, comunication etc. and this no exgerration. I have done it and strongly believe in it.

4> if u know the syntax for C++ then other prg lang will come to u easily.

i wrote such a long post (sry 4 that) 4 you.  also make sure that every thing in this post is not a matter of months. it is a long process and time is of utmost importance. after such process u will feel that u have ur own style of programming and better at sorting out problems in ur head rather than studying it in a book. and that is a GOOD FEELING. 

u have plenty of time and other studies. make it a hobby of yours to think and find problems and the solutions.

and best of luck and as others say happy programming...


----------



## jayantr7 (Aug 8, 2010)

arpanmukherjee1 said:


> IMO u r confused only because u have heard multiple languages at once. i am telling u what i think being the best:
> 
> 1> start using GNU for C++ programming. refer online documentation as well as a book that covers multiple topics (EXCLUDING yashwant kanetkar).
> 
> ...


But many says that it's a bit difficult to start with c++.And your post is not long for me as i like reading informative posts.Yup,I have a plenty of time in just one manner.I have to learn 3d animation,computing maths,photoshoping,etc.......

I have decided a little but *still more suggestions needed*.Because I don't then at last want to change after wasting many months....

What language is better for online apps n databases??
     And thanks for helping you all.


----------



## Liverpool_fan (Aug 8, 2010)

jayant_raj7 said:


> What language is better for online apps n databases??


PHP is good for web applications due to simplicity and wide support. However I recommend Python for new programmers as it is brilliant combination of ease of use, logical, and powerful. Any language can interact with database anyway.


----------



## nibheds (Aug 8, 2010)

Hi,

    you are a student first of best of luck for your studies and exams accoding to your query you want to know that which must be the best programming language so in this field there are certain options to choose such  as Java ,C++, software development  there are many more but these are the best one which can help you and can provide assistance for your job and other such related fields 

Thanks!

_________________-

    uk pharmacist


----------



## infra_red_dude (Aug 8, 2010)

Liverpool_fan said:


> I disagree. Python is perfect for a new programmer, C and C++ would make the new programmer think about unnecessary details and are often complex for them too. Python also teaches Object Oriented Programming.
> In my opinion, start with Python and then go with C.
> 
> 
> Python or Perl can also form a strong base for a programmer and that too without head banging with various complexities of C or C++. In fact after learning Python or Perl, the programmer will attain a certain level and will be more suited to move to lower level languages like C or C++.


I agree with you that Python/Perl are really simpler to learn and program that kind of give the person an abstraction. My point is, if a person starts with an easy to learn language he/she may not like to go back to something has has a steeper learning curve. I've seen that happen. Once you program in Python or Perl, you will find it kind of a waste of time to learn C/C++ that require much more things. 

The idea here is to start learning C/C++ and then move to higher level languages. This way one can appreciate the ease and advantages of higher level languages more than one would have, had he/she taken the reverse order.

Also I believe C/C++ is like a baseline. You cannot do without it (rather, the concepts it teaches), be it for normal programming, or Embedded programming. No matter what platform you take you are bound to have a C compiler for that platform. It is like a universal language which every programmer should know.



Liverpool_fan said:


> True. However, Python , Perl, Ruby are not *just* scripting languages. Each of them is a powerful language which will form a strong base in Programming.


Again, I agree with you. I was just trying to tell him about compilers and interpreters. The source code for these languages need not be compiled. They are interpreted line by line. However, one can create binaries of the source code.




jayant_raj7 said:


> Thanks for helping you both.I started to learn c++ with turbo c++ and that too got me dead.
> 
> Should I use Visual Basic as it's easy and RAD tor should I use a non-standard compiler first?
> *List of Hello World Programs in 200 Programming Languages
> ...


My suggestion would be:
1) Learn C first then C++
2) Move to a higher level language like Python (I would recommend that over Perl)
3) Learn PHP, Javascript

Skip Visual Basic....


----------



## arpanmukherjee1 (Aug 9, 2010)

infra_red_dude said:


> Skip Visual Basic....



^^^^^^^ +1


----------



## nileshgr (Aug 9, 2010)

arpanmukherjee1 said:


> IMO u r confused only because u have heard multiple languages at once. i am telling u what i think being the best:
> 
> 1> start using GNU for C++ programming. refer online documentation as well as a book that covers multiple topics (EXCLUDING yashwant kanetkar).



+1 Yashwant kanetkar sucks. Lots of non ANSI stuff.



jayant_raj7 said:


> But many says that it's a bit difficult to start with c++.And your post is not long for me as i like reading informative posts.Yup,I have a plenty of time in just one manner.I have to learn 3d animation,computing maths,photoshoping,etc.......
> 
> I have decided a little but *still more suggestions needed*.Because I don't then at last want to change after wasting many months....
> 
> ...



You must learn C before C++ because much of C++ syntax is same as C. Actually, it is well to be considered an extension of C with some awesome extra features like OOP, etc.



Liverpool_fan said:


> PHP is good for web applications due to simplicity and wide support. However I recommend Python for new programmers as it is brilliant combination of ease of use, logical, and powerful. Any language can interact with database anyway.



True. PHP is the industry standard in webapps, although it sucks at performance.



infra_red_dude said:


> I agree with you that Python/Perl are really simpler to learn and program that kind of give the person an abstraction. My point is, if a person starts with an easy to learn language he/she may not like to go back to something has has a steeper learning curve. I've seen that happen. Once you program in Python or Perl, you will find it kind of a waste of time to learn C/C++ that require much more things.
> 
> The idea here is to start learning C/C++ and then move to higher level languages. This way one can appreciate the ease and advantages of higher level languages more than one would have, had he/she taken the reverse order.
> 
> ...



Skip VB. It sucks.
I did not learn C before PHP.
My learning sequence was like PHP, SQL, Python, C. Now learning C++ too. It doesn't make much of difference which language you learn first, you just need to have the learning desire.


----------



## jayantr7 (Aug 9, 2010)

Thanks to all of you for helping me.
*Why should I skip VB??*It's considered to be easy and also very powerful.
OK,I'll start C before C++.
What about Java?I am deciding too right now but will decide my final at the end.Should I use a good well known book for learning these or just any book or just by Internet??


----------



## Garbage (Aug 9, 2010)

You should learn Java after C and C++. Not before.


----------



## nileshgr (Aug 9, 2010)

VB works only in windows. And its neither as powerful as C. At the core, it sucks, sort of a GUI extension to BASIC.

Given the increasing market of Linux, Mac, you should learn languages which works everywhere.


----------



## asingh (Aug 10, 2010)

^^
Plus VB warps the fundamentals of programming, if learnt as the first language.


----------



## arpanmukherjee1 (Aug 10, 2010)

like i said before C++ is the core to all ur programming needs. even 3D game engines and 3D applications eg. 3DS Max are C coded. highly portable if built around the standards, unlike java.


----------



## nileshgr (Aug 10, 2010)

asigh said:


> ^^
> Plus VB warps the fundamentals of programming, if learnt as the first language.



As I said above, PHP was the first language I learned. I have programmed  in VB too, but my programming concepts are very strong and my  programming style conforms to industry standards (as said by many  co-programmers) 

So it really doesn't matter which programming  language you learn first. Whatever you do, do with enough practice which  will form basic concepts.


----------



## Faun (Aug 10, 2010)

testing VB


----------



## jayantr7 (Aug 10, 2010)

*As I got responses I choose :-*
VB->I will just see it.[If it's good enough]
C + Python -> I will start learning it from now.
C++ ->It's the lord [Of Programming].So I have to learn it of course.
Java ->It will be taught in school.
PHP ->I will see.
       And I will try to fully to concentrate on one and try to get that learning desire for a long time.It's something missing?
Clear my other doubts :-
_# What's ANSI anyway?
# What about C#?
# What is distributed application programming?
_    Do I need need something to modify??ANd ThAnKs FoR aLl ThE hElP...


----------



## Liverpool_fan (Aug 10, 2010)

> C++ ->It's the lord [Of Programming].So I have to learn it of course.


heh @ that
Anyway, while I'll suggest Python, you *can* consider C if you *really* wish. If you want to achieve things faster, go for Python, if you want to begin with a harder language, which does require more effort for initial language but is a one language that has to be learned, then it's C for you. However the probability of learning outdated concepts  and flawed practices is also more likely due to poor manuals (make no mistake, it's well documented but I'm talking of poor books and antiquated code available in the net), as well as inexperienced programmers making a wrong choice. 
Please don't look for any language beyond C or Python at this point of time. While I am not against any language, Perl, PHP, Ruby, Java, each is good; however these two languages C and Python are really well document. Choice of the two depends on how you wish to start.

For Python, I'll give you some links:
BeginnersGuide - PythonInfo Wiki
Python - Notes (Get 2.6.x one)

For print book, this one is good. 
Learning Python, Third Edition - O'Reilly Media

Don't get confused by Python 2.6 and Python 3.x at this point of time. Simply start with 2.6. 2.6 is still widely used and you can ease onto 3.x at later stage easily.

And stay clear of VB. (No I mean Visual Basic NOT vBulletin)


----------



## arpanmukherjee1 (Aug 11, 2010)

jayant_raj7 said:


> _# What's ANSI anyway?
> _


have a look at
American National Standards Institute - Wikipedia, the free encyclopedia
Overview



jayant_raj7 said:


> _# What about C#?
> _


what about it ?? what do u want to know its just another prg language. dont use it at this stage. it has LOTS of classes and u will only get confused if ur concepts of OOPs are not clear.



jayant_raj7 said:


> _# What is distributed application programming?
> _


very very advanced concept. u will study it at college level in 4th year of b.tech.

until then have a look at
Distributed computing - Wikipedia, the free encyclopedia
OpenMP.org  About OpenMP and OpenMP.org

from ur post i get that u have finally chosen a good path of learnig
Happy Programming  !!!!!
*1.bp.blogspot.com/_ZsFQ2SifuyI/Sd10r-B-YuI/AAAAAAAAAHI/4BqX1sdsGag/s400/thumbsUp.jpg


----------



## jayantr7 (Aug 12, 2010)

Thanks to you all... 
These reply's helped me a lot.That's also one of the reasons why I like Thinkdigit[It's community too] the most in-spite that CHIP is getting more interesting now-a-days... 



> from ur post i get that u have finally chosen a good path of learnig
> Happy Programming  !!!!!
> *1.bp.blogspot.com/_ZsFQ2SifuyI/Sd10r-B-YuI/AAAAAAAAAHI/4BqX1sdsGag/s400/thumbsUp.jpg


Who is he??I can't remember him.*So from now my journey begins*.List some very good online tutorials site for C if possible[Not for Python].I will ask some questions in this thread if needed later...


----------



## azaad_shri75 (Aug 12, 2010)

Congratulations - so you finally settled for C, there is some tutorial on wikipedia- see if you can follow it, as its not an easy language as it looks( not dissuading you), however never use Let us C by Kanetkar, you will learn nothing.

Mastering C by venugopal/prasad - tatamcgraw
Apress.Beginning.C.From.Novice.to.Professional.- ivor horton

and there is one Sams teach yourself C , also a good one......

---------- Post added at 08:10 PM ---------- Previous post was at 08:05 PM ----------

Free C Tutorials - freeprogrammingresources.com

C Programming Tutorial


----------



## Liverpool_fan (Aug 13, 2010)

Anyway, the C book I recommend is "The C Programming Language". Another one, I have heard good reviews is : C Programming, a modern approach. Not sure how good is this one though, since I haven't read it.


----------



## jayantr7 (Aug 13, 2010)

OK! Thank to you all    

I will buy those books later...


----------



## azaad_shri75 (Aug 13, 2010)

Liverpool_fan said:


> Anyway, the C book I recommend is "The C Programming Language". Another one, I have heard good reviews is : C Programming, a modern approach. Not sure how good is this one though, since I haven't read it.



thanks for the recommendation , will check that.


----------



## jayantr7 (Aug 14, 2010)

Which Compiler or IDE to use for C and Python?As said above,not to choose Visual basic.Then what?There are tons of apps for that.Which one is the best??


----------



## Garbage (Aug 14, 2010)

Better not to use any IDE at the start. Use Notepad++ (Windows), Vim, gEdit (Linux) for starting.

And if you still think you HAVE to use IDE, then Anjuta or Eclipse.


----------



## azaad_shri75 (Aug 14, 2010)

jayant_raj7 said:


> Which Compiler or IDE to use for C and Python?As said above,not to choose Visual basic.Then what?There are tons of apps for that.Which one is the best??



on windows download python 2.7.x for python and for C use M$ Visual Studio Express edition .

on most *nixes everything is pre-installed ............python for python and gcc for C.


----------



## nileshgr (Aug 14, 2010)

Add Code::Blocks for C/C++ to the list. I think it works on both, windows & linux.
For Python, try netbeans too.


----------



## Liverpool_fan (Aug 15, 2010)

jayant_raj7 said:


> Which Compiler or IDE to use for C and Python?As said above,not to choose Visual basic.Then what?There are tons of apps for that.Which one is the best??


Keep away from Netbeans, Eclipse, Codeblocks, Anjuta, MonoDevelop, Visual Studio, or heck any of those powerful IDEs. Each of them are an overkill for learning programming.
As suggested by a poster above, use text-editor like Notepad++ and use command line for compiling/executing.
However if you want to cut the steps, use a simplistic IDE like Geany. Geany is perfectly suited for learning programming. Supports more than one language too.
Geany - FOSS Powered Wiki

As for "compiler" in Windows, for Python check out Active Python: 
ActivePython is Python for Windows, Mac, Linux, AIX, HP-UX & Solaris | ActiveState

And check out MinGW for C programming:
download.shtml | MinGW
Set Mingw - FOSS Powered Wiki

I have assumed you use Microsoft Windows as your platform. If you use Linux, drop a hint.


----------



## nileshgr (Aug 15, 2010)

^^ Absolutely true.
IDEs are usually an overkill for learning.
Since I'm a hardcore Linux user, I used vim (and still do) to create Python, C programs while learning.
But that isn't good if you want to manage projects and all. It is, but a little tough.


----------



## jayantr7 (Aug 15, 2010)

I will decide it tomorrow.

By the way,if you'll want,then please recommend some more books and online tutorials for learning C and Python...


----------



## abhijangda (Aug 15, 2010)

for python i recommend docs.python.org tutorial, thats the best tutorial available as far as i know.


----------



## nileshgr (Aug 15, 2010)

abhijangda said:


> for python i recommend docs.python.org tutorial, thats the best tutorial available as far as i know.



Yeah, I learned from the same.
Download a local copy (pdf), its always useful during development


----------



## jayantr7 (Aug 16, 2010)

Okey-Dokey! 
I will use Code::Blocks.Can't we run Anjuta on Windows??


----------



## arpanmukherjee1 (Aug 16, 2010)

> There is no native port for Windows and it most likely won't ever be. Anjuta uses         GNOME platform, so it requires GNOME itself to be ported natively to Windows first. However,         there is cywin port of Anjuta (and GNOME) which you can try out on Windows. It's going to         be slow to run, but it works: Cygwin Ports


linux users know better and they dont like or use windows sfts until absolute necessary (that includes me..)

{i have to all my projs on vs08          }


----------

