New hobbie - interested in learning Programming

I have to respectfully disagree with you Tomtomtom, for the following reasons:

Do realise that OP wanted to learn how to program, do you seriously rate JavaScript is the best way forward?

Not if he was learning for the first time. But it sounded like he had already done some programming, and done well at it too. From this point, JavaScript is the way forward imo. Not an easy way forward, but an important one.

You cannot get all core phone functionality using JavaScript alone (GPU comes to mind here)

True. This is an area I expect to see enormous progress on in the next 5 years. You would do well to be prepared for an expanded low-level API by getting started with the language now.

Java will be left nowhere? just like how COBOL will be left nowhere? you'd be surprised to see how much COBOL or Delphi exists in enterprise.

But you wouldn't recommend getting into COBOL now, would you?
 
Last edited:
Disregard this ^. Programming is less about the ability to code in A or B, but rather how to break down a problem into simple steps and then doing each step in a logical and optimized manner. If you'd like to learn a language, pick one with a more refined goal. If you want to practise web-coding, then maybe JS, if you want scripting, look at Python or Perl, if you want heavy processing or embedded exposure look at C/C++, etc.

You have criticized a single recommendation and then gone on to make four or five recommendations yourself.

The only language there that is both a web front-end language, a server-side language, and a scripting language, is JavaScript. It's also likely to become de-facto language for app development in the next 5 years. So if you want to get into an exciting and useful language, learn JavaScript.

Of course I would recommend C for an intensive introduction to computer programming , but IIRC the OP knows the basics already.
 
JavaScript is very good but it's only useful for front ends

Untrue. Take a look at http://nodejs.org/ - JS is easily deployed for low-level socket applications on the server. Look at the progress made by the V8 engine for an idea of its performance too. The problem is, people heard of JavaScript and how silly it was in 1999 and haven't given it another look since. JS 1.8 is really not the same language.

You can always get into WPF/SilverLight which is superior for front-end screen development compared to other technologies.

These are being killed by HTML 5 + JS. Flash/ActionScript was their first victim.
 
Last edited:
JavaScript is crap: Probably the only language I dislike at almost the same level as visual basic. Do love the fact that you can use Java to generate JavaScript, keeping your type safety and all other properties of a nice mature language in place, and still getting the benefit of some crazy a** client side stuff (http://code.google.com/webtoolkit/)

So, my answer: Haskell or nothing ... http://www.haskell.org/haskellwiki/Introduction

I mean, if you want to enjoy something, why not go all the way ...

[Needless to say this all very tongue in cheek: I'm a professional Java architect, so I'm a bit biased, but I think any modern language can give you a lot of enjoyment].

The long story is this: It's not the programming language, it's the framework and libraries -- Figure out which of those you want to use, and then use the appropriate programming language.
 
JavaScript is crap: Probably the only language I dislike at almost the same level as visual basic. Do love the fact that you can use Java to generate JavaScript

Ouch. Can't think of a better way to make JavaScript perform worse! I suspect the fact that JS has always traditionally run in browsers, with their godawful slow rendering, hasn't helped its reputation.

The long story is this: It's not the programming language, it's the framework and libraries -- Figure out which of those you want to use, and then use the appropriate programming language.

I think that's good advice, except I'd start with the platform, which usually implies a framework.
 
Ouch. Can't think of a better way to make JavaScript perform worse! I suspect the fact that JS has always traditionally run in browsers, with their godawful slow rendering, hasn't helped its reputation.

I love these Friday debates :-) So, would you say Gmail, Google Maps, etc are performing badly? Must be that last million or so users that is slowing it down ...

Bad code performs badly. Good code performs well: Yes, GWT is tricky, and yes, GWT does quite a bit of overhead, and yes: a very well experienced JavaScript developer might be able to optimise it a lot better: But that's the same argument people had in the beginning with compiler optimisations: "I can do it better by hand: Let's write code in assembler, yee-haw!" ... I would seriously challenge the run of the mill programmer to try and optimise code better than modern compilers.
 
