Jump to content

Programming - what type?


PandaRenegade
 Share

Recommended Posts

I'd like to have a play with getting into programming and am wondering what type of programming to have a go at? I've looked at C++ and Java but I'm wondering if these may soon be obsolete and a new type of programming will be out?

What would people recommend I try out? Is C++ still a popular tool?

Link to comment
Share on other sites

  • Replies 70
  • Created
  • Last Reply

Top Posters In This Topic

  • derbyspecial

    15

  • MaW

    14

  • PandaRenegade

    9

  • Burnsy2023

    5

I doubt that C++ and Java will be obsolete any time soon - most low level programming is written in C/C++ (Operating systems etc) and Java has a huge pull in the enterprise arena.

C# is a more 'updated' version of C++, but as far as I am aware its not widely used.Either way, the syntax of Java, C, C++, C# etc are all pretty similar, so learning one will give you a headstart on learning another.

My personal favourite is Java, partly because if you write the program properly you can run in from any operating system. Performance of Java applications can rival C++ applications if they are programmed well, and Java deals with some of the more mundane parts itself like freeing unused memory.

Link to comment
Share on other sites

My personal favourite is Java, partly because if you write the program properly you can run in from any operating system. Performance of Java applications can rival C++ applications if they are programmed well, and Java deals with some of the more mundane parts itself like freeing unused memory.

Cheers DS. Would I have to have a bit of an understanding of the variants of 'C' before having a go at Java or should I just dive in at the deep end and crack on with Java? Any advice on programming progams / books / training materials?

Link to comment
Share on other sites

I doubt that C++ and Java will be obsolete any time soon - most low level programming is written in C/C++ (Operating systems etc) and Java has a huge pull in the enterprise arena.

Indeed. Both languages have been going for decades and will continue to do so.

C# is a more 'updated' version of C++, but as far as I am aware its not widely used.

Let me correct you on this. C# is a totally different language to C++. C# was Microsoft's attempt at cloning the C++ syntax but layering it on top of .Net. FYI, C++ is compiled to machine code; the 0 and 1s that the processor executes. C# runs in a similar way to Java and compiles to what is not called 'byte-code'. This byte code runs in a virtual machine (VM); in Java it's called the JVM in .Net it's called the common runtime environment. However, this doesn't make a lot of difference to a developer. As to C# being widely used, I couldn't disagree more. In fact I would suggest that C# is more widely used than C++. C++ is generally used when you need raw performance; VM execution is slower than native machine code. However, because the code runs in a VM, it is more versatile. C# is used for normal Windows applications as well as used in .ASP for web applications and also mobile applications for Windows Mobile. Also, knowing about the .Net libraries is hugely beneficial.

My personal favourite is Java, partly because if you write the program properly you can run in from any operating system. Performance of Java applications can rival C++ applications if they are programmed well, and Java deals with some of the more mundane parts itself like freeing unused memory.

Java performance is nowhere near C++ even on well optimised code. However, I do like Java. If you are learning programming principles, the language is very strict with the syntax and has plenty of support and good development environments such as Eclipse or NetBeans.

If you are learning with no prior experience I would suggest C# or Java, but you may also want to look at other frameworks such as Ruby on Rails or Grails, as they allow you to see what your making a lot faster and so it will give you a good baseline before you go into something C related.

Link to comment
Share on other sites

I use Java all the time in my day job. It's a *very* popular language (and *platform*, Java doesn't end with the language) and is very versatile, I've used it on trading systems, risk systems, the web, user land software, plugins, all sorts.

C++ is also a good language to learn but I'd suggest learning C and then C++. I've taken C++ off my CV though as the jobs are in specific areas, like quantitative finance, telecoms, embedded systems the sort of which either pay really well but are very specialized (like the quant stuff) or don't pay as well as others (telco) and embedded has never been my bag.

With regards to performance, Java these days is very quick and in certain circumstances can be faster than C++ as code can by statistically optimized by the running system where as C++ is statically done, you have to pay the price in garbage collection for the convenience of not having to manage your memory, but these too have come on a long way.

