View Full Version : Selecting a programming language...
Shadowpawn
09-20-2005, 06:45 PM
I know this topic can spur alot of debate but I'll ask anyways. :-)
Which programming language would you recommend ...
I am relatively new to PC programming (hence the basic newbie question). I would like to be able to create stand alone applications such as specialized code editors, business type applications such as inventory programs (database apps). I don't see me doing graphical work (stickmen can only get you so far). I would like to be able to put my projects out on the net for anyone to use if they wanted so the programs should install/run with the least amount of hassle for the user. Perhaps even make them usable to Linux users.
I have been doing alot of Microsoft Access work the last few years but this isn't a programming language and you can't readily redistribute your work.
I have played with Visual Basic 6 to an intermidiate level. But isn't VB6 pretty much dead now that .NET is here? Should I spend any more time with this language? Linux people can't use my apps can they?
I've stuck my head into Visual Basic .NET a bit. New learning curve but some nice features to play with. Hate the 25Mb framework that you have to package with your programs (I know - eventually everyone will have this installed so you don't have to). Linux users can't really use my apps either.
Last time I asked a friend this same question the response was to the effect that "Real programmers use C++." So I took a look at that language. Let's just say the book I was reading scared me worse than Steven King's novels. It seemed like alot of power but it took 50 lines just to do anything in C++.
I recently stumbled across REALBasic 2005. A version of BASIC that is supposed to be Windows, Mac and Linux viable. Nice looking but I would need to do some learning again. Minimum app size on Windows is 2.4Mb in a single stand-alone file which was nice.
I realize that each language has its strengths and weaknesses. I also realize that most programmers end up learning many languages. But for applications such as I described briefly what is a good starting point? Abandon VB6 for .NET? Start struggling with Visual C++? Borland's Delphi? Pascal? Where should I start? What would you recommend?
Thanks All
KeZZeR
09-20-2005, 09:12 PM
To be fair, any language you learn is going to be handy. If you want speed then C++ is where it's at, bearing in mind that it is a low level language and henceforth is quite a lot harder to grasp than other languages. If you want portability then Java is a lovely language to learn, and many languages are derived from a C variant anyway.
For what you said, a standalone program which communicates with a database, i'd personally recommend Java as that's what I program in and I am also currently writing a client-side application which communicates with a database. It's very portable but obviously its speed doesn't match that of C++. If you're new to programming then you'll have to start from the very ground up, don't jump in the deep end otherwise you'll make mistakes and end up with a bad application. There's plenty out there though, but don't just listen to me as there are many languages out there that i'm unaware of other languages features :)
felgall
09-20-2005, 10:16 PM
Work out what type of programming language you want to learn - Object Oriented is currently popular. You can then select any programming language that supports that type of programming and learn that. Most of what you learn will then be easily transferrable to other languages of the same type since you will already know how to code the program and will just need to learn the specific syntax. The first language of a new type is always the hardest to learn.
KeZZeR
09-20-2005, 10:35 PM
Object Oriented is currently popular.
Hehe, that made me chuckle ;)
Mhtml
09-21-2005, 10:50 AM
C is still the most widely used language.
Object Oriented languages are indeed very popular, they provide decreased turnout time and by making a program modular it makes maintaining code and visualizing said code/programs much much easier. I swear by C++ myself, but then again it depends on what I'm doing.
I say the same thing everytime this question is asked. Firstly, don't listen to anyone who tells you that any particular language is the best to learn. They're fools.
Selecting a programming language to learn really depends on the task you wish to complete. In your case I would assume the task would be to become familiar with programming logic and general programming syntax. For this you are going to want a language that is fairly forgiving with syntax, easily distinguished syntax and built in memory management.
So given requirements like that I can now think about what languages come to mind and then give a list of several you might enjoy.
Firstly you can't go past BASIC, or a flavour of it at least. It suits all of those requirements and is a great point to start. Python, an interpreted language is another great language which will help you to learn to program like a pro. It is pretty forgiving, very extendable and there is no compiling involved as it is interpreted- very good for continually changing 1 or 2 things in a program to see what happens.
I wouldn't recommend C or C++ to begin, there is a lot more to these languages than most beginners realize.. There are a lot of people who tell you to learn these languages, but these people themselves are terrible programmers who probably don't even understand or even know of much of the theory behind programming and as such taking there advice just makes you like them and you'll never be a good programmer.
I have programmed in dozens of languages, I've read countless books and webpages, I've even taught classes on progamming... And I know enough to tell you that I'm not an expert, and I don't claim to be such... there are very few real experts out there, I've never met one yet.
For standalone business style applications it depends on your time frame and your wallet size.
Microsoft Visual Studio, allows fast development of windows based applications. However there is a lot to learn if you don't already know how to program in either C or C++ and the learning curve will probably turn you away from it pretty quick. It is also quite expensive.
I recommend programming in straight C/C++ to begin windows programming anyway. Because you get to learn how the Microsoft Foundation Code works and thus understand how to use MSVC and the like.
If you have never created much, or you are quite new to programming than you might be going a little to fast. If you don't know what language to use already then don't expect to be creating any great applications soon.
C++ is a great language to use for creating GUI applications, there are many different GUI libraries out there, most of them are in fact cross platform meaning that you can very easily port your application to nearly any system. It is really hard to provide information however without knowing exactly what sort of thing you are wishing to develop and what level of programming you are up to...
Have you done much programming before? Jumping straight into programming gui based applications will be a bit much for you if you don't already have the basics like control structures, variables, memory and abstract data types understood.
Shadowpawn
09-21-2005, 01:46 PM
Thanks for all the input so far.
Little more background Mhtml. Take a step way back into history - just before the dinosaurs became extinct...remember 6502 assembler and Commodore's computers? When universities still taught Fortran? Computers cost several thousands of dollars for what we now would consider a $5 calculator? :-) I used to spend hours on my old Commodore 64 writing programs and lots of assembly code for an old BBS I and a friend ran.
I am very proficient with non-OO Basic from those days. I took Pascal at college - required course for my electronics engineering. Recently I have spent the last 3 years doing largely Microsoft Access (which included MS VBA) work and a little HTML. I have dabbled in MS VB6 and am becoming comfortable (notice I didn't say "good") with it but I worry that it is relatively wasted time now that .NET is out and looks like it's here to stay. I tried a little Visual C++ but found the learning curve pretty steep. You have to understand properly concepts like inheritance, encapsulation and bunch of other principals to use C++ properly - if you don't you are only going to write crap.
What I would like to start out on is a specialized (simple) code editor for CNC machining I do at work. Needs a few "tools" in it and serial communications. Something that I can start then keep adding to as I learn. I have already started this in VB6 - load/save, cut/copy/paste, filtering unwanted chr$()'s...
After that project (or once I know enough to stretch myself again) I have a small HR project. Database type stuff to store employee information, record training, reviews etc... Little larger project but still keeping it relatively small to start and adding as I learn.
Then maybe the following week I'll try writing the ERM (inventory, accounts, orders ...) application to sell world wide and make millions!
nikkiH
09-21-2005, 02:15 PM
My opinion...
As someone who learned systems programming with C and Assembler over 12 years ago, then gradually ended up doing internet applications and forgetting a whole bunch of that Assembler stuff, I find that I learn new languages much better than my colleagues who just learned a computer language like Java or VB/ASP, because I understand the concepts behind good programming. Once you know about data structures, variable scope, and all that other procedural programming theory, any procedural language is pretty easy to learn. You just need to find the gotchas of the one you're learning (e.g. the way PHP handles globals) and exact syntax, functions available, etc.
But pretty much every language can loop. Every one has a way to store things in variables. And so on.
Same for OOP. Once you know procedural programming, you can build on that knowledge by adding concepts like inheritance, encapsulation, and all that jazz. But at the heart of OOP are methods that are still mostly procedural programming -- just in smaller chunks.
If you don't understand for loops, iterating with Enumerator will be like putting the cart before the horse.
So, IMHO, if you want to be a decent programmer, learn the concepts. The language you learn to demonstrate the concepts is nearly irrelevant.
First procedural, then OOP.
KeZZeR
09-21-2005, 04:02 PM
To be fair, ANY language is a good language to learn as it does teach programming principles, in fact, the majority of GOOD programmers that i've met have come from a VB.NET background. I wouldn't slate any language as they are all designed for different purposes. I couldn't tell you not to learn a specific language as well as you should learn a specific language. I started off on JavaScript, then PHP then onto Java, I am slowly getting used to C++ though.
Mhtml
09-22-2005, 09:59 AM
Well, you obviously know your way around the concept of programming I would say. So it's now up to you to decide on what language to use, use what you feel comfortable in and is easier for you to create what you want.
You have many options, from C, C++, Java, VB, MS.NET varieties and many many more...I'd recommend reading up on different language types to decide on what language you'd like to use.. But you shouldn't have any problems with using your chosen language on nearly any platform you can think of.
So just load up google or wikipedia or something and go for it!
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.