Author Topic: Feeling the need to learn a new language  (Read 3180 times)

0 Members and 1 Guest are viewing this topic.

Offline Cue Zephyr

  • All Time Legend
  • *******
  • Posts: 6978
  • Good Vibes 90
  • Who's picking the banjo here?
    • Ezyo Music
Re: Feeling the need to learn a new language
« Reply #15 on: March 05, 2015, 11:19:14 pm »
Right. Thanks for the reply, that's very in-depth. :)

I liked the Head First C# book and how it's laid out. I read the first few lines and I already think it's cool. Thanks for the heads-up.

Although I said I appreciate the idea of OO, it does come with a lot of headaches due to my unfamiliarity and lack of experience with it. I can make a simple class with fields and methods, but I find designing methods quite difficult. Like for example, I might write an unnecessary method, or I write not enough methods so I have to copy bits and pieces, etc. So I suppose this came around at just the right time - thanks! ;)

Looks like I'm gonna go with Python for general-purpose fallback. I could always segue into another language if there's a clear advantage.
Guitar, banjo, mandolin and piano, bass and percussion only when needed
Production and mixing

Offline m_c

  • Arena Rocker
  • *****
  • Posts: 746
  • Good Vibes 33
Re: Feeling the need to learn a new language
« Reply #16 on: March 05, 2015, 11:50:43 pm »
For a true general purpose language, C or C++ would cover the basics, however as others have said, it all depends on what you want to programme.

I've use C and C++ for embedded stuff. PHP for web, and have also started to write a computer app in java.

For embedded work, assembly is pretty much dying. 8/16bit compilers are now pretty good and can be configured to create code that doesn't use much more overheads than assembly, and 32bit ARM cores/compilers are designed to handle C. Modern economics mean it's usually far cheaper to use a processor with more resources than write highly optimised code to run on a processor with the least resources possible. The same also applies to Apps.

For any kind of App work, it all depends on what you're trying to achieve.
As others have said, Java is probably the best in terms of cross-platform and capable.
But if you go Window's specific, pretty much anything supported by Visual Studio (C, C++ & C# IIRC) is good. Visual Studio Express is free for private use, but $$$$ if you need a commercial license. For the app I'm working on, I would of went the VSE route, however I wanted to use MySQL for the database and VSE only lets you use Microsoft databases unless you jump through lots of hoops.
Java still involves quite a few hoops for what I'm trying to achieve database wise, but basic database work is pretty easy.
I have tried Python a couple years ago, but I found it a pain to do any kind of GUI work with, so quickly dropped it as a valid option.

For web work, PHP is still the most popular. ASP in various versions is still popular for those running windows webservers, which the last I looked was generally for more enterprise orientated stuff.

So it essentially depends on what you're aiming to do.

Offline bradt

  • Stadium Superstar
  • ******
  • Posts: 1869
  • Good Vibes 66
Re: Feeling the need to learn a new language
« Reply #17 on: March 06, 2015, 12:09:16 am »
I'd go for a C based language (C, C++, C#, Java, etc). You already know the constructs for it from javascript. Looping, conditionals, comparison operators, and loads of other stuff will be very familiar. Heck, snag an Arduino and start making stuff. It uses a C derived language as well.

Python is good, but moving to something like Java afterwards will still be difficult. On the other hand, learning Python after learning C or Java is like a breath of fresh air.

While we're on the subject of languages, another one worth looking into is Lua. It's a really nice scripting language. It is used in a quite a few popular applications, and is a pretty popular choice for games.

Offline Dan Graves

  • All Time Legend
  • *******
  • Posts: 6568
  • Good Vibes 168
  • Is on the Outside, looking in
Re: Feeling the need to learn a new language
« Reply #18 on: March 06, 2015, 01:32:16 am »
Generally i'd look at C languages, stuff like Java(script) and it's derivatives, Lua (i love Lua, but only because it can be used in videogame modding and it's easy as Pie) , and things like PHP.
Perl, Python and Ruby also come to mind.
To get a deeper understanding of things though, i'd suggest you try Assembly language, although it can be quite daunting at first.
"You need a little bit of insanity to do great things"
--Henry Rollins

Offline Majik

  • Stadium Superstar
  • ******
  • Posts: 1956
  • Good Vibes 110
Re: Feeling the need to learn a new language
« Reply #19 on: March 06, 2015, 10:36:50 am »
Although I said I appreciate the idea of OO, it does come with a lot of headaches due to my unfamiliarity and lack of experience with it. I can make a simple class with fields and methods, but I find designing methods quite difficult.

Yes that is often a problem. Java (in particular) has specific idioms, like Javabeans, and understanding those can help guide you, and the Design Patterns stuff is all about designing classes and class structures and interdependencies well.

Even if you go the Python route, that Design Patterns book is still worth a read IMO.

Cheers,

Keith
Guitars: PRS Singlecut S2, Fender Tele Lite Ash, G&L Legacy Tribute, Freshman Apollo 2 OCBX
Amps: Bugera G5 Head, Boss Katana 100
All sorts of other stuff.

Offline Cue Zephyr

  • All Time Legend
  • *******
  • Posts: 6978
  • Good Vibes 90
  • Who's picking the banjo here?
    • Ezyo Music
Re: Feeling the need to learn a new language
« Reply #20 on: March 06, 2015, 09:05:22 pm »
Yes of course! ;)
I've used Python only a little up until now, and all of it's been procedural, but if I'm gonna dive deeper into it, OO will be the way to go for me.
Guitar, banjo, mandolin and piano, bass and percussion only when needed
Production and mixing