Link to comment
Share on other sites

I'd suggest trying the .NET Visual Studio Express compilers; either C# or VB.

http://www.microsoft.com/express/

I think if you're a total novice then the VB.net edition will probably be easiest to pick up, and there's little practical difference between the two in terms of what you can, or can not, do.

Link to comment
Share on other sites

Java all the way, for a first language to learn.

Learning how to program is not really about what language you use, its more to do with the fundamental basics and understanding of how coding works. If you're going to get anywhere in programming you need to learn these basics and once you truly understand how and why you need to use certain syntax and coding strategies, you'll be able to pick up a new language twice as fast as learning it from scratch.

Java has most of these fundamental universal basics surrounding object oriented coding, pick up a Learning Java book* and jump into it.. Once you've got a firm understanding of Java, then move onto whatever language you want.

*My University taught Java using the BlueJ books - VERY VERY good way of learning java, and the tool they dish out (BlueJ) is like such a helpful programming environment tool. Took me from a complete amateur to a First Class Degree (awaits abuse).

http://www.amazon.co.uk/Objects-First-Java...n/dp/0131249339

Edited by timmyb12345
Link to comment
Share on other sites

Java has most of these fundamental universal basics surrounding object oriented coding, pick up a Learning Java book* and jump into it.. Once you've got a firm understanding of Java, then move onto whatever language you want.

*My University taught Java using the BlueJ books - VERY VERY good way of learning java, and the tool they dish out (BlueJ) is like such a helpful programming environment tool. Took me from a complete amateur to a First Class Degree (awaits abuse).

http://www.amazon.co.uk/Objects-First-Java...n/dp/0131249339

We used to do BlueJ as well (Southampton Uni) until the course was redesigned. I'm not sure if I like it or not. I would suggest using this book instead: http://oreilly.com/catalog/9780596009205/ It's so much better.

Link to comment
Share on other sites

Indeed. Both languages have been going for decades and will continue to do so.

Let me correct you on this. C# is a totally different language to C++. C# was Microsoft's attempt at cloning the C++ syntax but layering it on top of .Net. FYI, C++ is compiled to machine code; the 0 and 1s that the processor executes. C# runs in a similar way to Java and compiles to what is not called 'byte-code'. This byte code runs in a virtual machine (VM); in Java it's called the JVM in .Net it's called the common runtime environment. However, this doesn't make a lot of difference to a developer. As to C# being widely used, I couldn't disagree more. In fact I would suggest that C# is more widely used than C++. C++ is generally used when you need raw performance; VM execution is slower than native machine code. However, because the code runs in a VM, it is more versatile. C# is used for normal Windows applications as well as used in .ASP for web applications and also mobile applications for Windows Mobile. Also, knowing about the .Net libraries is hugely beneficial.

Java performance is nowhere near C++ even on well optimised code. However, I do like Java. If you are learning programming principles, the language is very strict with the syntax and has plenty of support and good development environments such as Eclipse or NetBeans.

If you are learning with no prior experience I would suggest C# or Java, but you may also want to look at other frameworks such as Ruby on Rails or Grails, as they allow you to see what your making a lot faster and so it will give you a good baseline before you go into something C related.

I agree with everything that Burnsy has said above, with one addition that he alluded to - C# was Microsoft's attempt at creating a Java competitor, but isn't as popular.

I've worked in the software industry for 10 years as a developer and consultant. Whilst I am slightly biased in that I currently work for Sun Microsystems (not for much longer I might add) - I would recommend Java as a fantastic language to learn with - there's a wealth of free training materials online (particularly on the Sun website) and the IDE is free - download Netbeans and the standard Java plugins for the IDE, then later on move onto C and C++ and get the Netbeans plugins for those.

As others have said, there will always be a trade off between code compiled for a native platform as opposed to something run from byte code inside a virtual machine. But unless you are squeezing every last ounce of performance out of the host platform, you'll find that you'll easily make it up by writing cleaner, more efficient code and with advances in processor technology etc. Happily, with Java you don't have to code for the idiosynchrosies of the host platform/OS - you just code for the JVM and let that handle everything else. Most JVM vendors will have optimised their VM for the host OS - why should you reinvent the wheel by trying to write an application in C++ for multiple target platforms when writing it once for Java will do the job just as well?

Having spent many a happy hour inside a debugger trying to find a memory leak or bad pointer reference, I'd not recommend C as a starter. Equally, I would not recommend C++ as a starter for learning an object orientated approach - just look at something like friend classes for starters (the devils work) and multiple inheritance doesn't make life easy for the newbie either.

Get Netbeans and get playing. If you really want to learn some valuable skills, download OpenSolaris or Linux and get some Unix experience as well.

I started my professional programming career with C on what used to be DEC VMS - now that takes me back!

TW

Link to comment
Share on other sites

I agree with everything that Burnsy has said above, with one addition that he alluded to - C# was Microsoft's attempt at creating a Java competitor, but isn't as popular.

I'm not sure it was ever intended as a direct competitor to Java as one of the primary advantages is the platform independence. Without the .Net framework on *nix, I can't see how it would ever be a direct competitor.

I can see your point about MS developing a framework that makes garbage collection etc all automatic to give some of the Java advantages though.

Link to comment
Share on other sites

I learnt both C# and VB(most peoples first language)

I prefer C# out of the two, always wanted to delve into C++ but never had the chance.

Link to comment
Share on other sites

I'm not sure it was ever intended as a direct competitor to Java as one of the primary advantages is the platform independence. Without the .Net framework on *nix, I can't see how it would ever be a direct competitor.

Trust me, it was the intention - even without the platform independence, which actually MS probably do not want.

Often the .Net framework, SQL Server, MTS (not sure if that still exists now) and other associated enterprise software go up against the J2EE/LAMP enterprise stack - so it's not just the language at stake (that's actually trivial in the grand scheme of things), it's everything across the enterprise from client OS to the database licences for the database tier. Having a "Java equivalent", IMHO, got them on the bandwagon whilst locking people into Windows licences, Visual Studio, SQL Server, IIS and everything else that MS want to sell to an enterprise.

Ultimately I believe we are going to end up with the three big players - Microsoft, Oracle and IBM all fighting it out for their piece of the enterprise pie. Mmmmm, pie....... :unsure:

Cheers,

TW

Link to comment
Share on other sites

Java performance now is actually quite remarkable, it can outstrip C++ in some instances. On top of that there are projects that compile Java code to native code (at least on Linux machines, not sure about windows) such as GCJ.

I was under the impression that C# was based on C++, but intended to make it more object oriented. If not, then I stand corrected.

I'm not too sure whats going to happen with Java after the impending Oracle takeover of Sun, but its a safe bet that Java is still safe for many years. Oracle are reliant on Java for their huge database. (Never had much to do with Oracle, DB, infact I pretty much loathe the thing!).

I would agree with Hotlush - VB.Net is probably pretty easy to learn. But then you are tied down to Microsoft only applications, running on Microsoft only platforms. VB is easy to use because it does the hard work for you, most of it is point and click, then just code what happens if something is clicked. Up to VB6 anyway never used dotNet as i left Microsoft behind before it was released.

As for Java learnign materials, the trails on Suns website are pretty good, and a quick Google will turn up some basic resources.

Link to comment
Share on other sites

I'd like to have a play with getting into programming and am wondering what type of programming to have a go at? I've looked at C++ and Java but I'm wondering if these may soon be obsolete and a new type of programming will be out?

What would people recommend I try out? Is C++ still a popular tool?

Most of the programming languages these days are object based, so having a grasp of the concepts involved is pretty important, also the stuff about re-usable code etc etc. I learnt about object orientated programming using Smalltalk, which is very basic, free, and easy to use. After that it was on to C++ and Java, both of which are very useful languages to learn, particularly the latter.

Link to comment
Share on other sites

 Share

×
×
  • Create New...