1. Welcome! Please take a few seconds to create your free account to post threads, make some friends, remove a few ads while surfing and much more. ClutchFans has been bringing fans together to talk Houston Sports since 1996. Join us!

Which coding language offers strong foundation?

Discussion in 'BBS Hangout' started by RedRedemption, Jun 9, 2011.

  1. heypartner

    heypartner Contributing Member

    Joined:
    Oct 27, 1999
    Messages:
    62,594
    Likes Received:
    56,362
    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.
     
    #21 heypartner, Jun 9, 2011
    Last edited: Jun 9, 2011
    1 person likes this.
  2. droxford

    droxford Member

    Joined:
    Oct 26, 2001
    Messages:
    10,123
    Likes Received:
    1,589
    C, Javascript, and PHP are NOT low level (although assembly is)
     
  3. Air Langhi

    Air Langhi Contributing Member

    Joined:
    Aug 26, 2000
    Messages:
    21,628
    Likes Received:
    6,260
    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.
     
  4. RedRedemption

    RedRedemption Contributing Member

    Joined:
    Jul 21, 2009
    Messages:
    32,472
    Likes Received:
    7,652
    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?
     
  5. ChrisBosh

    ChrisBosh Member

    Joined:
    Mar 29, 2006
    Messages:
    4,266
    Likes Received:
    259
  6. TheRealist137

    TheRealist137 Member

    Joined:
    Jan 27, 2009
    Messages:
    33,423
    Likes Received:
    19,299
    Says file not found...

    I guess I expected for you to not come through, your name is ChrisBosh after all
     
  7. Billy Bob

    Billy Bob Member

    Joined:
    Nov 1, 2009
    Messages:
    591
    Likes Received:
    21
    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.
     
  8. ChrisBosh

    ChrisBosh Member

    Joined:
    Mar 29, 2006
    Messages:
    4,266
    Likes Received:
    259
    LOL, at least its not Lebum James:grin:

    BTW here is the link again....

    http://www.python.org/about/
     
  9. Prince

    Prince Member

    Joined:
    Apr 27, 2009
    Messages:
    5,375
    Likes Received:
    161
    Java. Free and there's so many available books online.
     
  10. Dr of Dunk

    Dr of Dunk Clutch Crew

    Joined:
    Aug 27, 1999
    Messages:
    45,240
    Likes Received:
    31,248
    I believe much of the online game EVE is written in Python (Stackless) and C++. I was kind of surprised when I read that.
     
  11. Invisible Fan

    Invisible Fan Contributing Member

    Joined:
    Dec 5, 2001
    Messages:
    43,501
    Likes Received:
    25,501
    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.
     
  12. Air Langhi

    Air Langhi Contributing Member

    Joined:
    Aug 26, 2000
    Messages:
    21,628
    Likes Received:
    6,260
    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.
     
  13. heypartner

    heypartner Contributing Member

    Joined:
    Oct 27, 1999
    Messages:
    62,594
    Likes Received:
    56,362
    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:
    1. Arguably the broadest use. Definitely command the most money.
    2. Used heavily in Enterprise, Network-based and desktop apps
    3. If you intend to program games, memory intensive or other high-performance desktop apps, C++ is it
    4. High Performance with maximum control over memory use
    Cons:
    1. 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.
    2. Probably the most difficult to learn and control. Segment Fault! Will require the most solid programming practices and debugging skills
    3. 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
    1. 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.
    2. 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
    3. Equally strong for web-based apps via JSP Servlets
    4. imo, the most marketable language
    Cons
    1. Not really good for desktop apps. Windows and Apple languages rule desktops, and Windows wants to kill Java.
    2. 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
    1. Because it is Microsoft it will support all deployment platforms. Enterprise, Network, Desktop, Web-based, Mobile apps.
    2. Let's just say it is Microsoft's attempt to conquer the world of languages
    Cons
    1. 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
    1. 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.
    2. 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
    1. Little use in Enterprise, Network or Desktop apps
    2. 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.
     
    #33 heypartner, Jun 10, 2011
    Last edited: Jun 10, 2011
    1 person likes this.
  14. durvasa

    durvasa Contributing Member

    Joined:
    Feb 11, 2006
    Messages:
    38,028
    Likes Received:
    15,504
    No love for Fortran?
     
  15. heypartner

    heypartner Contributing Member

    Joined:
    Oct 27, 1999
    Messages:
    62,594
    Likes Received:
    56,362
    There's still hope. Skype is written in Pascal (Delphi).
     
  16. Gutter Snipe

    Gutter Snipe Contributing Member

    Joined:
    Jul 30, 2001
    Messages:
    2,987
    Likes Received:
    65
    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.
     
  17. No Worries

    No Worries Contributing Member

    Joined:
    Jun 30, 1999
    Messages:
    30,294
    Likes Received:
    17,239
    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.
     
  18. droxford

    droxford Member

    Joined:
    Oct 26, 2001
    Messages:
    10,123
    Likes Received:
    1,589
    Binary (1st generation) and assembly (2nd generation) are considered low-level code. Anything above that is considered high-level or very-high-level lanugage.
     
  19. Billy Bob

    Billy Bob Member

    Joined:
    Nov 1, 2009
    Messages:
    591
    Likes Received:
    21
    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?
     
  20. durvasa

    durvasa Contributing Member

    Joined:
    Feb 11, 2006
    Messages:
    38,028
    Likes Received:
    15,504
    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.
     

Share This Page

  • About ClutchFans

    Since 1996, ClutchFans has been loud and proud covering the Houston Rockets, helping set an industry standard for team fan sites. The forums have been a home for Houston sports fans as well as basketball fanatics around the globe.

  • Support ClutchFans!

    If you find that ClutchFans is a valuable resource for you, please consider becoming a Supporting Member. Supporting Members can upload photos and attachments directly to their posts, customize their user title and more. Gold Supporters see zero ads!


    Upgrade Now