Offline Dan Graves

  • All Time Legend
  • *******
  • Posts: 6568
  • Good Vibes 168
  • Is on the Outside, looking in
Re: Feeling the need to learn a new language
« Reply #21 on: March 07, 2015, 09:05:28 pm »
One thing to keep in mind : Java is a bit like the wicked redheaded stepchild at this point.
Frequent security problems, recurring calls to remove it from browsers and substitute it with HMTL5...
'T aint pretty.

And before anyone goes 'don't you mean flash?', no, although Flash is also on the receiving end of a boatload of criticism.
"You need a little bit of insanity to do great things"
--Henry Rollins

Offline Cue Zephyr

  • All Time Legend
  • *******
  • Posts: 6978
  • Good Vibes 90
  • Who's picking the banjo here?
    • Ezyo Music
Re: Feeling the need to learn a new language
« Reply #22 on: March 07, 2015, 10:21:58 pm »
Cheers Dan! So what you're saying is that Java is heading for an eclipse?

Right? 8)

I assume you're also using Pthon with your Pi?
Guitar, banjo, mandolin and piano, bass and percussion only when needed
Production and mixing

Offline m_c

  • Arena Rocker
  • *****
  • Posts: 746
  • Good Vibes 33
Re: Feeling the need to learn a new language
« Reply #23 on: March 07, 2015, 11:30:31 pm »
I'd highly doubt Java will disappear anytime soon, as it's used for a lot of things.

The big problem is because it's capable of so much, it means that people will always find ways of exploiting that capability to do things that it wasn't really intended to. Anything as capable that's likely to replace it, is going to suffer from the same problem.
It's a bit like operating systems. Windows get's the brunt of security issues because it's still the most popular and seen as a high profile target, Apple screws their system down that tight it's makes it hard for anybody to do anything Apple views as unnecessary, and Linux has that many variants any flaw is not likely to cause any headlines.

Offline Majik

  • Stadium Superstar
  • ******
  • Posts: 1956
  • Good Vibes 110
Re: Feeling the need to learn a new language
« Reply #24 on: March 07, 2015, 11:48:59 pm »
Java within browsers, as a client-side execution language aka "applets", is a security nightmare and has been the subject of many headlines over the last few years.

But that is true of many things which are exposed to the Internet. PHP, for instance, is getting a poor reputation for security and Python isn't immune.

There have also been major vulnerabilities in the past in some implementations of Javascript which, in case you didn't know, is completely unrelated to Java (except for the name).

As an aside, Javascript is also a pretty horrible language for many reasons, but it's what we have, and what we are likely to be stuck with for the foreseeable future as HTML5 is a markup language, not an execution language. HMTL5 alone has no scripting capability and Javascript is the current standard for client-side scripting on web browsers.

So when Dan says "HTML5" he actually means "HTML + Javascript".

Back to Java...

Despite Java being so much more than just applets, the whole language has been tarnished with the reputation from applets, often unfairly, because applets have been the most visible part of Java in the past.
 
The biggest problem is that the Java JVM "sandbox" isn't as secure as it should be (especially in older versions of Java). That's a major problem for applets because they are random, third-party bits of code that you download from the Internet and execute on your computer within your browser, often without even knowing about it. The JVM is supposed to isolate that code from the rest of your computer, but it doesn't. That means a malicious Java applet on a web page can install stuff onto your computer.

I recommend people disable Java on their browsers for this reason. In reality, not many real-world (non malicious) websites use Java any more, so you're unlikely to notice any problems.

But this vulnerability isn't such a problem outside the web browser. That assumes, of course, that you don't download random untrusted applications and run them on your computer, but that's not just a problem for Java. Java's security sandbox may be broken, but most other languages don't have any sandbox when run natively on your PC.

For server-side applications which are protected via a "Container" such a as Tomcat, Java web applications really aren't any more of a security problem than PHP, Python or .NET, all of which have had significant security vulnerabilities at one point or other. It's a hostile world out there on the Internet and anything exposed to it could, potentially, be hacked.

