PDA

View Full Version : [SOLVED] What is the most practical programming language to learn?



ttshivers
April 24th, 2010, 07:12 PM
What is the most practical programming language to learn? I really would like to learn how to program in a programming language and wonder which one is most useful today?

Marlonsm
April 24th, 2010, 07:15 PM
I learned Python very quickly, it's an easy and practical language.

Search for the Begginers Prgramming Challenges and try some of them (even the old ones), they helped me a lot.

azagaros
April 24th, 2010, 07:25 PM
This is a loaded question... Question back: How far do you want to go into programming?

Python Has been stated as a easy language to learn. I am not versed in it personally. It looks like a perverted basic to me.

Pascal was used as the teaching language for years. (lazarus/freepascal) on the linux side and windows platforms.

C/C++ is still widely used. Though it takes a bit to get use to its abstractions.

Perl also sits in this mess with Java.

Virtually any of the above programming languages can achieve the same things, hence the question I fired back. Each can get to the levels of Graphic user interface programming.

simeon87
April 24th, 2010, 07:51 PM
Your question can't be answered because it is ill-defined. What is "practical"?

If you want to make websites, C is not "practical" but PHP is.
If you want to create a game, C can be "practical" but not PHP.

ttshivers
April 24th, 2010, 08:13 PM
Sorry for not including more information. I would like to program applications.

CptPicard
April 24th, 2010, 08:16 PM
What is your experience in programming so far? Strictly speaking, you might want to look for C or C++ for general applications programming, but if you're learning to program as well, the question may have a different answer...

simeon87
April 24th, 2010, 08:18 PM
You could start with Python, it's easy to learn, you can create applications with it that will run on Linux but also on other platforms.

The Thunder Chimp
April 24th, 2010, 08:25 PM
Python is powerful and it's programs can run on Linux, Mac, AND Windows (providing Python is installed on the machine in question (it's installed by default in Linux)). I heard it was easy to learn, and I plan on learning it. But most important of all, choose a language that suits your needs. If there's one language that's more complicated but that can do more, but you don't need more, then don't go for that one. Once you've learned a programming language, learning a second is way easier, so it would be relatively easy to make the switch if it becomes necessary. I heard that in C++ (for example), one needs to write upwards three times the amount of code, to write the exact same program, that Visual Basics would. Of course, if you're on Linux, Visual Basics is probably not a good choice, but it was just an example to illustrate how unnecessarily difficult a language can be for your needs.

Lux Perpetua
April 24th, 2010, 08:27 PM
Sorry for not including more information. I would like to program applications.In other words, you have no idea what you're doing (which is fine). Start with Python and take it from there. If it turns out to be inappropriate for your aims, you can revisit your question, and you'll be able to formulate it better at that point as well.

ttshivers
April 24th, 2010, 08:48 PM
Thank you. I will now try to learn python.

TheFu
April 24th, 2010, 09:26 PM
The most practical programming language to learn today is the language that you will actually learn.

The most useful language to learn is often different and will depend on where you work and what you want to accomplish.

You may want to learn 1 scripted language and 1 compiled language.

Below are my opinions as a professional developer for almost 30 yrs.

If the people around you are all programming in Java and you decide to learn Python, that isn't very useful until you get to a level to connect the languages together.

Are you planning to do web programming, DBMS programming, server programming, *nix programming, MS-Windows programming, GUI programming, cross-platform GUI programming, lite scripting on Windows, lite scripting on *nix, or heavy scripting? The recommended language for each is probably different.

From what I can tell, the most "in demand" and highly paid language today is Java, barring specialized knowledge of a language that nobody really uses ... anymore, but systems still are running. If you NEED a HAL/S programming with DFG and ILoad experience, that pool of programmers is probably under 200 in the world. I'm available, BTW.

Cobol programmers are still being used. They hate their jobs, usually.

Python seems popular with new web developers. I can't stand it since it is column specific.

PHP is popular, but because so many people know it of all different skill levels, it will always be the lowest paid language.

Perl has lovers and haters. I guess it depends on your background and understanding. Perl is 'C' like, so there is a natural connection between Perl and C programming. Perl also as CPAN with tens of thousands of modules for reuse. I doubt even Java has as many modules available. Perl is an extremely fast language at run time while still being scripted. For doing things with text, it rivals the speed/performance of native C. I use Perl almost as much as shell scripts for my daily needs. Some people complain that Perl is difficult to read. Crappy code in any language is difficult to read, so I disagree with that.

C/C++ fit together. C for functional programming and C++ for object oriented programming when things are complex. C is considered the benchmark in performance by which all other programs are compared. C is extremely powerful and efficient when in expert hands. Almost every OS is written in C except the parts that are in ASM and tightly tied to the CPU.

Ruby is an OO scripting language that many of my friends use for their weekend at home projects. They love it. It has always been considered a slow language, but for 95% of the uses, that doesn't matter at all.

Of the mainstream programming languages, I've programmed professionally in C, C++, Perl and Ruby. I've played with Java and found the lack of performance concerning, but that is usually at load time. I've also programmed IBM 360/370 ASM. This info gives you a little background for some of that I've said here.

After all that, if you just want to play at home, Python seems a nice, easy to learn scripted language. I don't know many professional web sites written in it.

If you want to write professional programs and not be in the low-paid PHP crowd, then Ruby. If you want to write fast, native applications for *nix, Windows, and others, then C/C++ are it. For the GUI, I'd use Qt myself.

If you want to be Microsoft centric, you should look at C# - it is like C++, but they manage the pointers. Just be aware that once you start down the dark path, it is hard to come back to the cross platform world. A well written Microsoft application usually can't be easily ported to other platforms after the fact. OTOH, a well written *nix application can usually be ported to almost any other platform provided you used a GUI library like Qt to abstract platform specific calls. If it isn't a GUI program, *nix C and C++ apps are highly portable while still being FAST. Just to be clear, almost any language can be portable if all the platforms are known in advance except the platform specific languages.

Oh, and there's Pascal. Eh. maybe they still teach that some where.

Again, just my opinion.

Lux Perpetua
April 24th, 2010, 09:55 PM
C/C++ fit together. C for functional programming and C++ for object oriented programming when things are complex. C is considered the benchmark in performance by which all other programs are compared. C is extremely powerful and efficient when in expert hands. Almost every OS is written in C except the parts that are in ASM and tightly tied to the CPU.Correction: C is procedural, not functional. There's a huge difference. (Haskell and ML are functional programming languages.)

Ravenshade
April 24th, 2010, 10:05 PM
... *looks back at another thread* I'm seeing repeated lines >_<

Any way.

C/C++ is useful for building high speed applications

Java is easier to learn and churn out applications, the GUI system is also rather easy. ^_^. On the other hand, it's quite slow. (that's getting better) A huge advantage of Java is that it works well across many platforms.

Ravenshade
April 24th, 2010, 10:06 PM
--wiped

CptPicard
April 24th, 2010, 10:15 PM
Haskell is not functional. Fortran is Functional, Haskell is Declarative. LISP is anyone's guess.... >_>

What? :confused:

Haskell is both functional and declarative, fortran is imperative (and non-functional), Lisp is more of a multiparadigm language where you can approach things in a functional fashion if you want to, or use imperative constructs...

Really, look up the definitions, they're in Wikipedia :)

Ravenshade
April 24th, 2010, 10:34 PM
Wikipedia isn't reliable. I'd sooner believe someone with a PHD in Computer Science.

CptPicard
April 24th, 2010, 10:40 PM
Wikipedia isn't reliable. I'd sooner believe someone with a PHD in Computer Science.

This sort of utterly basic classification stuff hardly requires a PhD in computer science... I've got a MSc in CS and trust me, Wikipedia has these things pretty well covered, or I'd go edit the articles.

For example, from Haskell.org:



Haskell is an advanced purely functional programming language.

You'd think they know what they're talking about? Haskell's developers are highly academic...

Ravenshade
April 24th, 2010, 10:43 PM
*facepalm*

soltanis
April 24th, 2010, 11:28 PM
After all that, if you just want to play at home, Python seems a nice, easy to learn scripted language. I don't know many professional web sites written in it.


Google.

The Thunder Chimp
April 25th, 2010, 01:47 AM
Google.


Really? Cool. By the way, shouldn't this be moved to Recurring Discussions?

simeon87
April 25th, 2010, 11:51 AM
Wikipedia isn't reliable. I'd sooner believe someone with a PHD in Computer Science.

That's not true, Wikipedia is quite reliable in many technical or factual areas such as mathematics, computer science, physics, geography etc.