Hamster said:
You can always get into WPF/SilverLight which is superior for front-end screen development compared to other technologies.
These are being killed by HTML 5 + JS. Flash/ActionScript was their first victim.
That is very naive Tomtomtom. Maybe go read a few things beyond the "Windows 8 only uses HTML5" crap. MS has invested HEAVILY in XAML and SL(/WPF) - they wouldn't even consider killing the main tech behind their mobile platform(they they are pushing hard). It is going to be a big part of W8. Go look up Jupiter.

Browser experiences cannot match native apps, in the same way that native apps cannot match the platform agnostic-ness(whatever) of JS.

EDIT: MetroTwit just popped this up, thought it was on topic: http://www.zdnet.com/blog/microsoft...to-windows-azure/9802?tag=mantle_skin;content
 
Last edited:
I love these Friday debates :-) So, would you say Gmail, Google Maps, etc are performing badly? Must be that last million or so users that is slowing it down ...
Yes and no. But I'm not sure how relevant they are because they are presumably hand-optimized to hell and back. But the DOM is insanely slow at the best of times. Of course in Chrome it's relative bliss, but I won't be satisfied until browser 2D rendering is as good as native.


"I can do it better by hand: Let's write code in assembler, yee-haw!" ... I would seriously challenge the run of the mill programmer to try and optimise code better than modern compilers.

Agree. But I'm not sure JavaScript and GWT are at that level. It's obviously always a trade-off -- and in JavaScript in the browser in my experience, it currently pays big dividends to get your hands dirty in the DOM trying to second-guess the renderer. That advantage will probably fade with time for most applications just as it arguably did for C.
 
This is turning into a thread where people start bashing each other and trying to out do each other by trying to sound smart and all that...

look guy...the logic stays the same, its just the syntax that changes...

ok i see that i have to use a favourable language to bring the point across, if you want to know how a program, the nitty gritty technical side that will help you along in life, then choose a procedural language like C. You will learn how to use or define your logic, the way you think blah blah you get the point.

Java is a good language to learn, C# is a good language to learn as well, many languages are good to learn, maybe some people will tell you about their experience and how well they fare in this and that, but the question is, what do you want to do? Choose a language and master the tool.

Device programming: C/C++
Windows Apps or admin apps: C#
Phones:Java/Android

What im trying to say is, build your logic, and with that logic, you will understand which language is the best tool for type of application you want to build.
 
That is very naive Tomtomtom. Maybe go read a few things beyond the "Windows 8 only uses HTML5" crap. MS has invested HEAVILY in XAML and SL(/WPF) - they wouldn't even consider killing the main tech behind their mobile platform(they they are pushing hard). It is going to be a big part of W8. Go look up Jupiter.

I think the question to ask is, what framework / language is growing fastest, what will the scene look like in 5 years' time, where will most development, support and user expectation be concentrated? I think the answer has to be web technology, which means JavaScript. Obviously there's a lot besides that, but I think the momentum behind the web-app paradigm is huge, and the advantage of relative platform-independence is one of its driving forces.

Of course browsers can't match native performance yet, and never will. There'll always be a need for low-level work, but it's a specialized need.

The Aves engine (mentioned in your link) is a hint of what's to come: http://www.youtube.com/watch?v=Ol3qQ4CEUTo
 
Java, JavaScript, C#,C++ are probably the worse languages for a hobbyist to start on. It's different if you learnt them in college and you get to use it as part of your every day work.

For a hobbyist starting out, I would recommend VB, even starting with VBA using MS Excel or Access. Setting up a Linux box and then learning web-database programming with php and mysql is very easy to do and will give you the confidence to move onto the likes of java, C#/C++ etc.

Worrying about the latest and greatest language is a diversion which only result in frustration.

Edit: I don't use any of these languages. I work on Oracle on Unix platforms with Oracle forms 10g as the front end. I used java in a previous job. Been in the industry for about 15 years.
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X