Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Learning a programming language

Options
13

Comments

  • Registered Users Posts: 1,645 ✭✭✭k.p.h


    I can see you have dabbled in a bit of lisp too.

    Knew that would get some response here, ye smart feckers .. :p


  • Registered Users Posts: 610 ✭✭✭Clauric


    Thanks for all the info, and the debate. I've decided to go with Java, as a starter (I'll move on from there at a later stage).

    As I'm using a W7 system, what JDK do I download?

    Thanks


  • Registered Users Posts: 2,024 ✭✭✭Colonel Panic




  • Closed Accounts Posts: 695 ✭✭✭yawha


    Gurgle wrote: »
    Java works on everything, .NET (without getting bogged down in details) doesn't.
    Huh? .NET does work on everything. The Common Language Infrastructure is an open standard (http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf) .

    Just as Java bytecode requires an implementation of a JVM to be running on its target, .NET IL requires an implementation of the CLR. MS has one which runs on Windows, and Mono is the most popular implementation which runs on Linux and Mac (as well as Windows).
    Gurgle wrote: »
    Better, one of my colleagues is using it. He sent me his client application, I tried to run it on my brand new, fully updated Win 7 PC.

    Did it work?
    Of course not, I didn't have the correct version of .NET :rolleyes:
    If you didn't have the latest .NET, it wasn't fully updated. The latest .NET framework installs with Windows update.

    If you didn't have the correct version of the JVM on your machine, you wouldn't be able to run Java apps targetting that version on it either.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    yawha wrote: »
    Huh? .NET does work on everything. The Common Language Infrastructure is an open standard (http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf) .

    Right in theory, wrong in reality. Mono only supports a limited subset of .net, the main things in .net that people care about are missing (WPF for example).

    However, you are right in that it should be platform-agnostic framework. In the future .Net apps should run okay on ARM windows phones, the same as with Intel windows pcs. Just don't expect it to work on a non-microsoft platform.


  • Advertisement
  • Registered Users Posts: 2,024 ✭✭✭Colonel Panic


    srsly78 wrote: »
    However, you are right in that it should be platform-agnostic framework. In the future .Net apps should run okay on ARM windows phones, the same as with Intel windows pcs. Just don't expect it to work on a non-microsoft platform.

    I'm guessing you're talking about apps working for ARM and x86 without needing to recompile?

    It's a shame we're not there yet, but it's still close enough, much like large chunks of Cocoa / OpenGL 3.x and Cocoa Touch / OpenGL ES 2 being similar in terms of code usage. With a decent build system setup, it's pretty painless! Without? Ugh...

    I ported the client portion of one of work's apps to Windows phone in a few hours. I still needed to make a new project and add shortcuts to existing files for each of our in-house assemblies that I needed to use though. So now we have OurCompany.Product.Core.dll and OurCompany.Product.Core.WinPhone.dll etc.

    I must disassemble the phone DLLs to see what exactly is different apart from them using a different version of the .Net framework!


  • Registered Users Posts: 2,345 ✭✭✭Kavrocks


    Clauric wrote: »
    Thanks for all the info, and the debate. I've decided to go with Java, as a starter (I'll move on from there at a later stage).

    As I'm using a W7 system, what JDK do I download?

    Thanks
    You may also have to set classpath's in your system variables for Java to compile and run correctly on your machine.

    I would recommend you download and keep a local copy of the Java API docs on your machine and have the homepage bookmarked in your browser just in case you ever need to look it up but don't have an internet connection.

    I would also recommend you try out eclipse for Java development. I have been using it for the last 6 weeks and its a gem. Its great for helping you find some errors on the fly and also offers you suggestions of fixes for them.


  • Closed Accounts Posts: 695 ✭✭✭yawha


    srsly78 wrote: »
    Right in theory, wrong in reality. Mono only supports a limited subset of .net, the main things in .net that people care about are missing (WPF for example).
    I wouldn't say WPF is the main thing people care about in .NET, and since the point of my comment was comparing with Java, is it commonplace to write an application with the same UI framework and use the same bytecode on each platform?

    (I genuinely don't know, I'm not hugely experienced in common practices like these.)

    From what I know about Mono, it's not a limited subset at all. It's a subset, but a pretty feature rich one. And it can only keep getting better. Microsoft supports the effort.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    They don't support it. And there is more than WPF missing. It's only good for writing trivial things. Recommending people use .net on linux is awful advice because it's useless. Java on the other hand WILL run on all platforms.

    I'm mainly a c++/c# developer these days btw, so don't accuse me of java fanboi-ism either. Am just telling you how it is.


  • Registered Users Posts: 2,024 ✭✭✭Colonel Panic


    What do you think the main thing people care about in .Net is then, Yawha?

    http://www.mono-project.com/Compatibility

    WPF, Most of WCF and Entity Framework are major things to have missing from Mono. They don't ever plan to implement WPF either. I would class these things as major reasons to use the .Net framework.

    ASP.Net MVC 2 is supported, but not 3 unfortunately.


  • Advertisement
  • Moderators, Business & Finance Moderators Posts: 10,303 Mod ✭✭✭✭Jim2007


    WPF, Most of WCF and Entity Framework are major things to have missing from Mono.

    Over all the uptake in these items has not been wide spread, it's a bit like teen sex - a lot of talk but not much action! Most corporates have a few applications written using these technologies, but the majority of their stuff is still old school and maintaining that is a big part of the job, so even when it comes to writing new stuff, the majority, at least here in Switzerland, will write it like the old stuff!


  • Registered Users Posts: 2,024 ✭✭✭Colonel Panic


    I think that depends on the industry and the size of the company in question, and a little on how interested the developers are in just doing their 9 - 5 or doing new things. I got fed up working for megacorps early on in my career and brave smaller companies.

    We do 75% of our new development in with .Net and I'm responsible for the architecture of all of it so so we use new stuff like WPF, WCF and Entity Framework. The powers that be don't care as long as it looks good, works and is delivered on time so I'm at an advantage here.

    That said, most of our existing code is a 10 year old multi million line codebase of mature and relatively stable C and C++. It's not like we're going to throw that out overnight, if ever.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    Jim2007 wrote: »
    Over all the uptake in these items has not been wide spread, it's a bit like teen sex - a lot of talk but not much action! Most corporates have a few applications written using these technologies, but the majority of their stuff is still old school and maintaining that is a big part of the job, so even when it comes to writing new stuff, the majority, at least here in Switzerland, will write it like the old stuff!

    No. WPF is pretty big. Many jobs you see ask for "wpf developer" without even saying c# or .net. I write cli/c++ wrapper code that lets old c++ code talk to modern .net code with wpf gui. So all that old code still gets used...


  • Moderators, Business & Finance Moderators Posts: 10,303 Mod ✭✭✭✭Jim2007


    I think that depends on the industry and the size of the company in question, and a little on how interested the developers are in just doing their 9 - 5 or doing new things. I got fed up working for megacorps early on in my career and brave smaller companies.
    srsly78 wrote: »
    No. WPF is pretty big. Many jobs you see ask for "wpf developer" without even saying c# or .net. I write cli/c++ wrapper code that lets old c++ code talk to modern .net code with wpf gui. So all that old code still gets used...

    Well I can only comment on what I see here, in the last two years I consulted at the European HQ of 5 US multinationals: in each case, yes they had a couple of things, but most stuff was, lets call it "old school", WinForms and standard ASP.NET sites with old style web services rather than WCF.

    On the Jobs pages, WPF & WCF appears from time to time, but it is not dominant by any means.

    By the same token I did some recruiting for one of these companies in the NY area last year and while it was easy to get a VB.NET person, getting a C# person was almost impossible. Where as it is the reverse here in Switzerland.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    From personal experience I can tell you that if you know c#/wpf you can walk into a development job in an investment bank (c# is massive in finance). It's not just that there is loads of work available for this, it also happens that the jobs are some of the highest paid ones (in before moral outrage).

    But yeah, I know what you are getting at. A lot of places still use old technology and are slow to update.


  • Closed Accounts Posts: 695 ✭✭✭yawha


    srsly78 wrote: »
    They don't support it.
    http://www.mono-project.com/FAQ:_General#Mono_and_Microsoft
    srsly78 wrote: »
    It's only good for writing trivial things. Recommending people use .net on linux is awful advice because it's useless.
    It's used by more than a few reputable companies on many less than trivial projects:
    http://www.mono-project.com/Companies_Using_Mono
    http://www.mono-project.com/Software

    When I was in college I did a relatively complex group project with the other members of my group using Mono on Linux and me using MS .NET on Windows. We had no compatibility issues. I know college projects don't have much bearing on the real world, but Mono is far from a tiny, shoddy subset of .NET.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    Your links say that microsoft ALLOW it, not that they support it. If mono ever became successful microsoft could pull the plug (nevermind their promises, noone trusts them). For your own good please take heed, and do not walk into a c# job interview telling everyone that their code will run on linux.

    Your college project was not using any gui (not in c# anyway), and was using old .net. This is not much use in the real world.
    edit: You could have used gtk+ I see, but that isn't part of .net :)


  • Closed Accounts Posts: 695 ✭✭✭yawha


    It didn't have a GUI, no. But GUIs are hardly the be all and end all of why you would use .Net. In my current job I write .Net and there are no GUIs involved.

    What do you mean by old .Net? We were using .Net 4. (Well, actually no. We were using .Net 3.5. Amusingly, I only had VS 2008 on my laptop and when one of them used default parameters in a function, it wouldn't compile on my machine. )

    I'm not necessarily arguing that .Net is a great cross platform framework and that everyone should use it for all purposes. I just think you have a lower opinion of Mono than it deserves. EA used Mono for the Sims 3 scripting engine, Mozilla uses it for some projects, Wikipedia uses it in its search and indexing. It's not a useless, limited subset of .Net in the slightest.


  • Registered Users Posts: 7,157 ✭✭✭srsly78


    The point is you could use java or python, which are proper supported multi-platform languages. Your posts earlier gave the impression that .net was multi-platform, which needs some serious caveats attached.

    Ok, I will admit that mono is not useless. However it is definitely a limited subset, and will never be 100% (because of microsoft, not the mono guys lacking ability).


  • Closed Accounts Posts: 2,117 ✭✭✭Defiler Of The Coffin


    This thread was never going to be anything but a donnybrook for the fanboys.

    OP, do not start your daughter programming with a garbage-collected language, she will grow up soft. Make her use C or C++ and she will realise how tough life really is!


  • Advertisement
  • Registered Users Posts: 3,411 ✭✭✭dnme


    This thread was never going to be anything but a donnybrook for the fanboys.

    OP, do not start your daughter programming with a garbage-collected language, she will grow up soft. Make her use C or C++ and she will realise how tough life really is!

    Why not follow the logic through to its conclusion. OP, learn machine code!
    P(sarcasm) = 0.50.


  • Registered Users Posts: 1,889 ✭✭✭evercloserunion


    Gurgle wrote: »
    Python is a bit silly, which is why its got the name. Its good for an 'enthusiast' (read: ubernerd) who appreciates the sheer multi-faceted multi-ness of it, not so useful though if you just want to get something done.

    Lol: http://wiki.python.org/moin/OrganizationsUsingPython

    OP, if you want to get your daughter interested in learning programming, I would go with Python. Although as you can see from the link above it's a "serious" language used by actual companies, it's also fun and easy to learn. It will probably hold your daughter's interest much better than some other languages like Java would.


  • Registered Users Posts: 610 ✭✭✭Clauric


    OP here. Very interesting discussion.

    I'm not interested in getting a job out of this, it is purely a recreational thing. Something simple, easy to use, that will let me develop some personal use/interest programs.


  • Registered Users Posts: 610 ✭✭✭Clauric


    OP here. Very interesting discussion.

    I'm not interested in getting a job out of this, it is purely a recreational thing. Something simple, easy to use, that will let me develop some personal use/interest programs.


  • Registered Users Posts: 610 ✭✭✭Clauric


    OP here. Very interesting discussion.

    I'm not interested in getting a job out of this, it is purely a recreational thing. Something simple, easy to use, that will let me develop some personal use/interest programs.


  • Registered Users Posts: 12,757 ✭✭✭✭Encrypted Pigeon


    If that's the case, then Python is what I would recommend. Its one of the easiest and friendliest languages I have yet to encounter anyway.

    If your interested, there is a free online tutorial here which should get you started.

    http://learnpythonthehardway.org (its not really the hard way)


  • Closed Accounts Posts: 127 ✭✭Computer Sci


    Gurgle wrote: »
    Learn C, all of the above are based on / extensions of it anyway.

    How hard is C to learn in comparison to Java by the way?


  • Closed Accounts Posts: 321 ✭✭Socialist_Pig


    This thread was never going to be anything but a donnybrook for the fanboys.

    OP, do not start your daughter programming with a garbage-collected language, she will grow up soft. Make her use C or C++ and she will realise how tough life really is!

    Dont be a dick..


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    How hard is C to learn in comparison to Java by the way?
    I think C is easier to get up and running on.

    It gives you a chance to get familiar with the basics of programming (by which I mean 'for' loops, 'while' loops, arrays, functions, parameters, pointers, macros, pre-processor directives, variables of various sizes and types, casting etc) before you have to face OOP head on.

    Also there are no dependencies on 'standard' externals (i.e. those not set up during installation of your compiler), if your program doesn't compile its because there's a mistake in it.


  • Advertisement
  • Registered Users Posts: 1,419 ✭✭✭Cool Mo D


    Gurgle wrote: »
    I think C is easier to get up and running on.

    It gives you a chance to get familiar with the basics of programming (by which I mean 'for' loops, 'while' loops, arrays, functions, parameters, pointers, macros, pre-processor directives, variables of various sizes and types, casting etc) before you have to face OOP head on.

    Also there are no dependencies on 'standard' externals (i.e. those not set up during installation of your compiler), if your program doesn't compile its because there's a mistake in it.

    It's easier to learn the basics, as C is a compact language, but it's quite hard to do something interesting quickly. If you want to write an interactive web-page, or a simple game, or some scripts to rename and move files, C is a terrible language to get quick results.

    Java hides some of the complexity and pitfalls of C, but it's quite verbose to write, with plenty of boilerplate code necessary to do simple things. It's not an ideal beginner language, and although universities have been teaching Java as a first language for a while, they're moving away from it now.


Advertisement