What? Where do you get that idea? Java and PHP are swimming in cutting edge open source technologies to add to your utility belt. And Sun formally adopts the best of them, as well. And calling C++ a legacy language is silly, too. Oh, and PHP is OOP now. RedRedemption... I think many languages are fine. Hell, Rice still teaches first semester in Scheme. As Kaleidosky says, it makes you think by writing your own design patterns, data structures, recursion, etc versus relying on language libraries to do the real work for you, without ever really learning how to code. pick something free with a lot of online tutorials. In that regard, Java and PHP have the edge, imo. I don't have anything against C#; it's just not as free as Java and PHP. C++ will always be a top language, but it might be regarded as the most difficult, because it is so easy to shoot yourself in the foot -- memory leaks and stray pointers can be hard to debug. You can always learn it later. I'm somewhat old and wrote commercial software in C and C++ prior to Java and PHP being invented. I really like Java now, and have recently done C# work too. I honestly would tell my nephew to start in Scheme though...it levels the playing field and forces you to learn. Recursion is at the heart and soul of Scheme. If you want to study a little in Scheme (like Rice students) prior to picking a more commercial language, check out the book "How to Design Programs," written by the Rice faculty and . Rice has lesson online too. I think MIT teaches freshmen in Scheme too -- MIT invented the language as a newer dialect of Lisp. They might actually have video course you can watch online. Anyhow, the main thing is to not rely too heavily on code generation like Visual Studio .NET or some of the gadgets of Eclipse...not yet. It's like trying to learn javascript by using Scriptalicious. Or for musicians, it's like learning to play the piano on a synthesizer with a lot of buttons and pre-recorded sounds. Then again, it is fun to use Visual Studio and some of the fancy stuff in Java/PHP's open source world....and Ruby (I hear). For jobs, I'd say C# and Java are the best bet.
C is a very low level language. I like c#. Its like java but has a the cool things from C++ like operator overloading and passing by reference. I also believe that the fact that you don't have pointers allows the compiler to some pretty cool optimization.
Which is practical for what, may I ask? I see Java being used in a lot of online applications; but what specific uses (pros and cons?) does each coding language present?
Says file not found... I guess I expected for you to not come through, your name is ChrisBosh after all
Yea, you know they say right? You can code lower level better than a compiler, but you can't covert the exact code to low level better. This means, you'll have to do a lot of coding. With today's computers, amount of code in software and pretty good compilers, it's a little moot. Then you have to worry about garbage collection, type coercion.. etc, all the things higher level languages do automatically. I would recommend C++ if you plan to make money programming. Even i you don't use it, you'll learn the fundamental of programming better. heypartner, PHP had OOP since 4 (so around 2002), though not a full implementation. My work only supports up to 4.3 and I can get by with workaround that mimic OOP. The only issue I have is there's no build in method overloading. They fixed it in 5.
I believe much of the online game EVE is written in Python (Stackless) and C++. I was kind of surprised when I read that.
My coworkers are Ruby crazy but I'm not working on it for this project. I think it's easier for newbs to learn or something. I joined my previous company to learn Java but my lazy ass never took the opportunity. C# also has a lot of corporate adopters. Matter of preference for either Java or C# as both have growing and thriving dev support. I like Java's open source packages. For a good web foundation, you should look into SQL, some java script (unrelated to Java if you're wondering), and some in regular expressions. PHP is still used for websites, but I think corporate sites mostly use a C# or Java for backend at the very least. I'm not sure what Objective C is like (iOS), but learning Java would be good for Android development as well. I think video games when I think of C++. That and lua for scripting. I hear there's demand for Cobol to maintain aging infrastructure while older devs retire. Niche skills will differentiate you from our offshore friends, so it's always something to consider.
The thing is with the compiler you have a lot of peoples idea implemented in them. Unless you really know the architecture and specific tricks its hard to optimize and in that case you might not be able to run on a large set of machines. Thing like loop unrolling, loop fusion, loop interchange, etc things that allow for fine and coarse grain parallelism etc. might be lost again unless you know what you are doing.
You might be getting ahead of yourself versus just picking one that is inexpensive to learn and has many free online resources. As you can also switch later. It's easy to switch languages early. Let me try to answer. It's hard to keep up with many languages, unless you actively write in them, so please add to or dispute my pros/cons 1. C++ Practical Pros: Arguably the broadest use. Definitely command the most money. Used heavily in Enterprise, Network-based and desktop apps If you intend to program games, memory intensive or other high-performance desktop apps, C++ is it High Performance with maximum control over memory use Cons: While it might have the broadest applications/use...that doesn't mean it has the highest demand. Java and C# have highest demand. You can do anything in C++, but not everyone wants it done in C++...if that makes sense. Probably the most difficult to learn and control. Segment Fault! Will require the most solid programming practices and debugging skills Not of high interest in the web-development world, as the programmers cost too much, and it won't do load-balancing for you, among other things 2. C Let's just say C does what C++ can do but it isn't OOP 3. Java Pros One of my jobs at work was to study the development of Java while the Sun consortium was creating it. C++ was by no means the first OOP (not close), but it was the first supported by Microsoft. Many thought Smalltalk had issues and many thought Bjarne Stroustrup designed C++ so it would be backward compatible with C. The Sun consortium chose to not worry about backward compatibility and to create a brand new OOP language. To this day, I don't think their is a better pure OOP implementation than Java; with all due respect to Smalltalk. I do like C# now, finally, too. Strong for Enterprise and Networked/Integration apps. It is the language of choice in this arena...although, C++ can get you hired, people tend to look for Java...largely because you need big teams and too hard to find big teams of C++ programmers unless you are writing profitable commercial apps Equally strong for web-based apps via JSP Servlets imo, the most marketable language Cons Not really good for desktop apps. Windows and Apple languages rule desktops, and Windows wants to kill Java. Consider not a candidate for speed-intensive apps like C++, due to garbage collection, etc. Also, not a candidate for memory intensive apps. 4. C# Pros Because it is Microsoft it will support all deployment platforms. Enterprise, Network, Desktop, Web-based, Mobile apps. Let's just say it is Microsoft's attempt to conquer the world of languages Cons Don't believe the hype. C# has little chance of penetrating the Enterprise and Network-based apps anywhere other than companies who buy Microsoft enterprise solutions. Microsoft is not big at the Enterprise Application level nor the Network Integration level. Most big ERP and CRM implementations hire Java developers. 5. PHP, Ruby, Python, Perl I'm not strong on these, so listen to others. Pros Do not underestimate these scripting languages. Facebook is written in PHP. Youtube in Python. Ruby is becoming very popular, and Perl is the most mature. Very strong with web-based development. Ruby seems to be a newer creation that learned from PHP mistakes, but PHP has a much bigger following Cons Little use in Enterprise, Network or Desktop apps Perl is probably the most bizarre language to learn, but has the best string manipulation of all languages mentioned here. Again. It's hard to keep up with many languages, unless you actively write in them. Surely others can correct me or add. If anyone wants to have a nice debate on C++, C# and Java, let's start a new thread. Not here, though. It might be fun....geeky though.
Rule #1: Learn SQL. If you don't know how to handle basic database interactions and how data should be stored, don't even call yourself a programmer. Here is my conception of tools you need going from pure front-end development to pure back-end. I may miss a couple, and this is from a commercial perspective. Flash Silverlight Javascript libraries (scriptaculous, prototype.js, etc) Javascript C# JSP Java C++ In my case, I have studied all of the above, but I have done mostly web/database stuff for the last 10 years and use primarily javascript/C#/SQL. My boss wants me to start supporting the trade software, so now I have to bone up on the Java side.
Which coding language offers strong foundation? C++ might be the best. C++ in theory is a superset of C, so you start with no-OOP and work toward OOP. If you know C++, Java will be very easy to learn. Objective C++ (used by Apple) may be a good choice for the future. Knowing how to write an iPhone app might be a difference maker on your resume.
Binary (1st generation) and assembly (2nd generation) are considered low-level code. Anything above that is considered high-level or very-high-level lanugage.
PHP should be on top of anyone's list if you're going into web development. It's the most widely used "programming" language for making webpages. I might get into C#. Never touched it. Is it something easy to pick up for a programmer?
Its pretty easy to pick up, but I already know C/C++/Java when I first used it. I would start with C. That's more basic than C++. You're coding much closer to the machine level, so you have more control over what your program is actually doing. OO requires a different way of thinking, but I think the programmer should first acquaint themselves with how programming works at a system level, and then build up to C++, Java, C#, etc. You appreciate the abstractions of those languages more if you do it that way. That would be the 'foundational" approach, IMO.