And for stuff you develop yourself, it's also not an issue: writing and running a "Hello world!" application on your computer isn't suddenly going to release a torrent of malware.

It's also the only option at the moment if you want to develop for Android.

So, other than applets which are a complete mess and should be avoided, there's no significant problem, security wise, with Java that isn't a problem with every other language too.

Cheers,

Keith
Guitars: PRS Singlecut S2, Fender Tele Lite Ash, G&L Legacy Tribute, Freshman Apollo 2 OCBX
Amps: Bugera G5 Head, Boss Katana 100
All sorts of other stuff.

Offline pt3r

  • Concert Hall Hasbeen
  • ****
  • Posts: 426
  • Good Vibes 8
Re: Feeling the need to learn a new language
« Reply #25 on: March 08, 2015, 10:42:00 am »
I still feel very ambivalent towards java like it is some kind of self-fulfilling prophecy; IMO it will stay because the lobbying behind it is so strong and not necessarily because it's such a technical sound language. This said If you're delvin in to OO then i agree with was said before, focus more on the OO design patterns and study those instead of fixating on a specific OO language. The language is nothing but a tool.
You gotta put a lot o' time in that thing. (Buddy Guy)

Offline Dan Graves

  • All Time Legend
  • *******
  • Posts: 6568
  • Good Vibes 168
  • Is on the Outside, looking in
Re: Feeling the need to learn a new language
« Reply #26 on: March 10, 2015, 03:49:36 am »
Cheers Dan! So what you're saying is that Java is heading for an eclipse?

Right? 8)

I assume you're also using Pthon with your Pi?

I'm saying Java is in stormy weather  :P

Also, noooope on the Python front, using PHP, Ruby, C++ and Lua, and bits of Cortana scripting (for Armitage/Cobalt Strike).

@ Keith : what i mean is HTML5 + whatever will replace Javascript (it'd better be replaced in any case, if just because it needs to die... hell it needed to die in '95 when it was still called livescript).
And yes, these days, with everyone running fuzzing techniques against everything, and finding exploits for cold, hard cash, any web-facing application is going to get shafted eventually.
"You need a little bit of insanity to do great things"
--Henry Rollins

Offline Cue Zephyr

  • All Time Legend
  • *******
  • Posts: 6978
  • Good Vibes 90
  • Who's picking the banjo here?
    • Ezyo Music
Re: Feeling the need to learn a new language
« Reply #27 on: March 10, 2015, 10:04:45 pm »
Right, that'll be the name of a new IDE: "Stormy Weather". ;D

I've tried to get Ruby (on Rails) running for a couple of hours now, but I somehow can't get it to work on my Windows machine. Perhaps trying to install it into my XAMPP folder has something to do with it?

Seriously though. I may not be the brightest programmer, but I honestly can't make much sense of JavaScript having written a lot of PHP in the past few weeks. Having said that, I had some serious fights with the Python way of importing other scripts and Java makes a lot of sense having done some C#. I got the idea of Java from my girlfriend, who is learning it in uni and I offered to help. I must say though, from what I've seen and tried, it's a lot like C# and having said that, neither seem to be all that bad, looking at them purely as a language.
Guitar, banjo, mandolin and piano, bass and percussion only when needed
Production and mixing

Offline Majik

  • Stadium Superstar
  • ******
  • Posts: 1956
  • Good Vibes 110
Re: Feeling the need to learn a new language
« Reply #28 on: March 10, 2015, 10:19:43 pm »
Javascript sucks!

Like Dan, I really hope they replace it with something better (not hard), but unlike him I don't see it happening anytime soon. We already have some interesting stuff like Dart, but that basically compiles to Javacript because it's the only way to get it working on most browsers.

There's a reason C# is like Java: Microsoft pretty much copied a lot of the structure and semantics.

Cheers,

Keith
Guitars: PRS Singlecut S2, Fender Tele Lite Ash, G&L Legacy Tribute, Freshman Apollo 2 OCBX
Amps: Bugera G5 Head, Boss Katana 100
All sorts of other stuff.

Offline Dan Graves

  • All Time Legend
  • *******
  • Posts: 6568
  • Good Vibes 168
  • Is on the Outside, looking in
Re: Feeling the need to learn a new language
« Reply #29 on: March 12, 2015, 05:45:17 am »
Think you may have misread me there Keith;  Javascript should be nuked from orbit...
But i would not dare give any indication as to when that will happen, if ever  :-\
Then again, maybe if Micro$oft's winblows 10 once again fails to make people switch over from XP, it might finally mean they have to massively downsize their operations, eat a ton of (insert insult of choice hear), and stop pushing their pet projects onto the world.
Idle hope, most likely, but hey, a man can dream, can't he ?
"You need a little bit of insanity to do great things"
--Henry Rollins

 

Get The Forum As A Mobile App