Page 3 of 4 FirstFirst
1
2
3
4
LastLast
  1. #41
    Deleted
    the huge problem with learning java is that while yes, you can learn java, the real thing you want to learn is object oriented programming.

  2. #42
    Go with Java. You won't regret it. Right now it's the most used language in the world (I had a chart but I lost the link), Java 1st, C++ 2nd, C 3rd.

    Java is easy to learn, it has a huge community. But to use it you MUST know OO.

    Some people will say "but you have to to write so much to just create a hello world" and I always say: "WHY THE FUCK DO YOU WANT TO MAKE A HELLO WORLD????? Nobody will hire you to create a hello world.". Java is OO, it means you have to write a lot for small things but you can always use the same code for a lot of things.

    If you learn OO then you can master Java. OO is its hardest part in my opinion.

    A great thing about it is that Java is very well documented.

    I use the Eclipse IDE.

    Eclipse: http://www.eclipse.org/downloads/
    Java Development Kit: http://www.oracle.com/technetwork/ja...ads/index.html

    Hints about Eclipse:

    If you get an error in your code, click the piece of code that has the error and do ctrl + 1 and Eclipse will offer you a quick fix.
    If you don't remember the name of a method you can type the name of the reference variable put a dot then ctrl + space and it'll show you the name of all methods and attributes, arguments that the method accept and it's return type.
    Last edited by bloody251; 2012-02-17 at 12:33 PM.

  3. #43
    Quote Originally Posted by Biged781 View Post
    Systems or video game programming? C++ all the way.
    I'd say C all the way. C++ if you're working on legacy code that was written in it.

  4. #44
    Deleted
    Brett...I think you have yourself mixed up.

    Objective C for iphones is a pain in the ass (just found this out).

    It's worth mentioning java is taught in most universities for a reason (ease of learning) too.

  5. #45
    Stood in the Fire
    10+ Year Old Account
    Join Date
    Feb 2011
    Location
    Far away from home
    Posts
    496
    Quote Originally Posted by Dupin View Post
    I considered myself a hardware guy too. I love to work with my hands all greasy too!
    But even if I can make a living as a hardware technician, here in my country they aren't at all respected. Everyone gives you shit, and it's terrible paid.
    If you want to take part in hardware development there is no way around C. A lot of chip manufacturers don't even offer a C++ compiler, because when it's about firmware, even today most people don't see a point in using an OOP approach. I have to agree with this, because in firmware development you care more about the way your hardware is built and even derive from this if you use a time triggered task scheduling of compose event triggered ISRs with background tasks, depending on your timing requirements and the overall system layout. Hence, things can get quite complex and you will seek to keep stuff simple. As soon as you have parallel computational units, your intrinsics will make stuff complicated enough.

    On the other hand, if you are good in C++ you know everything you need to know about C. In my opinion, once you know one language really good, the rest is just syntax. Switching from C++ to C# is also very simple as it just makes things easier (if you want to control or test stuff on your hardware from the PC, writing a quick C# GUI is really nice).

    Also, don't care too much what people say about job reputation. Today, you have electronics everywhere and the biggest part in electronic engineering is usually firmware development. Here, good people are rare and if you know about both, hardware and programming, getting a job is really cherry picking. It's often not that obvious for the common people, but just image what number of ECUs you have just in very car -> everyone has a car, then all the automation industry is depending on embedded systems (i.e. the production lines are full with them), you don't even have a coffee machine without microcontroller inside. Ok, I don't wanna be the guy to program the coffee machine, but still someone has this job and cannot be simply replaced by some computer scientist who as no clue about electronics design.

  6. #46
    Quote Originally Posted by Nilan View Post
    Brett...I think you have yourself mixed up.
    Why would you think that? C is still much more portable than C++, for example. I see no benefit for using C++ over C for most projects. Learn C and learn an OO language that's not C++. C++ was designed to be an object oriented language that's backwards compatible with C, as such it carries a lot of baggage that other OO languages don't.

    Objective C for iphones is a pain in the ass (just found this out).
    Objective-C is an excellent language. What exactly did you find to be a "pain in the ass" about it?

  7. #47
    Deleted
    Quote Originally Posted by Brett Skullcrack View Post
    Why would you think that? C is still much more portable than C++, for example. I see no benefit for using C++ over C for most projects. Learn C and learn an OO language that's not C++. C++ was designed to be an object oriented language that's backwards compatible with C, as such it carries a lot of baggage that other OO languages don't.

    Objective-C is an excellent language. What exactly did you find to be a "pain in the ass" about it?
    Learning a relatively new language on short notice :P

    Sorry, did you call vanilla C OO? Can you write C? It's procedural. It's not OO. Sure, they've implemented things like TRY-CATCH over the years ported from other OO languages but at best any OO style C code is hackish at best and a mess at worst. C++ exists specifically as it was a project started to turn C into an OO language.

    Code:
     
    main()
     {
            printf("hello, world\n");
     }
    Lets try Java

    Code:
    public class hello
    {
    	public static void main(String args[])
    	{
    
    		System.out.println("Hello world");
    	}
    }
    Procedural PHP

    Code:
    <?php
    
    echo "Hello World";
    
    ?>
    OO Php
    Code:
    <?php
    
        class helloWorld 
        {
           function worldPrint() 
           {
           print “Hello world!”;
           }
        }
    
        $myHelloWorld = new helloWorld();
        $myHelloWorld->worldPrint();
    
        ?>

  8. #48
    Quote Originally Posted by Nilan View Post
    Sorry, did you call vanilla C OO?
    No I didn't.

  9. #49
    Deleted
    My mistake actually, I misread what you said, fair do. I thought you'd said "learn C, an OO language thats not C++" :P

  10. #50
    Quote Originally Posted by Fuzzykins View Post
    http://en.wikipedia.org/wiki/C_Sharp...ng_language%29

    That's a pretty compelling argument that says otherwise.
    I, FattyXP, called Java a copy of C. So therefore C# is naturally a derivative of C even if it is an "imitation" of java.

    Not to mention even before the bit you are trying to take out of context:

    During the development of the .NET Framework, the class libraries were originally written using a managed code compiler system called Simple Managed C (SMC).[12][13][14] In January 1999, Anders Hejlsberg formed a team to build a new language at the time called Cool, which stood for "C-like Object Oriented Language".[15] Microsoft had considered keeping the name "Cool" as the final name of the language, but chose not to do so for trademark reasons. By the time the .NET project was publicly announced at the July 2000 Professional Developers Conference, the language had been renamed C#, and the class libraries and ASP.NET runtime had been ported to C#.
    Its original name was COOL to stand for C-like Object Oriented Language. C like, not JAVA like. It would make sense that the creator of Java would call something that imitates what he imitated an imitation of his work. Its like me painting a new Mona Lisa and saying that Leonardo was imitating my work.
    Last edited by FattyXP; 2012-02-17 at 01:49 PM.


  11. #51
    Quote Originally Posted by Fuzzykins View Post
    If you know C#, you should understand C++ and Java to an extent. C# is the result of Java and C++ having a child together.
    this.

    I would go either Java or C++. Personally, i feel Java is "easier" to understand.
    http://eu.battle.net/wow/en/forum/topic/3010461094

    Zellviren of Invective of Killrogg: I salute you.

  12. #52
    Quote Originally Posted by Grinderofl View Post
    C#. Trust me. Universities produce tons of Java programmers and they're everywhere. You don't want that. You want C#.NET. It's good, powerful and easy. Either that or C++. Or both. Just not Java. Python's worse, actually. I haven't seen any job ads relating to Python. However .NET ones are everywhere.
    The only reason to even use java anymore is for cross platform support without the need to recompile on the other host OS.
    Java is old, slow as shit, requires a huge framework which takes up a large amount of memory/clock cycles. At least for me, whenever JRE would start my computer would slow down by about half speed... course this was back when I had a 933mhz processor and 2gb of RAM. Its done this to me on any computer I've ever had to to install it on that wasn't a dual core or higher.

    .NET is in demand because what does the business world run on? Windows. Whats the big thing with Microsoft/Windows programming? .NET (especially since Windows 7 and x64 where Visual Studio 6 is much less useful)

    I recommend learning .NET as a whole, from VB.NET to C#. The greatest part about .NET is you can mix and match the different languages IN THE SAME PROJECT! or Solution as they call them now. So say there is something mega complicated that someone else has already programmed out in VB.NET but your program is written in C#. You just make a new module for VB and pop it in, and C# can call it and use it like it was written in C#. When you compile, .NET just mushes it all together like gravy and taters =-)

    PHP and ASP are both useful, Perl/CGI is also a good one but has been outclassed and on the decline for several years now.


  13. #53
    Quote Originally Posted by FattyXP View Post
    Java is old, slow as shit, requires a huge framework which takes up a large amount of memory/clock cycles... course this was back when I had a 933mhz processor and 2gb of RAM
    Perhaps you should look into Java's performance today.

  14. #54
    Deleted
    Gotta back Brett on that - If you're calling Java in a way that running a program chews up 2gb of ram, you're doing it very VERY wrong unless you're dealing with processor intensive enterprise scaled applications (Which then would be ran off a server regardless).

    .NET is in demand because what does the business world run on? Windows. Whats the big thing with Microsoft/Windows programming? .NET (especially since Windows 7 and x64 where Visual Studio 6 is much less useful)
    You wouldn't believe the amount of companies attempting to switch to Linux and the likes these days (Especially Redhat and Ubuntu). Which annoys me to be fair since im pretty much exclusively an MS/Citrix/Vmware tech and my *ix skills are somewhat...drastically lacking.

    If I had to start again, knowing what I know, I'd kick off with Java or Python and branch into either C# or C++ from there.

  15. #55
    Stood in the Fire
    10+ Year Old Account
    Join Date
    Feb 2011
    Location
    Far away from home
    Posts
    496
    Quote Originally Posted by Brett Skullcrack View Post
    Perhaps you should look into Java's performance today.
    If you really care about performance, you need support for vector operations. There might be some Java support for SSE, but in general your life is easier if you simply use C++. Then you can also use Intel's Performance Primitives (IPP) where most stuff is already optimized and be happy. Also, if I have very complex computations and care about performance, I avoid garbage collectors like the plaque.

    What I see time and time again is C++ devs trying to write C++ in C# and vice versa. It doesn't work. They are completely and utterly different languages.
    If you ever dealt with stuff like COBOL or D-BASE you would not use the term "completely and utterly different" for things like C# and C++. There are far more differences between other languages. You can put a C++ developer in front of C# and he will be able to write a working program very quickly. Maybe not taking advantage of every aspect the language offers, but that's details.

    Of course if someone only learned C# and tries to write a C++ program, I can only feel sorry for that guy. That's why you should learn things bottom up. If you always drove with automatic, you will have a tough time handling a car with stick, too.

  16. #56
    Deleted
    Quote Originally Posted by Annu View Post
    If you really care about performance, you need support for vector operations. There might be some Java support for SSE, but in general your life is easier if you simply use C++. Then you can also use Intel's Performance Primitives (IPP) where most stuff is already optimized and be happy. Also, if I have very complex computations and care about performance, I avoid garbage collectors like the plaque.
    True but I think it was more a reference to the fact it's not as bad as some people seem to think based on their exposure to complete java WTF's

  17. #57
    Deleted
    I started writing a really long reply to this and then realized that I could probably do it in a way more compact way, so here we go.

    1. Object Orientation is a fad.
    It brings you three things: encapsulation, polymorphism and inheritance.

    These are things we like to have for our CASE tools, not ourselves.
    "Programming" nowadays is updating UML diagrams and filling in the blanks after the CASE tool has gone through it, this isn't the 90's.

    All the mentioned languages in this thread can do roughly two things:
    Control flow and variable manipulation.
    If you fail to understand this you do not even remotely understand programming. "Oh but Java has Feature X that makes life soooo handy", well so what? All feature X is a nicely summarized way to write something you could've written anyway.

    What the industry wants is people that are fully immersed on object orientation (due to the simple fact that once again, we draw programs nowadays, we don't write them) and less handy around say Christofides algorithm for approximating the TSP problem (http://en.wikipedia.org/wiki/Christofides_algorithm), unless of course you are one of those rare people that live for memory optimization.

    2. Understanding the essence of programming is more important than understanding a single technology unless you of course are going to be working with this technology on an intimate level.
    If you can couple together a calculator in a programming language then you know the programming language sufficiently. the rest is just various constructs (say, stub in Java or stage interaction in AS3) that you just need to get your head around.

    Long story short, you can argue languages to the end of time. "Mine is better than yours" and whatnot, but at the end of the day the best language to learn is one your employers are going to want you to know. As it is right now you'd want to familiarize yourself with the .NET world and Java. In five years, who knows?

  18. #58
    Quote Originally Posted by Annu View Post
    If you really care about performance, you need support for vector operations. There might be some Java support for SSE, but in general your life is easier if you simply use C++. Then you can also use Intel's Performance Primitives (IPP) where most stuff is already optimized and be happy. Also, if I have very complex computations and care about performance, I avoid garbage collectors like the plaque.
    If you really cared about performance, why wouldn't you use C or even assembly over C++? SSE and IPP are 99% of the time handled by the compiler anyway. As for garbage collection. In complex applications doing manual memory management right becomes practically impossible, which coincidentally is where garbage collection tends to kick ass over manual memory management.

    The point is, if you care about performance over everything else you should go C. If you care about maintainability, portability, etc. etc. you should go Java (or another proper OO language) over C++. I very rarely find a domain where C++ is the right choice, unless it's a big steaming pile of legacy code you need to maintain. Also, with modern JIT compilers the performance difference between Java and C++ is trivial.

  19. #59
    To sum up 50 people saying the same thing, java is the most widely used, so its good to have some level of understanding, c and c++ follow the same rule. also .net is very popular(due to microsoft pushing it) but i think theyll revert back to C++ soon.

    On a side note, bad programers uses keywords, good ones use logic and reference manuals. Do not put to much though into learning a certain language, but just try and become a better programmer.

  20. #60
    Quote Originally Posted by Annu View Post
    If you really care about performance, you need support for vector operations. There might be some Java support for SSE, but in general your life is easier if you simply use C++. Then you can also use Intel's Performance Primitives (IPP) where most stuff is already optimized and be happy. Also, if I have very complex computations and care about performance, I avoid garbage collectors like the plaque.
    Yes, IPP is great (I use it at work for image processing all of the time), but again, it comes down to what the OP wants to build. Suggesting programming languages without this knowledge is a waste of time IMO.

    If you ever dealt with stuff like COBOL or D-BASE you would not use the term "completely and utterly different" for things like C# and C++. There are far more differences between other languages. You can put a C++ developer in front of C# and he will be able to write a working program very quickly. Maybe not taking advantage of every aspect the language offers, but that's details.

    Of course if someone only learned C# and tries to write a C++ program, I can only feel sorry for that guy. That's why you should learn things bottom up. If you always drove with automatic, you will have a tough time handling a car with stick, too.
    Again (for the... what, 8th time? ), these are syntactic similarities. Yes, you will recognize the structure of a loop, and if statement, a function call, etc. very quickly. However, the semantics, which are the hard/important part, are in fact completely different.

    You're right that you can find languages that are more disparate than these two. No, I have never had the "pleasure" of writing in COBOL or D-BASE, but that comparison does not prove anything I said previously incorrect.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •